From da6a98c415d34917285cec2e24d8c3d9debde8c8 Mon Sep 17 00:00:00 2001 From: GitHub CI Documentation builder Date: Thu, 9 Jan 2025 16:25:28 +0000 Subject: [PATCH] Update docs --- ...tion__2d__rp_2test__cases_8hpp_source.html | 4 +- advection__field__rp_8hpp_source.html | 2 +- annotated.html | 14 +- bsl__predcorr_8hpp_source.html | 77 +- ...__second__order__explicit_8hpp_source.html | 263 +- ...__second__order__implicit_8hpp_source.html | 530 ++-- cartesian__to__circular_8hpp_source.html | 4 +- cartesian__to__czarny_8hpp_source.html | 4 +- circular__to__cartesian_8hpp_source.html | 4 +- classBslExplicitPredCorrRTheta-members.html | 2 +- classBslExplicitPredCorrRTheta.html | 12 +- classBslExplicitPredCorrRTheta.js | 2 +- classBslImplicitPredCorrRTheta-members.html | 2 +- classBslImplicitPredCorrRTheta.html | 12 +- classBslImplicitPredCorrRTheta.js | 2 +- classBslPredCorrRTheta-members.html | 2 +- classBslPredCorrRTheta.html | 12 +- classBslPredCorrRTheta.js | 2 +- ...larSplineFEMPoissonLikeSolver-members.html | 28 +- classPolarSplineFEMPoissonLikeSolver.html | 1053 +++++++- classPolarSplineFEMPoissonLikeSolver.js | 20 +- classVortexMergerEquilibria-members.html | 2 +- classVortexMergerEquilibria.html | 12 +- classVortexMergerEquilibria.js | 2 +- czarny__to__cartesian_8hpp_source.html | 4 +- discrete__mapping__builder_8hpp_source.html | 4 +- discrete__to__cartesian_8hpp_source.html | 4 +- docs_DDC_in_gyselalibxx.html | 8 +- ...Theta_2geometry_2geometry_8hpp_source.html | 307 ++- ...ryXVx_2geometry_2geometry_8hpp_source.html | 8 +- ...YVxVy_2geometry_2geometry_8hpp_source.html | 16 +- ...tryXY_2geometry_2geometry_8hpp_source.html | 8 +- inv__jacobian__o__point_8hpp_source.html | 4 +- math__tools_8hpp_source.html | 2 +- navtreedata.js | 6 +- navtreeindex0.js | 6 +- navtreeindex3.js | 2 +- navtreeindex4.js | 40 +- navtreeindex5.js | 18 +- navtreeindex6.js | 18 +- navtreeindex7.js | 8 + onion__patch__locator_8hpp_source.html | 4 +- polar__bsplines_8hpp_source.html | 1240 ++++----- polar__poisson_2test__cases_8hpp_source.html | 4 +- polarpoissonlikesolver_8hpp_source.html | 2391 +++++++++-------- search/all_12.js | 2 +- search/all_13.js | 2 +- search/all_15.js | 2 +- search/all_17.js | 186 +- search/all_19.js | 2 +- search/all_1a.js | 11 +- search/all_5.js | 6 +- search/all_6.js | 87 +- search/all_8.js | 106 +- search/all_9.js | 111 +- search/all_a.js | 97 +- search/all_c.js | 287 +- search/classes_4.js | 34 +- search/functions_1.js | 6 +- search/functions_13.js | 16 +- search/functions_15.js | 2 +- search/functions_16.js | 7 +- search/functions_17.js | 9 + search/functions_2.js | 27 +- search/functions_5.js | 21 +- search/functions_6.js | 27 +- search/functions_8.js | 2 +- search/functions_e.js | 2 +- search/functions_f.js | 2 +- search/searchdata.js | 2 +- search/typedefs_7.js | 79 +- search/typedefs_d.js | 2 +- search/typedefs_f.js | 2 +- ...lineFEMPoissonLikeSolver_1_1QDimRMesh.html | 10 +- ...plineFEMPoissonLikeSolver_1_1QDimRMesh.png | Bin 1958 -> 1911 bytes ...FEMPoissonLikeSolver_1_1QDimThetaMesh.html | 10 +- ...eFEMPoissonLikeSolver_1_1QDimThetaMesh.png | Bin 2005 -> 1959 bytes test__cases__adv__field_8hpp_source.html | 4 +- vector__mapper_8hpp_source.html | 4 +- vortex__merger__equilibrium_8hpp_source.html | 161 +- 80 files changed, 4351 insertions(+), 3146 deletions(-) create mode 100644 search/functions_17.js diff --git a/advection__2d__rp_2test__cases_8hpp_source.html b/advection__2d__rp_2test__cases_8hpp_source.html index 2d80e6442..a8c357d8a 100644 --- a/advection__2d__rp_2test__cases_8hpp_source.html +++ b/advection__2d__rp_2test__cases_8hpp_source.html @@ -513,8 +513,8 @@
RotationSimulation(Mapping const &mapping, double const rmin, double const rmax)
Instantiate a RotationSimulation simulation.
Definition test_cases.hpp:545
Simulation of a translated Gaussian.
Definition test_cases.hpp:482
TranslationSimulation(Mapping const &mapping, double const rmin, double const rmax)
Instantiate a TranslationSimulation simulation.
Definition test_cases.hpp:494
-
Define non periodic real X velocity dimension.
Definition geometry.hpp:300
-
Define non periodic real Y velocity dimension.
Definition geometry.hpp:311
+
Define non periodic real X velocity dimension.
Definition geometry.hpp:341
+
Define non periodic real Y velocity dimension.
Definition geometry.hpp:352
diff --git a/advection__field__rp_8hpp_source.html b/advection__field__rp_8hpp_source.html index 7759fa909..4bcc0d3b1 100644 --- a/advection__field__rp_8hpp_source.html +++ b/advection__field__rp_8hpp_source.html @@ -504,7 +504,7 @@
void operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const
Compute the advection field from a spline representation of .
Definition advection_field_rp.hpp:388
A class to calculate the inverse of the Jacobian matrix.
Definition inverse_jacobian_matrix.hpp:18
An operator for calculating the metric tensor.
Definition metric_tensor.hpp:15
-
static int constexpr continuity
The continuity enforced by the bsplines at the singular point.
Definition polar_bsplines.hpp:61
+
static int constexpr continuity
The continuity enforced by the bsplines at the singular point.
Definition polar_bsplines.hpp:62
Define an evaluator on polar B-splines.
Definition polar_spline_evaluator.hpp:13
A class which holds multiple (scalar) fields in order to represent a vector field.
Definition vector_field.hpp:64
Define null extrapolation rule commun to all geometries.
Definition null_extrapolation_rules.hpp:17
diff --git a/annotated.html b/annotated.html index c2f883f49..3baac2614 100644 --- a/annotated.html +++ b/annotated.html @@ -424,12 +424,14 @@  CPolarSplineA structure containing the two Chunks necessary to define a spline on a set of polar basis splines  CPolarSplineEvaluatorDefine an evaluator on polar B-splines  CPolarSplineFEMPoissonLikeSolverDefine a polar PDE solver for a Poisson-like equation - CQDimRMeshTag the first dimension for the quadrature mesh - CQDimThetaMeshTag the second dimension for the quadrature mesh - CRBasisSubset - CRCellDim - CThetaBasisSubset - CThetaCellDim + CEvalDeriv1DTypeObject storing a value and a value of the derivative of a 1D function + CEvalDeriv2DTypeObject storing a value and a value of the derivatives in each direction of a 2D function + CQDimRMeshTag the first dimension for the quadrature mesh + CQDimThetaMeshTag the second dimension for the quadrature mesh + CRBasisSubset + CRCellDim + CThetaBasisSubset + CThetaCellDim  CPolarSplineSpanA structure containing the two ChunkSpans necessary to define a reference to a spline on a set of polar basis splines  CPolarSplineViewA structure containing the two ChunkViews necessary to define a constant reference to a spline on a set of polar basis splines  CPreallocatableLagrangeInterpolatorA class which stores information necessary to create an instance of the LagrangeInterpolator class diff --git a/bsl__predcorr_8hpp_source.html b/bsl__predcorr_8hpp_source.html index 81a9bca46..21612ebef 100644 --- a/bsl__predcorr_8hpp_source.html +++ b/bsl__predcorr_8hpp_source.html @@ -144,7 +144,7 @@
66 GridR,
67 GridTheta,
68 PolarBSplinesRTheta,
-
69 SplineRThetaEvaluatorNullBound_host> const& m_poisson_solver;
+
69 SplineRThetaEvaluatorNullBound> const& m_poisson_solver;
70
71 SplineRThetaBuilder_host const& m_builder;
72 SplineRThetaEvaluatorNullBound_host const& m_spline_evaluator;
@@ -152,7 +152,7 @@
74
75public:
- +
94 Mapping const& mapping,
95 BslAdvectionRTheta<FootFinder, Mapping> const& advection_solver,
96 SplineRThetaBuilder_host const& builder,
@@ -161,7 +161,7 @@
99 GridR,
100 GridTheta,
-
102 SplineRThetaEvaluatorNullBound_host> const& poisson_solver)
+
102 SplineRThetaEvaluatorNullBound> const& poisson_solver)
103 : m_mapping(mapping)
104 , m_advection_solver(advection_solver)
105 , m_poisson_solver(poisson_solver)
@@ -198,19 +198,19 @@
134 polar_spline_evaluator(extrapolation_rule);
135
136
-
137 host_t<DFieldMemRTheta> electrical_potential0(grid);
-
138
+
137 host_t<DFieldMemRTheta> electrical_potential0_host(grid);
+
138 DFieldMemRTheta electrical_potential0(grid);
139 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
140 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
142 charge_density_coord(get_const_field(allfdistribu_coef), m_spline_evaluator);
143 m_poisson_solver(charge_density_coord, get_field(electrical_potential0));
-
144
+
144 ddc::parallel_deepcopy(electrical_potential0, electrical_potential0_host);
145 ddc::PdiEvent("iteration")
146 .with("iter", 0)
147 .and_with("time", 0)
148 .and_with("density", allfdistribu)
-
149 .and_with("electrical_potential", electrical_potential0);
+
149 .and_with("electrical_potential", electrical_potential0_host);
150
151
152 std::function<void(host_t<DVectorFieldRTheta<X, Y>>, host_t<DConstFieldRTheta>)>
@@ -238,50 +238,51 @@
174 host_t<DVectorFieldMemRTheta<X, Y>>,
175 Kokkos::DefaultHostExecutionSpace>
176 time_stepper(grid);
-
177 host_t<DFieldMemRTheta> electrical_potential(grid);
-
178 start_time = std::chrono::system_clock::now();
-
179 for (int iter(0); iter < steps; ++iter) {
-
180 time_stepper
-
181 .update(Kokkos::DefaultHostExecutionSpace(),
-
182 allfdistribu,
-
183 dt,
-
184 define_advection_field,
-
185 advect_allfdistribu);
-
186
+
177 DFieldMemRTheta electrical_potential(grid);
+
178 host_t<DFieldMemRTheta> electrical_potential_host(grid);
+
179 start_time = std::chrono::system_clock::now();
+
180 for (int iter(0); iter < steps; ++iter) {
+
181 time_stepper
+
182 .update(Kokkos::DefaultHostExecutionSpace(),
+
183 allfdistribu,
+
184 dt,
+
185 define_advection_field,
+
186 advect_allfdistribu);
187
-
188 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
- -
190 charge_density_coord(get_const_field(allfdistribu_coef), m_spline_evaluator);
-
191 m_poisson_solver(charge_density_coord, get_field(electrical_potential));
-
192
-
193 ddc::PdiEvent("iteration")
-
194 .with("iter", iter + 1)
-
195 .and_with("time", iter * dt)
-
196 .and_with("density", allfdistribu)
-
197 .and_with("electrical_potential", electrical_potential);
-
198 }
-
199 end_time = std::chrono::system_clock::now();
-
200
+
188
+
189 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
+ +
191 charge_density_coord(get_const_field(allfdistribu_coef), m_spline_evaluator);
+
192 m_poisson_solver(charge_density_coord, get_field(electrical_potential));
+
193 ddc::parallel_deepcopy(electrical_potential_host, electrical_potential);
+
194 ddc::PdiEvent("iteration")
+
195 .with("iter", iter + 1)
+
196 .and_with("time", iter * dt)
+
197 .and_with("density", allfdistribu)
+
198 .and_with("electrical_potential", electrical_potential_host);
+
199 }
+
200 end_time = std::chrono::system_clock::now();
201
-
202 display_time_difference("Iterations time: ", start_time, end_time);
-
203
+
202
+
203 display_time_difference("Iterations time: ", start_time, end_time);
204
-
205 return allfdistribu;
-
206 }
+
205
+
206 return allfdistribu;
+
207 }
-
207};
+
208};
Solve the Poisson-like equation and return the electric field for the coupled Vlasov equation.
Definition advection_field_rp.hpp:92
Define an advection operator on 2D index range.
Definition bsl_advection_rp.hpp:59
Predictor-corrector for the Vlasov-Poisson equations.
Definition bsl_predcorr.hpp:59
-
BslPredCorrRTheta(Mapping const &mapping, BslAdvectionRTheta< FootFinder, Mapping > const &advection_solver, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver)
Instantiate a BslPredCorrRTheta.
Definition bsl_predcorr.hpp:93
+
BslPredCorrRTheta(Mapping const &mapping, BslAdvectionRTheta< FootFinder, Mapping > const &advection_solver, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver)
Instantiate a BslPredCorrRTheta.
Definition bsl_predcorr.hpp:93
host_t< DFieldRTheta > operator()(host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) const
Solves on the equations system.
Definition bsl_predcorr.hpp:111
Base class for the time solvers.
Definition itimesolver.hpp:11
void display_time_difference(std::string const &title, std::chrono::time_point< std::chrono::system_clock > const &start_time, std::chrono::time_point< std::chrono::system_clock > const &end_time) const
Displays the time difference between two given times and a title.
Definition itimesolver.hpp:47
Type of right-hand side (rhs) function of the Poisson equation.
Definition poisson_like_rhs_function.hpp:17
-
static int constexpr continuity
The continuity enforced by the bsplines at the singular point.
Definition polar_bsplines.hpp:61
+
static int constexpr continuity
The continuity enforced by the bsplines at the singular point.
Definition polar_bsplines.hpp:62
Define an evaluator on polar B-splines.
Definition polar_spline_evaluator.hpp:13
-
Define a polar PDE solver for a Poisson-like equation.
Definition polarpoissonlikesolver.hpp:50
+
Define a polar PDE solver for a Poisson-like equation.
Definition polarpoissonlikesolver.hpp:51
A class which provides an implementation of a second-order Runge-Kutta method.
Definition rk2.hpp:37
void update(ExecSpace const &exec_space, ValField y, double dt, std::function< void(DerivField, ValConstField)> dy_calculator, std::function< void(ValField, DerivConstField, double)> y_update) const final
Carry out one step of the Runge-Kutta scheme.
Definition rk2.hpp:77
A class which holds multiple (scalar) fields in order to represent a vector field.
Definition vector_field.hpp:64
diff --git a/bsl__predcorr__second__order__explicit_8hpp_source.html b/bsl__predcorr__second__order__explicit_8hpp_source.html index 41cfe7e90..f580f0b9f 100644 --- a/bsl__predcorr__second__order__explicit_8hpp_source.html +++ b/bsl__predcorr__second__order__explicit_8hpp_source.html @@ -156,7 +156,7 @@
85 GridR,
86 GridTheta,
87 PolarBSplinesRTheta,
-
88 SplineRThetaEvaluatorNullBound_host> const& m_poisson_solver;
+
88 SplineRThetaEvaluatorNullBound> const& m_poisson_solver;
89
90 SplineRThetaBuilder_host const& m_builder;
91 SplineRThetaEvaluatorConstBound_host const& m_evaluator;
@@ -165,7 +165,7 @@
94
95public:
- +
121 AdvectionDomain const& advection_domain,
122 Mapping const& mapping,
@@ -176,7 +176,7 @@
128 GridR,
129 GridTheta,
-
131 SplineRThetaEvaluatorNullBound_host> const& poisson_solver,
+
131 SplineRThetaEvaluatorNullBound> const& poisson_solver,
132 SplineRThetaEvaluatorConstBound_host const& advection_evaluator)
133 : m_mapping(mapping)
134 , m_advection_solver(advection_solver)
@@ -212,155 +212,156 @@
162 IdxRangeBSTheta polar_idx_range(ddc::discrete_space<BSplinesTheta>().full_domain());
163
164 // --- Electrostatic potential (phi). -------------------------------------------------------------
-
165 host_t<DFieldMemRTheta> electrical_potential(grid);
-
166
-
167 host_t<SplinePolar> electrostatic_potential_coef(
-
168 PolarBSplinesRTheta::singular_idx_range<PolarBSplinesRTheta>(),
-
169 IdxRangeBSRTheta(radial_bsplines, polar_idx_range));
-
170
-
171 ddc::NullExtrapolationRule extrapolation_rule;
- -
173 polar_spline_evaluator(extrapolation_rule);
-
174
-
175 // --- For the computation of advection field from the electrostatic potential (phi): -------------
-
176 host_t<DVectorFieldMemRTheta<X, Y>> electric_field_alloc(grid);
-
177 host_t<DVectorFieldMemRTheta<X, Y>> electric_field_predicted_alloc(grid);
-
178 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_alloc(grid);
-
179 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_predicted_alloc(grid);
-
180
-
181 host_t<DVectorFieldRTheta<X, Y>> electric_field(electric_field_alloc);
-
182 host_t<DVectorFieldRTheta<X, Y>> electric_field_predicted(electric_field_predicted_alloc);
-
183 host_t<DVectorFieldRTheta<X, Y>> advection_field(advection_field_alloc);
-
184 host_t<DVectorFieldRTheta<X, Y>> advection_field_predicted(advection_field_predicted_alloc);
-
185
-
186 AdvectionFieldFinder advection_field_computer(m_mapping);
-
187
+
165 DFieldMemRTheta electrical_potential(grid);
+
166 host_t<DFieldMemRTheta> electrical_potential_host(grid);
+
167
+
168 host_t<SplinePolar> electrostatic_potential_coef(
+
169 PolarBSplinesRTheta::singular_idx_range<PolarBSplinesRTheta>(),
+
170 IdxRangeBSRTheta(radial_bsplines, polar_idx_range));
+
171
+
172 ddc::NullExtrapolationRule extrapolation_rule;
+ +
174 polar_spline_evaluator(extrapolation_rule);
+
175
+
176 // --- For the computation of advection field from the electrostatic potential (phi): -------------
+
177 host_t<DVectorFieldMemRTheta<X, Y>> electric_field_alloc(grid);
+
178 host_t<DVectorFieldMemRTheta<X, Y>> electric_field_predicted_alloc(grid);
+
179 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_alloc(grid);
+
180 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_predicted_alloc(grid);
+
181
+
182 host_t<DVectorFieldRTheta<X, Y>> electric_field(electric_field_alloc);
+
183 host_t<DVectorFieldRTheta<X, Y>> electric_field_predicted(electric_field_predicted_alloc);
+
184 host_t<DVectorFieldRTheta<X, Y>> advection_field(advection_field_alloc);
+
185 host_t<DVectorFieldRTheta<X, Y>> advection_field_predicted(advection_field_predicted_alloc);
+
186
+
187 AdvectionFieldFinder advection_field_computer(m_mapping);
188
189
-
190 // --- Parameter for linearisation of advection field: --------------------------------------------
-
191 start_time = std::chrono::system_clock::now();
-
192 for (int iter(0); iter < steps; ++iter) {
-
193 double const time = iter * dt;
-
194 // STEP 1: From rho^n, we compute phi^n: Poisson equation
-
195 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
-
196 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
- -
198 charge_density_coord_1(get_const_field(allfdistribu_coef), m_evaluator);
-
199 m_poisson_solver(charge_density_coord_1, electrostatic_potential_coef);
-
200
-
201 polar_spline_evaluator(
-
202 get_field(electrical_potential),
-
203 get_const_field(coords),
-
204 electrostatic_potential_coef);
-
205
-
206 ddc::PdiEvent("iteration")
-
207 .with("iter", iter)
-
208 .and_with("time", time)
-
209 .and_with("density", allfdistribu)
-
210 .and_with("electrical_potential", electrical_potential);
-
211
-
212 // STEP 2: From phi^n, we compute A^n:
-
213 advection_field_computer(electrostatic_potential_coef, advection_field);
-
214
+
190
+
191 // --- Parameter for linearisation of advection field: --------------------------------------------
+
192 start_time = std::chrono::system_clock::now();
+
193 for (int iter(0); iter < steps; ++iter) {
+
194 double const time = iter * dt;
+
195 // STEP 1: From rho^n, we compute phi^n: Poisson equation
+
196 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
+
197 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
+ +
199 charge_density_coord_1(get_const_field(allfdistribu_coef), m_evaluator);
+
200 m_poisson_solver(charge_density_coord_1, electrostatic_potential_coef);
+
201
+
202 polar_spline_evaluator(
+
203 get_field(electrical_potential_host),
+
204 get_const_field(coords),
+
205 electrostatic_potential_coef);
+
206
+
207 ddc::PdiEvent("iteration")
+
208 .with("iter", iter)
+
209 .and_with("time", time)
+
210 .and_with("density", allfdistribu)
+
211 .and_with("electrical_potential", electrical_potential_host);
+
212
+
213 // STEP 2: From phi^n, we compute A^n:
+
214 advection_field_computer(electrostatic_potential_coef, advection_field);
215
-
216 // STEP 3: From rho^n and A^n, we compute rho^P: Vlasov equation
-
217 // --- Copy rho^n because it will be modified:
-
218 host_t<DFieldMemRTheta> allfdistribu_predicted(grid);
-
219 ddc::parallel_deepcopy(get_field(allfdistribu_predicted), allfdistribu);
-
220 m_advection_solver(get_field(allfdistribu_predicted), get_field(advection_field), dt);
-
221
-
222 // --- advect also the feet because it is needed for the next step
-
223 host_t<FieldMemRTheta<CoordRTheta>> feet_coords(grid);
-
224 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
225 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
-
226 });
-
227 m_find_feet(get_field(feet_coords), get_field(advection_field), dt);
-
228
+
216
+
217 // STEP 3: From rho^n and A^n, we compute rho^P: Vlasov equation
+
218 // --- Copy rho^n because it will be modified:
+
219 host_t<DFieldMemRTheta> allfdistribu_predicted(grid);
+
220 ddc::parallel_deepcopy(get_field(allfdistribu_predicted), allfdistribu);
+
221 m_advection_solver(get_field(allfdistribu_predicted), get_field(advection_field), dt);
+
222
+
223 // --- advect also the feet because it is needed for the next step
+
224 host_t<FieldMemRTheta<CoordRTheta>> feet_coords(grid);
+
225 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
226 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
+
227 });
+
228 m_find_feet(get_field(feet_coords), get_field(advection_field), dt);
229
-
230 // STEP 4: From rho^P, we compute phi^P: Poisson equation
-
231 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu_predicted));
- -
233 charge_density_coord_4(get_const_field(allfdistribu_coef), m_evaluator);
-
234 m_poisson_solver(charge_density_coord_4, electrostatic_potential_coef);
-
235
-
236 // STEP 5: From phi^P, we compute A^P:
-
237 advection_field_computer(electrostatic_potential_coef, advection_field_predicted);
-
238
+
230
+
231 // STEP 4: From rho^P, we compute phi^P: Poisson equation
+
232 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu_predicted));
+ +
234 charge_density_coord_4(get_const_field(allfdistribu_coef), m_evaluator);
+
235 m_poisson_solver(charge_density_coord_4, electrostatic_potential_coef);
+
236
+
237 // STEP 5: From phi^P, we compute A^P:
+
238 advection_field_computer(electrostatic_potential_coef, advection_field_predicted);
239
-
240 // --- we evaluate the advection field A^n at the characteristic feet X^P
-
241 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_evaluated(grid);
-
242 host_t<VectorSplineCoeffsMem2D<X, Y>> advection_field_coefs(
-
243 get_spline_idx_range(m_builder));
-
244
-
245 m_builder(
-
246 ddcHelper::get<X>(advection_field_coefs),
-
247 ddcHelper::get<X>(get_const_field(advection_field)));
-
248 m_builder(
-
249 ddcHelper::get<Y>(advection_field_coefs),
-
250 ddcHelper::get<Y>(get_const_field(advection_field)));
-
251
-
252 m_evaluator(
-
253 get_field(ddcHelper::get<X>(advection_field_evaluated)),
-
254 get_const_field(feet_coords),
-
255 ddcHelper::get<X>(get_const_field(advection_field_coefs)));
-
256 m_evaluator(
-
257 get_field(ddcHelper::get<Y>(advection_field_evaluated)),
-
258 get_const_field(feet_coords),
-
259 ddcHelper::get<Y>(get_const_field(advection_field_coefs)));
-
260
+
240
+
241 // --- we evaluate the advection field A^n at the characteristic feet X^P
+
242 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_evaluated(grid);
+
243 host_t<VectorSplineCoeffsMem2D<X, Y>> advection_field_coefs(
+
244 get_spline_idx_range(m_builder));
+
245
+
246 m_builder(
+
247 ddcHelper::get<X>(advection_field_coefs),
+
248 ddcHelper::get<X>(get_const_field(advection_field)));
+
249 m_builder(
+
250 ddcHelper::get<Y>(advection_field_coefs),
+
251 ddcHelper::get<Y>(get_const_field(advection_field)));
+
252
+
253 m_evaluator(
+
254 get_field(ddcHelper::get<X>(advection_field_evaluated)),
+
255 get_const_field(feet_coords),
+
256 ddcHelper::get<X>(get_const_field(advection_field_coefs)));
+
257 m_evaluator(
+
258 get_field(ddcHelper::get<Y>(advection_field_evaluated)),
+
259 get_const_field(feet_coords),
+
260 ddcHelper::get<Y>(get_const_field(advection_field_coefs)));
261
-
262 // STEP 6: From rho^n and (A^n(X^P) + A^P(X^n))/2, we compute rho^{n+1}: Vlasov equation
-
263 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
264 ddcHelper::get<X>(advection_field)(irp)
-
265 = (ddcHelper::get<X>(advection_field_evaluated)(irp)
-
266 + ddcHelper::get<X>(advection_field_predicted)(irp))
-
267 / 2.;
-
268 ddcHelper::get<Y>(advection_field)(irp)
-
269 = (ddcHelper::get<Y>(advection_field_evaluated)(irp)
-
270 + ddcHelper::get<Y>(advection_field_predicted)(irp))
-
271 / 2.;
-
272 });
-
273
+
262
+
263 // STEP 6: From rho^n and (A^n(X^P) + A^P(X^n))/2, we compute rho^{n+1}: Vlasov equation
+
264 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
265 ddcHelper::get<X>(advection_field)(irp)
+
266 = (ddcHelper::get<X>(advection_field_evaluated)(irp)
+
267 + ddcHelper::get<X>(advection_field_predicted)(irp))
+
268 / 2.;
+
269 ddcHelper::get<Y>(advection_field)(irp)
+
270 = (ddcHelper::get<Y>(advection_field_evaluated)(irp)
+
271 + ddcHelper::get<Y>(advection_field_predicted)(irp))
+
272 / 2.;
+
273 });
274
-
275 m_advection_solver(allfdistribu, get_field(advection_field), dt);
-
276 }
-
277
-
278 // STEP 1: From rho^n, we compute phi^n: Poisson equation
-
279 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
-
280 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
- -
282 charge_density_coord(get_const_field(allfdistribu_coef), m_evaluator);
-
283 m_poisson_solver(charge_density_coord, get_field(electrical_potential));
-
284
-
285 ddc::PdiEvent("last_iteration")
-
286 .with("iter", steps)
-
287 .and_with("time", steps * dt)
-
288 .and_with("density", allfdistribu)
-
289 .and_with("electrical_potential", electrical_potential);
-
290
+
275
+
276 m_advection_solver(allfdistribu, get_field(advection_field), dt);
+
277 }
+
278
+
279 // STEP 1: From rho^n, we compute phi^n: Poisson equation
+
280 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
+
281 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
+ +
283 charge_density_coord(get_const_field(allfdistribu_coef), m_evaluator);
+
284 m_poisson_solver(charge_density_coord, get_field(electrical_potential));
+
285 ddc::parallel_deepcopy(electrical_potential_host, electrical_potential);
+
286 ddc::PdiEvent("last_iteration")
+
287 .with("iter", steps)
+
288 .and_with("time", steps * dt)
+
289 .and_with("density", allfdistribu)
+
290 .and_with("electrical_potential", electrical_potential_host);
291
-
292 end_time = std::chrono::system_clock::now();
-
293 display_time_difference("Iterations time: ", start_time, end_time);
-
294
+
292
+
293 end_time = std::chrono::system_clock::now();
+
294 display_time_difference("Iterations time: ", start_time, end_time);
295
-
296 return allfdistribu;
-
297 }
+
296
+
297 return allfdistribu;
+
298 }
-
298};
+
299};
Define a domain for the advection.
Definition advection_domain.hpp:40
Solve the Poisson-like equation and return the electric field for the coupled Vlasov equation.
Definition advection_field_rp.hpp:92
Define an advection operator on 2D index range.
Definition bsl_advection_rp.hpp:59
A second order explicit predictor-corrector for the Vlasov-Poisson equations.
Definition bsl_predcorr_second_order_explicit.hpp:67
-
BslExplicitPredCorrRTheta(AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)
Instantiate a BslExplicitPredCorrRTheta.
Definition bsl_predcorr_second_order_explicit.hpp:120
host_t< DFieldRTheta > operator()(host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) const final
Solves on the equations system.
Definition bsl_predcorr_second_order_explicit.hpp:146
+
BslExplicitPredCorrRTheta(AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)
Instantiate a BslExplicitPredCorrRTheta.
Definition bsl_predcorr_second_order_explicit.hpp:120
A class which provides an implementation of an explicit Euler method.
Definition euler.hpp:33
Base class for the time solvers.
Definition itimesolver.hpp:11
void display_time_difference(std::string const &title, std::chrono::time_point< std::chrono::system_clock > const &start_time, std::chrono::time_point< std::chrono::system_clock > const &end_time) const
Displays the time difference between two given times and a title.
Definition itimesolver.hpp:47
Type of right-hand side (rhs) function of the Poisson equation.
Definition poisson_like_rhs_function.hpp:17
-
static int constexpr continuity
The continuity enforced by the bsplines at the singular point.
Definition polar_bsplines.hpp:61
+
static int constexpr continuity
The continuity enforced by the bsplines at the singular point.
Definition polar_bsplines.hpp:62
Define an evaluator on polar B-splines.
Definition polar_spline_evaluator.hpp:13
-
Define a polar PDE solver for a Poisson-like equation.
Definition polarpoissonlikesolver.hpp:50
+
Define a polar PDE solver for a Poisson-like equation.
Definition polarpoissonlikesolver.hpp:51
Define a base class for all the time integration methods used for the advection.
Definition spline_foot_finder.hpp:26
Definition geometry.hpp:116
Definition geometry.hpp:119
diff --git a/bsl__predcorr__second__order__implicit_8hpp_source.html b/bsl__predcorr__second__order__implicit_8hpp_source.html index fe04a150a..977a65784 100644 --- a/bsl__predcorr__second__order__implicit_8hpp_source.html +++ b/bsl__predcorr__second__order__implicit_8hpp_source.html @@ -154,7 +154,7 @@
84 GridR,
85 GridTheta,
86 PolarBSplinesRTheta,
-
87 SplineRThetaEvaluatorNullBound_host> const& m_poisson_solver;
+
87 SplineRThetaEvaluatorNullBound> const& m_poisson_solver;
88
89 SplineRThetaBuilder_host const& m_builder;
90 SplineRThetaEvaluatorConstBound_host const& m_evaluator;
@@ -163,7 +163,7 @@
93
94public:
- +
120 AdvectionDomain const& advection_domain,
121 Mapping const& mapping,
@@ -174,7 +174,7 @@
127 GridR,
128 GridTheta,
-
130 SplineRThetaEvaluatorNullBound_host> const& poisson_solver,
+
130 SplineRThetaEvaluatorNullBound> const& poisson_solver,
131 SplineRThetaEvaluatorConstBound_host const& advection_evaluator)
132 : m_mapping(mapping)
133 , m_advection_solver(advection_solver)
@@ -210,288 +210,290 @@
161 IdxRangeBSTheta polar_idx_range(ddc::discrete_space<BSplinesTheta>().full_domain());
162
163 // --- Electrostatic potential (phi). -------------------------------------------------------------
-
164 host_t<DFieldMemRTheta> electrical_potential(grid);
-
165
-
166 host_t<SplinePolar> electrostatic_potential_coef(
-
167 PolarBSplinesRTheta::singular_idx_range<PolarBSplinesRTheta>(),
-
168 IdxRangeBSRTheta(radial_bsplines, polar_idx_range));
-
169
-
170 ddc::NullExtrapolationRule extrapolation_rule;
- -
172 polar_spline_evaluator(extrapolation_rule);
-
173
-
174 // --- For the computation of advection field from the electrostatic potential (phi): -------------
-
175 host_t<DVectorFieldMemRTheta<X, Y>> electric_field_alloc(grid);
-
176 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_alloc(grid);
-
177 host_t<DVectorFieldRTheta<X, Y>> electric_field(electric_field_alloc);
-
178 host_t<DVectorFieldRTheta<X, Y>> advection_field(advection_field_alloc);
-
179
-
180 AdvectionFieldFinder advection_field_computer(m_mapping);
-
181
-
182 start_time = std::chrono::system_clock::now();
-
183 for (int iter(0); iter < steps; ++iter) {
-
184 // STEP 1: From rho^n, we compute phi^n: Poisson equation
-
185 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
-
186 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
- -
188 charge_density_coord_1(get_const_field(allfdistribu_coef), m_evaluator);
-
189 m_poisson_solver(charge_density_coord_1, electrostatic_potential_coef);
-
190
-
191 polar_spline_evaluator(
-
192 get_field(electrical_potential),
-
193 get_const_field(coords),
-
194 electrostatic_potential_coef);
-
195
-
196 ddc::PdiEvent("iteration")
-
197 .with("iter", iter)
-
198 .and_with("time", iter * dt)
-
199 .and_with("density", allfdistribu)
-
200 .and_with("electrical_potential", electrical_potential);
-
201
+
164 DFieldMemRTheta electrical_potential(grid);
+
165 host_t<DFieldMemRTheta> electrical_potential_host(grid);
+
166
+
167 host_t<SplinePolar> electrostatic_potential_coef(
+
168 PolarBSplinesRTheta::singular_idx_range<PolarBSplinesRTheta>(),
+
169 IdxRangeBSRTheta(radial_bsplines, polar_idx_range));
+
170
+
171 ddc::NullExtrapolationRule extrapolation_rule;
+ +
173 polar_spline_evaluator(extrapolation_rule);
+
174
+
175 // --- For the computation of advection field from the electrostatic potential (phi): -------------
+
176 host_t<DVectorFieldMemRTheta<X, Y>> electric_field_alloc(grid);
+
177 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_alloc(grid);
+
178 host_t<DVectorFieldRTheta<X, Y>> electric_field(electric_field_alloc);
+
179 host_t<DVectorFieldRTheta<X, Y>> advection_field(advection_field_alloc);
+
180
+
181 AdvectionFieldFinder advection_field_computer(m_mapping);
+
182
+
183 start_time = std::chrono::system_clock::now();
+
184 for (int iter(0); iter < steps; ++iter) {
+
185 // STEP 1: From rho^n, we compute phi^n: Poisson equation
+
186 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
+
187 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
+ +
189 charge_density_coord_1(get_const_field(allfdistribu_coef), m_evaluator);
+
190 m_poisson_solver(charge_density_coord_1, electrostatic_potential_coef);
+
191
+
192 polar_spline_evaluator(
+
193 get_field(electrical_potential_host),
+
194 get_const_field(coords),
+
195 electrostatic_potential_coef);
+
196
+
197 ddc::PdiEvent("iteration")
+
198 .with("iter", iter)
+
199 .and_with("time", iter * dt)
+
200 .and_with("density", allfdistribu)
+
201 .and_with("electrical_potential", electrical_potential_host);
202
-
203 // STEP 2: From phi^n, we compute A^n:
-
204 advection_field_computer(electrostatic_potential_coef, advection_field);
-
205
+
203
+
204 // STEP 2: From phi^n, we compute A^n:
+
205 advection_field_computer(electrostatic_potential_coef, advection_field);
206
-
207 // STEP 3: From rho^n and A^n, we compute rho^P: Vlasov equation
-
208 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_k(grid);
-
209 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_k_tot(grid);
-
210
-
211 host_t<VectorSplineCoeffsMem2D<X, Y>> advection_field_coefs_k(
-
212 get_spline_idx_range(m_builder));
-
213 m_builder(
-
214 ddcHelper::get<X>(advection_field_coefs_k),
-
215 ddcHelper::get<X>(get_const_field(advection_field)));
-
216 m_builder(
-
217 ddcHelper::get<Y>(advection_field_coefs_k),
-
218 ddcHelper::get<Y>(get_const_field(advection_field)));
-
219
-
220 host_t<FieldMemRTheta<CoordRTheta>> feet_coords(grid);
-
221 host_t<FieldMemRTheta<CoordRTheta>> feet_coords_tmp(grid);
-
222
+
207
+
208 // STEP 3: From rho^n and A^n, we compute rho^P: Vlasov equation
+
209 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_k(grid);
+
210 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_k_tot(grid);
+
211
+
212 host_t<VectorSplineCoeffsMem2D<X, Y>> advection_field_coefs_k(
+
213 get_spline_idx_range(m_builder));
+
214 m_builder(
+
215 ddcHelper::get<X>(advection_field_coefs_k),
+
216 ddcHelper::get<X>(get_const_field(advection_field)));
+
217 m_builder(
+
218 ddcHelper::get<Y>(advection_field_coefs_k),
+
219 ddcHelper::get<Y>(get_const_field(advection_field)));
+
220
+
221 host_t<FieldMemRTheta<CoordRTheta>> feet_coords(grid);
+
222 host_t<FieldMemRTheta<CoordRTheta>> feet_coords_tmp(grid);
223
-
224 // initialisation:
-
225 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
226 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
-
227 });
-
228
-
229 const double tau = 1e-6;
-
230 implicit_loop(
-
231 advection_field,
-
232 get_const_field(advection_field_coefs_k),
-
233 get_field(feet_coords),
-
234 dt / 4.,
-
235 tau);
-
236
-
237 // Evaluate A^n at X^P:
-
238 m_evaluator(
-
239 get_field(ddcHelper::get<X>(advection_field_k)),
-
240 get_const_field(feet_coords),
-
241 ddcHelper::get<X>(get_const_field(advection_field_coefs_k)));
-
242 m_evaluator(
-
243 get_field(ddcHelper::get<Y>(advection_field_k)),
-
244 get_const_field(feet_coords),
-
245 ddcHelper::get<Y>(get_const_field(advection_field_coefs_k)));
-
246
-
247 // Compute the new advection field (E^n(X^n) + E^n(X^P)) /2:
-
248 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
249 ddcHelper::get<X>(advection_field_k_tot)(irp)
-
250 = (ddcHelper::get<X>(advection_field)(irp)
-
251 + ddcHelper::get<X>(advection_field_k)(irp))
-
252 / 2.;
-
253 ddcHelper::get<Y>(advection_field_k_tot)(irp)
-
254 = (ddcHelper::get<Y>(advection_field)(irp)
-
255 + ddcHelper::get<Y>(advection_field_k)(irp))
-
256 / 2.;
-
257 });
-
258
+
224
+
225 // initialisation:
+
226 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
227 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
+
228 });
+
229
+
230 const double tau = 1e-6;
+
231 implicit_loop(
+
232 advection_field,
+
233 get_const_field(advection_field_coefs_k),
+
234 get_field(feet_coords),
+
235 dt / 4.,
+
236 tau);
+
237
+
238 // Evaluate A^n at X^P:
+
239 m_evaluator(
+
240 get_field(ddcHelper::get<X>(advection_field_k)),
+
241 get_const_field(feet_coords),
+
242 ddcHelper::get<X>(get_const_field(advection_field_coefs_k)));
+
243 m_evaluator(
+
244 get_field(ddcHelper::get<Y>(advection_field_k)),
+
245 get_const_field(feet_coords),
+
246 ddcHelper::get<Y>(get_const_field(advection_field_coefs_k)));
+
247
+
248 // Compute the new advection field (E^n(X^n) + E^n(X^P)) /2:
+
249 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
250 ddcHelper::get<X>(advection_field_k_tot)(irp)
+
251 = (ddcHelper::get<X>(advection_field)(irp)
+
252 + ddcHelper::get<X>(advection_field_k)(irp))
+
253 / 2.;
+
254 ddcHelper::get<Y>(advection_field_k_tot)(irp)
+
255 = (ddcHelper::get<Y>(advection_field)(irp)
+
256 + ddcHelper::get<Y>(advection_field_k)(irp))
+
257 / 2.;
+
258 });
259
-
260 // X^P = X^n - dt/2 * ( E^n(X^n) + E^n(X^P) )/2:
-
261 // --- Copy phi^n because it will be modified:
-
262 host_t<DFieldMemRTheta> allfdistribu_predicted(grid);
-
263 ddc::parallel_deepcopy(allfdistribu_predicted, allfdistribu);
-
264 m_advection_solver(
-
265 get_field(allfdistribu_predicted),
-
266 get_const_field(advection_field_k_tot),
-
267 dt / 2.);
-
268
-
269 // --- advect also the feet because it is needed for the next step
-
270 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
271 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
-
272 });
-
273 m_foot_finder(get_field(feet_coords), get_const_field(advection_field_k_tot), dt / 2.);
-
274
+
260
+
261 // X^P = X^n - dt/2 * ( E^n(X^n) + E^n(X^P) )/2:
+
262 // --- Copy phi^n because it will be modified:
+
263 host_t<DFieldMemRTheta> allfdistribu_predicted(grid);
+
264 ddc::parallel_deepcopy(allfdistribu_predicted, allfdistribu);
+
265 m_advection_solver(
+
266 get_field(allfdistribu_predicted),
+
267 get_const_field(advection_field_k_tot),
+
268 dt / 2.);
+
269
+
270 // --- advect also the feet because it is needed for the next step
+
271 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
272 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
+
273 });
+
274 m_foot_finder(get_field(feet_coords), get_const_field(advection_field_k_tot), dt / 2.);
275
-
276 // STEP 4: From rho^P, we compute phi^P: Poisson equation
-
277 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
- -
279 charge_density_coord_4(get_const_field(allfdistribu_coef), m_evaluator);
-
280 m_poisson_solver(charge_density_coord_4, electrostatic_potential_coef);
-
281
-
282 // STEP 5: From phi^P, we compute A^P:
-
283 advection_field_computer(electrostatic_potential_coef, advection_field);
-
284
+
276
+
277 // STEP 4: From rho^P, we compute phi^P: Poisson equation
+
278 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
+ +
280 charge_density_coord_4(get_const_field(allfdistribu_coef), m_evaluator);
+
281 m_poisson_solver(charge_density_coord_4, electrostatic_potential_coef);
+
282
+
283 // STEP 5: From phi^P, we compute A^P:
+
284 advection_field_computer(electrostatic_potential_coef, advection_field);
285
-
286 // STEP 6: From rho^n and A^P, we compute rho^{n+1}: Vlasov equation
-
287 m_builder(
-
288 ddcHelper::get<X>(advection_field_coefs_k),
-
289 ddcHelper::get<X>(get_const_field(advection_field)));
-
290 m_builder(
-
291 ddcHelper::get<Y>(advection_field_coefs_k),
-
292 ddcHelper::get<Y>(get_const_field(advection_field)));
-
293
+
286
+
287 // STEP 6: From rho^n and A^P, we compute rho^{n+1}: Vlasov equation
+
288 m_builder(
+
289 ddcHelper::get<X>(advection_field_coefs_k),
+
290 ddcHelper::get<X>(get_const_field(advection_field)));
+
291 m_builder(
+
292 ddcHelper::get<Y>(advection_field_coefs_k),
+
293 ddcHelper::get<Y>(get_const_field(advection_field)));
294
-
295 // initialisation:
-
296 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
297 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
-
298 });
-
299
-
300 implicit_loop(
-
301 advection_field,
-
302 get_const_field(advection_field_coefs_k),
-
303 get_field(feet_coords),
-
304 dt / 2.,
-
305 tau);
-
306
-
307 // Evaluate A^P at X^P:
-
308 m_evaluator(
-
309 get_field(ddcHelper::get<X>(advection_field_k)),
-
310 get_const_field(feet_coords),
-
311 ddcHelper::get<X>(get_const_field(advection_field_coefs_k)));
-
312 m_evaluator(
-
313 get_field(ddcHelper::get<Y>(advection_field_k)),
-
314 get_const_field(feet_coords),
-
315 ddcHelper::get<Y>(get_const_field(advection_field_coefs_k)));
-
316
-
317 // Computed advection field (A^P(X^n) + A^P(X^P)) /2:
-
318 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
319 ddcHelper::get<X>(advection_field_k_tot)(irp)
-
320 = (ddcHelper::get<X>(advection_field)(irp)
-
321 + ddcHelper::get<X>(advection_field_k)(irp))
-
322 / 2.;
-
323 ddcHelper::get<Y>(advection_field_k_tot)(irp)
-
324 = (ddcHelper::get<Y>(advection_field)(irp)
-
325 + ddcHelper::get<Y>(advection_field_k)(irp))
-
326 / 2.;
-
327 });
-
328 // X^k = X^n - dt * ( A^P(X^n) + A^P(X^P) )/2
-
329 m_advection_solver(allfdistribu, get_const_field(advection_field_k_tot), dt);
-
330 }
-
331
-
332 // STEP 1: From rho^n, we compute phi^n: Poisson equation
-
333 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
-
334 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
- -
336 charge_density_coord(get_const_field(allfdistribu_coef), m_evaluator);
-
337 m_poisson_solver(charge_density_coord, get_field(electrical_potential));
-
338
-
339 ddc::PdiEvent("last_iteration")
-
340 .with("iter", steps)
-
341 .and_with("time", steps * dt)
-
342 .and_with("density", allfdistribu)
-
343 .and_with("electrical_potential", electrical_potential);
-
344
-
345 end_time = std::chrono::system_clock::now();
-
346 display_time_difference("Iterations time: ", start_time, end_time);
-
347
-
348
+
295
+
296 // initialisation:
+
297 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
298 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
+
299 });
+
300
+
301 implicit_loop(
+
302 advection_field,
+
303 get_const_field(advection_field_coefs_k),
+
304 get_field(feet_coords),
+
305 dt / 2.,
+
306 tau);
+
307
+
308 // Evaluate A^P at X^P:
+
309 m_evaluator(
+
310 get_field(ddcHelper::get<X>(advection_field_k)),
+
311 get_const_field(feet_coords),
+
312 ddcHelper::get<X>(get_const_field(advection_field_coefs_k)));
+
313 m_evaluator(
+
314 get_field(ddcHelper::get<Y>(advection_field_k)),
+
315 get_const_field(feet_coords),
+
316 ddcHelper::get<Y>(get_const_field(advection_field_coefs_k)));
+
317
+
318 // Computed advection field (A^P(X^n) + A^P(X^P)) /2:
+
319 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
320 ddcHelper::get<X>(advection_field_k_tot)(irp)
+
321 = (ddcHelper::get<X>(advection_field)(irp)
+
322 + ddcHelper::get<X>(advection_field_k)(irp))
+
323 / 2.;
+
324 ddcHelper::get<Y>(advection_field_k_tot)(irp)
+
325 = (ddcHelper::get<Y>(advection_field)(irp)
+
326 + ddcHelper::get<Y>(advection_field_k)(irp))
+
327 / 2.;
+
328 });
+
329 // X^k = X^n - dt * ( A^P(X^n) + A^P(X^P) )/2
+
330 m_advection_solver(allfdistribu, get_const_field(advection_field_k_tot), dt);
+
331 }
+
332
+
333 // STEP 1: From rho^n, we compute phi^n: Poisson equation
+
334 host_t<Spline2DMem> allfdistribu_coef(get_spline_idx_range(m_builder));
+
335 m_builder(get_field(allfdistribu_coef), get_const_field(allfdistribu));
+ +
337 charge_density_coord(get_const_field(allfdistribu_coef), m_evaluator);
+
338 m_poisson_solver(charge_density_coord, get_field(electrical_potential));
+
339 ddc::parallel_deepcopy(electrical_potential_host, electrical_potential);
+
340
+
341 ddc::PdiEvent("last_iteration")
+
342 .with("iter", steps)
+
343 .and_with("time", steps * dt)
+
344 .and_with("density", allfdistribu)
+
345 .and_with("electrical_potential", electrical_potential_host);
+
346
+
347 end_time = std::chrono::system_clock::now();
+
348 display_time_difference("Iterations time: ", start_time, end_time);
349
-
350 return allfdistribu;
-
351 }
+
350
+
351
+
352 return allfdistribu;
+
353 }
-
352
-
353
354
-
355private:
-
356 double compute_square_polar_distance(CoordRTheta const& coord1, CoordRTheta const& coord2) const
-
357 {
-
358 CoordXY coord_xy1(m_mapping(coord1));
-
359 CoordXY coord_xy2(m_mapping(coord2));
-
360
-
361 const double x1 = ddc::select<X>(coord_xy1);
-
362 const double y1 = ddc::select<Y>(coord_xy1);
-
363 const double x2 = ddc::select<X>(coord_xy2);
-
364 const double y2 = ddc::select<Y>(coord_xy2);
-
365
-
366 return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
-
367 }
-
368
-
369
-
370 void implicit_loop(
-
371 host_t<DVectorFieldRTheta<X, Y>> advection_field,
-
372 host_t<ConstVectorSplineCoeffs2D<X, Y>> advection_field_coefs_k,
-
373 host_t<FieldRTheta<CoordRTheta>> feet_coords,
-
374 double const dt,
-
375 double const tau) const
-
376 {
-
377 IdxRangeRTheta const grid = get_idx_range(advection_field);
-
378 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_k(grid);
-
379 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_k_tot(grid);
-
380 host_t<FieldMemRTheta<CoordRTheta>> feet_coords_tmp(grid);
-
381
-
382 double square_difference_feet = 0.;
-
383 int count = 0;
-
384 const int max_count = 50;
-
385 do {
-
386 count++;
-
387
-
388 // Evaluate A at X^{k-1}:
-
389 m_evaluator(
-
390 get_field(ddcHelper::get<X>(advection_field_k)),
-
391 get_const_field(feet_coords),
-
392 ddcHelper::get<X>(advection_field_coefs_k));
-
393 m_evaluator(
-
394 get_field(ddcHelper::get<Y>(advection_field_k)),
-
395 get_const_field(feet_coords),
-
396 ddcHelper::get<Y>(advection_field_coefs_k));
-
397
-
398 // Compute the new advection field A(X^n) + A(X^{k-1}):
-
399 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
400 ddcHelper::get<X>(advection_field_k_tot)(irp)
-
401 = ddcHelper::get<X>(advection_field)(irp)
-
402 + ddcHelper::get<X>(advection_field_k)(irp);
-
403 ddcHelper::get<Y>(advection_field_k_tot)(irp)
-
404 = ddcHelper::get<Y>(advection_field)(irp)
-
405 + ddcHelper::get<Y>(advection_field_k)(irp);
-
406 });
-
407
-
408 // X^{k-1} = X^k:
-
409 ddc::parallel_deepcopy(feet_coords_tmp, feet_coords);
-
410
-
411 // X^k = X^n - dt* X^k:
-
412 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
413 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
-
414 });
-
415 m_foot_finder(feet_coords, get_const_field(advection_field_k_tot), dt);
-
416
-
417
-
418 // Convergence test:
-
419 square_difference_feet = 0.;
-
420 ddc::for_each(grid, [&](IdxRTheta const irp) {
-
421 double sqr_diff_feet
-
422 = compute_square_polar_distance(feet_coords(irp), feet_coords_tmp(irp));
-
423 square_difference_feet = square_difference_feet > sqr_diff_feet
-
424 ? square_difference_feet
-
425 : sqr_diff_feet;
-
426 });
-
427
-
428 } while ((square_difference_feet > tau * tau) and (count < max_count));
-
429 }
-
430};
+
355
+
356
+
357private:
+
358 double compute_square_polar_distance(CoordRTheta const& coord1, CoordRTheta const& coord2) const
+
359 {
+
360 CoordXY coord_xy1(m_mapping(coord1));
+
361 CoordXY coord_xy2(m_mapping(coord2));
+
362
+
363 const double x1 = ddc::select<X>(coord_xy1);
+
364 const double y1 = ddc::select<Y>(coord_xy1);
+
365 const double x2 = ddc::select<X>(coord_xy2);
+
366 const double y2 = ddc::select<Y>(coord_xy2);
+
367
+
368 return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
+
369 }
+
370
+
371
+
372 void implicit_loop(
+
373 host_t<DVectorFieldRTheta<X, Y>> advection_field,
+
374 host_t<ConstVectorSplineCoeffs2D<X, Y>> advection_field_coefs_k,
+
375 host_t<FieldRTheta<CoordRTheta>> feet_coords,
+
376 double const dt,
+
377 double const tau) const
+
378 {
+
379 IdxRangeRTheta const grid = get_idx_range(advection_field);
+
380 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_k(grid);
+
381 host_t<DVectorFieldMemRTheta<X, Y>> advection_field_k_tot(grid);
+
382 host_t<FieldMemRTheta<CoordRTheta>> feet_coords_tmp(grid);
+
383
+
384 double square_difference_feet = 0.;
+
385 int count = 0;
+
386 const int max_count = 50;
+
387 do {
+
388 count++;
+
389
+
390 // Evaluate A at X^{k-1}:
+
391 m_evaluator(
+
392 get_field(ddcHelper::get<X>(advection_field_k)),
+
393 get_const_field(feet_coords),
+
394 ddcHelper::get<X>(advection_field_coefs_k));
+
395 m_evaluator(
+
396 get_field(ddcHelper::get<Y>(advection_field_k)),
+
397 get_const_field(feet_coords),
+
398 ddcHelper::get<Y>(advection_field_coefs_k));
+
399
+
400 // Compute the new advection field A(X^n) + A(X^{k-1}):
+
401 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
402 ddcHelper::get<X>(advection_field_k_tot)(irp)
+
403 = ddcHelper::get<X>(advection_field)(irp)
+
404 + ddcHelper::get<X>(advection_field_k)(irp);
+
405 ddcHelper::get<Y>(advection_field_k_tot)(irp)
+
406 = ddcHelper::get<Y>(advection_field)(irp)
+
407 + ddcHelper::get<Y>(advection_field_k)(irp);
+
408 });
+
409
+
410 // X^{k-1} = X^k:
+
411 ddc::parallel_deepcopy(feet_coords_tmp, feet_coords);
+
412
+
413 // X^k = X^n - dt* X^k:
+
414 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
415 feet_coords(irp) = CoordRTheta(ddc::coordinate(irp));
+
416 });
+
417 m_foot_finder(feet_coords, get_const_field(advection_field_k_tot), dt);
+
418
+
419
+
420 // Convergence test:
+
421 square_difference_feet = 0.;
+
422 ddc::for_each(grid, [&](IdxRTheta const irp) {
+
423 double sqr_diff_feet
+
424 = compute_square_polar_distance(feet_coords(irp), feet_coords_tmp(irp));
+
425 square_difference_feet = square_difference_feet > sqr_diff_feet
+
426 ? square_difference_feet
+
427 : sqr_diff_feet;
+
428 });
+
429
+
430 } while ((square_difference_feet > tau * tau) and (count < max_count));
+
431 }
+
432};
Define a domain for the advection.
Definition advection_domain.hpp:40
Solve the Poisson-like equation and return the electric field for the coupled Vlasov equation.
Definition advection_field_rp.hpp:92
Define an advection operator on 2D index range.
Definition bsl_advection_rp.hpp:59
A second order implicit predictor-corrector for the Vlasov-Poisson equations.
Definition bsl_predcorr_second_order_implicit.hpp:67
+
BslImplicitPredCorrRTheta(AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > const &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)
Instantiate a BslImplicitPredCorrRTheta.
Definition bsl_predcorr_second_order_implicit.hpp:119
host_t< DFieldRTheta > operator()(host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) const final
Solves on the equations system.
Definition bsl_predcorr_second_order_implicit.hpp:145
-
BslImplicitPredCorrRTheta(AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > const &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)
Instantiate a BslImplicitPredCorrRTheta.
Definition bsl_predcorr_second_order_implicit.hpp:119
A class which provides an implementation of an explicit Euler method.
Definition euler.hpp:33
Base class for the time solvers.
Definition itimesolver.hpp:11
void display_time_difference(std::string const &title, std::chrono::time_point< std::chrono::system_clock > const &start_time, std::chrono::time_point< std::chrono::system_clock > const &end_time) const
Displays the time difference between two given times and a title.
Definition itimesolver.hpp:47
Type of right-hand side (rhs) function of the Poisson equation.
Definition poisson_like_rhs_function.hpp:17
-
static int constexpr continuity
The continuity enforced by the bsplines at the singular point.
Definition polar_bsplines.hpp:61
+
static int constexpr continuity
The continuity enforced by the bsplines at the singular point.
Definition polar_bsplines.hpp:62
Define an evaluator on polar B-splines.
Definition polar_spline_evaluator.hpp:13
-
Define a polar PDE solver for a Poisson-like equation.
Definition polarpoissonlikesolver.hpp:50
+
Define a polar PDE solver for a Poisson-like equation.
Definition polarpoissonlikesolver.hpp:51
Define a base class for all the time integration methods used for the advection.
Definition spline_foot_finder.hpp:26
A class which holds multiple (scalar) fields in order to represent a vector field.
Definition vector_field.hpp:64
Definition geometry.hpp:116
diff --git a/cartesian__to__circular_8hpp_source.html b/cartesian__to__circular_8hpp_source.html index 37b856ae7..f7930c620 100644 --- a/cartesian__to__circular_8hpp_source.html +++ b/cartesian__to__circular_8hpp_source.html @@ -248,8 +248,8 @@
A class for describing the circular 2D mapping.
Definition circular_to_cartesian.hpp:43
Define non periodic real R dimension.
Definition geometry.hpp:31
Define periodic real Theta dimension.
Definition geometry.hpp:42
-
Define non periodic real X dimension.
Definition geometry.hpp:277
-
Define non periodic real Y dimension.
Definition geometry.hpp:288
+
Define non periodic real X dimension.
Definition geometry.hpp:318
+
Define non periodic real Y dimension.
Definition geometry.hpp:329
diff --git a/cartesian__to__czarny_8hpp_source.html b/cartesian__to__czarny_8hpp_source.html index 6e1002448..32ff51174 100644 --- a/cartesian__to__czarny_8hpp_source.html +++ b/cartesian__to__czarny_8hpp_source.html @@ -217,8 +217,8 @@
A class for describing the Czarny 2D mapping.
Definition czarny_to_cartesian.hpp:50
Define non periodic real R dimension.
Definition geometry.hpp:31
Define periodic real Theta dimension.
Definition geometry.hpp:42
-
Define non periodic real X dimension.
Definition geometry.hpp:277
-
Define non periodic real Y dimension.
Definition geometry.hpp:288
+
Define non periodic real X dimension.
Definition geometry.hpp:318
+
Define non periodic real Y dimension.
Definition geometry.hpp:329
diff --git a/circular__to__cartesian_8hpp_source.html b/circular__to__cartesian_8hpp_source.html index 3a5a32c7e..c934f8c28 100644 --- a/circular__to__cartesian_8hpp_source.html +++ b/circular__to__cartesian_8hpp_source.html @@ -315,8 +315,8 @@
KOKKOS_FUNCTION CircularToCartesian(CircularToCartesian const &other)
Instantiate a CircularToCartesian from another CircularToCartesian (lvalue).
Definition circular_to_cartesian.hpp:68
Define non periodic real R dimension.
Definition geometry.hpp:31
Define periodic real Theta dimension.
Definition geometry.hpp:42
-
Define non periodic real X dimension.
Definition geometry.hpp:277
-
Define non periodic real Y dimension.
Definition geometry.hpp:288
+
Define non periodic real X dimension.
Definition geometry.hpp:318
+
Define non periodic real Y dimension.
Definition geometry.hpp:329
diff --git a/classBslExplicitPredCorrRTheta-members.html b/classBslExplicitPredCorrRTheta-members.html index baf4a814a..326c1f42e 100644 --- a/classBslExplicitPredCorrRTheta-members.html +++ b/classBslExplicitPredCorrRTheta-members.html @@ -109,7 +109,7 @@

This is the complete list of members for BslExplicitPredCorrRTheta< Mapping, AdvectionDomain >, including all inherited members.

- + diff --git a/classBslExplicitPredCorrRTheta.html b/classBslExplicitPredCorrRTheta.html index 2974e7be6..9821efd70 100644 --- a/classBslExplicitPredCorrRTheta.html +++ b/classBslExplicitPredCorrRTheta.html @@ -124,9 +124,9 @@
BslExplicitPredCorrRTheta(AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)BslExplicitPredCorrRTheta< Mapping, AdvectionDomain >inline
BslExplicitPredCorrRTheta(AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)BslExplicitPredCorrRTheta< Mapping, AdvectionDomain >inline
display_time_difference(std::string const &title, std::chrono::time_point< std::chrono::system_clock > const &start_time, std::chrono::time_point< std::chrono::system_clock > const &end_time) constITimeSolverRThetainlineprotected
operator()(host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) const finalBslExplicitPredCorrRTheta< Mapping, AdvectionDomain >inlinevirtual
~ITimeSolverRTheta()=default (defined in ITimeSolverRTheta)ITimeSolverRThetavirtual
- - - + + + @@ -171,8 +171,8 @@

Constructor & Destructor Documentation

- -

◆ BslExplicitPredCorrRTheta()

+ +

◆ BslExplicitPredCorrRTheta()

@@ -221,7 +221,7 @@

- + diff --git a/classBslExplicitPredCorrRTheta.js b/classBslExplicitPredCorrRTheta.js index 48f6d99da..d227b1ed7 100644 --- a/classBslExplicitPredCorrRTheta.js +++ b/classBslExplicitPredCorrRTheta.js @@ -1,5 +1,5 @@ var classBslExplicitPredCorrRTheta = [ - [ "BslExplicitPredCorrRTheta", "classBslExplicitPredCorrRTheta.html#a06242b4dc42f0275ebd48935a822a41e", null ], + [ "BslExplicitPredCorrRTheta", "classBslExplicitPredCorrRTheta.html#af3274e5a2342ff8b6446622d48cd4ecf", null ], [ "operator()", "classBslExplicitPredCorrRTheta.html#aaeabe916423e28d00c1ab8e0d8a4db54", null ] ]; \ No newline at end of file diff --git a/classBslImplicitPredCorrRTheta-members.html b/classBslImplicitPredCorrRTheta-members.html index d5b96a7d7..53bc6d24c 100644 --- a/classBslImplicitPredCorrRTheta-members.html +++ b/classBslImplicitPredCorrRTheta-members.html @@ -109,7 +109,7 @@

This is the complete list of members for BslImplicitPredCorrRTheta< Mapping, AdvectionDomain >, including all inherited members.

Public Member Functions

 BslExplicitPredCorrRTheta (AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)
 Instantiate a BslExplicitPredCorrRTheta.
 
 BslExplicitPredCorrRTheta (AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)
 Instantiate a BslExplicitPredCorrRTheta.
 
host_t< DFieldRTheta > operator() (host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) const final
 Solves on \( T = dt*N \) the equations system.
 
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const & PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &  poisson_solver,
- + diff --git a/classBslImplicitPredCorrRTheta.html b/classBslImplicitPredCorrRTheta.html index c99e0ebae..cb528ce27 100644 --- a/classBslImplicitPredCorrRTheta.html +++ b/classBslImplicitPredCorrRTheta.html @@ -124,9 +124,9 @@
BslImplicitPredCorrRTheta(AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > const &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)BslImplicitPredCorrRTheta< Mapping, AdvectionDomain >inline
BslImplicitPredCorrRTheta(AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > const &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)BslImplicitPredCorrRTheta< Mapping, AdvectionDomain >inline
display_time_difference(std::string const &title, std::chrono::time_point< std::chrono::system_clock > const &start_time, std::chrono::time_point< std::chrono::system_clock > const &end_time) constITimeSolverRThetainlineprotected
operator()(host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) const finalBslImplicitPredCorrRTheta< Mapping, AdvectionDomain >inlinevirtual
~ITimeSolverRTheta()=default (defined in ITimeSolverRTheta)ITimeSolverRThetavirtual
- - - + + + @@ -181,8 +181,8 @@

Constructor & Destructor Documentation

- -

◆ BslImplicitPredCorrRTheta()

+ +

◆ BslImplicitPredCorrRTheta()

@@ -231,7 +231,7 @@

- + diff --git a/classBslImplicitPredCorrRTheta.js b/classBslImplicitPredCorrRTheta.js index 07dcda5ce..646bc3a84 100644 --- a/classBslImplicitPredCorrRTheta.js +++ b/classBslImplicitPredCorrRTheta.js @@ -1,5 +1,5 @@ var classBslImplicitPredCorrRTheta = [ - [ "BslImplicitPredCorrRTheta", "classBslImplicitPredCorrRTheta.html#a6bd04e7ccba156c98c4516ae0a3a3cae", null ], + [ "BslImplicitPredCorrRTheta", "classBslImplicitPredCorrRTheta.html#a27731f9a9c3e076aca10206bb0bfd3ba", null ], [ "operator()", "classBslImplicitPredCorrRTheta.html#a35fb8dc2ae119da7ed06f1f8dc2d439e", null ] ]; \ No newline at end of file diff --git a/classBslPredCorrRTheta-members.html b/classBslPredCorrRTheta-members.html index fb8ce3c23..b1ec88e5f 100644 --- a/classBslPredCorrRTheta-members.html +++ b/classBslPredCorrRTheta-members.html @@ -109,7 +109,7 @@

This is the complete list of members for BslPredCorrRTheta< Mapping, FootFinder >, including all inherited members.

Public Member Functions

 BslImplicitPredCorrRTheta (AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > const &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)
 Instantiate a BslImplicitPredCorrRTheta.
 
 BslImplicitPredCorrRTheta (AdvectionDomain const &advection_domain, Mapping const &mapping, BslAdvectionRTheta< SplineFootFinderType, Mapping > const &advection_solver, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver, SplineRThetaEvaluatorConstBound_host const &advection_evaluator)
 Instantiate a BslImplicitPredCorrRTheta.
 
host_t< DFieldRTheta > operator() (host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) const final
 Solves on \( T = dt*N \) the equations system.
 
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const & PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &  poisson_solver,
- + diff --git a/classBslPredCorrRTheta.html b/classBslPredCorrRTheta.html index f6b6a9832..da71b4c12 100644 --- a/classBslPredCorrRTheta.html +++ b/classBslPredCorrRTheta.html @@ -124,9 +124,9 @@
BslPredCorrRTheta(Mapping const &mapping, BslAdvectionRTheta< FootFinder, Mapping > const &advection_solver, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver)BslPredCorrRTheta< Mapping, FootFinder >inline
BslPredCorrRTheta(Mapping const &mapping, BslAdvectionRTheta< FootFinder, Mapping > const &advection_solver, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver)BslPredCorrRTheta< Mapping, FootFinder >inline
display_time_difference(std::string const &title, std::chrono::time_point< std::chrono::system_clock > const &start_time, std::chrono::time_point< std::chrono::system_clock > const &end_time) constITimeSolverRThetainlineprotected
operator()(host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) constBslPredCorrRTheta< Mapping, FootFinder >inlinevirtual
~ITimeSolverRTheta()=default (defined in ITimeSolverRTheta)ITimeSolverRThetavirtual
- - - + + + @@ -168,8 +168,8 @@

Constructor & Destructor Documentation

- -

◆ BslPredCorrRTheta()

+ +

◆ BslPredCorrRTheta()

@@ -206,7 +206,7 @@

- + diff --git a/classBslPredCorrRTheta.js b/classBslPredCorrRTheta.js index 4b4b52b73..de6a8f1b1 100644 --- a/classBslPredCorrRTheta.js +++ b/classBslPredCorrRTheta.js @@ -1,5 +1,5 @@ var classBslPredCorrRTheta = [ - [ "BslPredCorrRTheta", "classBslPredCorrRTheta.html#a82df60ba134e54e107c105544ef15763", null ], + [ "BslPredCorrRTheta", "classBslPredCorrRTheta.html#ac5a6457ec7d54f8fbb926aca93a55069", null ], [ "operator()", "classBslPredCorrRTheta.html#ad47f1c1d3fb1b113fee4bd955272a5b0", null ] ]; \ No newline at end of file diff --git a/classPolarSplineFEMPoissonLikeSolver-members.html b/classPolarSplineFEMPoissonLikeSolver-members.html index 3f22af710..d09d0cff1 100644 --- a/classPolarSplineFEMPoissonLikeSolver-members.html +++ b/classPolarSplineFEMPoissonLikeSolver-members.html @@ -103,18 +103,30 @@
-
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull > Member List
+
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull > Member List
-

This is the complete list of members for PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >, including all inherited members.

+

This is the complete list of members for PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >, including all inherited members.

Public Member Functions

 BslPredCorrRTheta (Mapping const &mapping, BslAdvectionRTheta< FootFinder, Mapping > const &advection_solver, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver)
 Instantiate a BslPredCorrRTheta.
 
 BslPredCorrRTheta (Mapping const &mapping, BslAdvectionRTheta< FootFinder, Mapping > const &advection_solver, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &rhs_evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver)
 Instantiate a BslPredCorrRTheta.
 
host_t< DFieldRTheta > operator() (host_t< DFieldRTheta > allfdistribu, double const dt, int const steps) const
 Solves on \( T = dt*N \) the equations system.
 
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const & PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &  poisson_solver 
- - - - - - + + + + + + + + + + + + + + + + + +
init_nnz_per_line(Kokkos::View< int *, Kokkos::LayoutRight > nnz) constPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >inline
operator()(RHSFunction const &rhs, host_t< SplinePolar > &spline) constPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >inline
operator()(RHSFunction const &rhs, host_t< DFieldRTheta > phi) constPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >inline
PolarSplineFEMPoissonLikeSolver(host_t< ConstSpline2D > coeff_alpha, host_t< ConstSpline2D > coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound_host const &spline_evaluator)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >inline
R typedefPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >
Theta typedefPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >
compute_overlapping_singular_elements(ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
compute_singular_elements(ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
compute_stencil_elements(ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
fill_int_volume(Mapping const &mapping)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
get_matrix_stencil_element(IdxBSRTheta idx_test, IdxBSRTheta idx_trial, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &evaluator, Mapping const &mapping)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
get_quadrature_points_in_cell(int cell_idx_r, int cell_idx_theta)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inlinestatic
get_value_and_gradient(double &value, std::array< double, 2 > &gradient, EvalDeriv1DType const &r_basis, EvalDeriv1DType const &theta_basis)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inlinestatic
get_value_and_gradient(double &value, std::array< double, 2 > &gradient, EvalDeriv2DType const &basis, EvalDeriv2DType const &)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inlinestatic
IdxCell typedefPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >
init_nnz_per_line(Kokkos::View< int *, Kokkos::LayoutRight > nnz) constPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
operator()(RHSFunction const &rhs, host_t< SplinePolar > &spline) constPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
operator()(RHSFunction const &rhs, DFieldRTheta phi) constPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
PolarSplineFEMPoissonLikeSolver(ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inline
R typedefPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >
templated_weak_integral_element(IdxQuadratureR idx_r, IdxQuadratureTheta idx_theta, TestValDerivType const &test_bspline_val_and_deriv, TrialValDerivType const &trial_bspline_val_and_deriv, TestValDerivType const &test_bspline_val_and_deriv_theta, TrialValDerivType const &trial_bspline_val_and_deriv_theta, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &spline_evaluator, Mapping const &mapping, DField< IdxRangeQuadratureRTheta > int_volume)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inlinestatic
Theta typedefPolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >
theta_mod(int idx_theta)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inlinestatic
weak_integral_element(IdxQuadratureR idx_r, IdxQuadratureTheta idx_theta, EvalDeriv2DType const &test_bspline_val_and_deriv, EvalDeriv2DType const &trial_bspline_val_and_deriv, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &evaluator, Mapping const &mapping, DField< IdxRangeQuadratureRTheta > int_volume)PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >inlinestatic
diff --git a/classPolarSplineFEMPoissonLikeSolver.html b/classPolarSplineFEMPoissonLikeSolver.html index 96ab7090e..d1ae21ff4 100644 --- a/classPolarSplineFEMPoissonLikeSolver.html +++ b/classPolarSplineFEMPoissonLikeSolver.html @@ -5,7 +5,7 @@ -Gyselalib++: PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull > Class Template Reference +Gyselalib++: PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull > Class Template Reference @@ -107,8 +107,9 @@ Classes | Public Types | Public Member Functions | +Static Public Member Functions | List of all members -
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull > Class Template Reference
+
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull > Class Template Reference
@@ -117,6 +118,12 @@ + + + + + + @@ -134,36 +141,83 @@

Classes

struct  EvalDeriv1DType
 Object storing a value and a value of the derivative of a 1D function. More...
 
struct  EvalDeriv2DType
 Object storing a value and a value of the derivatives in each direction of a 2D function. More...
 
struct  QDimRMesh
 Tag the first dimension for the quadrature mesh. More...
 
- - - - + + - - + + + + +

Public Types

+
using R = typename GridR::continuous_dimension_type
 The radial dimension.
 
+
 The radial dimension.
 
using Theta = typename GridTheta::continuous_dimension_type
 The poloidal dimension.
 
 The poloidal dimension.
 
+using IdxCell = Idx< RCellDim, ThetaCellDim >
 Tag an index of cell.
 
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

template<class Mapping >
 PolarSplineFEMPoissonLikeSolver (host_t< ConstSpline2D > coeff_alpha, host_t< ConstSpline2D > coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound_host const &spline_evaluator)
 Instantiate a polar Poisson-like solver using FEM with B-splines.
 
template<class RHSFunction >
void operator() (RHSFunction const &rhs, host_t< SplinePolar > &spline) const
 Solve the Poisson-like equation.
 
template<class RHSFunction >
void operator() (RHSFunction const &rhs, host_t< DFieldRTheta > phi) const
 Solve the Poisson-like equation.
 
void init_nnz_per_line (Kokkos::View< int *, Kokkos::LayoutRight > nnz) const
 Fills the nnz data structure by computing the number of non-zero per line.
 
template<class Mapping >
 PolarSplineFEMPoissonLikeSolver (ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator)
 Instantiate a polar Poisson-like solver using FEM with B-splines.
 
template<class Mapping >
void fill_int_volume (Mapping const &mapping)
 Compute the volume integrals and stores the values in a member variable.
 
template<class Mapping >
void compute_singular_elements (ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)
 Computes the matrix element corresponding to the singular area.
 
template<class Mapping >
void compute_overlapping_singular_elements (ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)
 Computes the matrix element corresponding to singular elements overlapping with regular grid.
 
template<class Mapping >
void compute_stencil_elements (ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)
 Computes the matrix element corresponding to the regular stencil ie: out to singular or overlapping areas.
 
template<class RHSFunction >
void operator() (RHSFunction const &rhs, host_t< SplinePolar > &spline) const
 Solve the Poisson-like equation.
 
template<class RHSFunction >
void operator() (RHSFunction const &rhs, DFieldRTheta phi) const
 Solve the Poisson-like equation.
 
template<class Mapping >
double get_matrix_stencil_element (IdxBSRTheta idx_test, IdxBSRTheta idx_trial, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &evaluator, Mapping const &mapping)
 Computes the matrix element corresponding to two tensor product splines with index idx_test and idx_trial.
 
void init_nnz_per_line (Kokkos::View< int *, Kokkos::LayoutRight > nnz) const
 Fills the nnz data structure by computing the number of non-zero per line.
 
+ + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static KOKKOS_FUNCTION IdxRangeQuadratureRTheta get_quadrature_points_in_cell (int cell_idx_r, int cell_idx_theta)
 compute the quadrature range for a given pair of indices
 
template<class Mapping >
static KOKKOS_FUNCTION double weak_integral_element (IdxQuadratureR idx_r, IdxQuadratureTheta idx_theta, EvalDeriv2DType const &test_bspline_val_and_deriv, EvalDeriv2DType const &trial_bspline_val_and_deriv, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &evaluator, Mapping const &mapping, DField< IdxRangeQuadratureRTheta > int_volume)
 compute the weak integral value.
 
static KOKKOS_INLINE_FUNCTION void get_value_and_gradient (double &value, std::array< double, 2 > &gradient, EvalDeriv1DType const &r_basis, EvalDeriv1DType const &theta_basis)
 Computes the value and gradient from r_basis and theta_basis inputs.
 
static KOKKOS_INLINE_FUNCTION void get_value_and_gradient (double &value, std::array< double, 2 > &gradient, EvalDeriv2DType const &basis, EvalDeriv2DType const &)
 Computes the value and gradient from r_basis and theta_basis inputs.
 
template<class Mapping , class TestValDerivType , class TrialValDerivType >
static KOKKOS_FUNCTION double templated_weak_integral_element (IdxQuadratureR idx_r, IdxQuadratureTheta idx_theta, TestValDerivType const &test_bspline_val_and_deriv, TrialValDerivType const &trial_bspline_val_and_deriv, TestValDerivType const &test_bspline_val_and_deriv_theta, TrialValDerivType const &trial_bspline_val_and_deriv_theta, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &spline_evaluator, Mapping const &mapping, DField< IdxRangeQuadratureRTheta > int_volume)
 Computes a quadrature summand corresponding to the inner product.
 
static KOKKOS_FUNCTION int theta_mod (int idx_theta)
 Calculates the modulo idx_theta in relation to cells number along \( \theta \) direction .
 

Detailed Description

-
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound_host, class IdxRangeFull = IdxRange<GridR, GridTheta>>
-class PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >

Define a polar PDE solver for a Poisson-like equation.

+
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
+class PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >

Define a polar PDE solver for a Poisson-like equation.

Solve the following Partial Differential Equation

(1) \( L\phi = - \nabla \cdot (\alpha \nabla \phi) + \beta \phi = \rho \), in \( \Omega\),

\( \phi = 0 \), on \( \partial \Omega\),

@@ -174,13 +228,81 @@ - - + +
GridRThe radial grid type.
GridRThe poloidal grid type.
PolarBSplinesRThetaThe type of the 2D polar bsplines (on the coordinate system (r,theta) including bsplines which traverse the O point).
SplineRThetaEvaluatorNullBound_hostThe type of the 2D (cross-product) spline evaluator.
PolarBSplinesRThetaThe type of the 2D polar bsplines (on the coordinate system \((r,\theta)\) including bsplines which traverse the O point).
SplineRThetaEvaluatorNullBoundThe type of the 2D (cross-product) spline evaluator.
IdxRangeFullThe full index range of \( \phi \) including any batch dimensions.

Class Documentation

+ +

◆ PolarSplineFEMPoissonLikeSolver::EvalDeriv1DType

+ +
+
+ + + + +
struct PolarSplineFEMPoissonLikeSolver::EvalDeriv1DType
+
+
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
+struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::EvalDeriv1DType

Object storing a value and a value of the derivative of a 1D function.

+
+ + + + + + + +
Class Members
+double +value +
+double +derivative +
+ +
+
+ +

◆ PolarSplineFEMPoissonLikeSolver::EvalDeriv2DType

+ +
+
+ + + + +
struct PolarSplineFEMPoissonLikeSolver::EvalDeriv2DType
+
+
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
+struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::EvalDeriv2DType

Object storing a value and a value of the derivatives in each direction of a 2D function.

+
+ + + + + + + + + + +
Class Members
+double +value +
+double +radial_derivative +
+double +poloidal_derivative +
+ +
+

◆ PolarSplineFEMPoissonLikeSolver::RBasisSubset

@@ -192,8 +314,8 @@

-
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound_host, class IdxRangeFull = IdxRange<GridR, GridTheta>>
-struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::RBasisSubset
+
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
+struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::RBasisSubset

@@ -207,8 +329,8 @@

-
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound_host, class IdxRangeFull = IdxRange<GridR, GridTheta>>
-struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::RCellDim
+
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
+struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::RCellDim
@@ -222,8 +344,8 @@

-
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound_host, class IdxRangeFull = IdxRange<GridR, GridTheta>>
-struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::ThetaBasisSubset
+
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
+struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::ThetaBasisSubset
@@ -237,18 +359,18 @@

-
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound_host, class IdxRangeFull = IdxRange<GridR, GridTheta>>
-struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::ThetaCellDim
+
template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
+struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::ThetaCellDim

Constructor & Destructor Documentation

- -

◆ PolarSplineFEMPoissonLikeSolver()

+ +

◆ PolarSplineFEMPoissonLikeSolver()

-template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound_host , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
template<class Mapping >
@@ -256,15 +378,15 @@

- + - + - + @@ -276,7 +398,7 @@

- + @@ -301,7 +423,7 @@

[in]

- +
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::PolarSplineFEMPoissonLikeSolver PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::PolarSplineFEMPoissonLikeSolver (host_t< ConstSpline2D > ConstSpline2D  coeff_alpha,
host_t< ConstSpline2D > ConstSpline2D  coeff_beta,
SplineRThetaEvaluatorNullBound_host const & SplineRThetaEvaluatorNullBound const &  spline_evaluator 
coeff_alphaThe spline representation of the \( \alpha \) function in the definition of the Poisson-like equation.
[in]coeff_betaThe spline representation of the \( \beta \) function in the definition of the Poisson-like equation.
[in]mappingThe mapping from the logical index range to the physical index range where the equation is defined.
[in]spline_evaluatorAn evaluator for evaluating 2D splines on (r, theta)
[in]spline_evaluatorAn evaluator for evaluating 2D splines on \((r,\theta)\).
@@ -315,35 +437,109 @@

Member Function Documentation

- -

◆ operator()() [1/2]

+ +

◆ fill_int_volume()

-template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound_host , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
-template<class RHSFunction >
+template<class Mapping >
+ + +
- + - - + + + + +
void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::operator() void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::fill_int_volume (RHSFunction const & rhs, Mapping const & mapping)
+
+inline
+
+ +

Compute the volume integrals and stores the values in a member variable.

+
Parameters
+ + +
[in]mappingThe mapping from the logical index range to the physical index range where the equation is defined.
+
+
+
Template Parameters
+ + +
MappingA class describing a mapping from curvilinear coordinates to cartesian coordinates.
+
+
+ +
+ + +

◆ compute_singular_elements()

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+
+template<class Mapping >
+ + + @@ -353,25 +549,198 @@

-

Solve the Poisson-like equation.

-

This operator returns the coefficients associated with the B-Splines of the solution \(\phi\).

+

Computes the matrix element corresponding to the singular area.

+

ie: the region enclosing the O-point.

Parameters

+ + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +
void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::compute_singular_elements (ConstSpline2D coeff_alpha,
host_t< SplinePolar > & spline ConstSpline2D coeff_beta,
Mapping const & mapping,
SplineRThetaEvaluatorNullBound const & spline_evaluator,
Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host,
Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host,
Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host 
) const
- - + + + + + + + +
[in]rhsThe rhs \( \rho\) of the Poisson-like equation. The type is templated but we can use the PoissonLikeRHSFunction class.
[in,out]splineThe spline representation of the solution \(\phi\), also used as initial data for the iterative solver.
[in]coeff_alphaThe spline representation of the \( \alpha \) function in the definition of the Poisson-like equation.
[in]coeff_betaThe spline representation of the \( \beta \) function in the definition of the Poisson-like equation.
[in]mappingThe mapping from the logical index range to the physical index range where the equation is defined.
[in]spline_evaluatorAn evaluator for evaluating 2D splines on \((r,\theta)\).
[out]values_csr_hostA 2D Kokkos view which stores the values of non-zero elements for the whole batch.
[out]col_idx_csr_hostA 1D Kokkos view which stores the column indices for each non-zero component.(only for one matrix).
[in,out]nnz_per_row_csr_hostA 1D Kokkos view of length matrix_size+1 which stores the count of the non-zeros along the lines of the matrix.
+ + + +
+
+ +

◆ compute_overlapping_singular_elements()

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+
+template<class Mapping >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::compute_overlapping_singular_elements (ConstSpline2D coeff_alpha,
ConstSpline2D coeff_beta,
Mapping const & mapping,
SplineRThetaEvaluatorNullBound const & spline_evaluator,
Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host,
Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host,
Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host 
)
+
+inline
+
+ +

Computes the matrix element corresponding to singular elements overlapping with regular grid.

+
Parameters
+ + + + + + + + +
[in]coeff_alphaThe spline representation of the \( \alpha \) function in the definition of the Poisson-like equation.
[in]coeff_betaThe spline representation of the \( \beta \) function in the definition of the Poisson-like equation.
[in]mappingThe mapping from the logical index range to the physical index range where the equation is defined.
[in]spline_evaluatorAn evaluator for evaluating 2D splines on \((r,\theta)\).
[out]values_csr_hostA 2D Kokkos view which stores the values of non-zero elements for the whole batch.
[out]col_idx_csr_hostA 1D Kokkos view which stores the column indices for each non-zero component.(only for one matrix)
[in,out]nnz_per_row_csr_hostA 1D Kokkos view of length matrix_size+1 which stores the count of the non-zeros along the lines of the matrix.
+
+
+ +
+
+ +

◆ compute_stencil_elements()

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+
+template<class Mapping >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::compute_stencil_elements (ConstSpline2D coeff_alpha,
ConstSpline2D coeff_beta,
Mapping const & mapping,
SplineRThetaEvaluatorNullBound const & spline_evaluator,
Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host,
Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host,
Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host 
)
+
+inline
+
+ +

Computes the matrix element corresponding to the regular stencil ie: out to singular or overlapping areas.

+
Parameters
+ + + + + + + +
[in]coeff_alphaThe spline representation of the \( \alpha \) function in the definition of the Poisson-like equation.
[in]coeff_betaThe spline representation of the \( \beta \) function in the definition of the Poisson-like equation.
[in]mappingThe mapping from the logical index range to the physical index range where the equation is defined.
[in]spline_evaluatorAn evaluator for evaluating 2D splines on \((r,\theta)\).
[out]values_csr_hostA 2D Kokkos view which stores the values of non-zero elements for the whole batch.
[out]col_idx_csr_hostA 1D Kokkos view which stores the column indices for each non-zero component.(only for one matrix)
[in,out]nnz_per_row_csr_hostA 1D Kokkos view of length matrix_size+1 which stores the count of the non-zeros along the lines of the matrix.
- -

◆ operator()() [2/2]

+ +

◆ operator()() [1/2]

-template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound_host , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
template<class RHSFunction >
@@ -379,7 +748,7 @@

- + @@ -387,8 +756,8 @@

- - + + @@ -404,30 +773,576 @@

Solve the Poisson-like equation.

-

This operator uses the other operator () and returns the values on the grid of the solution \(\phi\).

+

This operator returns the coefficients associated with the B-Splines of the solution \(\phi\).

Parameters

void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::operator() void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::operator() ( RHSFunction const &  rhs, host_t< DFieldRTheta > phi host_t< SplinePolar > & spline 
- + +
[in]rhsThe rhs \( \rho\) of the Poisson-like equation. The type is templated but we can use the PoissonLikeRHSFunction class.
[in,out]phiThe values of the solution \(\phi\) on the given coords_eval, also used as initial data for the iterative solver.
[in,out]splineThe spline representation of the solution \(\phi\), also used as initial data for the iterative solver.
+ + + +
+ + +

◆ operator()() [2/2]

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+
+template<class RHSFunction >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::operator() (RHSFunction const & rhs,
DFieldRTheta phi 
) const
+
+inline
+
+ +

Solve the Poisson-like equation.

+

This operator uses the other operator () and returns the values on the grid of the solution \(\phi\).

+
Parameters
+ + + +
[in]rhsThe rhs \( \rho\) of the Poisson-like equation. The type is templated but we can use the PoissonLikeRHSFunction class.
[in,out]phiThe values of the solution \(\phi\) on the given coords_eval, also used as initial data for the iterative solver.
+
+
+ +
+
+ +

◆ get_quadrature_points_in_cell()

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static KOKKOS_FUNCTION IdxRangeQuadratureRTheta PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::get_quadrature_points_in_cell (int cell_idx_r,
int cell_idx_theta 
)
+
+inlinestatic
+
+ +

compute the quadrature range for a given pair of indices

+
Parameters
+ + + +
[in]cell_idx_rThe index for radial direction
[in]cell_idx_thetaThe index for poloidal direction
+
+
+
Returns
The quadrature range corresponding to the \((r,\theta)\) indices.
+ +
+
+ +

◆ weak_integral_element()

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+
+template<class Mapping >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static KOKKOS_FUNCTION double PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::weak_integral_element (IdxQuadratureR idx_r,
IdxQuadratureTheta idx_theta,
EvalDeriv2DType const & test_bspline_val_and_deriv,
EvalDeriv2DType const & trial_bspline_val_and_deriv,
ConstSpline2D coeff_alpha,
ConstSpline2D coeff_beta,
SplineRThetaEvaluatorNullBound const & evaluator,
Mapping const & mapping,
DField< IdxRangeQuadratureRTheta > int_volume 
)
+
+inlinestatic
+
+ +

compute the weak integral value.

+
Parameters
+ + + + + + + + + + +
[in]idx_rThe index for radial direction.
[in]idx_thetaThe index for poloidal direction
[in]test_bspline_val_and_derivThe data structure containing the derivatives over radial and poloidal directions for test space.
[in]trial_bspline_val_and_derivThe data structure containing the derivatives over radial and poloidal directions for trial space.
[in]coeff_alphaThe spline representation of the \( \alpha \) function in the definition of the Poisson-like equation.
[in]coeff_betaThe spline representation of the \( \beta \) function in the definition of the Poisson-like equation.
[in]mappingThe mapping from the logical index range to the physical index range where the equation is defined.
[in]evaluatorAn evaluator for evaluating 2D splines on \((r,\theta)\).
[in]int_volumeThe integral volume associated with each point used in the quadrature scheme.
+
+
+
Returns
The value of the weak integral.
+ +
+
+ +

◆ get_value_and_gradient() [1/2]

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static KOKKOS_INLINE_FUNCTION void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::get_value_and_gradient (double & value,
std::array< double, 2 > & gradient,
EvalDeriv1DType const & r_basis,
EvalDeriv1DType const & theta_basis 
)
+
+inlinestatic
+
+ +

Computes the value and gradient from r_basis and theta_basis inputs.

+
Parameters
+ + + + + +
[out]valueThe product of radial and poloidal values.
[out]gradientderivatives over \( (r, \theta) \) directions.
[in]r_basisA data structure containing values and derivative over radial direction.
[in]theta_basisA data structure containing values and derivative over poloidal direction.
+
+
+ +
+
+ +

◆ get_value_and_gradient() [2/2]

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static KOKKOS_INLINE_FUNCTION void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::get_value_and_gradient (double & value,
std::array< double, 2 > & gradient,
EvalDeriv2DType const & basis,
EvalDeriv2DType const &  
)
+
+inlinestatic
+
+ +

Computes the value and gradient from r_basis and theta_basis inputs.

+
Parameters
+ + + + +
[out]valueThe product of radial and poloidal values.
[out]gradientderivatives over \( (r, \theta) \) directions.
[in]basisA data structure containing values and derivative over radial and poloidal directions.
+
+
+ +
+
+ +

◆ templated_weak_integral_element()

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+
+template<class Mapping , class TestValDerivType , class TrialValDerivType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static KOKKOS_FUNCTION double PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::templated_weak_integral_element (IdxQuadratureR idx_r,
IdxQuadratureTheta idx_theta,
TestValDerivType const & test_bspline_val_and_deriv,
TrialValDerivType const & trial_bspline_val_and_deriv,
TestValDerivType const & test_bspline_val_and_deriv_theta,
TrialValDerivType const & trial_bspline_val_and_deriv_theta,
ConstSpline2D coeff_alpha,
ConstSpline2D coeff_beta,
SplineRThetaEvaluatorNullBound const & spline_evaluator,
Mapping const & mapping,
DField< IdxRangeQuadratureRTheta > int_volume 
)
+
+inlinestatic
+
+ +

Computes a quadrature summand corresponding to the inner product.

+
Parameters
+ + + + + + + + + + + + +
[in]idx_rThe index for radial direction.
[in]idx_thetaThe index for poloidal direction
[in]test_bspline_val_and_derivThe data structure containing the derivatives over radial and poloidal directions for test space.
[in]trial_bspline_val_and_derivThe data structure containing the derivatives over radial and poloidal directions for trial space.
[in]test_bspline_val_and_deriv_thetaThe data structure containing the value and derivative along poloidal direction for test space.
[in]trial_bspline_val_and_deriv_thetaThe data structure containing the value and derivative along poloidal direction for trial space.
[in]coeff_alphaThe spline representation of the \( \alpha \) function in the definition of the Poisson-like equation.
[in]coeff_betaThe spline representation of the \( \beta \) function in the definition of the Poisson-like equation.
[in]spline_evaluatorAn evaluator for evaluating 2D splines on \((r,\theta)\).
[in]mappingThe mapping from the logical index range to the physical index range where the equation is defined.
[in]int_volumeThe integral volume associated with each point used in the quadrature scheme.
+
+
+
Returns
inner product of the test and trial spline is computed using a quadrature. This function returns one summand of the quadrature for the quadrature point given by the indices.
+ +
+
+ +

◆ get_matrix_stencil_element()

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+
+template<class Mapping >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::get_matrix_stencil_element (IdxBSRTheta idx_test,
IdxBSRTheta idx_trial,
ConstSpline2D coeff_alpha,
ConstSpline2D coeff_beta,
SplineRThetaEvaluatorNullBound const & evaluator,
Mapping const & mapping 
)
+
+inline
+
+ +

Computes the matrix element corresponding to two tensor product splines with index idx_test and idx_trial.

+
Parameters
+ + + + + + + +
[in]idx_testThe index for polar B-spline in the test space.
[in]idx_trialThe index for polar B-spline in the trial space.
[in]coeff_alphaThe spline representation of the \( \alpha \) function in the definition of the Poisson-like equation.
[in]coeff_betaThe spline representation of the \( \beta \) function in the definition of the Poisson-like equation.
[in]evaluatorAn evaluator for evaluating 2D splines on \( (r, \theta) \).
[in]mappingThe mapping from the logical index range to the physical index range where the equation is defined.
+
+
+
Returns
The value of the matrix element.
+ +
+
+ +

◆ theta_mod()

+ +
+
+
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+ + + + + +
+ + + + + + + + +
static KOKKOS_FUNCTION int PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::theta_mod (int idx_theta)
+
+inlinestatic
+
+ +

Calculates the modulo idx_theta in relation to cells number along \( \theta \) direction .

+
Parameters
+ +
[in]idx_theta\( \theta \) index.
+
Returns
The corresponding indice modulo \( \theta \) direction cells number
- -

◆ init_nnz_per_line()

+ +

◆ init_nnz_per_line()

-template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound_host , class IdxRangeFull = IdxRange<GridR, GridTheta>>
+template<class GridR , class GridTheta , class PolarBSplinesRTheta , class SplineRThetaEvaluatorNullBound , class IdxRangeFull = IdxRange<GridR, GridTheta>>
- + diff --git a/classPolarSplineFEMPoissonLikeSolver.js b/classPolarSplineFEMPoissonLikeSolver.js index 5ed5016ae..17fdaef7c 100644 --- a/classPolarSplineFEMPoissonLikeSolver.js +++ b/classPolarSplineFEMPoissonLikeSolver.js @@ -1,15 +1,23 @@ var classPolarSplineFEMPoissonLikeSolver = [ + [ "EvalDeriv1DType", "classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1EvalDeriv1DType", null ], + [ "EvalDeriv2DType", "classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1EvalDeriv2DType", null ], [ "QDimRMesh", "structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.html", null ], [ "QDimThetaMesh", "structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.html", null ], [ "RBasisSubset", "classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1RBasisSubset", null ], [ "RCellDim", "classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1RCellDim", null ], [ "ThetaBasisSubset", "classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaBasisSubset", null ], [ "ThetaCellDim", "classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaCellDim", null ], - [ "R", "classPolarSplineFEMPoissonLikeSolver.html#a4be4b0150bea8b8972bf3400e52d1bcb", null ], - [ "Theta", "classPolarSplineFEMPoissonLikeSolver.html#a68effe5bc79a8795c6513a38489d6813", null ], - [ "PolarSplineFEMPoissonLikeSolver", "classPolarSplineFEMPoissonLikeSolver.html#a5a09f433677b3358cdb5fe205a003bf8", null ], - [ "operator()", "classPolarSplineFEMPoissonLikeSolver.html#ab96025644e98f8d005f8df7f1c6506e4", null ], - [ "operator()", "classPolarSplineFEMPoissonLikeSolver.html#a400425e0ecc5088c1c6427ce8f1e881b", null ], - [ "init_nnz_per_line", "classPolarSplineFEMPoissonLikeSolver.html#ad6c2770cd84599b20bc3a9adc5a94c6b", null ] + [ "R", "classPolarSplineFEMPoissonLikeSolver.html#aea7575e5ec7f7e2a776c1677a79137d9", null ], + [ "Theta", "classPolarSplineFEMPoissonLikeSolver.html#a0c880f33d839cedfafdf2b3b32139417", null ], + [ "IdxCell", "classPolarSplineFEMPoissonLikeSolver.html#aea010ac6bec8090ec2686ad2110befd4", null ], + [ "PolarSplineFEMPoissonLikeSolver", "classPolarSplineFEMPoissonLikeSolver.html#a6e4d95b7b1ce10cf43579ff77b9ea88b", null ], + [ "fill_int_volume", "classPolarSplineFEMPoissonLikeSolver.html#a0d5abf61af4436e3bb7ee922b035447a", null ], + [ "compute_singular_elements", "classPolarSplineFEMPoissonLikeSolver.html#ae5645f014d26559165955e51746f3e70", null ], + [ "compute_overlapping_singular_elements", "classPolarSplineFEMPoissonLikeSolver.html#a36be84f08a082b52a73f5134b8f1a8e2", null ], + [ "compute_stencil_elements", "classPolarSplineFEMPoissonLikeSolver.html#a161e772a03b980ad5cb19bdeb6b02925", null ], + [ "operator()", "classPolarSplineFEMPoissonLikeSolver.html#a2ffbf750c185ff40c8a4697b3937bc63", null ], + [ "operator()", "classPolarSplineFEMPoissonLikeSolver.html#ac699f74359d1f9160bed57ffcf325861", null ], + [ "get_matrix_stencil_element", "classPolarSplineFEMPoissonLikeSolver.html#a90ab8ff1603bc0a3f36b5a0c5077de5b", null ], + [ "init_nnz_per_line", "classPolarSplineFEMPoissonLikeSolver.html#ad1b92b440d6e5c71e14b09d53beefd84", null ] ]; \ No newline at end of file diff --git a/classVortexMergerEquilibria-members.html b/classVortexMergerEquilibria-members.html index 4856fe2b2..5ee7104bf 100644 --- a/classVortexMergerEquilibria-members.html +++ b/classVortexMergerEquilibria-members.html @@ -111,7 +111,7 @@
void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::init_nnz_per_line void PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::init_nnz_per_line ( Kokkos::View< int *, Kokkos::LayoutRight >  nnz)
- +
find_equilibrium(host_t< DFieldRTheta > sigma, host_t< DFieldRTheta > phi_eq, host_t< DFieldRTheta > rho_eq, std::function< double(double const)> const &function, double const phi_max, double const tau, int count_max=25) constVortexMergerEquilibria< Mapping >inline
set_equilibrium(host_t< DFieldRTheta > rho_eq, std::function< double(double const)> function, double const phi_max, double const tau)VortexMergerEquilibria< Mapping >inline
VortexMergerEquilibria(Mapping const &mapping, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver)VortexMergerEquilibria< Mapping >inline
VortexMergerEquilibria(Mapping const &mapping, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver)VortexMergerEquilibria< Mapping >inline
diff --git a/classVortexMergerEquilibria.html b/classVortexMergerEquilibria.html index d5ae11b4e..dba4f3ace 100644 --- a/classVortexMergerEquilibria.html +++ b/classVortexMergerEquilibria.html @@ -115,9 +115,9 @@ - - - + + + @@ -135,8 +135,8 @@

Constructor & Destructor Documentation

- -

◆ VortexMergerEquilibria()

+ +

◆ VortexMergerEquilibria()

@@ -173,7 +173,7 @@

- + diff --git a/classVortexMergerEquilibria.js b/classVortexMergerEquilibria.js index 7e3610f0e..bf3c17639 100644 --- a/classVortexMergerEquilibria.js +++ b/classVortexMergerEquilibria.js @@ -1,6 +1,6 @@ var classVortexMergerEquilibria = [ - [ "VortexMergerEquilibria", "classVortexMergerEquilibria.html#a8e5ac553bd6628804db325b59ca8605d", null ], + [ "VortexMergerEquilibria", "classVortexMergerEquilibria.html#a3a8975ef28538c07c2a08ce9b0db3c9f", null ], [ "find_equilibrium", "classVortexMergerEquilibria.html#ad3b9139693f6f2aeabf9355d14c7c37b", null ], [ "set_equilibrium", "classVortexMergerEquilibria.html#afcf358db72fd433f4470facfecd25019", null ] ]; \ No newline at end of file diff --git a/czarny__to__cartesian_8hpp_source.html b/czarny__to__cartesian_8hpp_source.html index a5a1a05a5..b6ab7bc4d 100644 --- a/czarny__to__cartesian_8hpp_source.html +++ b/czarny__to__cartesian_8hpp_source.html @@ -431,8 +431,8 @@
KOKKOS_FUNCTION double jacobian(ddc::Coordinate< R, Theta > const &coord) const
Compute the Jacobian, the determinant of the Jacobian matrix of the mapping.
Definition czarny_to_cartesian.hpp:179
Define non periodic real R dimension.
Definition geometry.hpp:31
Define periodic real Theta dimension.
Definition geometry.hpp:42
-
Define non periodic real X dimension.
Definition geometry.hpp:277
-
Define non periodic real Y dimension.
Definition geometry.hpp:288
+
Define non periodic real X dimension.
Definition geometry.hpp:318
+
Define non periodic real Y dimension.
Definition geometry.hpp:329
diff --git a/discrete__mapping__builder_8hpp_source.html b/discrete__mapping__builder_8hpp_source.html index 1c34b6f81..8515fed64 100644 --- a/discrete__mapping__builder_8hpp_source.html +++ b/discrete__mapping__builder_8hpp_source.html @@ -535,8 +535,8 @@
The type of the grid of radial points on which the new mapping will be defined.
Definition discrete_mapping_builder.hpp:228
The type of the grid of poloidal points on which the new mapping will be defined.
Definition discrete_mapping_builder.hpp:233
Define periodic real Theta dimension.
Definition geometry.hpp:42
-
Define non periodic real X dimension.
Definition geometry.hpp:277
-
Define non periodic real Y dimension.
Definition geometry.hpp:288
+
Define non periodic real X dimension.
Definition geometry.hpp:318
+
Define non periodic real Y dimension.
Definition geometry.hpp:329
diff --git a/discrete__to__cartesian_8hpp_source.html b/discrete__to__cartesian_8hpp_source.html index 2fc21a297..0d80c7043 100644 --- a/discrete__to__cartesian_8hpp_source.html +++ b/discrete__to__cartesian_8hpp_source.html @@ -321,8 +321,8 @@
typename SplineEvaluator::bsplines_type2 BSplineTheta
Indicate the bspline type of the second logical dimension.
Definition discrete_to_cartesian.hpp:43
Define non periodic real R dimension.
Definition geometry.hpp:31
Define periodic real Theta dimension.
Definition geometry.hpp:42
-
Define non periodic real X dimension.
Definition geometry.hpp:277
-
Define non periodic real Y dimension.
Definition geometry.hpp:288
+
Define non periodic real X dimension.
Definition geometry.hpp:318
+
Define non periodic real Y dimension.
Definition geometry.hpp:329
diff --git a/docs_DDC_in_gyselalibxx.html b/docs_DDC_in_gyselalibxx.html index 3d599c1b2..6a3929bc9 100644 --- a/docs_DDC_in_gyselalibxx.html +++ b/docs_DDC_in_gyselalibxx.html @@ -278,10 +278,10 @@

struct Vx {
static bool constexpr PERIODIC = false;
}
-
Define non periodic real X velocity dimension.
Definition geometry.hpp:300
-
static bool constexpr PERIODIC
Define periodicity of the dimension.
Definition geometry.hpp:305
-
Define non periodic real X dimension.
Definition geometry.hpp:277
-
static bool constexpr PERIODIC
Define periodicity of the dimension.
Definition geometry.hpp:282
+
Define non periodic real X velocity dimension.
Definition geometry.hpp:341
+
static bool constexpr PERIODIC
Define periodicity of the dimension.
Definition geometry.hpp:346
+
Define non periodic real X dimension.
Definition geometry.hpp:318
+
static bool constexpr PERIODIC
Define periodicity of the dimension.
Definition geometry.hpp:323

We also need types to define the grid on which the simulation will evolve. The domain is discretised on the following grid: \([i, e]\times[x_0,...,x_N]\times[v_0,...,v_{N_v}]\). Grid types are required to define the positions of the grid points in each of the three dimensions:

  • The object \([x_0,...,x_N]\) is defined with a grid and will be denoted \(GridX\).
  • The object \([v_0,...,v_{N_v}]\) is defined with a grid and will be denoted \(GridVx\).
  • diff --git a/geometryRTheta_2geometry_2geometry_8hpp_source.html b/geometryRTheta_2geometry_2geometry_8hpp_source.html index 410ba767d..dd2e741fb 100644 --- a/geometryRTheta_2geometry_2geometry_8hpp_source.html +++ b/geometryRTheta_2geometry_2geometry_8hpp_source.html @@ -261,139 +261,180 @@
    163 GridR,
    164 GridTheta>;
    165
    -
    166
    -
    167// --- Index definitions
    -
    168using IdxR = Idx<GridR>;
    -
    169using IdxTheta = Idx<GridTheta>;
    -
    170using IdxRTheta = Idx<GridR, GridTheta>;
    -
    171
    -
    172// --- Index Step definitions
    -
    173using IdxStepR = IdxStep<GridR>;
    -
    174using IdxStepTheta = IdxStep<GridTheta>;
    -
    175using IdxStepRTheta = IdxStep<GridR, GridTheta>;
    -
    176
    -
    177// --- Index Range definitions
    -
    178using IdxRangeR = IdxRange<GridR>;
    -
    179using IdxRangeTheta = IdxRange<GridTheta>;
    -
    180using IdxRangeRTheta = IdxRange<GridR, GridTheta>;
    -
    181
    -
    182using IdxRangeBSR = IdxRange<BSplinesR>;
    -
    183using IdxRangeBSTheta = IdxRange<BSplinesTheta>;
    -
    184using IdxRangeBSRTheta = IdxRange<BSplinesR, BSplinesTheta>;
    -
    185using IdxRangeBSPolar = IdxRange<PolarBSplinesRTheta>;
    -
    186
    -
    187
    -
    188// --- FieldMem definitions
    -
    189template <class ElementType>
    -
    190using FieldMemR = FieldMem<ElementType, IdxRangeR>;
    -
    191
    -
    192template <class ElementType>
    -
    193using FieldMemTheta = FieldMem<ElementType, IdxRangeTheta>;
    +
    166using SplineRThetaBuilder = ddc::SplineBuilder2D<
    +
    167 Kokkos::DefaultExecutionSpace,
    +
    168 typename Kokkos::DefaultExecutionSpace::memory_space,
    +
    169 BSplinesR,
    + +
    171 GridR,
    +
    172 GridTheta,
    +
    173 SplineRBoundary, // boundary at r=0
    +
    174 SplineRBoundary, // boundary at rmax
    +
    175 SplinePBoundary,
    +
    176 SplinePBoundary,
    +
    177 ddc::SplineSolver::LAPACK,
    +
    178 GridR,
    +
    179 GridTheta>;
    +
    180
    +
    181using SplineRThetaEvaluatorConstBound = ddc::SplineEvaluator2D<
    +
    182 Kokkos::DefaultExecutionSpace,
    +
    183 typename Kokkos::DefaultExecutionSpace::memory_space,
    +
    184 BSplinesR,
    + +
    186 GridR,
    +
    187 GridTheta,
    +
    188 ddc::ConstantExtrapolationRule<R, Theta>, // boundary at r=0
    +
    189 ddc::ConstantExtrapolationRule<R, Theta>, // boundary at rmax
    +
    190 ddc::PeriodicExtrapolationRule<Theta>,
    +
    191 ddc::PeriodicExtrapolationRule<Theta>,
    +
    192 GridR,
    +
    193 GridTheta>;
    194
    -
    195template <class ElementType>
    -
    196using FieldMemRTheta = FieldMem<ElementType, IdxRangeRTheta>;
    -
    197
    -
    198using DFieldMemR = FieldMemR<double>;
    -
    199using DFieldMemTheta = FieldMemTheta<double>;
    -
    200using DFieldMemRTheta = FieldMemRTheta<double>;
    -
    201
    -
    202// --- Field definitions
    -
    203template <class ElementType>
    -
    204using FieldR = Field<ElementType, IdxRangeR>;
    -
    205
    -
    206template <class ElementType>
    -
    207using FieldTheta = Field<ElementType, IdxRangeTheta>;
    -
    208
    -
    209template <class ElementType>
    -
    210using FieldRTheta = Field<ElementType, IdxRangeRTheta>;
    -
    211
    -
    212using DFieldR = FieldR<double>;
    -
    213using DFieldTheta = FieldTheta<double>;
    -
    214using DFieldRTheta = FieldRTheta<double>;
    -
    215
    -
    216// --- Const Field definitions
    -
    217template <class ElementType>
    -
    218using ConstFieldR = ConstField<ElementType, IdxRangeR>;
    -
    219
    -
    220template <class ElementType>
    -
    221using ConstFieldTheta = ConstField<ElementType, IdxRangeTheta>;
    +
    195using SplineRThetaEvaluatorNullBound = ddc::SplineEvaluator2D<
    +
    196 Kokkos::DefaultExecutionSpace,
    +
    197 typename Kokkos::DefaultExecutionSpace::memory_space,
    +
    198 BSplinesR,
    + +
    200 GridR,
    +
    201 GridTheta,
    +
    202 ddc::NullExtrapolationRule, // boundary at r=0
    +
    203 ddc::NullExtrapolationRule, // boundary at rmax
    +
    204 ddc::PeriodicExtrapolationRule<Theta>,
    +
    205 ddc::PeriodicExtrapolationRule<Theta>,
    +
    206 GridR,
    +
    207 GridTheta>;
    +
    208// --- Index definitions
    +
    209using IdxR = Idx<GridR>;
    +
    210using IdxTheta = Idx<GridTheta>;
    +
    211using IdxRTheta = Idx<GridR, GridTheta>;
    +
    212
    +
    213// --- Index Step definitions
    +
    214using IdxStepR = IdxStep<GridR>;
    +
    215using IdxStepTheta = IdxStep<GridTheta>;
    +
    216using IdxStepRTheta = IdxStep<GridR, GridTheta>;
    +
    217
    +
    218// --- Index Range definitions
    +
    219using IdxRangeR = IdxRange<GridR>;
    +
    220using IdxRangeTheta = IdxRange<GridTheta>;
    +
    221using IdxRangeRTheta = IdxRange<GridR, GridTheta>;
    222
    -
    223template <class ElementType>
    -
    224using ConstFieldRTheta = ConstField<ElementType, IdxRangeRTheta>;
    -
    225
    -
    226using DConstFieldR = ConstFieldR<double>;
    -
    227using DConstFieldTheta = ConstFieldTheta<double>;
    -
    228using DConstFieldRTheta = ConstFieldRTheta<double>;
    -
    229
    -
    230// --- Spline representation definitions
    -
    231using Spline2DMem = DFieldMem<IdxRangeBSRTheta>;
    -
    232using Spline2D = DField<IdxRangeBSRTheta>;
    -
    233using ConstSpline2D = DConstField<IdxRangeBSRTheta>;
    -
    234
    - -
    241
    -
    245using IdxPolarBspl = Idx<PolarBSplinesRTheta>;
    +
    223using IdxRangeBSR = IdxRange<BSplinesR>;
    +
    224using IdxRangeBSTheta = IdxRange<BSplinesTheta>;
    +
    225using IdxRangeBSRTheta = IdxRange<BSplinesR, BSplinesTheta>;
    +
    226using IdxRangeBSPolar = IdxRange<PolarBSplinesRTheta>;
    +
    227
    +
    228
    +
    229// --- FieldMem definitions
    +
    230template <class ElementType>
    +
    231using FieldMemR = FieldMem<ElementType, IdxRangeR>;
    +
    232
    +
    233template <class ElementType>
    +
    234using FieldMemTheta = FieldMem<ElementType, IdxRangeTheta>;
    +
    235
    +
    236template <class ElementType>
    +
    237using FieldMemRTheta = FieldMem<ElementType, IdxRangeRTheta>;
    +
    238
    +
    239using DFieldMemR = FieldMemR<double>;
    +
    240using DFieldMemTheta = FieldMemTheta<double>;
    +
    241using DFieldMemRTheta = FieldMemRTheta<double>;
    +
    242
    +
    243// --- Field definitions
    +
    244template <class ElementType>
    +
    245using FieldR = Field<ElementType, IdxRangeR>;
    246
    -
    247
    -
    248// --- VectorFieldMem definitions
    -
    249template <class Dim1, class Dim2>
    - -
    251
    -
    252template <class Dim1, class Dim2>
    - -
    254
    -
    255template <class Dim1, class Dim2>
    - -
    257
    -
    258
    -
    259
    -
    260template <class Dim1, class Dim2>
    - -
    262
    -
    263template <class Dim1, class Dim2>
    - -
    265
    -
    266template <class Dim1, class Dim2>
    - -
    268
    -
    269
    +
    247template <class ElementType>
    +
    248using FieldTheta = Field<ElementType, IdxRangeTheta>;
    +
    249
    +
    250template <class ElementType>
    +
    251using FieldRTheta = Field<ElementType, IdxRangeRTheta>;
    +
    252
    +
    253using DFieldR = FieldR<double>;
    +
    254using DFieldTheta = FieldTheta<double>;
    +
    255using DFieldRTheta = FieldRTheta<double>;
    +
    256
    +
    257// --- Const Field definitions
    +
    258template <class ElementType>
    +
    259using ConstFieldR = ConstField<ElementType, IdxRangeR>;
    +
    260
    +
    261template <class ElementType>
    +
    262using ConstFieldTheta = ConstField<ElementType, IdxRangeTheta>;
    +
    263
    +
    264template <class ElementType>
    +
    265using ConstFieldRTheta = ConstField<ElementType, IdxRangeRTheta>;
    +
    266
    +
    267using DConstFieldR = ConstFieldR<double>;
    +
    268using DConstFieldTheta = ConstFieldTheta<double>;
    +
    269using DConstFieldRTheta = ConstFieldRTheta<double>;
    270
    -
    271// CARTESIAN SPACE AND VELOCITY ------------------------------------------------------------------
    -
    272// --- Continuous dimensions
    -
    -
    276struct X
    -
    277{
    -
    282 static bool constexpr PERIODIC = false;
    -
    283};
    +
    271// --- Spline representation definitions
    +
    272using Spline2DMem = DFieldMem<IdxRangeBSRTheta>;
    +
    273using Spline2D = DField<IdxRangeBSRTheta>;
    +
    274using ConstSpline2D = DConstField<IdxRangeBSRTheta>;
    +
    275
    + +
    282
    +
    286using IdxPolarBspl = Idx<PolarBSplinesRTheta>;
    +
    287
    +
    288
    +
    289// --- VectorFieldMem definitions
    +
    290template <class Dim1, class Dim2>
    + +
    292
    +
    293template <class Dim1, class Dim2>
    + +
    295
    +
    296template <class Dim1, class Dim2>
    + +
    298
    +
    299
    +
    300
    +
    301template <class Dim1, class Dim2>
    + +
    303
    +
    304template <class Dim1, class Dim2>
    + +
    306
    +
    307template <class Dim1, class Dim2>
    + +
    309
    +
    310
    +
    311
    +
    312// CARTESIAN SPACE AND VELOCITY ------------------------------------------------------------------
    +
    313// --- Continuous dimensions
    +
    +
    317struct X
    +
    318{
    +
    323 static bool constexpr PERIODIC = false;
    +
    324};
    -
    -
    287struct Y
    -
    288{
    -
    293 static bool constexpr PERIODIC = false;
    -
    294};
    +
    +
    328struct Y
    +
    329{
    +
    334 static bool constexpr PERIODIC = false;
    +
    335};
    -
    295
    -
    -
    299struct Vx
    -
    300{
    -
    305 static bool constexpr PERIODIC = false;
    -
    306};
    +
    336
    +
    +
    340struct Vx
    +
    341{
    +
    346 static bool constexpr PERIODIC = false;
    +
    347};
    -
    -
    310struct Vy
    -
    311{
    -
    316 static bool constexpr PERIODIC = false;
    -
    317};
    +
    +
    351struct Vy
    +
    352{
    +
    357 static bool constexpr PERIODIC = false;
    +
    358};
    -
    318
    -
    319
    -
    320using CoordX = Coord<X>;
    -
    321using CoordY = Coord<Y>;
    -
    322using CoordXY = Coord<X, Y>;
    -
    323
    -
    324using CoordVx = Coord<Vx>;
    -
    325using CoordVy = Coord<Vy>;
    -
    A class containing all information describing polar bsplines.
    Definition polar_bsplines.hpp:28
    +
    359
    +
    360
    +
    361using CoordX = Coord<X>;
    +
    362using CoordY = Coord<Y>;
    +
    363using CoordXY = Coord<X, Y>;
    +
    364
    +
    365using CoordVx = Coord<Vx>;
    +
    366using CoordVy = Coord<Vy>;
    +
    A class containing all information describing polar bsplines.
    Definition polar_bsplines.hpp:29
    Pre-declaration of VectorFieldMem.
    Definition vector_field_mem.hpp:54
    A class which holds multiple (scalar) fields in order to represent a vector field.
    Definition vector_field.hpp:64
    Definition geometry.hpp:93
    @@ -410,14 +451,14 @@
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:59
    Define periodic real Theta velocity dimension.
    Definition geometry.hpp:65
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:70
    -
    Define non periodic real X velocity dimension.
    Definition geometry.hpp:300
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:305
    -
    Define non periodic real Y velocity dimension.
    Definition geometry.hpp:311
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:316
    -
    Define non periodic real X dimension.
    Definition geometry.hpp:277
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:282
    -
    Define non periodic real Y dimension.
    Definition geometry.hpp:288
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:293
    +
    Define non periodic real X velocity dimension.
    Definition geometry.hpp:341
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:346
    +
    Define non periodic real Y velocity dimension.
    Definition geometry.hpp:352
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:357
    +
    Define non periodic real X dimension.
    Definition geometry.hpp:318
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:323
    +
    Define non periodic real Y dimension.
    Definition geometry.hpp:329
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:334
    diff --git a/geometryXVx_2geometry_2geometry_8hpp_source.html b/geometryXVx_2geometry_2geometry_8hpp_source.html index 926fa4b3e..380017185 100644 --- a/geometryXVx_2geometry_2geometry_8hpp_source.html +++ b/geometryXVx_2geometry_2geometry_8hpp_source.html @@ -524,10 +524,10 @@
    Definition geometry.hpp:94
    A class which describes the real space in the temporal direction.
    Definition geometry.hpp:44
    static bool constexpr PERIODIC
    A boolean indicating if the dimension is periodic.
    Definition geometry.hpp:48
    -
    Define non periodic real X velocity dimension.
    Definition geometry.hpp:300
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:305
    -
    Define non periodic real X dimension.
    Definition geometry.hpp:277
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:282
    +
    Define non periodic real X velocity dimension.
    Definition geometry.hpp:341
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:346
    +
    Define non periodic real X dimension.
    Definition geometry.hpp:318
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:323
    diff --git a/geometryXYVxVy_2geometry_2geometry_8hpp_source.html b/geometryXYVxVy_2geometry_2geometry_8hpp_source.html index 76174abc0..24e847250 100644 --- a/geometryXYVxVy_2geometry_2geometry_8hpp_source.html +++ b/geometryXYVxVy_2geometry_2geometry_8hpp_source.html @@ -480,14 +480,14 @@
    Definition geometry.hpp:131
    Definition geometry.hpp:94
    Definition geometry.hpp:78
    -
    Define non periodic real X velocity dimension.
    Definition geometry.hpp:300
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:305
    -
    Define non periodic real Y velocity dimension.
    Definition geometry.hpp:311
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:316
    -
    Define non periodic real X dimension.
    Definition geometry.hpp:277
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:282
    -
    Define non periodic real Y dimension.
    Definition geometry.hpp:288
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:293
    +
    Define non periodic real X velocity dimension.
    Definition geometry.hpp:341
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:346
    +
    Define non periodic real Y velocity dimension.
    Definition geometry.hpp:352
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:357
    +
    Define non periodic real X dimension.
    Definition geometry.hpp:318
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:323
    +
    Define non periodic real Y dimension.
    Definition geometry.hpp:329
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:334
    diff --git a/geometryXY_2geometry_2geometry_8hpp_source.html b/geometryXY_2geometry_2geometry_8hpp_source.html index 31fb62641..7abca520b 100644 --- a/geometryXY_2geometry_2geometry_8hpp_source.html +++ b/geometryXY_2geometry_2geometry_8hpp_source.html @@ -301,10 +301,10 @@
    Definition geometry.hpp:61
    Definition geometry.hpp:94
    Definition geometry.hpp:78
    -
    Define non periodic real X dimension.
    Definition geometry.hpp:277
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:282
    -
    Define non periodic real Y dimension.
    Definition geometry.hpp:288
    -
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:293
    +
    Define non periodic real X dimension.
    Definition geometry.hpp:318
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:323
    +
    Define non periodic real Y dimension.
    Definition geometry.hpp:329
    +
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:334
    diff --git a/inv__jacobian__o__point_8hpp_source.html b/inv__jacobian__o__point_8hpp_source.html index bf34fe51a..d3c614341 100644 --- a/inv__jacobian__o__point_8hpp_source.html +++ b/inv__jacobian__o__point_8hpp_source.html @@ -291,8 +291,8 @@
    An operator for calculating the inverse of the Jacobian at an O-point.
    Definition inv_jacobian_o_point.hpp:27
    Define non periodic real R dimension.
    Definition geometry.hpp:31
    Define periodic real Theta dimension.
    Definition geometry.hpp:42
    -
    Define non periodic real X dimension.
    Definition geometry.hpp:277
    -
    Define non periodic real Y dimension.
    Definition geometry.hpp:288
    +
    Define non periodic real X dimension.
    Definition geometry.hpp:318
    +
    Define non periodic real Y dimension.
    Definition geometry.hpp:329
    diff --git a/math__tools_8hpp_source.html b/math__tools_8hpp_source.html index 729c60fea..867f1065a 100644 --- a/math__tools_8hpp_source.html +++ b/math__tools_8hpp_source.html @@ -197,7 +197,7 @@
    89}
    90
    91template <class T, std::size_t D>
    -
    92inline T dot_product(std::array<T, D> const& a, std::array<T, D> const& b)
    +
    92KOKKOS_INLINE_FUNCTION T dot_product(std::array<T, D> const& a, std::array<T, D> const& b)
    93{
    94 T result = 0;
    95 for (std::size_t i(0); i < D; ++i) {
    diff --git a/navtreedata.js b/navtreedata.js index 14f6a3418..93542aae6 100644 --- a/navtreedata.js +++ b/navtreedata.js @@ -273,9 +273,9 @@ var NAVTREEINDEX = "classFluidMoments.html", "classMatrix__Center__Block.html", "classPolarBSplines_1_1Impl.html#aca84a982ed6da7a6167cd3832f23ec97", -"ddc__alias__inline__functions_8hpp_source.html", -"poisson__like__rhs__function_8hpp_source.html", -"structPolarSplineSpan.html#ab7972e7eda2e01153051dfef63695bde" +"collisions__intra_8hpp_source.html", +"output_8hpp_source.html", +"structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.html" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/navtreeindex0.js b/navtreeindex0.js index 4530dd698..6e8e30146 100644 --- a/navtreeindex0.js +++ b/navtreeindex0.js @@ -101,13 +101,13 @@ var NAVTREEINDEX0 = "classBslAdvectionVelocity.html#a85c69c265dbb2410fdd60f7b78117593":[16,24,0], "classBslAdvectionVelocity.html#a9774e52704d997107ddeeb0d4041a0a9":[16,24,1], "classBslExplicitPredCorrRTheta.html":[16,25], -"classBslExplicitPredCorrRTheta.html#a06242b4dc42f0275ebd48935a822a41e":[16,25,0], "classBslExplicitPredCorrRTheta.html#aaeabe916423e28d00c1ab8e0d8a4db54":[16,25,1], +"classBslExplicitPredCorrRTheta.html#af3274e5a2342ff8b6446622d48cd4ecf":[16,25,0], "classBslImplicitPredCorrRTheta.html":[16,26], +"classBslImplicitPredCorrRTheta.html#a27731f9a9c3e076aca10206bb0bfd3ba":[16,26,0], "classBslImplicitPredCorrRTheta.html#a35fb8dc2ae119da7ed06f1f8dc2d439e":[16,26,1], -"classBslImplicitPredCorrRTheta.html#a6bd04e7ccba156c98c4516ae0a3a3cae":[16,26,0], "classBslPredCorrRTheta.html":[16,27], -"classBslPredCorrRTheta.html#a82df60ba134e54e107c105544ef15763":[16,27,0], +"classBslPredCorrRTheta.html#ac5a6457ec7d54f8fbb926aca93a55069":[16,27,0], "classBslPredCorrRTheta.html#ad47f1c1d3fb1b113fee4bd955272a5b0":[16,27,1], "classBumpontailEquilibrium.html":[16,36], "classBumpontailEquilibrium.html#a4c85a379ea216bb7ac95186cf8af8817":[16,36,2], diff --git a/navtreeindex3.js b/navtreeindex3.js index 2fbc87500..b62ec7748 100644 --- a/navtreeindex3.js +++ b/navtreeindex3.js @@ -63,8 +63,8 @@ var NAVTREEINDEX3 = "classMaxwellianEquilibrium.html#a0cc2b9bdb6300dd5661cedbfc27957b3":[16,153,3], "classMaxwellianEquilibrium.html#a0de7a4e921a394a01123af2eae342c21":[16,153,13], "classMaxwellianEquilibrium.html#a19a92489bebf290fb48a26a641c9e292":[16,153,15], -"classMaxwellianEquilibrium.html#a37c0f236ccb7c4a8ce018c6d560c75c4":[16,153,7], "classMaxwellianEquilibrium.html#a37c0f236ccb7c4a8ce018c6d560c75c4":[16,153,11], +"classMaxwellianEquilibrium.html#a37c0f236ccb7c4a8ce018c6d560c75c4":[16,153,7], "classMaxwellianEquilibrium.html#a52616624ef6c0da7107c05d680a11a74":[16,153,0], "classMaxwellianEquilibrium.html#a86de6dac16d6f3a968b16b028c4bee8d":[16,153,5], "classMaxwellianEquilibrium.html#a86de6dac16d6f3a968b16b028c4bee8d":[16,153,9], diff --git a/navtreeindex4.js b/navtreeindex4.js index 166318c1c..7ae647f78 100644 --- a/navtreeindex4.js +++ b/navtreeindex4.js @@ -31,16 +31,24 @@ var NAVTREEINDEX4 = "classPolarSplineEvaluator.html#adc1c3699cba47ea9b6bc525ea2689580":[16,183,14], "classPolarSplineEvaluator.html#aff023d9beff16f85fa01f2cf45e6433a":[16,183,6], "classPolarSplineFEMPoissonLikeSolver.html":[16,184], -"classPolarSplineFEMPoissonLikeSolver.html#a400425e0ecc5088c1c6427ce8f1e881b":[16,184,10], -"classPolarSplineFEMPoissonLikeSolver.html#a4be4b0150bea8b8972bf3400e52d1bcb":[16,184,6], -"classPolarSplineFEMPoissonLikeSolver.html#a5a09f433677b3358cdb5fe205a003bf8":[16,184,8], -"classPolarSplineFEMPoissonLikeSolver.html#a68effe5bc79a8795c6513a38489d6813":[16,184,7], -"classPolarSplineFEMPoissonLikeSolver.html#ab96025644e98f8d005f8df7f1c6506e4":[16,184,9], -"classPolarSplineFEMPoissonLikeSolver.html#ad6c2770cd84599b20bc3a9adc5a94c6b":[16,184,11], -"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1RBasisSubset":[16,184,2], -"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1RCellDim":[16,184,3], -"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaBasisSubset":[16,184,4], -"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaCellDim":[16,184,5], +"classPolarSplineFEMPoissonLikeSolver.html#a0c880f33d839cedfafdf2b3b32139417":[16,184,9], +"classPolarSplineFEMPoissonLikeSolver.html#a0d5abf61af4436e3bb7ee922b035447a":[16,184,12], +"classPolarSplineFEMPoissonLikeSolver.html#a161e772a03b980ad5cb19bdeb6b02925":[16,184,15], +"classPolarSplineFEMPoissonLikeSolver.html#a2ffbf750c185ff40c8a4697b3937bc63":[16,184,16], +"classPolarSplineFEMPoissonLikeSolver.html#a36be84f08a082b52a73f5134b8f1a8e2":[16,184,14], +"classPolarSplineFEMPoissonLikeSolver.html#a6e4d95b7b1ce10cf43579ff77b9ea88b":[16,184,11], +"classPolarSplineFEMPoissonLikeSolver.html#a90ab8ff1603bc0a3f36b5a0c5077de5b":[16,184,18], +"classPolarSplineFEMPoissonLikeSolver.html#ac699f74359d1f9160bed57ffcf325861":[16,184,17], +"classPolarSplineFEMPoissonLikeSolver.html#ad1b92b440d6e5c71e14b09d53beefd84":[16,184,19], +"classPolarSplineFEMPoissonLikeSolver.html#ae5645f014d26559165955e51746f3e70":[16,184,13], +"classPolarSplineFEMPoissonLikeSolver.html#aea010ac6bec8090ec2686ad2110befd4":[16,184,10], +"classPolarSplineFEMPoissonLikeSolver.html#aea7575e5ec7f7e2a776c1677a79137d9":[16,184,8], +"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1EvalDeriv1DType":[16,184,0], +"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1EvalDeriv2DType":[16,184,1], +"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1RBasisSubset":[16,184,4], +"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1RCellDim":[16,184,5], +"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaBasisSubset":[16,184,6], +"classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaCellDim":[16,184,7], "classPreallocatableLagrangeInterpolator.html":[16,187], "classPreallocatableLagrangeInterpolator.html#ab22f8df459fbda09a57c004610f3d9db":[16,187,0], "classPreallocatableLagrangeInterpolator.html#ae427633c86b7699ce59d9db59bbf50ae":[16,187,1], @@ -233,7 +241,7 @@ var NAVTREEINDEX4 = "classVortexMergerDensitySolution.html#a75f051a4a9d1ccfee6c1976e4a914c75":[16,226,0], "classVortexMergerDensitySolution.html#aebe20037b60ca33bd8020faba80fe4f8":[16,226,1], "classVortexMergerEquilibria.html":[16,227], -"classVortexMergerEquilibria.html#a8e5ac553bd6628804db325b59ca8605d":[16,227,0], +"classVortexMergerEquilibria.html#a3a8975ef28538c07c2a08ce9b0db3c9f":[16,227,0], "classVortexMergerEquilibria.html#ad3b9139693f6f2aeabf9355d14c7c37b":[16,227,1], "classVortexMergerEquilibria.html#afcf358db72fd433f4470facfecd25019":[16,227,2], "classddcHelper_1_1NonUniformInterpolationPoints.html":[16,2,2], @@ -241,13 +249,5 @@ var NAVTREEINDEX4 = "collisioninfo_8hpp_source.html":[17,0,1,0], "collisioninfo__radial_8hpp_source.html":[17,0,1,1], "collisions__dimensions_8hpp_source.html":[17,0,1,2], -"collisions__inter_8hpp_source.html":[17,0,5,4,0], -"collisions__intra_8hpp_source.html":[17,0,5,4,1], -"collisions__utils_8hpp_source.html":[17,0,5,4,2], -"combined__mapping_8hpp_source.html":[17,2,0,0,0,0,5], -"connectivity_8hpp_source.html":[17,0,14,0,0], -"connectivity__details_8hpp_source.html":[17,0,14,0,1], -"constant__extrapolation__rules__onion_8hpp_source.html":[17,0,14,2,0], -"crank__nicolson_8hpp_source.html":[17,0,19,0], -"czarny__to__cartesian_8hpp_source.html":[17,2,0,0,0,0,6] +"collisions__inter_8hpp_source.html":[17,0,5,4,0] }; diff --git a/navtreeindex5.js b/navtreeindex5.js index 824ec73c2..0b56fc3e7 100644 --- a/navtreeindex5.js +++ b/navtreeindex5.js @@ -1,5 +1,13 @@ var NAVTREEINDEX5 = { +"collisions__intra_8hpp_source.html":[17,0,5,4,1], +"collisions__utils_8hpp_source.html":[17,0,5,4,2], +"combined__mapping_8hpp_source.html":[17,2,0,0,0,0,5], +"connectivity_8hpp_source.html":[17,0,14,0,0], +"connectivity__details_8hpp_source.html":[17,0,14,0,1], +"constant__extrapolation__rules__onion_8hpp_source.html":[17,0,14,2,0], +"crank__nicolson_8hpp_source.html":[17,0,19,0], +"czarny__to__cartesian_8hpp_source.html":[17,2,0,0,0,0,6], "ddc__alias__inline__functions_8hpp_source.html":[17,0,20,1], "ddc__aliases_8hpp_source.html":[17,0,20,2], "ddc__helper_8hpp_source.html":[17,0,20,3], @@ -241,13 +249,5 @@ var NAVTREEINDEX5 = "noperturbinitialization_8hpp_source.html":[17,0,4,1,3], "null__extrapolation__rules_8hpp_source.html":[17,0,14,2,4], "nulladvectionvx_8hpp_source.html":[17,0,0,5], -"onion__patch__locator_8hpp_source.html":[17,0,14,0,6], -"output_8hpp_source.html":[17,0,9,1], -"pages.html":[], -"paraconfpp_8hpp_source.html":[17,0,15,0], -"partial__derivatives_8hpp.html":[17,0,11,1], -"partial__derivatives_8hpp_source.html":[17,0,11,1], -"patch_8hpp_source.html":[17,0,14,0,7], -"pdi__helper_8hpp_source.html":[17,0,9,2], -"physical__geometry_8hpp_source.html":[17,1,2,0,8] +"onion__patch__locator_8hpp_source.html":[17,0,14,0,6] }; diff --git a/navtreeindex6.js b/navtreeindex6.js index 0cbd041c3..a784cde7d 100644 --- a/navtreeindex6.js +++ b/navtreeindex6.js @@ -1,5 +1,13 @@ var NAVTREEINDEX6 = { +"output_8hpp_source.html":[17,0,9,1], +"pages.html":[], +"paraconfpp_8hpp_source.html":[17,0,15,0], +"partial__derivatives_8hpp.html":[17,0,11,1], +"partial__derivatives_8hpp_source.html":[17,0,11,1], +"patch_8hpp_source.html":[17,0,14,0,7], +"pdi__helper_8hpp_source.html":[17,0,9,2], +"physical__geometry_8hpp_source.html":[17,1,2,0,8], "poisson__like__rhs__function_8hpp_source.html":[17,0,3,5,1], "polar__bsplines_8hpp_source.html":[17,2,0,0,0,4], "polar__poisson_2params_8yaml_8hpp_source.html":[17,1,1,3,0], @@ -241,13 +249,5 @@ var NAVTREEINDEX6 = "structPolarSpline.html#a34e62893f3710c8798ada29346a5a842":[16,182,2], "structPolarSpline.html#a5a692091b5e1dbccc094ec737afc5cef":[16,182,0], "structPolarSpline.html#ab3a28213cc6fec9de5bed1b39626ff19":[16,182,1], -"structPolarSpline.html#adf1f0b99bd37c9d9fea108dcf8570adb":[16,182,6], -"structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.html":[16,184,0], -"structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.html":[16,184,1], -"structPolarSplineSpan.html":[16,185], -"structPolarSplineSpan.html#a09f1d7d4e23574060fce940f93bb97fd":[16,185,2], -"structPolarSplineSpan.html#a0ad2c2a3ed2a32668983b487f676eaa3":[16,185,5], -"structPolarSplineSpan.html#a12d5dfac7a9deb9c15738773a51b11b3":[16,185,0], -"structPolarSplineSpan.html#a1f39c4c6ea9d020a58eec4b8507691bd":[16,185,1], -"structPolarSplineSpan.html#a8a7719af1d76ece52c9f66071b8f05e9":[16,185,3] +"structPolarSpline.html#adf1f0b99bd37c9d9fea108dcf8570adb":[16,182,6] }; diff --git a/navtreeindex7.js b/navtreeindex7.js index 707844580..1dfd886e2 100644 --- a/navtreeindex7.js +++ b/navtreeindex7.js @@ -1,5 +1,13 @@ var NAVTREEINDEX7 = { +"structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.html":[16,184,2], +"structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.html":[16,184,3], +"structPolarSplineSpan.html":[16,185], +"structPolarSplineSpan.html#a09f1d7d4e23574060fce940f93bb97fd":[16,185,2], +"structPolarSplineSpan.html#a0ad2c2a3ed2a32668983b487f676eaa3":[16,185,5], +"structPolarSplineSpan.html#a12d5dfac7a9deb9c15738773a51b11b3":[16,185,0], +"structPolarSplineSpan.html#a1f39c4c6ea9d020a58eec4b8507691bd":[16,185,1], +"structPolarSplineSpan.html#a8a7719af1d76ece52c9f66071b8f05e9":[16,185,3], "structPolarSplineSpan.html#ab7972e7eda2e01153051dfef63695bde":[16,185,4], "structPolarSplineSpan.html#ad314615b5ac228a7e487def09baed1a7":[16,185,6], "structPolarSplineView.html":[16,186], diff --git a/onion__patch__locator_8hpp_source.html b/onion__patch__locator_8hpp_source.html index aae835325..dce1ac4c8 100644 --- a/onion__patch__locator_8hpp_source.html +++ b/onion__patch__locator_8hpp_source.html @@ -321,8 +321,8 @@
    Define non periodic real R dimension.
    Definition geometry.hpp:31
    Define periodic real Theta dimension.
    Definition geometry.hpp:42
    static bool constexpr PERIODIC
    Define periodicity of the dimension.
    Definition geometry.hpp:47
    -
    Define non periodic real X dimension.
    Definition geometry.hpp:277
    -
    Define non periodic real Y dimension.
    Definition geometry.hpp:288
    +
    Define non periodic real X dimension.
    Definition geometry.hpp:318
    +
    Define non periodic real Y dimension.
    Definition geometry.hpp:329
    diff --git a/polar__bsplines_8hpp_source.html b/polar__bsplines_8hpp_source.html index 2a9f99489..7a38ba1bd 100644 --- a/polar__bsplines_8hpp_source.html +++ b/polar__bsplines_8hpp_source.html @@ -115,604 +115,606 @@
    7#include <sll/bernstein.hpp>
    8#include <sll/mapping/cartesian_to_barycentric.hpp>
    9#include <sll/mapping/discrete_to_cartesian.hpp>
    -
    10#include <sll/polar_spline.hpp>
    -
    11#include <sll/view.hpp>
    -
    12
    -
    26template <class BSplinesR, class BSplinesTheta, int C>
    -
    - -
    28{
    -
    29 static_assert(C >= -1, "Parameter `C` cannot be less than -1");
    -
    30 static_assert(C < 2, "Values larger than 1 are not implemented for parameter `C`");
    -
    31 static_assert(!BSplinesR::is_periodic(), "Radial bsplines must not be periodic.");
    -
    32 static_assert(!BSplinesR::is_uniform(), "Radial bsplines must have knots at the boundary.");
    -
    33 static_assert(BSplinesTheta::is_periodic(), "Poloidal bsplines should be periodic.");
    -
    34
    -
    35private:
    -
    36 // Tags to determine what to evaluate
    -
    37 struct eval_type
    -
    38 {
    -
    39 };
    -
    40
    -
    41 struct eval_deriv_type
    -
    42 {
    -
    43 };
    -
    44
    -
    45public:
    - -
    48
    - -
    51
    +
    10#include <sll/mapping/mapping_tools.hpp>
    +
    11#include <sll/polar_spline.hpp>
    +
    12#include <sll/view.hpp>
    +
    13
    +
    27template <class BSplinesR, class BSplinesTheta, int C>
    +
    + +
    29{
    +
    30 static_assert(C >= -1, "Parameter `C` cannot be less than -1");
    +
    31 static_assert(C < 2, "Values larger than 1 are not implemented for parameter `C`");
    +
    32 static_assert(!BSplinesR::is_periodic(), "Radial bsplines must not be periodic.");
    +
    33 static_assert(!BSplinesR::is_uniform(), "Radial bsplines must have knots at the boundary.");
    +
    34 static_assert(BSplinesTheta::is_periodic(), "Poloidal bsplines should be periodic.");
    +
    35
    +
    36private:
    +
    37 // Tags to determine what to evaluate
    +
    38 struct eval_type
    +
    39 {
    +
    40 };
    +
    41
    +
    42 struct eval_deriv_type
    +
    43 {
    +
    44 };
    +
    45
    +
    46public:
    + +
    49
    +
    52
    -
    54 using DimR = typename BSplinesR::continuous_dimension_type;
    -
    55
    -
    57 using DimTheta = typename BSplinesTheta::continuous_dimension_type;
    -
    58
    -
    59public:
    -
    61 static int constexpr continuity = C;
    -
    62
    -
    63public:
    - -
    72
    -
    77 using tensor_product_index_type = ddc::DiscreteElement<BSplinesR, BSplinesTheta>;
    -
    78
    -
    83 using tensor_product_idx_range_type = ddc::DiscreteDomain<BSplinesR, BSplinesTheta>;
    -
    84
    -
    89 using tensor_product_idx_step_type = ddc::DiscreteVector<BSplinesR, BSplinesTheta>;
    -
    90
    -
    91private:
    -
    92 using IdxR = ddc::DiscreteElement<BSplinesR>;
    -
    93 using IdxTheta = ddc::DiscreteElement<BSplinesTheta>;
    -
    94 using IdxStepR = ddc::DiscreteVector<BSplinesR>;
    -
    95 using IdxStepTheta = ddc::DiscreteVector<BSplinesTheta>;
    -
    96
    -
    97public:
    -
    -
    103 static constexpr std::size_t n_singular_basis()
    -
    104 {
    -
    105 return (C + 1) * (C + 2) / 2;
    -
    106 }
    -
    -
    107
    +
    53
    +
    55 using DimR = typename BSplinesR::continuous_dimension_type;
    +
    56
    +
    58 using DimTheta = typename BSplinesTheta::continuous_dimension_type;
    +
    59
    +
    60public:
    +
    62 static int constexpr continuity = C;
    +
    63
    +
    64public:
    + +
    73
    +
    78 using tensor_product_index_type = ddc::DiscreteElement<BSplinesR, BSplinesTheta>;
    +
    79
    +
    84 using tensor_product_idx_range_type = ddc::DiscreteDomain<BSplinesR, BSplinesTheta>;
    +
    85
    +
    90 using tensor_product_idx_step_type = ddc::DiscreteVector<BSplinesR, BSplinesTheta>;
    +
    91
    +
    92private:
    +
    93 using IdxR = ddc::DiscreteElement<BSplinesR>;
    +
    94 using IdxTheta = ddc::DiscreteElement<BSplinesTheta>;
    +
    95 using IdxStepR = ddc::DiscreteVector<BSplinesR>;
    +
    96 using IdxStepTheta = ddc::DiscreteVector<BSplinesTheta>;
    +
    97
    +
    98public:
    +
    +
    104 static constexpr std::size_t n_singular_basis()
    +
    105 {
    +
    106 return (C + 1) * (C + 2) / 2;
    +
    107 }
    +
    108
    -
    116 template <class DDim>
    -
    -
    117 static constexpr ddc::DiscreteDomain<DDim> singular_idx_range()
    -
    118 {
    -
    119 return ddc::DiscreteDomain<DDim>(
    -
    120 ddc::DiscreteElement<DDim> {0},
    -
    121 ddc::DiscreteVector<DDim> {n_singular_basis()});
    -
    122 }
    -
    -
    123
    -
    132 template <class DDim>
    -
    -
    133 static KOKKOS_FUNCTION ddc::DiscreteElement<DDim> get_polar_index(
    -
    134 tensor_product_index_type const& idx)
    -
    135 {
    -
    136 int const r_idx = ddc::select<BSplinesR>(idx).uid();
    -
    137 int const theta_idx = ddc::select<BSplinesTheta>(idx).uid();
    -
    138 assert(r_idx >= C + 1);
    -
    139 int local_idx((r_idx - C - 1) * ddc::discrete_space<BSplinesTheta>().nbasis() + theta_idx);
    -
    140 return ddc::DiscreteElement<DDim>(n_singular_basis() + local_idx);
    -
    141 }
    -
    -
    142
    -
    151 template <class DDim>
    -
    152 static KOKKOS_FUNCTION tensor_product_index_type
    -
    -
    153 get_2d_index(ddc::DiscreteElement<DDim> const& idx)
    -
    154 {
    -
    155 assert(idx.uid() >= n_singular_basis());
    -
    156 int const idx_2d = idx.uid() - n_singular_basis();
    -
    157 int const r_idx = idx_2d / ddc::discrete_space<BSplinesTheta>().nbasis();
    -
    158 int const theta_idx = idx_2d - r_idx * ddc::discrete_space<BSplinesTheta>().nbasis();
    -
    159 ddc::DiscreteElement<BSplinesR> r_idx_elem(r_idx + C + 1);
    -
    160 ddc::DiscreteElement<BSplinesTheta> theta_idx_elem(theta_idx);
    -
    161 return ddc::DiscreteElement<BSplinesR, BSplinesTheta>(r_idx_elem, theta_idx_elem);
    -
    162 }
    -
    -
    163
    -
    164public:
    -
    171 template <class DDim, class MemorySpace>
    -
    -
    172 class Impl
    -
    173 {
    -
    174 template <class ODDim, class OMemorySpace>
    -
    175 friend class Impl;
    -
    176
    -
    177 template <class ExecSpace, class PBSpl, class OMemorySpace>
    - -
    179 ExecSpace const& execution_space,
    - -
    181
    -
    182 private:
    -
    191 using singular_basis_linear_combination_idx_range_type
    -
    192 = ddc::DiscreteDomain<DDim, BSplinesR, BSplinesTheta>;
    -
    193
    -
    194 ddc::Chunk<
    -
    195 double,
    -
    196 singular_basis_linear_combination_idx_range_type,
    -
    197 ddc::KokkosAllocator<double, MemorySpace>>
    -
    198 m_singular_basis_elements_alloc;
    -
    199
    -
    200 ddc::ChunkSpan<
    -
    201 double,
    -
    202 singular_basis_linear_combination_idx_range_type,
    -
    203 Kokkos::layout_right,
    -
    204 MemorySpace>
    -
    205 m_singular_basis_elements;
    -
    206
    -
    207 public:
    -
    - -
    210 {
    -
    211 };
    -
    -
    - -
    214 {
    -
    215 };
    -
    -
    - -
    218 {
    -
    219 };
    -
    -
    220
    -
    221 template <class DiscreteMapping>
    -
    - - -
    224 typename DiscreteMapping::cartesian_tag_x,
    -
    225 typename DiscreteMapping::cartesian_tag_y,
    -
    226 Corner1Tag,
    -
    227 Corner2Tag,
    -
    228 Corner3Tag,
    -
    229 C>
    -
    230 {
    -
    231 };
    -
    -
    232
    - -
    235
    -
    237 using discrete_element_type = ddc::DiscreteElement<DDim>;
    -
    238
    -
    240 using discrete_domain_type = ddc::DiscreteDomain<DDim>;
    -
    241
    -
    243 using discrete_vector_type = ddc::DiscreteVector<DDim>;
    -
    244
    -
    252 template <class DiscreteMapping>
    -
    -
    253 Impl(const DiscreteMapping& curvilinear_to_cartesian)
    -
    254 {
    -
    255 static_assert(std::is_same_v<MemorySpace, Kokkos::HostSpace>);
    -
    256 using DimX = typename DiscreteMapping::cartesian_tag_x;
    -
    257 using DimY = typename DiscreteMapping::cartesian_tag_y;
    -
    258 using mapping_tensor_product_index_type = ddc::DiscreteElement<
    -
    259 typename DiscreteMapping::BSplineR,
    -
    260 typename DiscreteMapping::BSplineTheta>;
    -
    261 if constexpr (C > -1) {
    -
    262 const ddc::Coordinate<DimX, DimY> pole
    -
    263 = curvilinear_to_cartesian(ddc::Coordinate<DimR, DimTheta>(0.0, 0.0));
    -
    264 const double x0 = ddc::get<DimX>(pole);
    -
    265 const double y0 = ddc::get<DimY>(pole);
    -
    266 double tau = 0.0;
    -
    267 for (std::size_t i(0); i < ddc::discrete_space<BSplinesTheta>().size(); ++i) {
    -
    268 const ddc::Coordinate<DimX, DimY> point
    -
    269 = curvilinear_to_cartesian.control_point(
    -
    270 mapping_tensor_product_index_type(1, i));
    -
    271
    -
    272 const double c_x = ddc::get<DimX>(point);
    -
    273 const double c_y = ddc::get<DimY>(point);
    -
    274
    -
    275 double tau1 = -2.0 * (c_x - x0);
    -
    276 double tau2 = c_x - x0 - sqrt(3.0) * (c_y - y0);
    -
    277 double tau3 = c_x - x0 + sqrt(3.0) * (c_y - y0);
    -
    278 tau = tau > tau1 ? tau : tau1;
    -
    279 tau = tau > tau2 ? tau : tau2;
    -
    280 tau = tau > tau3 ? tau : tau3;
    -
    281 }
    -
    282 // Determine the corners for the barycentric coordinates
    -
    283 const ddc::Coordinate<DimX, DimY> corner1(x0 + tau, y0);
    -
    284 const ddc::Coordinate<DimX, DimY>
    -
    285 corner2(x0 - 0.5 * tau, y0 + 0.5 * tau * sqrt(3.0));
    +
    109
    +
    117 template <class DDim>
    +
    +
    118 static constexpr ddc::DiscreteDomain<DDim> singular_idx_range()
    +
    119 {
    +
    120 return ddc::DiscreteDomain<DDim>(
    +
    121 ddc::DiscreteElement<DDim> {0},
    +
    122 ddc::DiscreteVector<DDim> {n_singular_basis()});
    +
    123 }
    +
    +
    124
    +
    133 template <class DDim>
    +
    +
    134 static KOKKOS_FUNCTION ddc::DiscreteElement<DDim> get_polar_index(
    +
    135 tensor_product_index_type const& idx)
    +
    136 {
    +
    137 int const r_idx = ddc::select<BSplinesR>(idx).uid();
    +
    138 int const theta_idx = ddc::select<BSplinesTheta>(idx).uid();
    +
    139 assert(r_idx >= C + 1);
    +
    140 int local_idx((r_idx - C - 1) * ddc::discrete_space<BSplinesTheta>().nbasis() + theta_idx);
    +
    141 return ddc::DiscreteElement<DDim>(n_singular_basis() + local_idx);
    +
    142 }
    +
    +
    143
    +
    152 template <class DDim>
    +
    153 static KOKKOS_FUNCTION tensor_product_index_type
    +
    +
    154 get_2d_index(ddc::DiscreteElement<DDim> const& idx)
    +
    155 {
    +
    156 assert(idx.uid() >= n_singular_basis());
    +
    157 int const idx_2d = idx.uid() - n_singular_basis();
    +
    158 int const r_idx = idx_2d / ddc::discrete_space<BSplinesTheta>().nbasis();
    +
    159 int const theta_idx = idx_2d - r_idx * ddc::discrete_space<BSplinesTheta>().nbasis();
    +
    160 ddc::DiscreteElement<BSplinesR> r_idx_elem(r_idx + C + 1);
    +
    161 ddc::DiscreteElement<BSplinesTheta> theta_idx_elem(theta_idx);
    +
    162 return ddc::DiscreteElement<BSplinesR, BSplinesTheta>(r_idx_elem, theta_idx_elem);
    +
    163 }
    +
    +
    164
    +
    165public:
    +
    172 template <class DDim, class MemorySpace>
    +
    +
    173 class Impl
    +
    174 {
    +
    175 template <class ODDim, class OMemorySpace>
    +
    176 friend class Impl;
    +
    177
    +
    178 template <class ExecSpace, class PBSpl, class OMemorySpace>
    + +
    180 ExecSpace const& execution_space,
    + +
    182
    +
    183 private:
    +
    192 using singular_basis_linear_combination_idx_range_type
    +
    193 = ddc::DiscreteDomain<DDim, BSplinesR, BSplinesTheta>;
    +
    194
    +
    195 ddc::Chunk<
    +
    196 double,
    +
    197 singular_basis_linear_combination_idx_range_type,
    +
    198 ddc::KokkosAllocator<double, MemorySpace>>
    +
    199 m_singular_basis_elements_alloc;
    +
    200
    +
    201 ddc::ChunkSpan<
    +
    202 double,
    +
    203 singular_basis_linear_combination_idx_range_type,
    +
    204 Kokkos::layout_right,
    +
    205 MemorySpace>
    +
    206 m_singular_basis_elements;
    +
    207
    +
    208 public:
    +
    + +
    211 {
    +
    212 };
    +
    +
    + +
    215 {
    +
    216 };
    +
    +
    + +
    219 {
    +
    220 };
    +
    +
    221
    +
    222 template <class DiscreteMapping>
    +
    + + +
    225 typename DiscreteMapping::cartesian_tag_x,
    +
    226 typename DiscreteMapping::cartesian_tag_y,
    +
    227 Corner1Tag,
    +
    228 Corner2Tag,
    +
    229 Corner3Tag,
    +
    230 C>
    +
    231 {
    +
    232 };
    +
    +
    233
    + +
    236
    +
    238 using discrete_element_type = ddc::DiscreteElement<DDim>;
    +
    239
    +
    241 using discrete_domain_type = ddc::DiscreteDomain<DDim>;
    +
    242
    +
    244 using discrete_vector_type = ddc::DiscreteVector<DDim>;
    +
    245
    +
    253 template <class DiscreteMapping>
    +
    +
    254 Impl(const DiscreteMapping& curvilinear_to_cartesian)
    +
    255 {
    +
    256 static_assert(is_accessible_v<Kokkos::DefaultHostExecutionSpace, DiscreteMapping>);
    +
    257 static_assert(std::is_same_v<MemorySpace, Kokkos::HostSpace>);
    +
    258 using DimX = typename DiscreteMapping::cartesian_tag_x;
    +
    259 using DimY = typename DiscreteMapping::cartesian_tag_y;
    +
    260 using mapping_tensor_product_index_type = ddc::DiscreteElement<
    +
    261 typename DiscreteMapping::BSplineR,
    +
    262 typename DiscreteMapping::BSplineTheta>;
    +
    263 if constexpr (C > -1) {
    +
    264 const ddc::Coordinate<DimX, DimY> pole
    +
    265 = curvilinear_to_cartesian(ddc::Coordinate<DimR, DimTheta>(0.0, 0.0));
    +
    266 const double x0 = ddc::get<DimX>(pole);
    +
    267 const double y0 = ddc::get<DimY>(pole);
    +
    268 double tau = 0.0;
    +
    269 for (std::size_t i(0); i < ddc::discrete_space<BSplinesTheta>().size(); ++i) {
    +
    270 const ddc::Coordinate<DimX, DimY> point
    +
    271 = curvilinear_to_cartesian.control_point(
    +
    272 mapping_tensor_product_index_type(1, i));
    +
    273
    +
    274 const double c_x = ddc::get<DimX>(point);
    +
    275 const double c_y = ddc::get<DimY>(point);
    +
    276
    +
    277 double tau1 = -2.0 * (c_x - x0);
    +
    278 double tau2 = c_x - x0 - sqrt(3.0) * (c_y - y0);
    +
    279 double tau3 = c_x - x0 + sqrt(3.0) * (c_y - y0);
    +
    280 tau = tau > tau1 ? tau : tau1;
    +
    281 tau = tau > tau2 ? tau : tau2;
    +
    282 tau = tau > tau3 ? tau : tau3;
    +
    283 }
    +
    284 // Determine the corners for the barycentric coordinates
    +
    285 const ddc::Coordinate<DimX, DimY> corner1(x0 + tau, y0);
    286 const ddc::Coordinate<DimX, DimY>
    -
    287 corner3(x0 - 0.5 * tau, y0 - 0.5 * tau * sqrt(3.0));
    -
    288
    - -
    290 barycentric_coordinate_converter(corner1, corner2, corner3);
    -
    291
    -
    292 using BernsteinBasis = IntermediateBernsteinBasis<DiscreteMapping>;
    +
    287 corner2(x0 - 0.5 * tau, y0 + 0.5 * tau * sqrt(3.0));
    +
    288 const ddc::Coordinate<DimX, DimY>
    +
    289 corner3(x0 - 0.5 * tau, y0 - 0.5 * tau * sqrt(3.0));
    +
    290
    + +
    292 barycentric_coordinate_converter(corner1, corner2, corner3);
    293
    -
    294 ddc::init_discrete_space<BernsteinBasis>(barycentric_coordinate_converter);
    +
    294 using BernsteinBasis = IntermediateBernsteinBasis<DiscreteMapping>;
    295
    -
    296 // The number of radial bases used to construct the bsplines traversing the singular point.
    -
    297 constexpr IdxStepR nr_in_singular(C + 1);
    -
    298 assert(nr_in_singular.value() < int(ddc::discrete_space<BSplinesR>().size()));
    -
    299
    -
    300 // The number of poloidal bases used to construct the bsplines traversing the singular point.
    -
    301 const IdxStepTheta np_in_singular(ddc::discrete_space<BSplinesTheta>().nbasis());
    -
    302
    -
    303 // The number of elements of the poloidal basis which will have an associated coefficient
    -
    304 // (This will be larger than np_in_singular as it includes the periodicity)
    -
    305 const IdxStepTheta np_tot(ddc::discrete_space<BSplinesTheta>().size());
    -
    306
    -
    307 // The index range of the 2D bsplines in the innermost circles from which the polar bsplines
    -
    308 // traversing the singular point will be constructed.
    -
    309 tensor_product_idx_range_type const dom_bsplines_inner(
    - -
    311 tensor_product_idx_step_type(nr_in_singular, np_tot));
    -
    312
    -
    313 // Initialise memory
    -
    314 m_singular_basis_elements_alloc
    -
    315 = ddc::Chunk<double, singular_basis_linear_combination_idx_range_type>(
    -
    316 singular_basis_linear_combination_idx_range_type(
    -
    317 singular_idx_range<DDim>(),
    -
    318 dom_bsplines_inner));
    -
    319 m_singular_basis_elements = m_singular_basis_elements_alloc.span_view();
    -
    320
    -
    321 ddc::DiscreteDomain<BernsteinBasis> bernstein_idx_range(
    -
    322 ddc::DiscreteElement<BernsteinBasis> {0},
    -
    323 ddc::DiscreteVector<BernsteinBasis> {n_singular_basis()});
    -
    324
    -
    325 ddc::DiscreteDomain<BSplinesTheta> poloidal_spline_idx_range
    -
    326 = ddc::discrete_space<BSplinesTheta>().full_domain();
    -
    327
    -
    328 for (IdxR const ir : ddc::DiscreteDomain<BSplinesR>(IdxR(0), IdxStepR(C + 1))) {
    -
    329 for (IdxTheta const ip : poloidal_spline_idx_range.take_first(np_in_singular)) {
    -
    330 const ddc::Coordinate<DimX, DimY> point
    -
    331 = curvilinear_to_cartesian.control_point(
    -
    332 mapping_tensor_product_index_type(ir, ip));
    -
    333 ddc::Chunk<double, ddc::DiscreteDomain<BernsteinBasis>> bernstein_vals(
    -
    334 bernstein_idx_range);
    -
    335 ddc::discrete_space<BernsteinBasis>()
    -
    336 .eval_basis(bernstein_vals.span_view(), point);
    -
    337 // Fill spline coefficients
    -
    338 for (auto k : bernstein_idx_range) {
    -
    339 m_singular_basis_elements(discrete_element_type {k.uid()}, ir, ip)
    -
    340 = bernstein_vals(k);
    -
    341 }
    -
    342 }
    -
    343 for (discrete_element_type k : singular_idx_range<DDim>()) {
    -
    344 for (IdxTheta const ip : poloidal_spline_idx_range.take_first(
    -
    345 IdxStepTheta {BSplinesTheta::degree()})) {
    -
    346 m_singular_basis_elements(k, ir, ip + np_in_singular)
    -
    347 = m_singular_basis_elements(k, ir, ip);
    -
    348 }
    -
    349 }
    -
    350 }
    -
    351 } else {
    -
    352 // Initialise m_singular_basis_elements to avoid any problems in the copy constructor
    -
    353 tensor_product_idx_range_type const empty_dom_bsplines(
    - - -
    356 m_singular_basis_elements_alloc
    -
    357 = ddc::Chunk<double, singular_basis_linear_combination_idx_range_type>(
    -
    358 singular_basis_linear_combination_idx_range_type(
    -
    359 singular_idx_range<DDim>(),
    -
    360 empty_dom_bsplines));
    -
    361 m_singular_basis_elements = m_singular_basis_elements_alloc.span_view();
    -
    362 }
    -
    363 }
    -
    -
    364
    -
    370 template <class OriginMemorySpace>
    -
    - -
    372 : m_singular_basis_elements_alloc(impl.m_singular_basis_elements.domain())
    -
    373 {
    -
    374 m_singular_basis_elements = m_singular_basis_elements_alloc.span_view();
    -
    375 ddc::parallel_deepcopy(m_singular_basis_elements, impl.m_singular_basis_elements);
    -
    376 }
    -
    -
    377
    -
    383 Impl(Impl const& x) = default;
    -
    384
    -
    390 Impl(Impl&& x) = default;
    -
    391
    -
    395 ~Impl() = default;
    -
    396
    -
    404 Impl& operator=(Impl const& x) = default;
    -
    405
    -
    413 Impl& operator=(Impl&& x) = default;
    -
    414
    -
    - -
    432 DSpan1D singular_values,
    -
    433 DSpan2D values,
    -
    434 ddc::Coordinate<DimR, DimTheta> p) const;
    -
    435
    -
    - -
    453 DSpan1D singular_derivs,
    -
    454 DSpan2D derivs,
    -
    455 ddc::Coordinate<DimR, DimTheta> p) const;
    -
    456
    -
    - -
    474 DSpan1D singular_derivs,
    -
    475 DSpan2D derivs,
    -
    476 ddc::Coordinate<DimR, DimTheta> p) const;
    -
    477
    -
    - -
    496 DSpan1D singular_derivs,
    -
    497 DSpan2D derivs,
    -
    498 ddc::Coordinate<DimR, DimTheta> p) const;
    -
    499
    -
    505 template <class MemorySpace2>
    -
    -
    506 [[deprecated("Use `integrals` instead")]] void integrals(
    - -
    508
    -
    -
    514 std::size_t nbasis() const noexcept
    -
    515 {
    -
    516 std::size_t nr = ddc::discrete_space<BSplinesR>().nbasis() - C - 1;
    -
    517 std::size_t ntheta = ddc::discrete_space<BSplinesTheta>().nbasis();
    -
    518 return n_singular_basis() + nr * ntheta;
    -
    519 }
    -
    -
    520
    - -
    530
    -
    - -
    539 {
    -
    540 return full_domain().remove_first(discrete_vector_type {n_singular_basis()});
    -
    541 }
    -
    -
    542
    -
    543 private:
    -
    544 template <class EvalTypeR, class EvalTypeTheta>
    -
    545 ddc::DiscreteElement<BSplinesR, BSplinesTheta> eval(
    -
    546 DSpan1D singular_values,
    -
    547 DSpan2D values,
    -
    548 ddc::Coordinate<DimR, DimTheta> coord_eval,
    -
    549 EvalTypeR const,
    -
    550 EvalTypeTheta const) const;
    -
    551 };
    -
    552};
    -
    553
    -
    554template <class BSplinesR, class BSplinesTheta, int C>
    -
    555template <class DDim, class MemorySpace>
    -
    556ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    -
    - -
    558 DSpan1D singular_values,
    -
    559 DSpan2D values,
    -
    560 ddc::Coordinate<DimR, DimTheta> p) const
    -
    561{
    -
    562 return eval(singular_values, values, p, eval_type(), eval_type());
    -
    563}
    -
    -
    564
    -
    565template <class BSplinesR, class BSplinesTheta, int C>
    -
    566template <class DDim, class MemorySpace>
    -
    567ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    -
    - -
    569 DSpan1D singular_derivs,
    -
    570 DSpan2D derivs,
    -
    571 ddc::Coordinate<DimR, DimTheta> p) const
    -
    572{
    -
    573 return eval(singular_derivs, derivs, p, eval_deriv_type(), eval_type());
    -
    574}
    -
    -
    575
    -
    576template <class BSplinesR, class BSplinesTheta, int C>
    -
    577template <class DDim, class MemorySpace>
    -
    578ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    -
    - -
    580 DSpan1D singular_derivs,
    -
    581 DSpan2D derivs,
    -
    582 ddc::Coordinate<DimR, DimTheta> p) const
    -
    583{
    -
    584 return eval(singular_derivs, derivs, p, eval_type(), eval_deriv_type());
    -
    585}
    -
    -
    586
    -
    587template <class BSplinesR, class BSplinesTheta, int C>
    -
    588template <class DDim, class MemorySpace>
    -
    589ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    -
    - -
    591 DSpan1D singular_derivs,
    -
    592 DSpan2D derivs,
    -
    593 ddc::Coordinate<DimR, DimTheta> p) const
    -
    594{
    -
    595 return eval(singular_derivs, derivs, p, eval_deriv_type(), eval_deriv_type());
    -
    596}
    -
    -
    597
    -
    598template <class BSplinesR, class BSplinesTheta, int C>
    -
    599template <class DDim, class MemorySpace>
    -
    600template <class EvalTypeR, class EvalTypeTheta>
    -
    601ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    - -
    603 DSpan1D singular_values,
    -
    604 DSpan2D values,
    -
    605 ddc::Coordinate<DimR, DimTheta> coord_eval,
    -
    606 EvalTypeR const,
    -
    607 EvalTypeTheta const) const
    -
    608{
    -
    609 assert(singular_values.extent(0) == n_singular_basis());
    -
    610 assert(values.extent(0) == BSplinesR::degree() + 1);
    -
    611 assert(values.extent(1) == BSplinesTheta::degree() + 1);
    -
    612 static_assert(
    -
    613 std::is_same_v<EvalTypeR, eval_type> || std::is_same_v<EvalTypeR, eval_deriv_type>);
    +
    296 ddc::init_discrete_space<BernsteinBasis>(barycentric_coordinate_converter);
    +
    297
    +
    298 // The number of radial bases used to construct the bsplines traversing the singular point.
    +
    299 constexpr IdxStepR nr_in_singular(C + 1);
    +
    300 assert(nr_in_singular.value() < int(ddc::discrete_space<BSplinesR>().size()));
    +
    301
    +
    302 // The number of poloidal bases used to construct the bsplines traversing the singular point.
    +
    303 const IdxStepTheta np_in_singular(ddc::discrete_space<BSplinesTheta>().nbasis());
    +
    304
    +
    305 // The number of elements of the poloidal basis which will have an associated coefficient
    +
    306 // (This will be larger than np_in_singular as it includes the periodicity)
    +
    307 const IdxStepTheta np_tot(ddc::discrete_space<BSplinesTheta>().size());
    +
    308
    +
    309 // The index range of the 2D bsplines in the innermost circles from which the polar bsplines
    +
    310 // traversing the singular point will be constructed.
    +
    311 tensor_product_idx_range_type const dom_bsplines_inner(
    + +
    313 tensor_product_idx_step_type(nr_in_singular, np_tot));
    +
    314
    +
    315 // Initialise memory
    +
    316 m_singular_basis_elements_alloc
    +
    317 = ddc::Chunk<double, singular_basis_linear_combination_idx_range_type>(
    +
    318 singular_basis_linear_combination_idx_range_type(
    +
    319 singular_idx_range<DDim>(),
    +
    320 dom_bsplines_inner));
    +
    321 m_singular_basis_elements = m_singular_basis_elements_alloc.span_view();
    +
    322
    +
    323 ddc::DiscreteDomain<BernsteinBasis> bernstein_idx_range(
    +
    324 ddc::DiscreteElement<BernsteinBasis> {0},
    +
    325 ddc::DiscreteVector<BernsteinBasis> {n_singular_basis()});
    +
    326
    +
    327 ddc::DiscreteDomain<BSplinesTheta> poloidal_spline_idx_range
    +
    328 = ddc::discrete_space<BSplinesTheta>().full_domain();
    +
    329
    +
    330 for (IdxR const ir : ddc::DiscreteDomain<BSplinesR>(IdxR(0), IdxStepR(C + 1))) {
    +
    331 for (IdxTheta const ip : poloidal_spline_idx_range.take_first(np_in_singular)) {
    +
    332 const ddc::Coordinate<DimX, DimY> point
    +
    333 = curvilinear_to_cartesian.control_point(
    +
    334 mapping_tensor_product_index_type(ir, ip));
    +
    335 ddc::Chunk<double, ddc::DiscreteDomain<BernsteinBasis>> bernstein_vals(
    +
    336 bernstein_idx_range);
    +
    337 ddc::discrete_space<BernsteinBasis>()
    +
    338 .eval_basis(bernstein_vals.span_view(), point);
    +
    339 // Fill spline coefficients
    +
    340 for (auto k : bernstein_idx_range) {
    +
    341 m_singular_basis_elements(discrete_element_type {k.uid()}, ir, ip)
    +
    342 = bernstein_vals(k);
    +
    343 }
    +
    344 }
    +
    345 for (discrete_element_type k : singular_idx_range<DDim>()) {
    +
    346 for (IdxTheta const ip : poloidal_spline_idx_range.take_first(
    +
    347 IdxStepTheta {BSplinesTheta::degree()})) {
    +
    348 m_singular_basis_elements(k, ir, ip + np_in_singular)
    +
    349 = m_singular_basis_elements(k, ir, ip);
    +
    350 }
    +
    351 }
    +
    352 }
    +
    353 } else {
    +
    354 // Initialise m_singular_basis_elements to avoid any problems in the copy constructor
    +
    355 tensor_product_idx_range_type const empty_dom_bsplines(
    + + +
    358 m_singular_basis_elements_alloc
    +
    359 = ddc::Chunk<double, singular_basis_linear_combination_idx_range_type>(
    +
    360 singular_basis_linear_combination_idx_range_type(
    +
    361 singular_idx_range<DDim>(),
    +
    362 empty_dom_bsplines));
    +
    363 m_singular_basis_elements = m_singular_basis_elements_alloc.span_view();
    +
    364 }
    +
    365 }
    +
    +
    366
    +
    372 template <class OriginMemorySpace>
    +
    + +
    374 : m_singular_basis_elements_alloc(impl.m_singular_basis_elements.domain())
    +
    375 {
    +
    376 m_singular_basis_elements = m_singular_basis_elements_alloc.span_view();
    +
    377 ddc::parallel_deepcopy(m_singular_basis_elements, impl.m_singular_basis_elements);
    +
    378 }
    +
    +
    379
    +
    385 Impl(Impl const& x) = default;
    +
    386
    +
    392 Impl(Impl&& x) = default;
    +
    393
    +
    397 ~Impl() = default;
    +
    398
    +
    406 Impl& operator=(Impl const& x) = default;
    +
    407
    +
    415 Impl& operator=(Impl&& x) = default;
    +
    416
    +
    + +
    434 DSpan1D singular_values,
    +
    435 DSpan2D values,
    +
    436 ddc::Coordinate<DimR, DimTheta> p) const;
    +
    437
    +
    + +
    455 DSpan1D singular_derivs,
    +
    456 DSpan2D derivs,
    +
    457 ddc::Coordinate<DimR, DimTheta> p) const;
    +
    458
    +
    + +
    476 DSpan1D singular_derivs,
    +
    477 DSpan2D derivs,
    +
    478 ddc::Coordinate<DimR, DimTheta> p) const;
    +
    479
    +
    + +
    498 DSpan1D singular_derivs,
    +
    499 DSpan2D derivs,
    +
    500 ddc::Coordinate<DimR, DimTheta> p) const;
    +
    501
    +
    507 template <class MemorySpace2>
    +
    +
    508 [[deprecated("Use `integrals` instead")]] void integrals(
    + +
    510
    +
    +
    516 std::size_t nbasis() const noexcept
    +
    517 {
    +
    518 std::size_t nr = ddc::discrete_space<BSplinesR>().nbasis() - C - 1;
    +
    519 std::size_t ntheta = ddc::discrete_space<BSplinesTheta>().nbasis();
    +
    520 return n_singular_basis() + nr * ntheta;
    +
    521 }
    +
    +
    522
    + +
    532
    +
    + +
    541 {
    +
    542 return full_domain().remove_first(discrete_vector_type {n_singular_basis()});
    +
    543 }
    +
    +
    544
    +
    545 private:
    +
    546 template <class EvalTypeR, class EvalTypeTheta>
    +
    547 ddc::DiscreteElement<BSplinesR, BSplinesTheta> eval(
    +
    548 DSpan1D singular_values,
    +
    549 DSpan2D values,
    +
    550 ddc::Coordinate<DimR, DimTheta> coord_eval,
    +
    551 EvalTypeR const,
    +
    552 EvalTypeTheta const) const;
    +
    553 };
    +
    554};
    +
    555
    +
    556template <class BSplinesR, class BSplinesTheta, int C>
    +
    557template <class DDim, class MemorySpace>
    +
    558ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    +
    + +
    560 DSpan1D singular_values,
    +
    561 DSpan2D values,
    +
    562 ddc::Coordinate<DimR, DimTheta> p) const
    +
    563{
    +
    564 return eval(singular_values, values, p, eval_type(), eval_type());
    +
    565}
    +
    +
    566
    +
    567template <class BSplinesR, class BSplinesTheta, int C>
    +
    568template <class DDim, class MemorySpace>
    +
    569ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    +
    + +
    571 DSpan1D singular_derivs,
    +
    572 DSpan2D derivs,
    +
    573 ddc::Coordinate<DimR, DimTheta> p) const
    +
    574{
    +
    575 return eval(singular_derivs, derivs, p, eval_deriv_type(), eval_type());
    +
    576}
    +
    +
    577
    +
    578template <class BSplinesR, class BSplinesTheta, int C>
    +
    579template <class DDim, class MemorySpace>
    +
    580ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    +
    + +
    582 DSpan1D singular_derivs,
    +
    583 DSpan2D derivs,
    +
    584 ddc::Coordinate<DimR, DimTheta> p) const
    +
    585{
    +
    586 return eval(singular_derivs, derivs, p, eval_type(), eval_deriv_type());
    +
    587}
    +
    +
    588
    +
    589template <class BSplinesR, class BSplinesTheta, int C>
    +
    590template <class DDim, class MemorySpace>
    +
    591ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    +
    + +
    593 DSpan1D singular_derivs,
    +
    594 DSpan2D derivs,
    +
    595 ddc::Coordinate<DimR, DimTheta> p) const
    +
    596{
    +
    597 return eval(singular_derivs, derivs, p, eval_deriv_type(), eval_deriv_type());
    +
    598}
    +
    +
    599
    +
    600template <class BSplinesR, class BSplinesTheta, int C>
    +
    601template <class DDim, class MemorySpace>
    +
    602template <class EvalTypeR, class EvalTypeTheta>
    +
    603ddc::DiscreteElement<BSplinesR, BSplinesTheta> PolarBSplines<BSplinesR, BSplinesTheta, C>::
    + +
    605 DSpan1D singular_values,
    +
    606 DSpan2D values,
    +
    607 ddc::Coordinate<DimR, DimTheta> coord_eval,
    +
    608 EvalTypeR const,
    +
    609 EvalTypeTheta const) const
    +
    610{
    +
    611 assert(singular_values.extent(0) == n_singular_basis());
    +
    612 assert(values.extent(0) == BSplinesR::degree() + 1);
    +
    613 assert(values.extent(1) == BSplinesTheta::degree() + 1);
    614 static_assert(
    -
    615 std::is_same_v<
    -
    616 EvalTypeTheta,
    -
    617 eval_type> || std::is_same_v<EvalTypeTheta, eval_deriv_type>);
    -
    618
    -
    619 ddc::DiscreteElement<BSplinesR> jmin_r;
    -
    620 ddc::DiscreteElement<BSplinesTheta> jmin_theta;
    -
    621
    -
    622 std::size_t constexpr nr = BSplinesR::degree() + 1;
    -
    623 std::size_t constexpr ntheta = BSplinesTheta::degree() + 1;
    -
    624
    -
    625 std::array<double, nr> vals_r_ptr;
    -
    626 std::array<double, ntheta> vals_theta_ptr;
    -
    627 DSpan1D const vals_r(vals_r_ptr.data(), nr);
    -
    628 DSpan1D const vals_theta(vals_theta_ptr.data(), ntheta);
    -
    629
    -
    630 if constexpr (std::is_same_v<EvalTypeR, eval_type>) {
    -
    631 jmin_r = ddc::discrete_space<BSplinesR>().eval_basis(vals_r, ddc::select<DimR>(coord_eval));
    -
    632 } else if constexpr (std::is_same_v<EvalTypeR, eval_deriv_type>) {
    -
    633 jmin_r = ddc::discrete_space<BSplinesR>().eval_deriv(vals_r, ddc::select<DimR>(coord_eval));
    -
    634 }
    -
    635 if constexpr (std::is_same_v<EvalTypeTheta, eval_type>) {
    -
    636 jmin_theta = ddc::discrete_space<BSplinesTheta>()
    -
    637 .eval_basis(vals_theta, ddc::select<DimTheta>(coord_eval));
    -
    638 } else if constexpr (std::is_same_v<EvalTypeTheta, eval_deriv_type>) {
    -
    639 jmin_theta = ddc::discrete_space<BSplinesTheta>()
    -
    640 .eval_deriv(vals_theta, ddc::select<DimTheta>(coord_eval));
    -
    641 }
    -
    642
    -
    643 std::size_t nr_done = 0;
    +
    615 std::is_same_v<EvalTypeR, eval_type> || std::is_same_v<EvalTypeR, eval_deriv_type>);
    +
    616 static_assert(
    +
    617 std::is_same_v<
    +
    618 EvalTypeTheta,
    +
    619 eval_type> || std::is_same_v<EvalTypeTheta, eval_deriv_type>);
    +
    620
    +
    621 ddc::DiscreteElement<BSplinesR> jmin_r;
    +
    622 ddc::DiscreteElement<BSplinesTheta> jmin_theta;
    +
    623
    +
    624 std::size_t constexpr nr = BSplinesR::degree() + 1;
    +
    625 std::size_t constexpr ntheta = BSplinesTheta::degree() + 1;
    +
    626
    +
    627 std::array<double, nr> vals_r_ptr;
    +
    628 std::array<double, ntheta> vals_theta_ptr;
    +
    629 DSpan1D const vals_r(vals_r_ptr.data(), nr);
    +
    630 DSpan1D const vals_theta(vals_theta_ptr.data(), ntheta);
    +
    631
    +
    632 if constexpr (std::is_same_v<EvalTypeR, eval_type>) {
    +
    633 jmin_r = ddc::discrete_space<BSplinesR>().eval_basis(vals_r, ddc::select<DimR>(coord_eval));
    +
    634 } else if constexpr (std::is_same_v<EvalTypeR, eval_deriv_type>) {
    +
    635 jmin_r = ddc::discrete_space<BSplinesR>().eval_deriv(vals_r, ddc::select<DimR>(coord_eval));
    +
    636 }
    +
    637 if constexpr (std::is_same_v<EvalTypeTheta, eval_type>) {
    +
    638 jmin_theta = ddc::discrete_space<BSplinesTheta>()
    +
    639 .eval_basis(vals_theta, ddc::select<DimTheta>(coord_eval));
    +
    640 } else if constexpr (std::is_same_v<EvalTypeTheta, eval_deriv_type>) {
    +
    641 jmin_theta = ddc::discrete_space<BSplinesTheta>()
    +
    642 .eval_deriv(vals_theta, ddc::select<DimTheta>(coord_eval));
    +
    643 }
    644
    -
    645 if (jmin_r.uid() < C + 1) {
    -
    646 nr_done = C + 1 - jmin_r.uid();
    -
    647 for (discrete_element_type k : singular_idx_range<DDim>()) {
    -
    648 singular_values(k.uid()) = 0.0;
    -
    649 for (std::size_t i(0); i < nr_done; ++i) {
    -
    650 for (std::size_t j(0); j < ntheta; ++j) {
    -
    651 singular_values(k.uid())
    -
    652 += m_singular_basis_elements(k, jmin_r + i, jmin_theta + j) * vals_r[i]
    -
    653 * vals_theta[j];
    -
    654 }
    -
    655 }
    -
    656 }
    -
    657 } else {
    -
    658 for (std::size_t k(0); k < n_singular_basis(); ++k) {
    -
    659 singular_values(k) = 0.0;
    -
    660 }
    -
    661 }
    -
    662
    -
    663 for (std::size_t i(0); i < nr - nr_done; ++i) {
    -
    664 for (std::size_t j(0); j < ntheta; ++j) {
    -
    665 values(i, j) = vals_r[i + nr_done] * vals_theta[j];
    -
    666 }
    -
    667 }
    -
    668 for (std::size_t i(nr - nr_done); i < nr; ++i) {
    -
    669 for (std::size_t j(0); j < ntheta; ++j) {
    -
    670 values(i, j) = 0.0;
    -
    671 }
    -
    672 }
    -
    673 return ddc::DiscreteElement<BSplinesR, BSplinesTheta>(jmin_r, jmin_theta);
    -
    674}
    -
    675
    -
    676template <class ExecSpace, class DDim, class MemorySpace>
    - -
    678 ExecSpace const& execution_space,
    - -
    680{
    -
    681 static_assert(
    -
    682 Kokkos::SpaceAccessibility<ExecSpace, MemorySpace>::accessible,
    -
    683 "MemorySpace has to be accessible for ExecutionSpace.");
    -
    684 using BSplinesR = typename DDim::BSplinesR_tag;
    -
    685 using BSplinesTheta = typename DDim::BSplinesTheta_tag;
    -
    686 using tensor_product_idx_range_type = ddc::DiscreteDomain<BSplinesR, BSplinesTheta>;
    -
    687 using tensor_product_idx_type = ddc::DiscreteElement<BSplinesR, BSplinesTheta>;
    -
    688 using IdxR = ddc::DiscreteElement<BSplinesR>;
    -
    689 using IdxTheta = ddc::DiscreteElement<BSplinesTheta>;
    -
    690
    -
    691 auto r_bspl_space = ddc::discrete_space<BSplinesR>();
    -
    692 auto theta_bspl_space = ddc::discrete_space<BSplinesTheta>();
    -
    693
    -
    694 assert(int_vals.singular_spline_coef.domain().extents() == DDim::n_singular_basis());
    -
    695 assert(int_vals.spline_coef.domain().front().template uid<BSplinesR>() == DDim::continuity + 1);
    -
    696 assert(int_vals.spline_coef.domain().back().template uid<BSplinesR>()
    -
    697 == r_bspl_space.nbasis() - 1);
    -
    698 assert(int_vals.spline_coef.domain().template extent<BSplinesTheta>()
    -
    699 == theta_bspl_space.nbasis()
    -
    700 || int_vals.spline_coef.domain().template extent<BSplinesTheta>()
    -
    701 == theta_bspl_space.size());
    -
    702
    -
    703 ddc::Chunk<double, ddc::DiscreteDomain<BSplinesR>, ddc::KokkosAllocator<double, MemorySpace>>
    -
    704 r_integrals_alloc(r_bspl_space.full_domain().take_first(
    -
    705 ddc::DiscreteVector<BSplinesR> {r_bspl_space.nbasis()}));
    -
    706 ddc::Chunk<
    -
    707 double,
    -
    708 ddc::DiscreteDomain<BSplinesTheta>,
    -
    709 ddc::KokkosAllocator<double, MemorySpace>>
    -
    710 theta_integrals_alloc(theta_bspl_space.full_domain().take_first(
    -
    711 ddc::DiscreteVector<BSplinesTheta> {theta_bspl_space.size()}));
    -
    712 ddc::ChunkSpan r_integrals = r_integrals_alloc.span_view();
    -
    713 ddc::ChunkSpan theta_integrals = theta_integrals_alloc.span_view();
    -
    714
    -
    715 ddc::integrals(execution_space, r_integrals);
    -
    716 ddc::integrals(execution_space, theta_integrals);
    -
    717
    -
    718 ddc::DiscreteDomain<BSplinesR, BSplinesTheta> singular_2d_idx_range(
    -
    719 ddc::discrete_space<DDim>().m_singular_basis_elements.domain());
    -
    720 ddc::ChunkSpan singular_spline_integrals = int_vals.singular_spline_coef.span_view();
    -
    721
    -
    722 ddc::DiscreteDomain<DDim> singular_idx_range = DDim::template singular_idx_range<DDim>();
    -
    723 Kokkos::parallel_for(
    -
    724 Kokkos::TeamPolicy<>(execution_space, singular_idx_range.size(), Kokkos::AUTO),
    -
    725 KOKKOS_LAMBDA(const Kokkos::TeamPolicy<>::member_type& team) {
    -
    726 const int idx = team.league_rank();
    -
    727 ddc::DiscreteElement<DDim> k(idx);
    -
    728
    -
    729 // Sum over quadrature dimensions
    -
    730 double teamSum = 0;
    -
    731 Kokkos::parallel_reduce(
    -
    732 Kokkos::TeamThreadMDRange(
    -
    733 team,
    -
    734 singular_2d_idx_range.template extent<BSplinesR>().value(),
    -
    735 singular_2d_idx_range.template extent<BSplinesTheta>().value()),
    -
    736 [&](int r_thread_index, int theta_thread_index, double& sum) {
    -
    737 IdxR i(r_thread_index);
    -
    738 IdxTheta j(theta_thread_index);
    -
    739 sum += ddc::discrete_space<DDim>().m_singular_basis_elements(k, i, j)
    -
    740 * r_integrals(i) * theta_integrals(j);
    -
    741 },
    -
    742 teamSum);
    -
    743 singular_spline_integrals(k) = teamSum;
    -
    744 });
    -
    745
    -
    746
    -
    747 ddc::DiscreteDomain<BSplinesR> r_tensor_product_dom(
    -
    748 ddc::select<BSplinesR>(int_vals.spline_coef.domain()));
    -
    749 tensor_product_idx_range_type
    -
    750 tensor_bspline_idx_range(r_tensor_product_dom, theta_integrals.domain());
    -
    751 ddc::ChunkSpan spline_integrals = int_vals.spline_coef.span_view();
    -
    752
    -
    753 ddc::parallel_for_each(
    -
    754 execution_space,
    -
    755 tensor_bspline_idx_range,
    -
    756 KOKKOS_LAMBDA(tensor_product_idx_type idx) {
    -
    757 int_vals.spline_coef(idx) = r_integrals(ddc::select<BSplinesR>(idx))
    -
    758 * theta_integrals(ddc::select<BSplinesTheta>(idx));
    -
    759 });
    -
    760
    -
    761 if (int_vals.spline_coef.domain().template extent<BSplinesTheta>() == theta_bspl_space.size()) {
    -
    762 ddc::DiscreteDomain<BSplinesTheta> periodic_points(theta_integrals.domain().take_last(
    -
    763 ddc::DiscreteVector<BSplinesTheta> {BSplinesTheta::degree()}));
    -
    764 tensor_product_idx_range_type repeat_idx_range(r_tensor_product_dom, periodic_points);
    -
    765 ddc::parallel_fill(execution_space, int_vals.spline_coef, 0.0);
    -
    766 }
    -
    767 return int_vals;
    -
    768}
    -
    769
    -
    770template <class BSplinesR, class BSplinesTheta, int C>
    -
    771template <class DDim, class MemorySpace>
    -
    772template <class MemorySpace2>
    -
    - - -
    775{
    -
    776 integrals(Kokkos::DefaultHostExecutionSpace(), int_vals);
    -
    777}
    +
    645 std::size_t nr_done = 0;
    +
    646
    +
    647 if (jmin_r.uid() < C + 1) {
    +
    648 nr_done = C + 1 - jmin_r.uid();
    +
    649 for (discrete_element_type k : singular_idx_range<DDim>()) {
    +
    650 singular_values(k.uid()) = 0.0;
    +
    651 for (std::size_t i(0); i < nr_done; ++i) {
    +
    652 for (std::size_t j(0); j < ntheta; ++j) {
    +
    653 singular_values(k.uid())
    +
    654 += m_singular_basis_elements(k, jmin_r + i, jmin_theta + j) * vals_r[i]
    +
    655 * vals_theta[j];
    +
    656 }
    +
    657 }
    +
    658 }
    +
    659 } else {
    +
    660 for (std::size_t k(0); k < n_singular_basis(); ++k) {
    +
    661 singular_values(k) = 0.0;
    +
    662 }
    +
    663 }
    +
    664
    +
    665 for (std::size_t i(0); i < nr - nr_done; ++i) {
    +
    666 for (std::size_t j(0); j < ntheta; ++j) {
    +
    667 values(i, j) = vals_r[i + nr_done] * vals_theta[j];
    +
    668 }
    +
    669 }
    +
    670 for (std::size_t i(nr - nr_done); i < nr; ++i) {
    +
    671 for (std::size_t j(0); j < ntheta; ++j) {
    +
    672 values(i, j) = 0.0;
    +
    673 }
    +
    674 }
    +
    675 return ddc::DiscreteElement<BSplinesR, BSplinesTheta>(jmin_r, jmin_theta);
    +
    676}
    +
    677
    +
    678template <class ExecSpace, class DDim, class MemorySpace>
    + +
    680 ExecSpace const& execution_space,
    + +
    682{
    +
    683 static_assert(
    +
    684 Kokkos::SpaceAccessibility<ExecSpace, MemorySpace>::accessible,
    +
    685 "MemorySpace has to be accessible for ExecutionSpace.");
    +
    686 using BSplinesR = typename DDim::BSplinesR_tag;
    +
    687 using BSplinesTheta = typename DDim::BSplinesTheta_tag;
    +
    688 using tensor_product_idx_range_type = ddc::DiscreteDomain<BSplinesR, BSplinesTheta>;
    +
    689 using tensor_product_idx_type = ddc::DiscreteElement<BSplinesR, BSplinesTheta>;
    +
    690 using IdxR = ddc::DiscreteElement<BSplinesR>;
    +
    691 using IdxTheta = ddc::DiscreteElement<BSplinesTheta>;
    +
    692
    +
    693 auto r_bspl_space = ddc::discrete_space<BSplinesR>();
    +
    694 auto theta_bspl_space = ddc::discrete_space<BSplinesTheta>();
    +
    695
    +
    696 assert(int_vals.singular_spline_coef.domain().extents() == DDim::n_singular_basis());
    +
    697 assert(int_vals.spline_coef.domain().front().template uid<BSplinesR>() == DDim::continuity + 1);
    +
    698 assert(int_vals.spline_coef.domain().back().template uid<BSplinesR>()
    +
    699 == r_bspl_space.nbasis() - 1);
    +
    700 assert(int_vals.spline_coef.domain().template extent<BSplinesTheta>()
    +
    701 == theta_bspl_space.nbasis()
    +
    702 || int_vals.spline_coef.domain().template extent<BSplinesTheta>()
    +
    703 == theta_bspl_space.size());
    +
    704
    +
    705 ddc::Chunk<double, ddc::DiscreteDomain<BSplinesR>, ddc::KokkosAllocator<double, MemorySpace>>
    +
    706 r_integrals_alloc(r_bspl_space.full_domain().take_first(
    +
    707 ddc::DiscreteVector<BSplinesR> {r_bspl_space.nbasis()}));
    +
    708 ddc::Chunk<
    +
    709 double,
    +
    710 ddc::DiscreteDomain<BSplinesTheta>,
    +
    711 ddc::KokkosAllocator<double, MemorySpace>>
    +
    712 theta_integrals_alloc(theta_bspl_space.full_domain().take_first(
    +
    713 ddc::DiscreteVector<BSplinesTheta> {theta_bspl_space.size()}));
    +
    714 ddc::ChunkSpan r_integrals = r_integrals_alloc.span_view();
    +
    715 ddc::ChunkSpan theta_integrals = theta_integrals_alloc.span_view();
    +
    716
    +
    717 ddc::integrals(execution_space, r_integrals);
    +
    718 ddc::integrals(execution_space, theta_integrals);
    +
    719
    +
    720 ddc::DiscreteDomain<BSplinesR, BSplinesTheta> singular_2d_idx_range(
    +
    721 ddc::discrete_space<DDim>().m_singular_basis_elements.domain());
    +
    722 ddc::ChunkSpan singular_spline_integrals = int_vals.singular_spline_coef.span_view();
    +
    723
    +
    724 ddc::DiscreteDomain<DDim> singular_idx_range = DDim::template singular_idx_range<DDim>();
    +
    725 Kokkos::parallel_for(
    +
    726 Kokkos::TeamPolicy<>(execution_space, singular_idx_range.size(), Kokkos::AUTO),
    +
    727 KOKKOS_LAMBDA(const Kokkos::TeamPolicy<>::member_type& team) {
    +
    728 const int idx = team.league_rank();
    +
    729 ddc::DiscreteElement<DDim> k(idx);
    +
    730
    +
    731 // Sum over quadrature dimensions
    +
    732 double teamSum = 0;
    +
    733 Kokkos::parallel_reduce(
    +
    734 Kokkos::TeamThreadMDRange(
    +
    735 team,
    +
    736 singular_2d_idx_range.template extent<BSplinesR>().value(),
    +
    737 singular_2d_idx_range.template extent<BSplinesTheta>().value()),
    +
    738 [&](int r_thread_index, int theta_thread_index, double& sum) {
    +
    739 IdxR i(r_thread_index);
    +
    740 IdxTheta j(theta_thread_index);
    +
    741 sum += ddc::discrete_space<DDim>().m_singular_basis_elements(k, i, j)
    +
    742 * r_integrals(i) * theta_integrals(j);
    +
    743 },
    +
    744 teamSum);
    +
    745 singular_spline_integrals(k) = teamSum;
    +
    746 });
    +
    747
    +
    748
    +
    749 ddc::DiscreteDomain<BSplinesR> r_tensor_product_dom(
    +
    750 ddc::select<BSplinesR>(int_vals.spline_coef.domain()));
    +
    751 tensor_product_idx_range_type
    +
    752 tensor_bspline_idx_range(r_tensor_product_dom, theta_integrals.domain());
    +
    753 ddc::ChunkSpan spline_integrals = int_vals.spline_coef.span_view();
    +
    754
    +
    755 ddc::parallel_for_each(
    +
    756 execution_space,
    +
    757 tensor_bspline_idx_range,
    +
    758 KOKKOS_LAMBDA(tensor_product_idx_type idx) {
    +
    759 int_vals.spline_coef(idx) = r_integrals(ddc::select<BSplinesR>(idx))
    +
    760 * theta_integrals(ddc::select<BSplinesTheta>(idx));
    +
    761 });
    +
    762
    +
    763 if (int_vals.spline_coef.domain().template extent<BSplinesTheta>() == theta_bspl_space.size()) {
    +
    764 ddc::DiscreteDomain<BSplinesTheta> periodic_points(theta_integrals.domain().take_last(
    +
    765 ddc::DiscreteVector<BSplinesTheta> {BSplinesTheta::degree()}));
    +
    766 tensor_product_idx_range_type repeat_idx_range(r_tensor_product_dom, periodic_points);
    +
    767 ddc::parallel_fill(execution_space, int_vals.spline_coef, 0.0);
    +
    768 }
    +
    769 return int_vals;
    +
    770}
    +
    771
    +
    772template <class BSplinesR, class BSplinesTheta, int C>
    +
    773template <class DDim, class MemorySpace>
    +
    774template <class MemorySpace2>
    +
    + + +
    777{
    +
    778 integrals(Kokkos::DefaultHostExecutionSpace(), int_vals);
    +
    779}
    @@ -722,42 +724,42 @@
    A class to convert cartesian coordinates to barycentric coordinates on a triangle.
    Definition cartesian_to_barycentric.hpp:22
    -
    The Impl class holds the implementation of the PolarBSplines.
    Definition polar_bsplines.hpp:173
    -
    std::size_t nbasis() const noexcept
    Get the total number of basis functions.
    Definition polar_bsplines.hpp:514
    -
    discrete_domain_type full_domain() const noexcept
    Returns the index range containing the indices of all the polar b-splines.
    Definition polar_bsplines.hpp:526
    +
    The Impl class holds the implementation of the PolarBSplines.
    Definition polar_bsplines.hpp:174
    +
    std::size_t nbasis() const noexcept
    Get the total number of basis functions.
    Definition polar_bsplines.hpp:516
    +
    discrete_domain_type full_domain() const noexcept
    Returns the index range containing the indices of all the polar b-splines.
    Definition polar_bsplines.hpp:528
    Impl(Impl &&x)=default
    A copy constructor for the PolarBSplines taking a temporary r-value.
    Impl & operator=(Impl &&x)=default
    A copy operator for the PolarBSplines taking a temporary r-value.
    -
    tensor_product_index_type eval_deriv_r_and_theta(DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const
    Evaluate the second order derivative of the polar basis splines in the radial and poloidal directions...
    Definition polar_bsplines.hpp:590
    -
    Impl(const DiscreteMapping &curvilinear_to_cartesian)
    A constructor for the PolarBSplines.
    Definition polar_bsplines.hpp:253
    -
    ddc::DiscreteDomain< DDim > discrete_domain_type
    The type of a index range of PolarBSplines.
    Definition polar_bsplines.hpp:240
    +
    tensor_product_index_type eval_deriv_r_and_theta(DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const
    Evaluate the second order derivative of the polar basis splines in the radial and poloidal directions...
    Definition polar_bsplines.hpp:592
    +
    Impl(const DiscreteMapping &curvilinear_to_cartesian)
    A constructor for the PolarBSplines.
    Definition polar_bsplines.hpp:254
    +
    ddc::DiscreteDomain< DDim > discrete_domain_type
    The type of a index range of PolarBSplines.
    Definition polar_bsplines.hpp:241
    Impl & operator=(Impl const &x)=default
    A copy operator for the PolarBSplines.
    ~Impl()=default
    The destructor for the PolarBSplines.
    -
    Impl(Impl< DDim, OriginMemorySpace > const &impl)
    A copy constructor for the PolarBSplines.
    Definition polar_bsplines.hpp:371
    -
    ddc::DiscreteVector< DDim > discrete_vector_type
    The type of a vector associated with a PolarBSpline.
    Definition polar_bsplines.hpp:243
    -
    tensor_product_index_type eval_basis(DSpan1D singular_values, DSpan2D values, ddc::Coordinate< DimR, DimTheta > p) const
    Evaluate the polar basis splines at the coordinate p.
    Definition polar_bsplines.hpp:557
    -
    ddc::DiscreteElement< DDim > discrete_element_type
    The type of an index associated with a PolarBSpline.
    Definition polar_bsplines.hpp:237
    -
    tensor_product_index_type eval_deriv_theta(DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const
    Evaluate the poloidal derivative of the polar basis splines at the coordinate p.
    Definition polar_bsplines.hpp:579
    -
    tensor_product_index_type eval_deriv_r(DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const
    Evaluate the radial derivative of the polar basis splines at the coordinate p.
    Definition polar_bsplines.hpp:568
    -
    discrete_domain_type tensor_bspline_idx_range() const noexcept
    Returns the ddc::DiscreteDomain containing the indices of the b-splines which don't traverse the sing...
    Definition polar_bsplines.hpp:538
    +
    Impl(Impl< DDim, OriginMemorySpace > const &impl)
    A copy constructor for the PolarBSplines.
    Definition polar_bsplines.hpp:373
    +
    ddc::DiscreteVector< DDim > discrete_vector_type
    The type of a vector associated with a PolarBSpline.
    Definition polar_bsplines.hpp:244
    +
    tensor_product_index_type eval_basis(DSpan1D singular_values, DSpan2D values, ddc::Coordinate< DimR, DimTheta > p) const
    Evaluate the polar basis splines at the coordinate p.
    Definition polar_bsplines.hpp:559
    +
    ddc::DiscreteElement< DDim > discrete_element_type
    The type of an index associated with a PolarBSpline.
    Definition polar_bsplines.hpp:238
    +
    tensor_product_index_type eval_deriv_theta(DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const
    Evaluate the poloidal derivative of the polar basis splines at the coordinate p.
    Definition polar_bsplines.hpp:581
    +
    tensor_product_index_type eval_deriv_r(DSpan1D singular_derivs, DSpan2D derivs, ddc::Coordinate< DimR, DimTheta > p) const
    Evaluate the radial derivative of the polar basis splines at the coordinate p.
    Definition polar_bsplines.hpp:570
    +
    discrete_domain_type tensor_bspline_idx_range() const noexcept
    Returns the ddc::DiscreteDomain containing the indices of the b-splines which don't traverse the sing...
    Definition polar_bsplines.hpp:540
    Impl(Impl const &x)=default
    A copy constructor for the PolarBSplines.
    -
    The tag for the first corner of the Barycentric coordinates.
    Definition polar_bsplines.hpp:210
    -
    The tag for the second corner of the Barycentric coordinates.
    Definition polar_bsplines.hpp:214
    -
    The tag for the third corner of the Barycentric coordinates.
    Definition polar_bsplines.hpp:218
    -
    A class containing all information describing polar bsplines.
    Definition polar_bsplines.hpp:28
    -
    static KOKKOS_FUNCTION ddc::DiscreteElement< DDim > get_polar_index(tensor_product_index_type const &idx)
    Get the index of the polar bspline which, when evaluated at the same point, returns the same values a...
    Definition polar_bsplines.hpp:133
    -
    static KOKKOS_FUNCTION tensor_product_index_type get_2d_index(ddc::DiscreteElement< DDim > const &idx)
    Get the 2D index of the tensor product bspline which, when evaluated at the same point,...
    Definition polar_bsplines.hpp:153
    -
    ddc::DiscreteVector< BSplinesR, BSplinesTheta > tensor_product_idx_step_type
    The type of a 2D vector for the subset of the polar bsplines which can be expressed as a tensor produ...
    Definition polar_bsplines.hpp:89
    -
    static constexpr std::size_t n_singular_basis()
    Get the number of singular bsplines i.e.
    Definition polar_bsplines.hpp:103
    -
    typename BSplinesTheta::continuous_dimension_type DimTheta
    The tag for the poloidal direction of the bsplines.
    Definition polar_bsplines.hpp:57
    -
    ddc::DiscreteDomain< BSplinesR, BSplinesTheta > tensor_product_idx_range_type
    The type of the 2D idx_range for the subset of the polar bsplines which can be expressed as a tensor ...
    Definition polar_bsplines.hpp:83
    -
    static constexpr ddc::DiscreteDomain< DDim > singular_idx_range()
    Get the ddc::DiscreteDomain containing the indices of the b-splines which traverse the singular point...
    Definition polar_bsplines.hpp:117
    -
    ddc::DiscreteElement< BSplinesR, BSplinesTheta > tensor_product_index_type
    The type of a 2D index for the subset of the polar bsplines which can be expressed as a tensor produc...
    Definition polar_bsplines.hpp:77
    -
    typename BSplinesR::continuous_dimension_type DimR
    The tag for the radial direction of the bsplines.
    Definition polar_bsplines.hpp:54
    -
    static int constexpr continuity
    The continuity enforced by the bsplines at the singular point.
    Definition polar_bsplines.hpp:61
    +
    The tag for the first corner of the Barycentric coordinates.
    Definition polar_bsplines.hpp:211
    +
    The tag for the second corner of the Barycentric coordinates.
    Definition polar_bsplines.hpp:215
    +
    The tag for the third corner of the Barycentric coordinates.
    Definition polar_bsplines.hpp:219
    +
    A class containing all information describing polar bsplines.
    Definition polar_bsplines.hpp:29
    +
    static KOKKOS_FUNCTION ddc::DiscreteElement< DDim > get_polar_index(tensor_product_index_type const &idx)
    Get the index of the polar bspline which, when evaluated at the same point, returns the same values a...
    Definition polar_bsplines.hpp:134
    +
    static KOKKOS_FUNCTION tensor_product_index_type get_2d_index(ddc::DiscreteElement< DDim > const &idx)
    Get the 2D index of the tensor product bspline which, when evaluated at the same point,...
    Definition polar_bsplines.hpp:154
    +
    ddc::DiscreteVector< BSplinesR, BSplinesTheta > tensor_product_idx_step_type
    The type of a 2D vector for the subset of the polar bsplines which can be expressed as a tensor produ...
    Definition polar_bsplines.hpp:90
    +
    static constexpr std::size_t n_singular_basis()
    Get the number of singular bsplines i.e.
    Definition polar_bsplines.hpp:104
    +
    typename BSplinesTheta::continuous_dimension_type DimTheta
    The tag for the poloidal direction of the bsplines.
    Definition polar_bsplines.hpp:58
    +
    ddc::DiscreteDomain< BSplinesR, BSplinesTheta > tensor_product_idx_range_type
    The type of the 2D idx_range for the subset of the polar bsplines which can be expressed as a tensor ...
    Definition polar_bsplines.hpp:84
    +
    static constexpr ddc::DiscreteDomain< DDim > singular_idx_range()
    Get the ddc::DiscreteDomain containing the indices of the b-splines which traverse the singular point...
    Definition polar_bsplines.hpp:118
    +
    ddc::DiscreteElement< BSplinesR, BSplinesTheta > tensor_product_index_type
    The type of a 2D index for the subset of the polar bsplines which can be expressed as a tensor produc...
    Definition polar_bsplines.hpp:78
    +
    typename BSplinesR::continuous_dimension_type DimR
    The tag for the radial direction of the bsplines.
    Definition polar_bsplines.hpp:55
    +
    static int constexpr continuity
    The continuity enforced by the bsplines at the singular point.
    Definition polar_bsplines.hpp:62
    A class which evaluates the triangular Bernstein polynomials.
    Definition bernstein.hpp:29
    Definition geometry.hpp:93
    Definition geometry.hpp:100
    -
    Definition polar_bsplines.hpp:230
    +
    Definition polar_bsplines.hpp:231
    A structure containing the two ChunkSpans necessary to define a reference to a spline on a set of pol...
    Definition polar_spline.hpp:116
    ddc::ChunkSpan< double, ddc::DiscreteDomain< BSplinesR, BSplinesTheta >, Kokkos::layout_right, MemSpace > spline_coef
    A ChunkSpan containing the coefficients in front of the b-spline elements which can be expressed as a...
    Definition polar_spline.hpp:133
    ddc::ChunkSpan< double, ddc::DiscreteDomain< PolarBSplinesType >, Kokkos::layout_right, MemSpace > singular_spline_coef
    A ChunkSpan containing the coefficients in front of the b-spline elements near the singular point whi...
    Definition polar_spline.hpp:140
    diff --git a/polar__poisson_2test__cases_8hpp_source.html b/polar__poisson_2test__cases_8hpp_source.html index e3df00ca9..84441d4a4 100644 --- a/polar__poisson_2test__cases_8hpp_source.html +++ b/polar__poisson_2test__cases_8hpp_source.html @@ -295,8 +295,8 @@
    PoissonSolution(CurvilinearToCartesian const &coordinate_converter)
    Instantiate a PoissonSolution.
    Definition test_cases.hpp:55
    Define non periodic real R dimension.
    Definition geometry.hpp:31
    Define periodic real Theta dimension.
    Definition geometry.hpp:42
    -
    Define non periodic real X dimension.
    Definition geometry.hpp:277
    -
    Define non periodic real Y dimension.
    Definition geometry.hpp:288
    +
    Define non periodic real X dimension.
    Definition geometry.hpp:318
    +
    Define non periodic real Y dimension.
    Definition geometry.hpp:329
    diff --git a/polarpoissonlikesolver_8hpp_source.html b/polarpoissonlikesolver_8hpp_source.html index 60763d6c6..806e1c885 100644 --- a/polarpoissonlikesolver_8hpp_source.html +++ b/polarpoissonlikesolver_8hpp_source.html @@ -123,62 +123,62 @@
    15#include "ddc_aliases.hpp"
    16#include "matrix_batch_csr.hpp"
    17
    -
    43template <
    -
    44 class GridR,
    -
    45 class GridTheta,
    - -
    47 class SplineRThetaEvaluatorNullBound_host,
    -
    48 class IdxRangeFull = IdxRange<GridR, GridTheta>>
    -
    - -
    50{
    -
    51 // TODO: Add a batch loop to operator()
    -
    52 static_assert(
    -
    53 std::is_same_v<IdxRangeFull, IdxRange<GridR, GridTheta>>,
    -
    54 "PolarSplineFEMPoissonLikeSolver is not yet batched");
    -
    55
    -
    56public:
    -
    58 using R = typename GridR::continuous_dimension_type;
    -
    60 using Theta = typename GridTheta::continuous_dimension_type;
    -
    61
    -
    62public:
    -
    - -
    64 {
    -
    65 };
    +
    18
    +
    44template <
    +
    45 class GridR,
    +
    46 class GridTheta,
    + +
    48 class SplineRThetaEvaluatorNullBound,
    +
    49 class IdxRangeFull = IdxRange<GridR, GridTheta>>
    +
    + +
    51{
    +
    52 // TODO: Add a batch loop to operator()
    +
    53 static_assert(
    +
    54 std::is_same_v<IdxRangeFull, IdxRange<GridR, GridTheta>>,
    +
    55 "PolarSplineFEMPoissonLikeSolver is not yet batched");
    +
    56
    +
    57public:
    +
    59 using R = typename GridR::continuous_dimension_type;
    +
    61 using Theta = typename GridTheta::continuous_dimension_type;
    +
    62
    +
    63public:
    +
    + +
    65 {
    +
    66 };
    -
    - -
    67 {
    -
    68 };
    +
    + +
    68 {
    +
    69 };
    -
    -
    69 struct RCellDim
    -
    70 {
    -
    71 };
    +
    +
    70 struct RCellDim
    +
    71 {
    +
    72 };
    -
    - -
    73 {
    -
    74 };
    +
    + +
    74 {
    +
    75 };
    -
    75
    76
    -
    77public:
    -
    -
    81 struct QDimRMesh : NonUniformGridBase<R>
    -
    82 {
    -
    83 };
    +
    77
    +
    78public:
    +
    +
    82 struct QDimRMesh : NonUniformGridBase<R>
    +
    83 {
    +
    84 };
    -
    -
    87 struct QDimThetaMesh : NonUniformGridBase<Theta>
    -
    88 {
    -
    89 };
    +
    +
    88 struct QDimThetaMesh : NonUniformGridBase<Theta>
    +
    89 {
    +
    90 };
    -
    90
    -
    91private:
    -
    92 using CoordRTheta = Coord<R, Theta>;
    -
    93
    +
    91
    +
    92private:
    +
    93 using CoordRTheta = Coord<R, Theta>;
    98
    @@ -220,1083 +220,1266 @@
    159 using CoordFieldRTheta = Field<CoordRTheta, IdxRangeRTheta>;
    160 using DFieldRTheta = DField<IdxRangeRTheta>;
    161
    -
    166 struct EvalDeriv1DType
    -
    167 {
    -
    168 double value;
    -
    169 double derivative;
    -
    170 };
    -
    175 struct EvalDeriv2DType
    -
    176 {
    -
    177 double value;
    -
    178 double radial_derivative;
    -
    179 double poloidal_derivative;
    -
    180 };
    -
    181
    -
    185 using IdxCell = Idx<RCellDim, ThetaCellDim>;
    -
    186
    -
    187private:
    -
    188 static constexpr int m_n_gauss_legendre_r = BSplinesR::degree() + 1;
    -
    189 static constexpr int m_n_gauss_legendre_theta = BSplinesTheta::degree() + 1;
    -
    190 // The number of cells (in the radial direction) in which both types of basis splines can be found
    -
    191 static constexpr int m_n_overlap_cells = PolarBSplinesRTheta::continuity + 1;
    -
    192
    -
    193 // Number of cells over which a radial B-splines has its support
    -
    194 // This is the case for b-splines which are not affected by the higher knot multiplicity at the boundary.
    -
    195 static constexpr IdxStep<RBasisSubset> m_n_non_zero_bases_r
    -
    196 = IdxStep<RBasisSubset>(BSplinesR::degree() + 1);
    -
    197
    -
    198 // Number of cells over which a poloidal B-splines has its support
    -
    199 static constexpr IdxStep<ThetaBasisSubset> m_n_non_zero_bases_theta
    -
    200 = IdxStep<ThetaBasisSubset>(BSplinesTheta::degree() + 1);
    -
    201
    -
    202 static constexpr IdxRange<RBasisSubset> m_non_zero_bases_r
    -
    203 = IdxRange<RBasisSubset>(Idx<RBasisSubset> {0}, m_n_non_zero_bases_r);
    -
    204 static constexpr IdxRange<ThetaBasisSubset> m_non_zero_bases_theta
    -
    205 = IdxRange<ThetaBasisSubset>(Idx<ThetaBasisSubset> {0}, m_n_non_zero_bases_theta);
    -
    206
    -
    207 const int m_nbasis_r;
    -
    208 const int m_nbasis_theta;
    -
    209
    -
    210 // Domains
    -
    211 IdxRangeBSPolar m_idxrange_fem_non_singular;
    -
    212 IdxRangeBSR m_idxrange_bsplines_r;
    -
    213 IdxRangeBSTheta m_idxrange_bsplines_theta;
    +
    162public:
    +
    + +
    168 {
    +
    169 double value;
    +
    170 double derivative;
    +
    171 };
    +
    +
    172
    +
    + +
    178 {
    +
    179 double value;
    +
    180 double radial_derivative;
    +
    181 double poloidal_derivative;
    +
    182 };
    +
    +
    183
    +
    187 using IdxCell = Idx<RCellDim, ThetaCellDim>;
    +
    188
    +
    189private:
    +
    190 static constexpr int m_n_gauss_legendre_r = BSplinesR::degree() + 1;
    +
    191 static constexpr int m_n_gauss_legendre_theta = BSplinesTheta::degree() + 1;
    +
    192 // The number of cells (in the radial direction) in which both types of basis splines can be found
    +
    193 static constexpr int m_n_overlap_cells = PolarBSplinesRTheta::continuity + 1;
    +
    194
    +
    195 // Number of cells over which a radial B-splines has its support
    +
    196 // This is the case for b-splines which are not affected by the higher knot multiplicity at the boundary.
    +
    197 static constexpr IdxStep<RBasisSubset> m_n_non_zero_bases_r
    +
    198 = IdxStep<RBasisSubset>(BSplinesR::degree() + 1);
    +
    199
    +
    200 // Number of cells over which a poloidal B-splines has its support
    +
    201 static constexpr IdxStep<ThetaBasisSubset> m_n_non_zero_bases_theta
    +
    202 = IdxStep<ThetaBasisSubset>(BSplinesTheta::degree() + 1);
    +
    203
    +
    204 static constexpr IdxRange<RBasisSubset> m_non_zero_bases_r
    +
    205 = IdxRange<RBasisSubset>(Idx<RBasisSubset> {0}, m_n_non_zero_bases_r);
    +
    206 static constexpr IdxRange<ThetaBasisSubset> m_non_zero_bases_theta
    +
    207 = IdxRange<ThetaBasisSubset>(Idx<ThetaBasisSubset> {0}, m_n_non_zero_bases_theta);
    +
    208
    +
    209 const int m_nbasis_r;
    +
    210 const int m_nbasis_theta;
    +
    211
    +
    212 // Matrix size is equal to the number of Polar bspline
    +
    213 const int m_matrix_size;
    214
    -
    215 IdxRangeQuadratureR m_idxrange_quadrature_r;
    -
    216 IdxRangeQuadratureTheta m_idxrange_quadrature_theta;
    -
    217 IdxRangeQuadratureRTheta m_idxrange_quadrature_singular;
    -
    218
    -
    219 // Gauss-Legendre points and weights
    -
    220 host_t<FieldMem<Coord<R>, IdxRangeQuadratureR>> m_points_r;
    -
    221 host_t<FieldMem<Coord<Theta>, IdxRangeQuadratureTheta>> m_points_theta;
    -
    222 host_t<FieldMem<double, IdxRangeQuadratureR>> m_weights_r;
    -
    223 host_t<FieldMem<double, IdxRangeQuadratureTheta>> m_weights_theta;
    -
    224
    -
    225 // Basis Spline values and derivatives at Gauss-Legendre points
    -
    226 host_t<FieldMem<EvalDeriv2DType, IdxRange<PolarBSplinesRTheta, QDimRMesh, QDimThetaMesh>>>
    -
    227 m_singular_basis_vals_and_derivs;
    -
    228 host_t<FieldMem<EvalDeriv1DType, IdxRange<RBasisSubset, QDimRMesh>>> r_basis_vals_and_derivs;
    -
    229 host_t<FieldMem<EvalDeriv1DType, IdxRange<ThetaBasisSubset, QDimThetaMesh>>>
    -
    230 m_theta_basis_vals_and_derivs;
    -
    231
    -
    232 host_t<FieldMem<double, IdxRangeQuadratureRTheta>> m_int_volume;
    -
    233
    - -
    235 m_polar_spline_evaluator;
    -
    236 std::unique_ptr<MatrixBatchCsr<Kokkos::DefaultExecutionSpace, MatrixBatchCsrSolver::CG>>
    -
    237 m_gko_matrix;
    -
    238 mutable host_t<SplinePolar> m_phi_spline_coef;
    -
    239 Kokkos::View<double**, Kokkos::LayoutRight> m_x_init;
    -
    240
    -
    241 const int m_batch_idx {0}; // TODO: Remove when batching is supported
    -
    242
    -
    243public:
    -
    267 template <class Mapping>
    -
    - -
    269 host_t<ConstSpline2D> coeff_alpha,
    -
    270 host_t<ConstSpline2D> coeff_beta,
    -
    271 Mapping const& mapping,
    -
    272 SplineRThetaEvaluatorNullBound_host const& spline_evaluator)
    -
    273 : m_nbasis_r(ddc::discrete_space<BSplinesR>().nbasis() - m_n_overlap_cells - 1)
    -
    274 , m_nbasis_theta(ddc::discrete_space<BSplinesTheta>().nbasis())
    -
    275 , m_idxrange_fem_non_singular(
    -
    276 ddc::discrete_space<PolarBSplinesRTheta>().tensor_bspline_idx_range().remove_last(
    -
    277 IdxStep<PolarBSplinesRTheta> {m_nbasis_theta}))
    -
    278 , m_idxrange_bsplines_r(ddc::discrete_space<BSplinesR>().full_domain().remove_first(
    -
    279 IdxStep<BSplinesR> {m_n_overlap_cells}))
    -
    280 , m_idxrange_bsplines_theta(ddc::discrete_space<BSplinesTheta>().full_domain().take_first(
    -
    281 IdxStep<BSplinesTheta> {m_nbasis_theta}))
    -
    282 , m_idxrange_quadrature_r(
    -
    283 Idx<QDimRMesh>(0),
    -
    284 IdxStep<QDimRMesh>(
    -
    285 m_n_gauss_legendre_r * ddc::discrete_space<BSplinesR>().ncells()))
    -
    286 , m_idxrange_quadrature_theta(
    -
    287 Idx<QDimThetaMesh>(0),
    -
    288 IdxStep<QDimThetaMesh>(
    -
    289 m_n_gauss_legendre_theta * ddc::discrete_space<BSplinesTheta>().ncells()))
    -
    290 , m_idxrange_quadrature_singular(
    -
    291 m_idxrange_quadrature_r.take_first(
    -
    292 IdxStep<QDimRMesh> {m_n_overlap_cells * m_n_gauss_legendre_r}),
    -
    293 m_idxrange_quadrature_theta)
    -
    294 , m_points_r(m_idxrange_quadrature_r)
    -
    295 , m_points_theta(m_idxrange_quadrature_theta)
    -
    296 , m_weights_r(m_idxrange_quadrature_r)
    -
    297 , m_weights_theta(m_idxrange_quadrature_theta)
    -
    298 , m_singular_basis_vals_and_derivs(IdxRange<PolarBSplinesRTheta, QDimRMesh, QDimThetaMesh>(
    -
    299 PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>(),
    -
    300 ddc::select<QDimRMesh>(m_idxrange_quadrature_singular),
    -
    301 ddc::select<QDimThetaMesh>(m_idxrange_quadrature_singular)))
    -
    302 , r_basis_vals_and_derivs(
    -
    303 IdxRange<RBasisSubset, QDimRMesh>(m_non_zero_bases_r, m_idxrange_quadrature_r))
    -
    304 , m_theta_basis_vals_and_derivs(
    -
    305 IdxRange<
    -
    306 ThetaBasisSubset,
    -
    307 QDimThetaMesh>(m_non_zero_bases_theta, m_idxrange_quadrature_theta))
    -
    308 , m_int_volume(
    -
    309 IdxRangeQuadratureRTheta(m_idxrange_quadrature_r, m_idxrange_quadrature_theta))
    -
    310 , m_polar_spline_evaluator(ddc::NullExtrapolationRule())
    -
    311 , m_phi_spline_coef(
    -
    312 PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>(),
    -
    313 IdxRangeBSRTheta(
    -
    314 m_idxrange_bsplines_r,
    -
    315 ddc::discrete_space<BSplinesTheta>().full_domain()))
    -
    316 , m_x_init(
    -
    317 "x_init",
    -
    318 1,
    -
    319 ddc::discrete_space<PolarBSplinesRTheta>().nbasis()
    -
    320 - ddc::discrete_space<BSplinesTheta>().nbasis())
    -
    321 {
    -
    322 static_assert(has_2d_jacobian_v<Mapping, CoordRTheta>);
    -
    323 //initialize x_init
    -
    324 Kokkos::deep_copy(m_x_init, 0);
    -
    325 // Get break points
    -
    326 IdxRange<KnotsR> idxrange_r_edges = ddc::discrete_space<BSplinesR>().break_point_domain();
    -
    327 IdxRange<KnotsTheta> idxrange_theta_edges
    -
    328 = ddc::discrete_space<BSplinesTheta>().break_point_domain();
    -
    329 host_t<FieldMem<Coord<R>, IdxRange<KnotsR>>> breaks_r(idxrange_r_edges);
    -
    330 host_t<FieldMem<Coord<Theta>, IdxRange<KnotsTheta>>> breaks_theta(idxrange_theta_edges);
    -
    331
    -
    332 ddc::for_each(idxrange_r_edges, [&](Idx<KnotsR> i) { breaks_r(i) = ddc::coordinate(i); });
    -
    333 ddc::for_each(idxrange_theta_edges, [&](Idx<KnotsTheta> i) {
    -
    334 breaks_theta(i) = ddc::coordinate(i);
    -
    335 });
    +
    215 // Domains
    +
    216 IdxRangeBSPolar m_idxrange_fem_non_singular;
    +
    217 IdxRangeBSR m_idxrange_bsplines_r;
    +
    218 IdxRangeBSTheta m_idxrange_bsplines_theta;
    +
    219
    +
    220 IdxRangeQuadratureR m_idxrange_quadrature_r;
    +
    221 IdxRangeQuadratureTheta m_idxrange_quadrature_theta;
    +
    222 IdxRangeQuadratureRTheta m_idxrange_quadrature_singular;
    +
    223
    +
    224 // Gauss-Legendre points and weights
    +
    225 host_t<FieldMem<Coord<R>, IdxRangeQuadratureR>> m_points_r;
    +
    226 host_t<FieldMem<Coord<Theta>, IdxRangeQuadratureTheta>> m_points_theta;
    +
    227 host_t<FieldMem<double, IdxRangeQuadratureR>> m_weights_r;
    +
    228 host_t<FieldMem<double, IdxRangeQuadratureTheta>> m_weights_theta;
    +
    229
    +
    230 // Basis Spline values and derivatives at Gauss-Legendre points
    +
    231 host_t<FieldMem<EvalDeriv2DType, IdxRange<PolarBSplinesRTheta, QDimRMesh, QDimThetaMesh>>>
    +
    232 m_singular_basis_vals_and_derivs;
    +
    233 host_t<FieldMem<EvalDeriv1DType, IdxRange<RBasisSubset, QDimRMesh>>> m_r_basis_vals_and_derivs;
    +
    234 host_t<FieldMem<EvalDeriv1DType, IdxRange<ThetaBasisSubset, QDimThetaMesh>>>
    +
    235 m_theta_basis_vals_and_derivs;
    +
    236
    +
    237 FieldMem<double, IdxRangeQuadratureRTheta> m_int_volume;
    +
    238
    + +
    240 m_polar_spline_evaluator;
    +
    241 std::unique_ptr<MatrixBatchCsr<Kokkos::DefaultExecutionSpace, MatrixBatchCsrSolver::CG>>
    +
    242 m_gko_matrix;
    +
    243 mutable host_t<SplinePolar> m_phi_spline_coef;
    +
    244 Kokkos::View<double**, Kokkos::LayoutRight> m_x_init;
    +
    245
    +
    246 const int m_batch_idx {0}; // TODO: Remove when batching is supported
    +
    247public:
    +
    271 template <class Mapping>
    +
    + +
    273 ConstSpline2D coeff_alpha,
    +
    274 ConstSpline2D coeff_beta,
    +
    275 Mapping const& mapping,
    +
    276 SplineRThetaEvaluatorNullBound const& spline_evaluator)
    +
    277 : m_nbasis_r(ddc::discrete_space<BSplinesR>().nbasis() - m_n_overlap_cells - 1)
    +
    278 , m_nbasis_theta(ddc::discrete_space<BSplinesTheta>().nbasis())
    +
    279 , m_matrix_size(ddc::discrete_space<PolarBSplinesRTheta>().nbasis() - m_nbasis_theta)
    +
    280 , m_idxrange_fem_non_singular(
    +
    281 ddc::discrete_space<PolarBSplinesRTheta>().tensor_bspline_idx_range().remove_last(
    +
    282 IdxStep<PolarBSplinesRTheta> {m_nbasis_theta}))
    +
    283 , m_idxrange_bsplines_r(ddc::discrete_space<BSplinesR>().full_domain().remove_first(
    +
    284 IdxStep<BSplinesR> {m_n_overlap_cells}))
    +
    285 , m_idxrange_bsplines_theta(ddc::discrete_space<BSplinesTheta>().full_domain().take_first(
    +
    286 IdxStep<BSplinesTheta> {m_nbasis_theta}))
    +
    287 , m_idxrange_quadrature_r(
    +
    288 Idx<QDimRMesh>(0),
    +
    289 IdxStep<QDimRMesh>(
    +
    290 m_n_gauss_legendre_r * ddc::discrete_space<BSplinesR>().ncells()))
    +
    291 , m_idxrange_quadrature_theta(
    +
    292 Idx<QDimThetaMesh>(0),
    +
    293 IdxStep<QDimThetaMesh>(
    +
    294 m_n_gauss_legendre_theta * ddc::discrete_space<BSplinesTheta>().ncells()))
    +
    295 , m_idxrange_quadrature_singular(
    +
    296 m_idxrange_quadrature_r.take_first(
    +
    297 IdxStep<QDimRMesh> {m_n_overlap_cells * m_n_gauss_legendre_r}),
    +
    298 m_idxrange_quadrature_theta)
    +
    299 , m_points_r(m_idxrange_quadrature_r)
    +
    300 , m_points_theta(m_idxrange_quadrature_theta)
    +
    301 , m_weights_r(m_idxrange_quadrature_r)
    +
    302 , m_weights_theta(m_idxrange_quadrature_theta)
    +
    303 , m_singular_basis_vals_and_derivs(IdxRange<PolarBSplinesRTheta, QDimRMesh, QDimThetaMesh>(
    +
    304 PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>(),
    +
    305 ddc::select<QDimRMesh>(m_idxrange_quadrature_singular),
    +
    306 ddc::select<QDimThetaMesh>(m_idxrange_quadrature_singular)))
    +
    307 , m_r_basis_vals_and_derivs(
    +
    308 IdxRange<RBasisSubset, QDimRMesh>(m_non_zero_bases_r, m_idxrange_quadrature_r))
    +
    309 , m_theta_basis_vals_and_derivs(
    +
    310 IdxRange<
    +
    311 ThetaBasisSubset,
    +
    312 QDimThetaMesh>(m_non_zero_bases_theta, m_idxrange_quadrature_theta))
    +
    313 , m_int_volume(
    +
    314 IdxRangeQuadratureRTheta(m_idxrange_quadrature_r, m_idxrange_quadrature_theta))
    +
    315 , m_polar_spline_evaluator(ddc::NullExtrapolationRule())
    +
    316 , m_phi_spline_coef(
    +
    317 PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>(),
    +
    318 IdxRangeBSRTheta(
    +
    319 m_idxrange_bsplines_r,
    +
    320 ddc::discrete_space<BSplinesTheta>().full_domain()))
    +
    321 , m_x_init(
    +
    322 "x_init",
    +
    323 1,
    +
    324 ddc::discrete_space<PolarBSplinesRTheta>().nbasis()
    +
    325 - ddc::discrete_space<BSplinesTheta>().nbasis())
    +
    326 {
    +
    327 static_assert(has_2d_jacobian_v<Mapping, CoordRTheta>);
    +
    328 //initialize x_init
    +
    329 Kokkos::deep_copy(m_x_init, 0);
    +
    330 // Get break points
    +
    331 IdxRange<KnotsR> idxrange_r_edges = ddc::discrete_space<BSplinesR>().break_point_domain();
    +
    332 IdxRange<KnotsTheta> idxrange_theta_edges
    +
    333 = ddc::discrete_space<BSplinesTheta>().break_point_domain();
    +
    334 host_t<FieldMem<Coord<R>, IdxRange<KnotsR>>> breaks_r(idxrange_r_edges);
    +
    335 host_t<FieldMem<Coord<Theta>, IdxRange<KnotsTheta>>> breaks_theta(idxrange_theta_edges);
    336
    -
    337 // Define quadrature points and weights
    -
    338 GaussLegendre<R> gl_coeffs_r(m_n_gauss_legendre_r);
    -
    339 GaussLegendre<Theta> gl_coeffs_theta(m_n_gauss_legendre_theta);
    -
    340 gl_coeffs_r.compute_points_and_weights_on_mesh(
    -
    341 get_field(m_points_r),
    -
    342 get_field(m_weights_r),
    -
    343 get_const_field(breaks_r));
    -
    344 gl_coeffs_theta.compute_points_and_weights_on_mesh(
    -
    345 get_field(m_points_theta),
    -
    346 get_field(m_weights_theta),
    -
    347 get_const_field(breaks_theta));
    -
    348
    -
    349 std::vector<double> vect_points_r(m_points_r.size());
    -
    350 for (IdxQuadratureR i : m_idxrange_quadrature_r) {
    -
    351 vect_points_r[i - m_idxrange_quadrature_r.front()] = m_points_r(i);
    -
    352 }
    -
    353 std::vector<double> vect_points_theta(m_points_theta.size());
    -
    354 for (IdxQuadratureTheta i : m_idxrange_quadrature_theta) {
    -
    355 vect_points_theta[i - m_idxrange_quadrature_theta.front()] = m_points_theta(i);
    -
    356 }
    -
    357
    -
    358 // Create quadrature index range
    -
    359 ddc::init_discrete_space<QDimRMesh>(vect_points_r);
    -
    360 ddc::init_discrete_space<QDimThetaMesh>(vect_points_theta);
    -
    361
    -
    362 // Find value and derivative of 1D bsplines in radial direction
    -
    363 ddc::for_each(m_idxrange_quadrature_r, [&](IdxQuadratureR const idx_r) {
    -
    364 std::array<double, 2 * m_n_non_zero_bases_r> data;
    -
    365 DSpan2D vals(data.data(), m_n_non_zero_bases_r, 2);
    -
    366 ddc::discrete_space<BSplinesR>()
    -
    367 .eval_basis_and_n_derivs(vals, ddc::coordinate(idx_r), 1);
    -
    368 for (auto ib : m_non_zero_bases_r) {
    -
    369 const int ib_idx = ib - m_non_zero_bases_r.front();
    -
    370 r_basis_vals_and_derivs(ib, idx_r).value = vals(ib_idx, 0);
    -
    371 r_basis_vals_and_derivs(ib, idx_r).derivative = vals(ib_idx, 1);
    -
    372 }
    -
    373 });
    -
    374
    -
    375 // Find value and derivative of 1D bsplines in poloidal direction
    -
    376 ddc::for_each(m_idxrange_quadrature_theta, [&](IdxQuadratureTheta const idx_theta) {
    -
    377 std::array<double, 2 * m_n_non_zero_bases_theta> data;
    -
    378 DSpan2D vals(data.data(), m_n_non_zero_bases_theta, 2);
    -
    379 ddc::discrete_space<BSplinesTheta>()
    -
    380 .eval_basis_and_n_derivs(vals, ddc::coordinate(idx_theta), 1);
    -
    381 for (auto ib : m_non_zero_bases_theta) {
    -
    382 const int ib_idx = ib - m_non_zero_bases_theta.front();
    -
    383 m_theta_basis_vals_and_derivs(ib, idx_theta).value = vals(ib_idx, 0);
    -
    384 m_theta_basis_vals_and_derivs(ib, idx_theta).derivative = vals(ib_idx, 1);
    -
    385 }
    -
    386 });
    -
    387
    -
    388 IdxRangeBSPolar idxrange_singular
    -
    389 = PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>();
    -
    390
    -
    391 // Find value and derivative of 2D bsplines covering the singular point
    -
    392 ddc::for_each(m_idxrange_quadrature_singular, [&](IdxQuadratureRTheta const irp) {
    -
    393 std::array<double, PolarBSplinesRTheta::n_singular_basis()> singular_data;
    -
    394 std::array<double, m_n_non_zero_bases_r * m_n_non_zero_bases_theta> data;
    -
    395 // Values of the polar basis splines around the singular point
    -
    396 // at a given coordinate
    -
    397 DSpan1D singular_vals(singular_data.data(), PolarBSplinesRTheta::n_singular_basis());
    -
    398 // Values of the polar basis splines, that do not cover the singular point,
    -
    399 // at a given coordinate
    -
    400 DSpan2D vals(data.data(), m_n_non_zero_bases_r, m_n_non_zero_bases_theta);
    -
    401 IdxQuadratureR idx_r = ddc::select<QDimRMesh>(irp);
    -
    402 IdxQuadratureTheta idx_theta = ddc::select<QDimThetaMesh>(irp);
    -
    403
    -
    404 const CoordRTheta coord(ddc::coordinate(irp));
    -
    405
    -
    406 // Calculate the value
    -
    407 ddc::discrete_space<PolarBSplinesRTheta>().eval_basis(singular_vals, vals, coord);
    -
    408 for (IdxBSPolar ib : idxrange_singular) {
    -
    409 m_singular_basis_vals_and_derivs(ib, idx_r, idx_theta).value
    -
    410 = singular_vals[ib - idxrange_singular.front()];
    -
    411 }
    -
    412
    -
    413 // Calculate the radial derivative
    -
    414 ddc::discrete_space<PolarBSplinesRTheta>().eval_deriv_r(singular_vals, vals, coord);
    -
    415 for (IdxBSPolar ib : idxrange_singular) {
    -
    416 m_singular_basis_vals_and_derivs(ib, idx_r, idx_theta).radial_derivative
    -
    417 = singular_vals[ib - idxrange_singular.front()];
    -
    418 }
    -
    419
    -
    420 // Calculate the poloidal derivative
    -
    421 ddc::discrete_space<PolarBSplinesRTheta>().eval_deriv_theta(singular_vals, vals, coord);
    -
    422 for (IdxBSPolar ib : idxrange_singular) {
    -
    423 m_singular_basis_vals_and_derivs(ib, idx_r, idx_theta).poloidal_derivative
    -
    424 = singular_vals[ib - idxrange_singular.front()];
    -
    425 }
    -
    426 });
    -
    427
    -
    428 // Find the integral volume associated with each point used in the quadrature scheme
    -
    429 IdxRangeQuadratureRTheta
    -
    430 all_quad_points(m_idxrange_quadrature_r, m_idxrange_quadrature_theta);
    -
    431 ddc::for_each(all_quad_points, [&](IdxQuadratureRTheta const irp) {
    -
    432 IdxQuadratureR const idx_r = ddc::select<QDimRMesh>(irp);
    -
    433 IdxQuadratureTheta const idx_theta = ddc::select<QDimThetaMesh>(irp);
    -
    434 CoordRTheta coord(ddc::coordinate(irp));
    -
    435 m_int_volume(idx_r, idx_theta) = abs(mapping.jacobian(coord)) * m_weights_r(idx_r)
    -
    436 * m_weights_theta(idx_theta);
    -
    437 });
    -
    438
    -
    439 // Number of elements in the matrix that correspond to the splines
    -
    440 // that cover the singular point
    -
    441 constexpr int n_elements_singular
    - -
    443 // Number of non-zero elements in the matrix corresponding to the inner product of
    -
    444 // polar splines at the singular point and the other splines
    -
    445 const int n_elements_overlap = 2
    - -
    447 * BSplinesR::degree() * m_nbasis_theta);
    -
    448 const int n_stencil_theta
    -
    449 = m_nbasis_theta * min(int(1 + 2 * BSplinesTheta::degree()), m_nbasis_theta);
    -
    450 const int n_stencil_r = m_nbasis_r * (1 + 2 * BSplinesR::degree())
    -
    451 - (1 + BSplinesR::degree()) * BSplinesR::degree();
    -
    452 // Number of non-zero elements in the matrix corresponding to the inner product of
    -
    453 // non-central splines. These have a tensor product structure
    -
    454 const int n_elements_stencil = n_stencil_r * n_stencil_theta;
    -
    455
    -
    456 const int batch_size = 1;
    -
    457 // Matrix size is equal to the number Polar bspline
    -
    458 const int matrix_size
    -
    459 = ddc::discrete_space<PolarBSplinesRTheta>().nbasis() - m_nbasis_theta;
    -
    460 const int n_matrix_elements = n_elements_singular + n_elements_overlap + n_elements_stencil;
    -
    461
    -
    462 //CSR data storage
    -
    463 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace>
    -
    464 values_csr_host("values_csr", batch_size, n_matrix_elements);
    -
    465 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace>
    -
    466 col_idx_csr_host("idx_csr", n_matrix_elements);
    -
    467 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>
    -
    468 nnz_per_row_csr("nnz_per_row_csr", matrix_size + 1);
    -
    469 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace>
    -
    470 nnz_per_row_csr_host("nnz_per_row_csr", matrix_size + 1);
    -
    471
    -
    472 init_nnz_per_line(nnz_per_row_csr);
    -
    473 Kokkos::deep_copy(nnz_per_row_csr_host, nnz_per_row_csr);
    -
    474
    -
    475 Kokkos::Profiling::pushRegion("PolarPoissonFillFemMatrix");
    -
    476 // Calculate the matrix elements corresponding to the bsplines which cover the singular point
    -
    477 ddc::for_each(idxrange_singular, [&](IdxBSPolar const idx_test) {
    -
    478 ddc::for_each(idxrange_singular, [&](IdxBSPolar const idx_trial) {
    -
    479 // Calculate the weak integral
    -
    480 double const element = ddc::transform_reduce(
    -
    481 m_idxrange_quadrature_singular,
    -
    482 0.0,
    -
    483 ddc::reducer::sum<double>(),
    -
    484 [&](IdxQuadratureRTheta const idx_quad) {
    -
    485 IdxQuadratureR const idx_r = ddc::select<QDimRMesh>(idx_quad);
    -
    486 IdxQuadratureTheta const idx_theta
    -
    487 = ddc::select<QDimThetaMesh>(idx_quad);
    -
    488 return weak_integral_element(
    -
    489 idx_r,
    -
    490 idx_theta,
    -
    491 m_singular_basis_vals_and_derivs(idx_test, idx_r, idx_theta),
    -
    492 m_singular_basis_vals_and_derivs(idx_trial, idx_r, idx_theta),
    -
    493 coeff_alpha,
    -
    494 coeff_beta,
    -
    495 spline_evaluator,
    -
    496 mapping);
    -
    497 });
    -
    498 const int row_idx = idx_test - idxrange_singular.front();
    -
    499 const int col_idx = idx_trial - idxrange_singular.front();
    -
    500 const int csr_idx_singular_area = nnz_per_row_csr_host(row_idx + 1);
    -
    501 //Fill the C matrix corresponding to the splines on the singular point
    -
    502 col_idx_csr_host(csr_idx_singular_area) = col_idx;
    -
    503 values_csr_host(m_batch_idx, csr_idx_singular_area) = element;
    -
    504 nnz_per_row_csr_host(row_idx + 1)++;
    -
    505 });
    -
    506 });
    -
    507
    -
    508 // Create index ranges associated with the 2D splines
    -
    509 IdxRangeBSR central_radial_bspline_idx_range(
    -
    510 m_idxrange_bsplines_r.take_first(IdxStep<BSplinesR> {BSplinesR::degree()}));
    -
    511
    -
    512 IdxRangeBSRTheta idxrange_non_singular_near_centre(
    -
    513 central_radial_bspline_idx_range,
    -
    514 m_idxrange_bsplines_theta);
    -
    515
    -
    516 // Calculate the matrix elements where bspline products overlap the bsplines which cover the singular point
    -
    517 ddc::for_each(idxrange_singular, [&](IdxBSPolar const idx_test) {
    -
    518 ddc::for_each(idxrange_non_singular_near_centre, [&](IdxBSRTheta const idx_trial) {
    -
    519 const IdxBSPolar idx_trial_polar(
    -
    520 PolarBSplinesRTheta::template get_polar_index<PolarBSplinesRTheta>(
    -
    521 idx_trial));
    -
    522 const Idx<BSplinesR> idx_trial_r(ddc::select<BSplinesR>(idx_trial));
    -
    523 const Idx<BSplinesTheta> idx_trial_theta(ddc::select<BSplinesTheta>(idx_trial));
    -
    524
    -
    525 // Find the index range covering the cells where both the test and trial functions are non-zero
    -
    526 const Idx<RCellDim> first_overlap_element_r(
    -
    527 idx_trial_r.uid() < BSplinesR::degree()
    -
    528 ? 0
    -
    529 : idx_trial_r.uid() - BSplinesR::degree());
    -
    530 const Idx<ThetaCellDim> first_overlap_element_theta(
    -
    531 theta_mod(idx_trial_theta.uid() - BSplinesTheta::degree()));
    -
    532
    -
    533 const IdxStep<RCellDim> n_overlap_r(
    -
    534 m_n_overlap_cells - first_overlap_element_r.uid());
    -
    535 const IdxStep<ThetaCellDim> n_overlap_theta(BSplinesTheta::degree() + 1);
    -
    536
    -
    537 const IdxRange<RCellDim> r_cells(first_overlap_element_r, n_overlap_r);
    -
    538 const IdxRange<ThetaCellDim>
    -
    539 theta_cells(first_overlap_element_theta, n_overlap_theta);
    -
    540 const IdxRange<RCellDim, ThetaCellDim> non_zero_cells(r_cells, theta_cells);
    -
    541
    -
    542 if (n_overlap_r > 0) {
    -
    543 double element = 0.0;
    -
    544
    -
    545 ddc::for_each(non_zero_cells, [&](IdxCell const cell_idx) {
    -
    546 const int cell_idx_r(ddc::select<RCellDim>(cell_idx).uid());
    -
    547 const int cell_idx_theta(
    -
    548 theta_mod(ddc::select<ThetaCellDim>(cell_idx).uid()));
    -
    549
    -
    550 const IdxRangeQuadratureRTheta cell_quad_points(
    -
    551 get_quadrature_points_in_cell(cell_idx_r, cell_idx_theta));
    -
    552 // Find the column where the non-zero data is stored
    -
    553 Idx<RBasisSubset> ib_trial_r(idx_trial_r.uid() - cell_idx_r);
    -
    554 Idx<ThetaBasisSubset> ib_trial_theta(
    -
    555 theta_mod(idx_trial_theta.uid() - cell_idx_theta));
    -
    556 // Calculate the weak integral
    -
    557 element += ddc::transform_reduce(
    -
    558 cell_quad_points,
    -
    559 0.0,
    -
    560 ddc::reducer::sum<double>(),
    -
    561 [&](IdxQuadratureRTheta const idx_quad) {
    -
    562 IdxQuadratureR const idx_r = ddc::select<QDimRMesh>(idx_quad);
    -
    563 IdxQuadratureTheta const idx_theta
    -
    564 = ddc::select<QDimThetaMesh>(idx_quad);
    -
    565 return weak_integral_element<Mapping>(
    -
    566 idx_r,
    -
    567 idx_theta,
    -
    568 m_singular_basis_vals_and_derivs(
    -
    569 idx_test,
    -
    570 idx_r,
    -
    571 idx_theta),
    -
    572 r_basis_vals_and_derivs(ib_trial_r, idx_r),
    -
    573 m_theta_basis_vals_and_derivs(
    -
    574 ib_trial_theta,
    -
    575 idx_theta),
    -
    576 coeff_alpha,
    -
    577 coeff_beta,
    -
    578 spline_evaluator,
    -
    579 mapping);
    -
    580 });
    -
    581 });
    -
    582
    -
    583 int const row_idx = idx_test - idxrange_singular.front();
    -
    584 int const col_idx = idx_trial_polar - idxrange_singular.front();
    -
    585 //a_ij
    -
    586 col_idx_csr_host(nnz_per_row_csr_host(row_idx + 1)) = col_idx;
    -
    587 values_csr_host(m_batch_idx, nnz_per_row_csr_host(row_idx + 1)) = element;
    -
    588 nnz_per_row_csr_host(row_idx + 1)++;
    -
    589 //a_ji
    -
    590 col_idx_csr_host(nnz_per_row_csr_host(col_idx + 1)) = row_idx;
    -
    591 values_csr_host(m_batch_idx, nnz_per_row_csr_host(col_idx + 1)) = element;
    -
    592 nnz_per_row_csr_host(col_idx + 1)++;
    -
    593 }
    -
    594 });
    -
    595 });
    -
    596
    -
    597 // Calculate the matrix elements following a stencil
    -
    598 ddc::for_each(m_idxrange_fem_non_singular, [&](IdxBSPolar const idx_test_polar) {
    -
    599 const IdxBSRTheta idx_test(PolarBSplinesRTheta::get_2d_index(idx_test_polar));
    -
    600 const std::size_t idx_test_r(ddc::select<BSplinesR>(idx_test).uid());
    -
    601 const std::size_t idx_test_theta(ddc::select<BSplinesTheta>(idx_test).uid());
    -
    602
    -
    603 // Calculate the index of the elements that are already filled
    -
    604 IdxRangeBSTheta remaining_theta(
    -
    605 Idx<BSplinesTheta> {idx_test_theta},
    -
    606 IdxStep<BSplinesTheta> {BSplinesTheta::degree() + 1});
    -
    607 ddc::for_each(remaining_theta, [&](Idx<BSplinesTheta> const idx_trial_theta) {
    -
    608 IdxBSRTheta idx_trial(Idx<BSplinesR>(idx_test_r), idx_trial_theta);
    -
    609 IdxBSPolar idx_trial_polar(
    -
    610 PolarBSplinesRTheta::template get_polar_index<PolarBSplinesRTheta>(
    -
    611 IdxBSRTheta(idx_test_r, theta_mod(idx_trial_theta.uid()))));
    -
    612 double element = get_matrix_stencil_element(
    -
    613 idx_test,
    -
    614 idx_trial,
    -
    615 coeff_alpha,
    -
    616 coeff_beta,
    -
    617 spline_evaluator,
    -
    618 mapping);
    -
    619 int const int_polar_idx_test = idx_test_polar - idxrange_singular.front();
    -
    620 if (idx_test_polar == idx_trial_polar) {
    -
    621 const int idx = nnz_per_row_csr_host(int_polar_idx_test + 1);
    -
    622 col_idx_csr_host(idx) = int_polar_idx_test;
    -
    623 values_csr_host(m_batch_idx, idx) = element;
    -
    624 nnz_per_row_csr_host(int_polar_idx_test + 1)++;
    -
    625 } else {
    -
    626 int const int_polar_idx_trial = idx_trial_polar - idxrange_singular.front();
    -
    627
    -
    628 const int aij_idx = nnz_per_row_csr_host(int_polar_idx_test + 1);
    -
    629 col_idx_csr_host(aij_idx) = int_polar_idx_trial;
    -
    630 values_csr_host(m_batch_idx, aij_idx) = element;
    -
    631 nnz_per_row_csr_host(int_polar_idx_test + 1)++;
    -
    632
    -
    633 const int aji_idx = nnz_per_row_csr_host(int_polar_idx_trial + 1);
    -
    634 col_idx_csr_host(aji_idx) = int_polar_idx_test;
    -
    635 values_csr_host(m_batch_idx, aji_idx) = element;
    -
    636 nnz_per_row_csr_host(int_polar_idx_trial + 1)++;
    -
    637 }
    -
    638 });
    -
    639 IdxRangeBSR remaining_r(
    -
    640 ddc::select<BSplinesR>(idx_test) + 1,
    -
    641 IdxStep<BSplinesR> {
    -
    642 min(BSplinesR::degree(),
    -
    643 ddc::discrete_space<BSplinesR>().nbasis() - 2 - idx_test_r)});
    -
    644 IdxRangeBSTheta relevant_theta(
    -
    645 Idx<BSplinesTheta> {
    -
    646 idx_test_theta + ddc::discrete_space<BSplinesTheta>().nbasis()
    -
    647 - BSplinesTheta::degree()},
    -
    648 IdxStep<BSplinesTheta> {2 * BSplinesTheta::degree() + 1});
    -
    649
    -
    650 IdxRangeBSRTheta trial_idx_range(remaining_r, relevant_theta);
    -
    651
    -
    652 ddc::for_each(trial_idx_range, [&](IdxBSRTheta const idx_trial) {
    -
    653 const int idx_trial_r(ddc::select<BSplinesR>(idx_trial).uid());
    -
    654 const int idx_trial_theta(ddc::select<BSplinesTheta>(idx_trial).uid());
    -
    655 IdxBSPolar idx_trial_polar(
    -
    656 PolarBSplinesRTheta::template get_polar_index<PolarBSplinesRTheta>(
    -
    657 IdxBSRTheta(idx_trial_r, theta_mod(idx_trial_theta))));
    -
    658 double element = get_matrix_stencil_element(
    -
    659 idx_test,
    -
    660 idx_trial,
    -
    661 coeff_alpha,
    -
    662 coeff_beta,
    -
    663 spline_evaluator,
    -
    664 mapping);
    -
    665 int const int_polar_idx_test = idx_test_polar - idxrange_singular.front();
    -
    666 if (idx_test_polar == idx_trial_polar) {
    -
    667 const int idx = nnz_per_row_csr_host(int_polar_idx_test + 1);
    -
    668 col_idx_csr_host(idx) = int_polar_idx_test;
    -
    669 values_csr_host(m_batch_idx, idx) = element;
    -
    670 nnz_per_row_csr_host(int_polar_idx_test + 1)++;
    -
    671 } else {
    -
    672 int const int_polar_idx_trial = idx_trial_polar - idxrange_singular.front();
    -
    673 const int aij_idx = nnz_per_row_csr_host(int_polar_idx_test + 1);
    -
    674 col_idx_csr_host(aij_idx) = int_polar_idx_trial;
    -
    675 values_csr_host(m_batch_idx, aij_idx) = element;
    -
    676 nnz_per_row_csr_host(int_polar_idx_test + 1)++;
    -
    677
    -
    678 const int aji_idx = nnz_per_row_csr_host(int_polar_idx_trial + 1);
    -
    679 col_idx_csr_host(aji_idx) = int_polar_idx_test;
    -
    680 values_csr_host(m_batch_idx, aji_idx) = element;
    -
    681 nnz_per_row_csr_host(int_polar_idx_trial + 1)++;
    -
    682 }
    -
    683 });
    -
    684 });
    -
    685 assert(nnz_per_row_csr_host(matrix_size) == n_matrix_elements);
    -
    686 m_gko_matrix = std::make_unique<MatrixBatchCsr<
    -
    687 Kokkos::DefaultExecutionSpace,
    -
    688 MatrixBatchCsrSolver::CG>>(1, matrix_size, n_matrix_elements);
    -
    689
    -
    690 auto [values, col_idx, nnz_per_row] = m_gko_matrix->get_batch_csr();
    -
    691 Kokkos::deep_copy(values, values_csr_host);
    -
    692 Kokkos::deep_copy(col_idx, col_idx_csr_host);
    -
    693 Kokkos::deep_copy(nnz_per_row, nnz_per_row_csr_host);
    -
    694 m_gko_matrix->setup_solver();
    -
    695 Kokkos::Profiling::popRegion();
    -
    696 }
    +
    337 ddc::for_each(idxrange_r_edges, [&](Idx<KnotsR> i) { breaks_r(i) = ddc::coordinate(i); });
    +
    338 ddc::for_each(idxrange_theta_edges, [&](Idx<KnotsTheta> i) {
    +
    339 breaks_theta(i) = ddc::coordinate(i);
    +
    340 });
    +
    341
    +
    342 // Define quadrature points and weights
    +
    343 GaussLegendre<R> gl_coeffs_r(m_n_gauss_legendre_r);
    +
    344 GaussLegendre<Theta> gl_coeffs_theta(m_n_gauss_legendre_theta);
    +
    345 gl_coeffs_r.compute_points_and_weights_on_mesh(
    +
    346 get_field(m_points_r),
    +
    347 get_field(m_weights_r),
    +
    348 get_const_field(breaks_r));
    +
    349 gl_coeffs_theta.compute_points_and_weights_on_mesh(
    +
    350 get_field(m_points_theta),
    +
    351 get_field(m_weights_theta),
    +
    352 get_const_field(breaks_theta));
    +
    353
    +
    354 std::vector<double> vect_points_r(m_points_r.size());
    +
    355 for (IdxQuadratureR i : m_idxrange_quadrature_r) {
    +
    356 vect_points_r[i - m_idxrange_quadrature_r.front()] = m_points_r(i);
    +
    357 }
    +
    358 std::vector<double> vect_points_theta(m_points_theta.size());
    +
    359 for (IdxQuadratureTheta i : m_idxrange_quadrature_theta) {
    +
    360 vect_points_theta[i - m_idxrange_quadrature_theta.front()] = m_points_theta(i);
    +
    361 }
    +
    362
    +
    363 // Create quadrature index range
    +
    364 ddc::init_discrete_space<QDimRMesh>(vect_points_r);
    +
    365 ddc::init_discrete_space<QDimThetaMesh>(vect_points_theta);
    +
    366
    +
    367 // Find value and derivative of 1D bsplines in radial direction
    +
    368 ddc::for_each(m_idxrange_quadrature_r, [&](IdxQuadratureR const idx_r) {
    +
    369 std::array<double, 2 * m_n_non_zero_bases_r> data;
    +
    370 DSpan2D vals(data.data(), m_n_non_zero_bases_r, 2);
    +
    371 ddc::discrete_space<BSplinesR>()
    +
    372 .eval_basis_and_n_derivs(vals, ddc::coordinate(idx_r), 1);
    +
    373 for (auto ib : m_non_zero_bases_r) {
    +
    374 const int ib_idx = ib - m_non_zero_bases_r.front();
    +
    375 m_r_basis_vals_and_derivs(ib, idx_r).value = vals(ib_idx, 0);
    +
    376 m_r_basis_vals_and_derivs(ib, idx_r).derivative = vals(ib_idx, 1);
    +
    377 }
    +
    378 });
    +
    379
    +
    380 // Find value and derivative of 1D bsplines in poloidal direction
    +
    381 ddc::for_each(m_idxrange_quadrature_theta, [&](IdxQuadratureTheta const idx_theta) {
    +
    382 std::array<double, 2 * m_n_non_zero_bases_theta> data;
    +
    383 DSpan2D vals(data.data(), m_n_non_zero_bases_theta, 2);
    +
    384 ddc::discrete_space<BSplinesTheta>()
    +
    385 .eval_basis_and_n_derivs(vals, ddc::coordinate(idx_theta), 1);
    +
    386 for (auto ib : m_non_zero_bases_theta) {
    +
    387 const int ib_idx = ib - m_non_zero_bases_theta.front();
    +
    388 m_theta_basis_vals_and_derivs(ib, idx_theta).value = vals(ib_idx, 0);
    +
    389 m_theta_basis_vals_and_derivs(ib, idx_theta).derivative = vals(ib_idx, 1);
    +
    390 }
    +
    391 });
    +
    392
    +
    393 IdxRangeBSPolar idxrange_singular
    +
    394 = PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>();
    +
    395
    +
    396 // Find value and derivative of 2D bsplines covering the singular point
    +
    397 ddc::for_each(m_idxrange_quadrature_singular, [&](IdxQuadratureRTheta const irp) {
    +
    398 std::array<double, PolarBSplinesRTheta::n_singular_basis()> singular_data;
    +
    399 std::array<double, m_n_non_zero_bases_r * m_n_non_zero_bases_theta> data;
    +
    400 // Values of the polar basis splines around the singular point
    +
    401 // at a given coordinate
    +
    402 DSpan1D singular_vals(singular_data.data(), PolarBSplinesRTheta::n_singular_basis());
    +
    403 // Values of the polar basis splines, that do not cover the singular point,
    +
    404 // at a given coordinate
    +
    405 DSpan2D vals(data.data(), m_n_non_zero_bases_r, m_n_non_zero_bases_theta);
    +
    406 IdxQuadratureR const idx_r(irp);
    +
    407 IdxQuadratureTheta const idx_theta(irp);
    +
    408
    +
    409 const CoordRTheta coord(ddc::coordinate(irp));
    +
    410
    +
    411 // Calculate the value
    +
    412 ddc::discrete_space<PolarBSplinesRTheta>().eval_basis(singular_vals, vals, coord);
    +
    413 for (IdxBSPolar ib : idxrange_singular) {
    +
    414 m_singular_basis_vals_and_derivs(ib, idx_r, idx_theta).value
    +
    415 = singular_vals[ib - idxrange_singular.front()];
    +
    416 }
    +
    417
    +
    418 // Calculate the radial derivative
    +
    419 ddc::discrete_space<PolarBSplinesRTheta>().eval_deriv_r(singular_vals, vals, coord);
    +
    420 for (IdxBSPolar ib : idxrange_singular) {
    +
    421 m_singular_basis_vals_and_derivs(ib, idx_r, idx_theta).radial_derivative
    +
    422 = singular_vals[ib - idxrange_singular.front()];
    +
    423 }
    +
    424
    +
    425 // Calculate the poloidal derivative
    +
    426 ddc::discrete_space<PolarBSplinesRTheta>().eval_deriv_theta(singular_vals, vals, coord);
    +
    427 for (IdxBSPolar ib : idxrange_singular) {
    +
    428 m_singular_basis_vals_and_derivs(ib, idx_r, idx_theta).poloidal_derivative
    +
    429 = singular_vals[ib - idxrange_singular.front()];
    +
    430 }
    +
    431 });
    +
    432
    +
    433 // Number of elements in the matrix that correspond to the splines
    +
    434 // that cover the singular point
    +
    435 constexpr int n_elements_singular
    + +
    437 // Number of non-zero elements in the matrix corresponding to the inner product of
    +
    438 // polar splines at the singular point and the other splines
    +
    439 const int n_elements_overlap = 2
    + +
    441 * BSplinesR::degree() * m_nbasis_theta);
    +
    442 const int n_stencil_theta
    +
    443 = m_nbasis_theta * min(int(1 + 2 * BSplinesTheta::degree()), m_nbasis_theta);
    +
    444 const int n_stencil_r = m_nbasis_r * (1 + 2 * BSplinesR::degree())
    +
    445 - (1 + BSplinesR::degree()) * BSplinesR::degree();
    +
    446 // Number of non-zero elements in the matrix corresponding to the inner product of
    +
    447 // non-central splines. These have a tensor product structure
    +
    448 const int n_elements_stencil = n_stencil_r * n_stencil_theta;
    +
    449
    +
    450 const int batch_size = 1;
    +
    451
    +
    452 const int n_matrix_elements = n_elements_singular + n_elements_overlap + n_elements_stencil;
    +
    453
    +
    454 //CSR data storage
    +
    455 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace>
    +
    456 values_csr_host("values_csr", batch_size, n_matrix_elements);
    +
    457 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace>
    +
    458 col_idx_csr_host("idx_csr", n_matrix_elements);
    +
    459 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>
    +
    460 nnz_per_row_csr("nnz_per_row_csr", m_matrix_size + 1);
    +
    461 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace>
    +
    462 nnz_per_row_csr_host("nnz_per_row_csr", m_matrix_size + 1);
    +
    463
    +
    464 fill_int_volume(mapping);
    +
    465
    +
    466 m_gko_matrix = std::make_unique<MatrixBatchCsr<
    +
    467 Kokkos::DefaultExecutionSpace,
    +
    468 MatrixBatchCsrSolver::CG>>(1, m_matrix_size, n_matrix_elements);
    +
    469 auto [values, col_idx, nnz_per_row] = m_gko_matrix->get_batch_csr();
    +
    470 init_nnz_per_line(nnz_per_row);
    +
    471 Kokkos::deep_copy(nnz_per_row_csr_host, nnz_per_row);
    +
    472
    + +
    474 coeff_alpha,
    +
    475 coeff_beta,
    +
    476 mapping,
    +
    477 spline_evaluator,
    +
    478 values_csr_host,
    +
    479 col_idx_csr_host,
    +
    480 nnz_per_row_csr_host);
    + +
    482 coeff_alpha,
    +
    483 coeff_beta,
    +
    484 mapping,
    +
    485 spline_evaluator,
    +
    486 values_csr_host,
    +
    487 col_idx_csr_host,
    +
    488 nnz_per_row_csr_host);
    + +
    490 coeff_alpha,
    +
    491 coeff_beta,
    +
    492 mapping,
    +
    493 spline_evaluator,
    +
    494 values_csr_host,
    +
    495 col_idx_csr_host,
    +
    496 nnz_per_row_csr_host);
    +
    497
    +
    498 assert(nnz_per_row_csr_host(m_matrix_size) == n_matrix_elements);
    +
    499 Kokkos::deep_copy(values, values_csr_host);
    +
    500 Kokkos::deep_copy(col_idx, col_idx_csr_host);
    +
    501 Kokkos::deep_copy(nnz_per_row, nnz_per_row_csr_host);
    +
    502 m_gko_matrix->setup_solver();
    +
    503 }
    +
    +
    504
    +
    514 template <class Mapping>
    +
    +
    515 void fill_int_volume(Mapping const& mapping)
    +
    516 {
    +
    517 auto weights_r_alloc = ddc::create_mirror_view_and_copy(
    +
    518 Kokkos::DefaultExecutionSpace(),
    +
    519 get_field(m_weights_r));
    +
    520 auto weights_theta_alloc = ddc::create_mirror_view_and_copy(
    +
    521 Kokkos::DefaultExecutionSpace(),
    +
    522 get_field(m_weights_theta));
    +
    523 DField<IdxRangeQuadratureR> weights_r = get_field(weights_r_alloc);
    +
    524 DField<IdxRangeQuadratureTheta> weights_theta = get_field(weights_theta_alloc);
    +
    525 // Find the integral volume associated with each point used in the quadrature scheme
    +
    526 IdxRangeQuadratureRTheta const
    +
    527 all_quad_points(m_idxrange_quadrature_r, m_idxrange_quadrature_theta);
    +
    528 auto int_volume_alloc = ddc::create_mirror_view_and_copy(
    +
    529 Kokkos::DefaultExecutionSpace(),
    +
    530 get_field(m_int_volume));
    +
    531 auto int_volume = get_field(int_volume_alloc);
    +
    532 ddc::parallel_for_each(
    +
    533 Kokkos::DefaultExecutionSpace(),
    +
    534 all_quad_points,
    +
    535 KOKKOS_LAMBDA(IdxQuadratureRTheta const irp) {
    +
    536 IdxQuadratureR const idx_r(irp);
    +
    537 IdxQuadratureTheta const idx_theta(irp);
    +
    538 CoordRTheta coord(ddc::coordinate(irp));
    +
    539 int_volume(idx_r, idx_theta) = Kokkos::abs(mapping.jacobian(coord))
    +
    540 * weights_r(idx_r) * weights_theta(idx_theta);
    +
    541 });
    +
    542 }
    +
    +
    543
    +
    566 template <class Mapping>
    +
    + +
    568 ConstSpline2D coeff_alpha,
    +
    569 ConstSpline2D coeff_beta,
    +
    570 Mapping const& mapping,
    +
    571 SplineRThetaEvaluatorNullBound const& spline_evaluator,
    +
    572 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace> const values_csr_host,
    +
    573 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace> const col_idx_csr_host,
    +
    574 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace> const nnz_per_row_csr_host)
    +
    575 {
    +
    576 IdxRangeBSPolar idxrange_singular
    +
    577 = PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>();
    +
    578 IdxRangeQuadratureRTheta idxrange_quadrature_singular = m_idxrange_quadrature_singular;
    +
    579
    +
    580 auto singular_basis_vals_and_derivs_alloc = ddc::create_mirror_view_and_copy(
    +
    581 Kokkos::DefaultExecutionSpace(),
    +
    582 get_field(m_singular_basis_vals_and_derivs));
    +
    583 auto r_basis_vals_and_derivs_alloc = ddc::create_mirror_view_and_copy(
    +
    584 Kokkos::DefaultExecutionSpace(),
    +
    585 get_field(m_r_basis_vals_and_derivs));
    +
    586 Field<EvalDeriv2DType, IdxRange<PolarBSplinesRTheta, QDimRMesh, QDimThetaMesh>>
    +
    587 singular_basis_vals_and_derivs = get_field(singular_basis_vals_and_derivs_alloc);
    +
    588 DField<IdxRangeQuadratureRTheta> int_volume_proxy = get_field(m_int_volume);
    +
    589
    +
    590 Kokkos::Profiling::pushRegion("PolarPoissonFillFemMatrix");
    +
    591 // Calculate the matrix elements corresponding to the bsplines which cover the singular point
    +
    592 ddc::for_each(idxrange_singular, [&](IdxBSPolar const idx_test) {
    +
    593 ddc::for_each(idxrange_singular, [&](IdxBSPolar const idx_trial) {
    +
    594 // Calculate the weak integral
    +
    595 double const element = ddc::parallel_transform_reduce(
    +
    596 Kokkos::DefaultExecutionSpace(),
    +
    597 idxrange_quadrature_singular,
    +
    598 0.0,
    +
    599 ddc::reducer::sum<double>(),
    +
    600 KOKKOS_LAMBDA(Idx<QDimRMesh, QDimThetaMesh> const& idx_quad) {
    +
    601 Idx<QDimRMesh> const idx_r(idx_quad);
    +
    602 Idx<QDimThetaMesh> const idx_theta(idx_quad);
    + +
    604 idx_r,
    +
    605 idx_theta,
    +
    606 singular_basis_vals_and_derivs(idx_test, idx_r, idx_theta),
    +
    607 singular_basis_vals_and_derivs(idx_trial, idx_r, idx_theta),
    +
    608 coeff_alpha,
    +
    609 coeff_beta,
    +
    610 spline_evaluator,
    +
    611 mapping,
    +
    612 int_volume_proxy);
    +
    613 });
    +
    614 const int row_idx = idx_test - idxrange_singular.front();
    +
    615 const int col_idx = idx_trial - idxrange_singular.front();
    +
    616 const int csr_idx_singular_area = nnz_per_row_csr_host(row_idx + 1);
    +
    617 //Fill the C matrix corresponding to the splines on the singular point
    +
    618 col_idx_csr_host(csr_idx_singular_area) = col_idx;
    +
    619 values_csr_host(m_batch_idx, csr_idx_singular_area) = element;
    +
    620 nnz_per_row_csr_host(row_idx + 1)++;
    +
    621 });
    +
    622 });
    +
    623 }
    -
    697
    -
    711 template <class RHSFunction>
    -
    -
    712 void operator()(RHSFunction const& rhs, host_t<SplinePolar>& spline) const
    -
    713 {
    -
    714 Kokkos::Profiling::pushRegion("PolarPoissonRHS");
    -
    715
    -
    716 static_assert(
    -
    717 std::is_invocable_r_v<double, RHSFunction, CoordRTheta>,
    -
    718 "RHSFunction must have an operator() which takes a coordinate and returns a "
    -
    719 "double");
    -
    720 const int b_size = ddc::discrete_space<PolarBSplinesRTheta>().nbasis()
    -
    721 - ddc::discrete_space<BSplinesTheta>().nbasis();
    -
    722 const int batch_size = 1;
    -
    723 // Create b for rhs
    -
    724 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace>
    -
    725 b_host("b_host", batch_size, b_size);
    -
    726 //Create an initial guess
    -
    727 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace>
    -
    728 x_init_host("x_init_host", batch_size, b_size);
    -
    729 // Fill b
    -
    730 ddc::for_each(
    -
    731 PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>(),
    -
    732 [&](IdxBSPolar const idx) {
    -
    733 const int bspl_idx = idx
    -
    734 - PolarBSplinesRTheta::template singular_idx_range<
    - -
    736 .front();
    -
    737 b_host(0, bspl_idx) = ddc::transform_reduce(
    -
    738 m_idxrange_quadrature_singular,
    -
    739 0.0,
    -
    740 ddc::reducer::sum<double>(),
    -
    741 [&](IdxQuadratureRTheta const idx_quad) {
    -
    742 IdxQuadratureR const idx_r = ddc::select<QDimRMesh>(idx_quad);
    -
    743 IdxQuadratureTheta const idx_theta
    -
    744 = ddc::select<QDimThetaMesh>(idx_quad);
    -
    745 CoordRTheta coord(ddc::coordinate(idx_quad));
    -
    746 return rhs(coord)
    -
    747 * m_singular_basis_vals_and_derivs(idx, idx_r, idx_theta)
    -
    748 .value
    -
    749 * m_int_volume(idx_r, idx_theta);
    -
    750 });
    -
    751 });
    -
    752 const std::size_t ncells_r = ddc::discrete_space<BSplinesR>().ncells();
    -
    753 ddc::for_each(m_idxrange_fem_non_singular, [&](IdxBSPolar const idx) {
    -
    754 const IdxBSRTheta idx_2d(PolarBSplinesRTheta::get_2d_index(idx));
    -
    755 const std::size_t idx_r(ddc::select<BSplinesR>(idx_2d).uid());
    -
    756 const std::size_t idx_theta(ddc::select<BSplinesTheta>(idx_2d).uid());
    -
    757
    -
    758 // Find the cells on which the bspline is non-zero
    -
    759 int first_cell_r(idx_r - BSplinesR::degree());
    -
    760 int first_cell_theta(idx_theta - BSplinesTheta::degree());
    -
    761 std::size_t last_cell_r(idx_r + 1);
    -
    762 if (first_cell_r < 0)
    -
    763 first_cell_r = 0;
    -
    764 if (last_cell_r > ncells_r)
    -
    765 last_cell_r = ncells_r;
    -
    766 IdxStep<RCellDim> const r_length(last_cell_r - first_cell_r);
    -
    767 IdxStep<ThetaCellDim> const theta_length(BSplinesTheta::degree() + 1);
    -
    768
    -
    769
    -
    770 Idx<RCellDim> const start_r(first_cell_r);
    -
    771 Idx<ThetaCellDim> const start_theta(theta_mod(first_cell_theta));
    -
    772 const IdxRange<RCellDim> r_cells(start_r, r_length);
    -
    773 const IdxRange<ThetaCellDim> theta_cells(start_theta, theta_length);
    -
    774 const IdxRange<RCellDim, ThetaCellDim> non_zero_cells(r_cells, theta_cells);
    -
    775 assert(r_length * theta_length > 0);
    -
    776 double element = 0.0;
    -
    777 ddc::for_each(non_zero_cells, [&](IdxCell const cell_idx) {
    -
    778 const int cell_idx_r(ddc::select<RCellDim>(cell_idx).uid());
    -
    779 const int cell_idx_theta(theta_mod(ddc::select<ThetaCellDim>(cell_idx).uid()));
    -
    780
    -
    781 const IdxRangeQuadratureRTheta cell_quad_points(
    -
    782 get_quadrature_points_in_cell(cell_idx_r, cell_idx_theta));
    -
    783
    -
    784 // Find the column where the non-zero data is stored
    -
    785 Idx<RBasisSubset> ib_r(idx_r - cell_idx_r);
    -
    786 Idx<ThetaBasisSubset> ib_theta(theta_mod(idx_theta - cell_idx_theta));
    -
    787
    -
    788 // Calculate the weak integral
    -
    789 element += ddc::transform_reduce(
    -
    790 cell_quad_points,
    -
    791 0.0,
    -
    792 ddc::reducer::sum<double>(),
    -
    793 [&](IdxQuadratureRTheta const idx_quad) {
    -
    794 IdxQuadratureR const idx_r = ddc::select<QDimRMesh>(idx_quad);
    -
    795 IdxQuadratureTheta const idx_theta
    -
    796 = ddc::select<QDimThetaMesh>(idx_quad);
    -
    797 CoordRTheta coord(ddc::coordinate(idx_quad));
    -
    798 double rb = r_basis_vals_and_derivs(ib_r, idx_r).value;
    -
    799 double pb = m_theta_basis_vals_and_derivs(ib_theta, idx_theta).value;
    -
    800 return rhs(coord) * rb * pb * m_int_volume(idx_r, idx_theta);
    -
    801 });
    -
    802 });
    -
    803 const std::size_t singular_index
    -
    804 = idx - ddc::discrete_space<PolarBSplinesRTheta>().full_domain().front();
    -
    805 b_host(0, singular_index) = element;
    -
    806 });
    -
    807
    -
    808 Kokkos::View<double**, Kokkos::LayoutRight> b("b", batch_size, b_size);
    -
    809 Kokkos::deep_copy(b, b_host);
    -
    810 Kokkos::Profiling::popRegion();
    -
    811
    -
    812 Kokkos::deep_copy(m_x_init, x_init_host);
    -
    813 // Solve the matrix equation
    -
    814 Kokkos::Profiling::pushRegion("PolarPoissonSolve");
    -
    815 m_gko_matrix->solve(m_x_init, b);
    -
    816 Kokkos::deep_copy(x_init_host, m_x_init);
    -
    817 //-----------------
    -
    818 IdxRangeBSRTheta dirichlet_boundary_idx_range(
    -
    819 m_idxrange_bsplines_r.take_last(IdxStep<BSplinesR> {1}),
    -
    820 m_idxrange_bsplines_theta);
    -
    821 IdxRangeBSTheta idxrange_polar(ddc::discrete_space<BSplinesTheta>().full_domain());
    -
    822
    -
    823
    -
    824 // Fill the spline
    -
    825 ddc::for_each(
    -
    826 PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>(),
    -
    827 [&](IdxBSPolar const idx) {
    -
    828 const int bspl_idx = idx
    -
    829 - PolarBSplinesRTheta::template singular_idx_range<
    - -
    831 .front();
    -
    832 spline.singular_spline_coef(idx) = x_init_host(0, bspl_idx);
    -
    833 });
    -
    834 ddc::for_each(m_idxrange_fem_non_singular, [&](IdxBSPolar const idx) {
    -
    835 const IdxBSRTheta idx_2d(PolarBSplinesRTheta::get_2d_index(idx));
    -
    836 spline.spline_coef(idx_2d) = x_init_host(0, idx.uid());
    -
    837 });
    -
    838 ddc::for_each(dirichlet_boundary_idx_range, [&](IdxBSRTheta const idx) {
    -
    839 spline.spline_coef(idx) = 0.0;
    -
    840 });
    -
    841
    -
    842 // Copy the periodic elements
    -
    843 IdxRangeBSRTheta copy_idx_range(
    -
    844 m_idxrange_bsplines_r,
    -
    845 idxrange_polar.remove_first(
    -
    846 IdxStep<BSplinesTheta>(ddc::discrete_space<BSplinesTheta>().nbasis())));
    -
    847 ddc::for_each(copy_idx_range, [&](IdxBSRTheta const idx_2d) {
    -
    848 spline.spline_coef(ddc::select<BSplinesR>(idx_2d), ddc::select<BSplinesTheta>(idx_2d))
    -
    849 = spline.spline_coef(
    -
    850 ddc::select<BSplinesR>(idx_2d),
    -
    851 ddc::select<BSplinesTheta>(idx_2d)
    -
    852 - ddc::discrete_space<BSplinesTheta>().nbasis());
    -
    853 });
    -
    854 Kokkos::Profiling::popRegion();
    -
    855 }
    +
    624
    +
    647 template <class Mapping>
    +
    + +
    649 ConstSpline2D coeff_alpha,
    +
    650 ConstSpline2D coeff_beta,
    +
    651 Mapping const& mapping,
    +
    652 SplineRThetaEvaluatorNullBound const& spline_evaluator,
    +
    653 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace> const values_csr_host,
    +
    654 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace> const col_idx_csr_host,
    +
    655 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace> const nnz_per_row_csr_host)
    +
    656 {
    +
    657 // Create index ranges associated with the 2D splines
    +
    658 IdxRangeBSPolar idxrange_singular
    +
    659 = PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>();
    +
    660 IdxRangeBSR central_radial_bspline_idx_range(
    +
    661 m_idxrange_bsplines_r.take_first(IdxStep<BSplinesR> {BSplinesR::degree()}));
    +
    662
    +
    663 IdxRangeBSRTheta idxrange_non_singular_near_centre(
    +
    664 central_radial_bspline_idx_range,
    +
    665 m_idxrange_bsplines_theta);
    +
    666
    +
    667 auto singular_basis_vals_and_derivs_alloc = ddc::create_mirror_view_and_copy(
    +
    668 Kokkos::DefaultExecutionSpace(),
    +
    669 get_field(m_singular_basis_vals_and_derivs));
    +
    670 auto r_basis_vals_and_derivs_alloc = ddc::create_mirror_view_and_copy(
    +
    671 Kokkos::DefaultExecutionSpace(),
    +
    672 get_field(m_r_basis_vals_and_derivs));
    +
    673 auto theta_basis_vals_and_derivs_alloc = ddc::create_mirror_view_and_copy(
    +
    674 Kokkos::DefaultExecutionSpace(),
    +
    675 get_field(m_theta_basis_vals_and_derivs));
    +
    676 DField<IdxRangeQuadratureRTheta> int_volume_proxy = get_field(m_int_volume);
    +
    677 Field<EvalDeriv2DType, IdxRange<PolarBSplinesRTheta, QDimRMesh, QDimThetaMesh>>
    +
    678 singular_basis_vals_and_derivs = get_field(singular_basis_vals_and_derivs_alloc);
    +
    679 Field<EvalDeriv1DType, IdxRange<RBasisSubset, QDimRMesh>> r_basis_vals_and_derivs
    +
    680 = get_field(r_basis_vals_and_derivs_alloc);
    +
    681 Field<EvalDeriv1DType, IdxRange<ThetaBasisSubset, QDimThetaMesh>>
    +
    682 theta_basis_vals_and_derivs = get_field(theta_basis_vals_and_derivs_alloc);
    +
    683 // Calculate the matrix elements where bspline products overlap the bsplines which cover the singular point
    +
    684 ddc::for_each(idxrange_singular, [&](IdxBSPolar const idx_test) {
    +
    685 ddc::for_each(idxrange_non_singular_near_centre, [&](IdxBSRTheta const idx_trial) {
    +
    686 const IdxBSPolar idx_trial_polar(
    +
    687 PolarBSplinesRTheta::template get_polar_index<PolarBSplinesRTheta>(
    +
    688 idx_trial));
    +
    689 const Idx<BSplinesR> idx_trial_r(ddc::select<BSplinesR>(idx_trial));
    +
    690 const Idx<BSplinesTheta> idx_trial_theta(ddc::select<BSplinesTheta>(idx_trial));
    +
    691
    +
    692 // Find the index range covering the cells where both the test and trial functions are non-zero
    +
    693 const Idx<RCellDim> first_overlap_element_r(
    +
    694 idx_trial_r.uid() < BSplinesR::degree()
    +
    695 ? 0
    +
    696 : idx_trial_r.uid() - BSplinesR::degree());
    +
    697 const Idx<ThetaCellDim> first_overlap_element_theta(
    +
    698 theta_mod(idx_trial_theta.uid() - BSplinesTheta::degree()));
    +
    699
    +
    700 const IdxStep<RCellDim> n_overlap_r(
    +
    701 m_n_overlap_cells - first_overlap_element_r.uid());
    +
    702 const IdxStep<ThetaCellDim> n_overlap_theta(BSplinesTheta::degree() + 1);
    +
    703
    +
    704 const IdxRange<RCellDim> r_cells(first_overlap_element_r, n_overlap_r);
    +
    705 const IdxRange<ThetaCellDim>
    +
    706 theta_cells(first_overlap_element_theta, n_overlap_theta);
    +
    707 const IdxRange<RCellDim, ThetaCellDim> non_zero_cells(r_cells, theta_cells);
    +
    708
    +
    709 if (n_overlap_r > 0) {
    +
    710 double element = 0.0;
    +
    711
    +
    712 ddc::for_each(non_zero_cells, [&](IdxCell const cell_idx) {
    +
    713 const int cell_idx_r(ddc::select<RCellDim>(cell_idx).uid());
    +
    714 const int cell_idx_theta(
    +
    715 theta_mod(ddc::select<ThetaCellDim>(cell_idx).uid()));
    +
    716
    +
    717 const IdxRangeQuadratureRTheta cell_quad_points(
    +
    718 get_quadrature_points_in_cell(cell_idx_r, cell_idx_theta));
    +
    719 // Find the column where the non-zero data is stored
    +
    720 Idx<RBasisSubset> ib_trial_r(idx_trial_r.uid() - cell_idx_r);
    +
    721 Idx<ThetaBasisSubset> ib_trial_theta(
    +
    722 theta_mod(idx_trial_theta.uid() - cell_idx_theta));
    +
    723 // Calculate the weak integral
    +
    724 element += ddc::parallel_transform_reduce(
    +
    725 Kokkos::DefaultExecutionSpace(),
    +
    726 cell_quad_points,
    +
    727 0.0,
    +
    728 ddc::reducer::sum<double>(),
    +
    729 KOKKOS_LAMBDA(IdxQuadratureRTheta const idx_quad) {
    +
    730 IdxQuadratureR const idx_r(idx_quad);
    +
    731 IdxQuadratureTheta const idx_theta(idx_quad);
    +
    732 return weak_integral_element<Mapping>(
    +
    733 idx_r,
    +
    734 idx_theta,
    +
    735 singular_basis_vals_and_derivs(
    +
    736 idx_test,
    +
    737 idx_r,
    +
    738 idx_theta),
    +
    739 r_basis_vals_and_derivs(ib_trial_r, idx_r),
    +
    740 theta_basis_vals_and_derivs(ib_trial_theta, idx_theta),
    +
    741 coeff_alpha,
    +
    742 coeff_beta,
    +
    743 spline_evaluator,
    +
    744 mapping,
    +
    745 int_volume_proxy);
    +
    746 });
    +
    747 });
    +
    748
    +
    749 int const row_idx = idx_test - idxrange_singular.front();
    +
    750 int const col_idx = idx_trial_polar - idxrange_singular.front();
    +
    751 //a_ij
    +
    752 col_idx_csr_host(nnz_per_row_csr_host(row_idx + 1)) = col_idx;
    +
    753 values_csr_host(m_batch_idx, nnz_per_row_csr_host(row_idx + 1)) = element;
    +
    754 nnz_per_row_csr_host(row_idx + 1)++;
    +
    755 //a_ji
    +
    756 col_idx_csr_host(nnz_per_row_csr_host(col_idx + 1)) = row_idx;
    +
    757 values_csr_host(m_batch_idx, nnz_per_row_csr_host(col_idx + 1)) = element;
    +
    758 nnz_per_row_csr_host(col_idx + 1)++;
    +
    759 }
    +
    760 });
    +
    761 });
    +
    762 }
    -
    856
    -
    857
    -
    871 template <class RHSFunction>
    -
    -
    872 void operator()(RHSFunction const& rhs, host_t<DFieldRTheta> phi) const
    -
    873 {
    -
    874 static_assert(
    -
    875 std::is_invocable_r_v<double, RHSFunction, CoordRTheta>,
    -
    876 "RHSFunction must have an operator() which takes a coordinate and returns a "
    -
    877 "double");
    -
    878
    +
    763
    +
    786 template <class Mapping>
    +
    + +
    788 ConstSpline2D coeff_alpha,
    +
    789 ConstSpline2D coeff_beta,
    +
    790 Mapping const& mapping,
    +
    791 SplineRThetaEvaluatorNullBound const& spline_evaluator,
    +
    792 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace> const values_csr_host,
    +
    793 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace> const col_idx_csr_host,
    +
    794 Kokkos::View<int*, Kokkos::LayoutRight, Kokkos::HostSpace> const nnz_per_row_csr_host)
    +
    795 {
    +
    796 IdxRangeBSPolar idxrange_singular
    +
    797 = PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>();
    +
    798
    +
    799 // Calculate the matrix elements following a stencil
    +
    800 ddc::for_each(m_idxrange_fem_non_singular, [&](IdxBSPolar const idx_test_polar) {
    +
    801 const IdxBSRTheta idx_test(PolarBSplinesRTheta::get_2d_index(idx_test_polar));
    +
    802 const std::size_t idx_test_r(ddc::select<BSplinesR>(idx_test).uid());
    +
    803 const std::size_t idx_test_theta(ddc::select<BSplinesTheta>(idx_test).uid());
    +
    804
    +
    805 // Calculate the index of the elements that are already filled
    +
    806 IdxRangeBSTheta remaining_theta(
    +
    807 Idx<BSplinesTheta> {idx_test_theta},
    +
    808 IdxStep<BSplinesTheta> {BSplinesTheta::degree() + 1});
    +
    809 ddc::for_each(remaining_theta, [&](Idx<BSplinesTheta> const idx_trial_theta) {
    +
    810 IdxBSRTheta idx_trial(Idx<BSplinesR>(idx_test_r), idx_trial_theta);
    +
    811 IdxBSPolar idx_trial_polar(
    +
    812 PolarBSplinesRTheta::template get_polar_index<PolarBSplinesRTheta>(
    +
    813 IdxBSRTheta(idx_test_r, theta_mod(idx_trial_theta.uid()))));
    +
    814 double element = get_matrix_stencil_element(
    +
    815 idx_test,
    +
    816 idx_trial,
    +
    817 coeff_alpha,
    +
    818 coeff_beta,
    +
    819 spline_evaluator,
    +
    820 mapping);
    +
    821 int const int_polar_idx_test = idx_test_polar - idxrange_singular.front();
    +
    822 if (idx_test_polar == idx_trial_polar) {
    +
    823 const int idx = nnz_per_row_csr_host(int_polar_idx_test + 1);
    +
    824 col_idx_csr_host(idx) = int_polar_idx_test;
    +
    825 values_csr_host(m_batch_idx, idx) = element;
    +
    826 nnz_per_row_csr_host(int_polar_idx_test + 1)++;
    +
    827 } else {
    +
    828 int const int_polar_idx_trial = idx_trial_polar - idxrange_singular.front();
    +
    829
    +
    830 const int aij_idx = nnz_per_row_csr_host(int_polar_idx_test + 1);
    +
    831 col_idx_csr_host(aij_idx) = int_polar_idx_trial;
    +
    832 values_csr_host(m_batch_idx, aij_idx) = element;
    +
    833 nnz_per_row_csr_host(int_polar_idx_test + 1)++;
    +
    834
    +
    835 const int aji_idx = nnz_per_row_csr_host(int_polar_idx_trial + 1);
    +
    836 col_idx_csr_host(aji_idx) = int_polar_idx_test;
    +
    837 values_csr_host(m_batch_idx, aji_idx) = element;
    +
    838 nnz_per_row_csr_host(int_polar_idx_trial + 1)++;
    +
    839 }
    +
    840 });
    +
    841 IdxRangeBSR remaining_r(
    +
    842 ddc::select<BSplinesR>(idx_test) + 1,
    +
    843 IdxStep<BSplinesR> {
    +
    844 min(BSplinesR::degree(),
    +
    845 ddc::discrete_space<BSplinesR>().nbasis() - 2 - idx_test_r)});
    +
    846 IdxRangeBSTheta relevant_theta(
    +
    847 Idx<BSplinesTheta> {
    +
    848 idx_test_theta + ddc::discrete_space<BSplinesTheta>().nbasis()
    +
    849 - BSplinesTheta::degree()},
    +
    850 IdxStep<BSplinesTheta> {2 * BSplinesTheta::degree() + 1});
    +
    851
    +
    852 IdxRangeBSRTheta trial_idx_range(remaining_r, relevant_theta);
    +
    853
    +
    854 ddc::for_each(trial_idx_range, [&](IdxBSRTheta const idx_trial) {
    +
    855 const int idx_trial_r(ddc::select<BSplinesR>(idx_trial).uid());
    +
    856 const int idx_trial_theta(ddc::select<BSplinesTheta>(idx_trial).uid());
    +
    857 IdxBSPolar idx_trial_polar(
    +
    858 PolarBSplinesRTheta::template get_polar_index<PolarBSplinesRTheta>(
    +
    859 IdxBSRTheta(idx_trial_r, theta_mod(idx_trial_theta))));
    +
    860 double element = get_matrix_stencil_element(
    +
    861 idx_test,
    +
    862 idx_trial,
    +
    863 coeff_alpha,
    +
    864 coeff_beta,
    +
    865 spline_evaluator,
    +
    866 mapping);
    +
    867 int const int_polar_idx_test = idx_test_polar - idxrange_singular.front();
    +
    868 if (idx_test_polar == idx_trial_polar) {
    +
    869 const int idx = nnz_per_row_csr_host(int_polar_idx_test + 1);
    +
    870 col_idx_csr_host(idx) = int_polar_idx_test;
    +
    871 values_csr_host(m_batch_idx, idx) = element;
    +
    872 nnz_per_row_csr_host(int_polar_idx_test + 1)++;
    +
    873 } else {
    +
    874 int const int_polar_idx_trial = idx_trial_polar - idxrange_singular.front();
    +
    875 const int aij_idx = nnz_per_row_csr_host(int_polar_idx_test + 1);
    +
    876 col_idx_csr_host(aij_idx) = int_polar_idx_trial;
    +
    877 values_csr_host(m_batch_idx, aij_idx) = element;
    +
    878 nnz_per_row_csr_host(int_polar_idx_test + 1)++;
    879
    -
    880 (*this)(rhs, m_phi_spline_coef);
    -
    881 host_t<CoordFieldMemRTheta> coords_eval_alloc(get_idx_range(phi));
    -
    882 host_t<CoordFieldRTheta> coords_eval(get_field(coords_eval_alloc));
    -
    883 ddc::for_each(get_idx_range(phi), [&](IdxRTheta idx) {
    -
    884 coords_eval(idx) = ddc::coordinate(idx);
    -
    885 });
    -
    886 m_polar_spline_evaluator(phi, get_const_field(coords_eval), m_phi_spline_coef);
    -
    887 }
    +
    880 const int aji_idx = nnz_per_row_csr_host(int_polar_idx_trial + 1);
    +
    881 col_idx_csr_host(aji_idx) = int_polar_idx_test;
    +
    882 values_csr_host(m_batch_idx, aji_idx) = element;
    +
    883 nnz_per_row_csr_host(int_polar_idx_trial + 1)++;
    +
    884 }
    +
    885 });
    +
    886 });
    +
    887
    +
    888 Kokkos::Profiling::popRegion();
    +
    889 }
    -
    888
    -
    889private:
    -
    890 static KOKKOS_FUNCTION IdxRangeQuadratureRTheta
    -
    891 get_quadrature_points_in_cell(int cell_idx_r, int cell_idx_theta)
    -
    892 {
    -
    893 const IdxQuadratureR first_quad_point_r(cell_idx_r * m_n_gauss_legendre_r);
    -
    894 const IdxQuadratureTheta first_quad_point_theta(cell_idx_theta * m_n_gauss_legendre_theta);
    -
    895 constexpr IdxStepQuadratureR n_GL_r(m_n_gauss_legendre_r);
    -
    896 constexpr IdxStepQuadratureTheta n_GL_theta(m_n_gauss_legendre_theta);
    -
    897 const IdxRangeQuadratureR quad_points_r(first_quad_point_r, n_GL_r);
    -
    898 const IdxRangeQuadratureTheta quad_points_theta(first_quad_point_theta, n_GL_theta);
    -
    899 return IdxRangeQuadratureRTheta(quad_points_r, quad_points_theta);
    -
    900 }
    -
    901
    -
    902 template <class Mapping>
    -
    903 double weak_integral_element(
    -
    904 IdxQuadratureR idx_r,
    -
    905 IdxQuadratureTheta idx_theta,
    -
    906 EvalDeriv2DType const& test_bspline_val_and_deriv,
    -
    907 EvalDeriv2DType const& trial_bspline_val_and_deriv,
    -
    908 host_t<ConstSpline2D> coeff_alpha,
    -
    909 host_t<ConstSpline2D> coeff_beta,
    -
    910 SplineRThetaEvaluatorNullBound_host const& evaluator,
    -
    911 Mapping const& mapping)
    -
    912 {
    -
    913 return templated_weak_integral_element(
    -
    914 idx_r,
    -
    915 idx_theta,
    -
    916 test_bspline_val_and_deriv,
    -
    917 trial_bspline_val_and_deriv,
    -
    918 test_bspline_val_and_deriv,
    -
    919 trial_bspline_val_and_deriv,
    -
    920 coeff_alpha,
    -
    921 coeff_beta,
    -
    922 evaluator,
    -
    923 mapping);
    -
    924 }
    -
    925
    -
    926 template <class Mapping>
    -
    927 double weak_integral_element(
    -
    928 IdxQuadratureR idx_r,
    -
    929 IdxQuadratureTheta idx_theta,
    -
    930 EvalDeriv2DType const& test_bspline_val_and_deriv,
    -
    931 EvalDeriv1DType const& trial_bspline_val_and_deriv_r,
    -
    932 EvalDeriv1DType const& trial_bspline_val_and_deriv_theta,
    -
    933 host_t<ConstSpline2D> coeff_alpha,
    -
    934 host_t<ConstSpline2D> coeff_beta,
    -
    935 SplineRThetaEvaluatorNullBound_host const& evaluator,
    -
    936 Mapping const& mapping)
    -
    937 {
    -
    938 return templated_weak_integral_element(
    -
    939 idx_r,
    -
    940 idx_theta,
    -
    941 test_bspline_val_and_deriv,
    -
    942 trial_bspline_val_and_deriv_r,
    -
    943 test_bspline_val_and_deriv,
    -
    944 trial_bspline_val_and_deriv_theta,
    -
    945 coeff_alpha,
    -
    946 coeff_beta,
    -
    947 evaluator,
    -
    948 mapping);
    -
    949 }
    +
    903 template <class RHSFunction>
    +
    +
    904 void operator()(RHSFunction const& rhs, host_t<SplinePolar>& spline) const
    +
    905 {
    +
    906 Kokkos::Profiling::pushRegion("PolarPoissonRHS");
    +
    907
    +
    908 static_assert(
    +
    909 std::is_invocable_r_v<double, RHSFunction, CoordRTheta>,
    +
    910 "RHSFunction must have an operator() which takes a coordinate and returns a "
    +
    911 "double");
    +
    912 const int b_size = ddc::discrete_space<PolarBSplinesRTheta>().nbasis()
    +
    913 - ddc::discrete_space<BSplinesTheta>().nbasis();
    +
    914 const int batch_size = 1;
    +
    915 // Create b for rhs
    +
    916 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace>
    +
    917 b_host("b_host", batch_size, b_size);
    +
    918 //Create an initial guess
    +
    919 Kokkos::View<double**, Kokkos::LayoutRight, Kokkos::HostSpace>
    +
    920 x_init_host("x_init_host", batch_size, b_size);
    +
    921 // Fill b
    +
    922 auto int_volume_host = ddc::create_mirror_view_and_copy(get_field(m_int_volume));
    +
    923 ddc::for_each(
    +
    924 PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>(),
    +
    925 [&](IdxBSPolar const idx) {
    +
    926 const int bspl_idx = idx
    +
    927 - PolarBSplinesRTheta::template singular_idx_range<
    + +
    929 .front();
    +
    930 b_host(0, bspl_idx) = ddc::transform_reduce(
    +
    931 m_idxrange_quadrature_singular,
    +
    932 0.0,
    +
    933 ddc::reducer::sum<double>(),
    +
    934 [&](IdxQuadratureRTheta const idx_quad) {
    +
    935 IdxQuadratureR const idx_r(idx_quad);
    +
    936 IdxQuadratureTheta const idx_theta(idx_quad);
    +
    937 CoordRTheta coord(ddc::coordinate(idx_quad));
    +
    938 return rhs(coord)
    +
    939 * m_singular_basis_vals_and_derivs(idx, idx_r, idx_theta)
    +
    940 .value
    +
    941 * int_volume_host(idx_r, idx_theta);
    +
    942 });
    +
    943 });
    +
    944 const std::size_t ncells_r = ddc::discrete_space<BSplinesR>().ncells();
    +
    945
    +
    946 ddc::for_each(m_idxrange_fem_non_singular, [&](IdxBSPolar const idx) {
    +
    947 const IdxBSRTheta idx_2d(PolarBSplinesRTheta::get_2d_index(idx));
    +
    948 const std::size_t idx_r(ddc::select<BSplinesR>(idx_2d).uid());
    +
    949 const std::size_t idx_theta(ddc::select<BSplinesTheta>(idx_2d).uid());
    950
    -
    951 template <class Mapping>
    -
    952 double weak_integral_element(
    -
    953 IdxQuadratureR idx_r,
    -
    954 IdxQuadratureTheta idx_theta,
    -
    955 EvalDeriv1DType const& test_bspline_val_and_deriv_r,
    -
    956 EvalDeriv2DType const& trial_bspline_val_and_deriv,
    -
    957 EvalDeriv1DType const& test_bspline_val_and_deriv_theta,
    -
    958 host_t<ConstSpline2D> coeff_alpha,
    -
    959 host_t<ConstSpline2D> coeff_beta,
    -
    960 SplineRThetaEvaluatorNullBound_host const& evaluator,
    -
    961 Mapping const& mapping)
    -
    962 {
    -
    963 return templated_weak_integral_element(
    -
    964 idx_r,
    -
    965 idx_theta,
    -
    966 test_bspline_val_and_deriv_r,
    -
    967 trial_bspline_val_and_deriv,
    -
    968 test_bspline_val_and_deriv_theta,
    -
    969 trial_bspline_val_and_deriv,
    -
    970 coeff_alpha,
    -
    971 coeff_beta,
    -
    972 evaluator,
    -
    973 mapping);
    -
    974 }
    -
    975
    -
    976 template <class Mapping>
    -
    977 double weak_integral_element(
    -
    978 IdxQuadratureR idx_r,
    -
    979 IdxQuadratureTheta idx_theta,
    -
    980 EvalDeriv1DType const& test_bspline_val_and_deriv_r,
    -
    981 EvalDeriv1DType const& trial_bspline_val_and_deriv_r,
    -
    982 EvalDeriv1DType const& test_bspline_val_and_deriv_theta,
    -
    983 EvalDeriv1DType const& trial_bspline_val_and_deriv_theta,
    -
    984 host_t<ConstSpline2D> coeff_alpha,
    -
    985 host_t<ConstSpline2D> coeff_beta,
    -
    986 SplineRThetaEvaluatorNullBound_host const& evaluator,
    -
    987 Mapping const& mapping)
    -
    988 {
    -
    989 return templated_weak_integral_element(
    -
    990 idx_r,
    -
    991 idx_theta,
    -
    992 test_bspline_val_and_deriv_r,
    -
    993 trial_bspline_val_and_deriv_r,
    -
    994 test_bspline_val_and_deriv_theta,
    -
    995 trial_bspline_val_and_deriv_theta,
    -
    996 coeff_alpha,
    -
    997 coeff_beta,
    -
    998 evaluator,
    -
    999 mapping);
    -
    1000 }
    -
    1001
    -
    1002 inline void get_value_and_gradient(
    -
    1003 double& value,
    -
    1004 std::array<double, 2>& gradient,
    -
    1005 EvalDeriv1DType const& r_basis,
    -
    1006 EvalDeriv1DType const& theta_basis) const
    -
    1007 {
    -
    1008 value = r_basis.value * theta_basis.value;
    -
    1009 gradient = {r_basis.derivative * theta_basis.value, r_basis.value * theta_basis.derivative};
    -
    1010 }
    -
    1011
    -
    1012 inline void get_value_and_gradient(
    -
    1013 double& value,
    -
    1014 std::array<double, 2>& gradient,
    -
    1015 EvalDeriv2DType const& basis,
    -
    1016 EvalDeriv2DType const&) const // Last argument is duplicate
    -
    1017 {
    -
    1018 value = basis.value;
    -
    1019 gradient = {basis.radial_derivative, basis.poloidal_derivative};
    -
    1020 }
    -
    1021
    -
    1031 template <class Mapping, class TestValDerivType, class TrialValDerivType>
    -
    1032 double templated_weak_integral_element(
    -
    1033 IdxQuadratureR idx_r,
    -
    1034 IdxQuadratureTheta idx_theta,
    -
    1035 TestValDerivType const& test_bspline_val_and_deriv,
    -
    1036 TrialValDerivType const& trial_bspline_val_and_deriv,
    -
    1037 TestValDerivType const& test_bspline_val_and_deriv_theta,
    -
    1038 TrialValDerivType const& trial_bspline_val_and_deriv_theta,
    -
    1039 host_t<ConstSpline2D> coeff_alpha,
    -
    1040 host_t<ConstSpline2D> coeff_beta,
    -
    1041 SplineRThetaEvaluatorNullBound_host const& spline_evaluator,
    -
    1042 Mapping const& mapping)
    -
    1043 {
    -
    1044 static_assert(
    -
    1045 std::is_same_v<
    -
    1046 TestValDerivType,
    -
    1047 EvalDeriv1DType> || std::is_same_v<TestValDerivType, EvalDeriv2DType>);
    -
    1048 static_assert(
    -
    1049 std::is_same_v<
    -
    1050 TrialValDerivType,
    -
    1051 EvalDeriv1DType> || std::is_same_v<TrialValDerivType, EvalDeriv2DType>);
    -
    1052
    -
    1053 // Calculate coefficients at quadrature point
    -
    1054 CoordRTheta coord(ddc::coordinate(idx_r), ddc::coordinate(idx_theta));
    -
    1055 const double alpha = spline_evaluator(coord, coeff_alpha);
    -
    1056 const double beta = spline_evaluator(coord, coeff_beta);
    -
    1057
    -
    1058 // Define the value and gradient of the test and trial basis functions
    -
    1059 double basis_val_test_space;
    -
    1060 double basis_val_trial_space;
    -
    1061 std::array<double, 2> basis_gradient_test_space;
    -
    1062 std::array<double, 2> basis_gradient_trial_space;
    -
    1063 get_value_and_gradient(
    -
    1064 basis_val_test_space,
    -
    1065 basis_gradient_test_space,
    -
    1066 test_bspline_val_and_deriv,
    -
    1067 test_bspline_val_and_deriv_theta);
    -
    1068 get_value_and_gradient(
    -
    1069 basis_val_trial_space,
    -
    1070 basis_gradient_trial_space,
    -
    1071 trial_bspline_val_and_deriv,
    -
    1072 trial_bspline_val_and_deriv_theta);
    -
    1073
    -
    1074 MetricTensor<Mapping, CoordRTheta> metric_tensor(mapping);
    -
    1075
    -
    1076 // Assemble the weak integral element
    -
    1077 return m_int_volume(idx_r, idx_theta)
    -
    1078 * (alpha
    -
    1079 * dot_product(
    -
    1080 basis_gradient_test_space,
    -
    1081 metric_tensor.to_covariant(basis_gradient_trial_space, coord))
    -
    1082 + beta * basis_val_test_space * basis_val_trial_space);
    +
    951 // Find the cells on which the bspline is non-zero
    +
    952 int first_cell_r(idx_r - BSplinesR::degree());
    +
    953 int first_cell_theta(idx_theta - BSplinesTheta::degree());
    +
    954 std::size_t last_cell_r(idx_r + 1);
    +
    955 if (first_cell_r < 0)
    +
    956 first_cell_r = 0;
    +
    957 if (last_cell_r > ncells_r)
    +
    958 last_cell_r = ncells_r;
    +
    959 IdxStep<RCellDim> const r_length(last_cell_r - first_cell_r);
    +
    960 IdxStep<ThetaCellDim> const theta_length(BSplinesTheta::degree() + 1);
    +
    961
    +
    962
    +
    963 Idx<RCellDim> const start_r(first_cell_r);
    +
    964 Idx<ThetaCellDim> const start_theta(theta_mod(first_cell_theta));
    +
    965 const IdxRange<RCellDim> r_cells(start_r, r_length);
    +
    966 const IdxRange<ThetaCellDim> theta_cells(start_theta, theta_length);
    +
    967 const IdxRange<RCellDim, ThetaCellDim> non_zero_cells(r_cells, theta_cells);
    +
    968 assert(r_length * theta_length > 0);
    +
    969 double element = 0.0;
    +
    970 ddc::for_each(non_zero_cells, [&](IdxCell const cell_idx) {
    +
    971 const int cell_idx_r(ddc::select<RCellDim>(cell_idx).uid());
    +
    972 const int cell_idx_theta(theta_mod(ddc::select<ThetaCellDim>(cell_idx).uid()));
    +
    973
    +
    974 const IdxRangeQuadratureRTheta cell_quad_points(
    +
    975 get_quadrature_points_in_cell(cell_idx_r, cell_idx_theta));
    +
    976
    +
    977 // Find the column where the non-zero data is stored
    +
    978 Idx<RBasisSubset> ib_r(idx_r - cell_idx_r);
    +
    979 Idx<ThetaBasisSubset> ib_theta(theta_mod(idx_theta - cell_idx_theta));
    +
    980
    +
    981 // Calculate the weak integral
    +
    982 element += ddc::transform_reduce(
    +
    983 cell_quad_points,
    +
    984 0.0,
    +
    985 ddc::reducer::sum<double>(),
    +
    986 [&](IdxQuadratureRTheta const idx_quad) {
    +
    987 IdxQuadratureR const idx_r(idx_quad);
    +
    988 IdxQuadratureTheta const idx_theta(idx_quad);
    +
    989 CoordRTheta coord(ddc::coordinate(idx_quad));
    +
    990 double rb = m_r_basis_vals_and_derivs(ib_r, idx_r).value;
    +
    991 double pb = m_theta_basis_vals_and_derivs(ib_theta, idx_theta).value;
    +
    992 return rhs(coord) * rb * pb * int_volume_host(idx_r, idx_theta);
    +
    993 });
    +
    994 });
    +
    995 const std::size_t singular_index
    +
    996 = idx - ddc::discrete_space<PolarBSplinesRTheta>().full_domain().front();
    +
    997 b_host(0, singular_index) = element;
    +
    998 });
    +
    999
    +
    1000 Kokkos::View<double**, Kokkos::LayoutRight> b("b", batch_size, b_size);
    +
    1001 Kokkos::deep_copy(b, b_host);
    +
    1002 Kokkos::Profiling::popRegion();
    +
    1003
    +
    1004 Kokkos::deep_copy(m_x_init, x_init_host);
    +
    1005 // Solve the matrix equation
    +
    1006 Kokkos::Profiling::pushRegion("PolarPoissonSolve");
    +
    1007 m_gko_matrix->solve(m_x_init, b);
    +
    1008 Kokkos::deep_copy(x_init_host, m_x_init);
    +
    1009 //-----------------
    +
    1010 IdxRangeBSRTheta dirichlet_boundary_idx_range(
    +
    1011 m_idxrange_bsplines_r.take_last(IdxStep<BSplinesR> {1}),
    +
    1012 m_idxrange_bsplines_theta);
    +
    1013 IdxRangeBSTheta idxrange_polar(ddc::discrete_space<BSplinesTheta>().full_domain());
    +
    1014
    +
    1015 // Fill the spline
    +
    1016 ddc::for_each(
    +
    1017 PolarBSplinesRTheta::template singular_idx_range<PolarBSplinesRTheta>(),
    +
    1018 [&](IdxBSPolar const idx) {
    +
    1019 const int bspl_idx = idx
    +
    1020 - PolarBSplinesRTheta::template singular_idx_range<
    + +
    1022 .front();
    +
    1023 spline.singular_spline_coef(idx) = x_init_host(0, bspl_idx);
    +
    1024 });
    +
    1025 ddc::for_each(m_idxrange_fem_non_singular, [&](IdxBSPolar const idx) {
    +
    1026 const IdxBSRTheta idx_2d(PolarBSplinesRTheta::get_2d_index(idx));
    +
    1027 spline.spline_coef(idx_2d) = x_init_host(0, idx.uid());
    +
    1028 });
    +
    1029 ddc::for_each(dirichlet_boundary_idx_range, [&](IdxBSRTheta const idx) {
    +
    1030 spline.spline_coef(idx) = 0.0;
    +
    1031 });
    +
    1032
    +
    1033 // Copy the periodic elements
    +
    1034 IdxRangeBSRTheta copy_idx_range(
    +
    1035 m_idxrange_bsplines_r,
    +
    1036 idxrange_polar.remove_first(
    +
    1037 IdxStep<BSplinesTheta>(ddc::discrete_space<BSplinesTheta>().nbasis())));
    +
    1038 ddc::for_each(copy_idx_range, [&](IdxBSRTheta const idx_2d) {
    +
    1039 spline.spline_coef(ddc::select<BSplinesR>(idx_2d), ddc::select<BSplinesTheta>(idx_2d))
    +
    1040 = spline.spline_coef(
    +
    1041 ddc::select<BSplinesR>(idx_2d),
    +
    1042 ddc::select<BSplinesTheta>(idx_2d)
    +
    1043 - ddc::discrete_space<BSplinesTheta>().nbasis());
    +
    1044 });
    +
    1045 Kokkos::Profiling::popRegion();
    +
    1046 }
    +
    +
    1047
    +
    1061 template <class RHSFunction>
    +
    +
    1062 void operator()(RHSFunction const& rhs, DFieldRTheta phi) const
    +
    1063 {
    +
    1064 static_assert(
    +
    1065 std::is_invocable_r_v<double, RHSFunction, CoordRTheta>,
    +
    1066 "RHSFunction must have an operator() which takes a coordinate and returns a "
    +
    1067 "double");
    +
    1068
    +
    1069 (*this)(rhs, m_phi_spline_coef);
    +
    1070 CoordFieldMemRTheta coords_eval_alloc(get_idx_range(phi));
    +
    1071 CoordFieldRTheta coords_eval(get_field(coords_eval_alloc));
    +
    1072 ddc::parallel_for_each(
    +
    1073 Kokkos::DefaultExecutionSpace(),
    +
    1074 get_idx_range(phi),
    +
    1075 KOKKOS_LAMBDA(IdxRTheta idx) { coords_eval(idx) = ddc::coordinate(idx); });
    +
    1076 auto coords_eval_host = ddc::create_mirror_and_copy(coords_eval);
    +
    1077 auto phi_host = ddc::create_mirror_and_copy(phi);
    +
    1078 m_polar_spline_evaluator(
    +
    1079 get_field(phi_host),
    +
    1080 get_const_field(coords_eval_host),
    +
    1081 get_const_field(m_phi_spline_coef));
    +
    1082 ddc::parallel_deepcopy(phi, phi_host);
    1083 }
    +
    1084
    -
    1089 template <class Mapping>
    -
    1090 double get_matrix_stencil_element(
    -
    1091 IdxBSRTheta idx_test,
    -
    1092 IdxBSRTheta idx_trial,
    -
    1093 host_t<ConstSpline2D> coeff_alpha,
    -
    1094 host_t<ConstSpline2D> coeff_beta,
    -
    1095 SplineRThetaEvaluatorNullBound_host const& evaluator,
    -
    1096 Mapping const& mapping)
    +
    1095 static KOKKOS_FUNCTION IdxRangeQuadratureRTheta
    +
    +
    1096 get_quadrature_points_in_cell(int cell_idx_r, int cell_idx_theta)
    1097 {
    -
    1098 // 0 <= idx_test_r < 8
    -
    1099 // 0 <= idx_trial_r < 8
    -
    1100 // idx_test_r < idx_trial_r
    -
    1101 const int idx_test_r(ddc::select<BSplinesR>(idx_test).uid());
    -
    1102 const int idx_trial_r(ddc::select<BSplinesR>(idx_trial).uid());
    -
    1103 // 0 <= idx_test_theta < 8
    -
    1104 // 0 <= idx_trial_theta < 8
    -
    1105 int idx_test_theta(theta_mod(ddc::select<BSplinesTheta>(idx_test).uid()));
    -
    1106 int idx_trial_theta(theta_mod(ddc::select<BSplinesTheta>(idx_trial).uid()));
    -
    1107
    -
    1108 const std::size_t ncells_r = ddc::discrete_space<BSplinesR>().ncells();
    -
    1109
    -
    1110 // 0<= r_offset <= degree_r
    -
    1111 // -degree_theta <= theta_offset <= degree_theta
    -
    1112 const int r_offset = idx_trial_r - idx_test_r;
    -
    1113 int theta_offset = theta_mod(idx_trial_theta - idx_test_theta);
    -
    1114 if (theta_offset >= int(m_nbasis_theta - BSplinesTheta::degree())) {
    -
    1115 theta_offset -= m_nbasis_theta;
    -
    1116 }
    -
    1117 assert(r_offset >= 0);
    -
    1118 assert(r_offset <= int(BSplinesR::degree()));
    -
    1119 assert(theta_offset >= -int(BSplinesTheta::degree()));
    -
    1120 assert(theta_offset <= int(BSplinesTheta::degree()));
    -
    1121
    -
    1122 // Find the index range covering the cells where both the test and trial functions are non-zero
    -
    1123 int n_overlap_stencil_r(BSplinesR::degree() + 1 - r_offset);
    -
    1124 int first_overlap_r(idx_trial_r - BSplinesR::degree());
    -
    1125
    -
    1126 int first_overlap_theta;
    -
    1127 int n_overlap_stencil_theta;
    -
    1128 if (theta_offset > 0) {
    -
    1129 n_overlap_stencil_theta = BSplinesTheta::degree() + 1 - theta_offset;
    -
    1130 first_overlap_theta = theta_mod(idx_trial_theta - BSplinesTheta::degree());
    -
    1131 } else {
    -
    1132 n_overlap_stencil_theta = BSplinesTheta::degree() + 1 + theta_offset;
    -
    1133 first_overlap_theta = theta_mod(idx_test_theta - BSplinesTheta::degree());
    -
    1134 }
    -
    1135
    -
    1136 if (first_overlap_r < 0) {
    -
    1137 const int n_compact = first_overlap_r;
    -
    1138 first_overlap_r = 0;
    -
    1139 n_overlap_stencil_r += n_compact;
    -
    1140 }
    -
    1141
    -
    1142 const int n_to_edge_r(ncells_r - first_overlap_r);
    -
    1143
    -
    1144 const IdxStep<RCellDim> n_overlap_r(min(n_overlap_stencil_r, n_to_edge_r));
    -
    1145 const IdxStep<ThetaCellDim> n_overlap_theta(n_overlap_stencil_theta);
    -
    1146
    -
    1147 const Idx<RCellDim> first_overlap_element_r(first_overlap_r);
    -
    1148 const Idx<ThetaCellDim> first_overlap_element_theta(first_overlap_theta);
    -
    1149
    -
    1150 const IdxRange<RCellDim> r_cells(first_overlap_element_r, n_overlap_r);
    -
    1151 const IdxRange<ThetaCellDim> theta_cells(first_overlap_element_theta, n_overlap_theta);
    -
    1152 const IdxRange<RCellDim, ThetaCellDim> non_zero_cells(r_cells, theta_cells);
    -
    1153
    -
    1154 assert(n_overlap_r * n_overlap_theta > 0);
    -
    1155 return ddc::transform_reduce(
    -
    1156 non_zero_cells,
    -
    1157 0.0,
    -
    1158 ddc::reducer::sum<double>(),
    -
    1159 [&](IdxCell const cell_idx) {
    -
    1160 const int cell_idx_r(ddc::select<RCellDim>(cell_idx).uid());
    -
    1161 const int cell_idx_theta(theta_mod(ddc::select<ThetaCellDim>(cell_idx).uid()));
    -
    1162
    -
    1163 const IdxRangeQuadratureRTheta cell_quad_points(
    -
    1164 get_quadrature_points_in_cell(cell_idx_r, cell_idx_theta));
    -
    1165
    -
    1166 int ib_test_theta_idx = idx_test_theta - cell_idx_theta;
    -
    1167 int ib_trial_theta_idx = idx_trial_theta - cell_idx_theta;
    -
    1168
    -
    1169 // Find the column where the non-zero data is stored
    -
    1170 Idx<RBasisSubset> ib_test_r(idx_test_r - cell_idx_r);
    -
    1171 Idx<ThetaBasisSubset> ib_test_theta(theta_mod(ib_test_theta_idx));
    -
    1172 Idx<RBasisSubset> ib_trial_r(idx_trial_r - cell_idx_r);
    -
    1173 Idx<ThetaBasisSubset> ib_trial_theta(theta_mod(ib_trial_theta_idx));
    -
    1174
    -
    1175 assert(ib_test_r.uid() < BSplinesR::degree() + 1);
    -
    1176 assert(ib_test_theta.uid() < BSplinesTheta::degree() + 1);
    -
    1177 assert(ib_trial_r.uid() < BSplinesR::degree() + 1);
    -
    1178 assert(ib_trial_theta.uid() < BSplinesTheta::degree() + 1);
    -
    1179
    -
    1180 // Calculate the weak integral
    -
    1181 return ddc::transform_reduce(
    -
    1182 cell_quad_points,
    -
    1183 0.0,
    -
    1184 ddc::reducer::sum<double>(),
    -
    1185 [&](IdxQuadratureRTheta const idx_quad) {
    -
    1186 IdxQuadratureR const idx_r = ddc::select<QDimRMesh>(idx_quad);
    -
    1187 IdxQuadratureTheta const idx_theta
    -
    1188 = ddc::select<QDimThetaMesh>(idx_quad);
    -
    1189 return weak_integral_element(
    -
    1190 idx_r,
    -
    1191 idx_theta,
    -
    1192 r_basis_vals_and_derivs(ib_test_r, idx_r),
    -
    1193 r_basis_vals_and_derivs(ib_trial_r, idx_r),
    -
    1194 m_theta_basis_vals_and_derivs(ib_test_theta, idx_theta),
    -
    1195 m_theta_basis_vals_and_derivs(ib_trial_theta, idx_theta),
    -
    1196 coeff_alpha,
    -
    1197 coeff_beta,
    -
    1198 evaluator,
    -
    1199 mapping);
    -
    1200 });
    -
    1201 });
    -
    1202 }
    -
    1203
    -
    1204 static KOKKOS_FUNCTION int theta_mod(int idx_theta)
    -
    1205 {
    -
    1206 int ncells_theta = ddc::discrete_space<BSplinesTheta>().ncells();
    -
    1207 while (idx_theta < 0)
    -
    1208 idx_theta += ncells_theta;
    -
    1209 while (idx_theta >= ncells_theta)
    -
    1210 idx_theta -= ncells_theta;
    -
    1211 return idx_theta;
    -
    1212 }
    -
    1213
    -
    1214public:
    -
    -
    1228 void init_nnz_per_line(Kokkos::View<int*, Kokkos::LayoutRight> nnz) const
    -
    1229 {
    -
    1230 Kokkos::Profiling::pushRegion("PolarPoissonInitNnz");
    -
    1231 size_t const mat_size = nnz.extent(0) - 1;
    -
    1232 size_t constexpr n_singular_basis = PolarBSplinesRTheta::n_singular_basis();
    -
    1233 size_t constexpr degree = BSplinesR::degree();
    -
    1234 size_t constexpr radial_overlap = 2 * degree + 1;
    -
    1235 size_t const nbasis_theta_proxy = m_nbasis_theta;
    -
    1236
    -
    1237 // overlap between singular domain splines and radial splines
    -
    1238 Kokkos::parallel_for(
    -
    1239 "overlap singular radial",
    -
    1240 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(1, n_singular_basis + 1),
    -
    1241 KOKKOS_LAMBDA(const int k) {
    -
    1242 nnz(k + 1) = n_singular_basis + degree * nbasis_theta_proxy;
    -
    1243 });
    -
    1244
    -
    1245 // going from the internal boundary the overlapping possiblities between two radial splines increase
    -
    1246 Kokkos::parallel_for(
    -
    1247 "inner overlap",
    -
    1248 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(1, degree + 2),
    -
    1249 KOKKOS_LAMBDA(const int i) {
    -
    1250 for (size_t k = n_singular_basis + (i - 1) * nbasis_theta_proxy;
    -
    1251 k < n_singular_basis + i * nbasis_theta_proxy;
    -
    1252 k++) {
    -
    1253 nnz(k + 2) = n_singular_basis + (degree + i) * radial_overlap;
    -
    1254 }
    -
    1255 });
    -
    1256
    -
    1257 // Stencil with maximum possible overlap from two sides for radial spline
    -
    1258 Kokkos::parallel_for(
    -
    1259 "Inner Stencil",
    -
    1260 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(
    -
    1261 n_singular_basis + degree * nbasis_theta_proxy,
    -
    1262 mat_size - degree * nbasis_theta_proxy),
    -
    1263 KOKKOS_LAMBDA(const int k) { nnz(k + 2) = radial_overlap * radial_overlap; });
    +
    1098 const IdxQuadratureR first_quad_point_r(cell_idx_r * m_n_gauss_legendre_r);
    +
    1099 const IdxQuadratureTheta first_quad_point_theta(cell_idx_theta * m_n_gauss_legendre_theta);
    +
    1100 constexpr IdxStepQuadratureR n_GL_r(m_n_gauss_legendre_r);
    +
    1101 constexpr IdxStepQuadratureTheta n_GL_theta(m_n_gauss_legendre_theta);
    +
    1102 const IdxRangeQuadratureR quad_points_r(first_quad_point_r, n_GL_r);
    +
    1103 const IdxRangeQuadratureTheta quad_points_theta(first_quad_point_theta, n_GL_theta);
    +
    1104 return IdxRangeQuadratureRTheta(quad_points_r, quad_points_theta);
    +
    1105 }
    +
    +
    1106
    +
    1134 template <class Mapping>
    +
    +
    1135 static KOKKOS_FUNCTION double weak_integral_element(
    +
    1136 IdxQuadratureR idx_r,
    +
    1137 IdxQuadratureTheta idx_theta,
    +
    1138 EvalDeriv2DType const& test_bspline_val_and_deriv,
    +
    1139 EvalDeriv2DType const& trial_bspline_val_and_deriv,
    +
    1140 ConstSpline2D coeff_alpha,
    +
    1141 ConstSpline2D coeff_beta,
    +
    1142 SplineRThetaEvaluatorNullBound const& evaluator,
    +
    1143 Mapping const& mapping,
    +
    1144 DField<IdxRangeQuadratureRTheta> int_volume)
    +
    1145 {
    + +
    1147 idx_r,
    +
    1148 idx_theta,
    +
    1149 test_bspline_val_and_deriv,
    +
    1150 trial_bspline_val_and_deriv,
    +
    1151 test_bspline_val_and_deriv,
    +
    1152 trial_bspline_val_and_deriv,
    +
    1153 coeff_alpha,
    +
    1154 coeff_beta,
    +
    1155 evaluator,
    +
    1156 mapping,
    +
    1157 int_volume);
    +
    1158 }
    +
    +
    1159
    +
    1161 template <class Mapping>
    +
    1162 static KOKKOS_FUNCTION double weak_integral_element(
    +
    1163 IdxQuadratureR idx_r,
    +
    1164 IdxQuadratureTheta idx_theta,
    +
    1165 EvalDeriv2DType const& test_bspline_val_and_deriv,
    +
    1166 EvalDeriv1DType const& trial_bspline_val_and_deriv_r,
    +
    1167 EvalDeriv1DType const& trial_bspline_val_and_deriv_theta,
    +
    1168 ConstSpline2D coeff_alpha,
    +
    1169 ConstSpline2D coeff_beta,
    +
    1170 SplineRThetaEvaluatorNullBound const& evaluator,
    +
    1171 Mapping const& mapping,
    +
    1172 DField<IdxRangeQuadratureRTheta> int_volume)
    +
    1173 {
    + +
    1175 idx_r,
    +
    1176 idx_theta,
    +
    1177 test_bspline_val_and_deriv,
    +
    1178 trial_bspline_val_and_deriv_r,
    +
    1179 test_bspline_val_and_deriv,
    +
    1180 trial_bspline_val_and_deriv_theta,
    +
    1181 coeff_alpha,
    +
    1182 coeff_beta,
    +
    1183 evaluator,
    +
    1184 mapping,
    +
    1185 int_volume);
    +
    1186 }
    +
    1187
    +
    1188 template <class Mapping>
    +
    1189 static KOKKOS_FUNCTION double weak_integral_element(
    +
    1190 IdxQuadratureR idx_r,
    +
    1191 IdxQuadratureTheta idx_theta,
    +
    1192 EvalDeriv1DType const& test_bspline_val_and_deriv_r,
    +
    1193 EvalDeriv2DType const& trial_bspline_val_and_deriv,
    +
    1194 EvalDeriv1DType const& test_bspline_val_and_deriv_theta,
    +
    1195 ConstSpline2D coeff_alpha,
    +
    1196 ConstSpline2D coeff_beta,
    +
    1197 SplineRThetaEvaluatorNullBound const& evaluator,
    +
    1198 Mapping const& mapping,
    +
    1199 DField<IdxRangeQuadratureRTheta> int_volume)
    +
    1200 {
    + +
    1202 idx_r,
    +
    1203 idx_theta,
    +
    1204 test_bspline_val_and_deriv_r,
    +
    1205 trial_bspline_val_and_deriv,
    +
    1206 test_bspline_val_and_deriv_theta,
    +
    1207 trial_bspline_val_and_deriv,
    +
    1208 coeff_alpha,
    +
    1209 coeff_beta,
    +
    1210 evaluator,
    +
    1211 mapping,
    +
    1212 int_volume);
    +
    1213 }
    +
    1214
    +
    1215 template <class Mapping>
    +
    1216 static KOKKOS_FUNCTION double weak_integral_element(
    +
    1217 IdxQuadratureR idx_r,
    +
    1218 IdxQuadratureTheta idx_theta,
    +
    1219 EvalDeriv1DType const& test_bspline_val_and_deriv_r,
    +
    1220 EvalDeriv1DType const& trial_bspline_val_and_deriv_r,
    +
    1221 EvalDeriv1DType const& test_bspline_val_and_deriv_theta,
    +
    1222 EvalDeriv1DType const& trial_bspline_val_and_deriv_theta,
    +
    1223 ConstSpline2D coeff_alpha,
    +
    1224 ConstSpline2D coeff_beta,
    +
    1225 SplineRThetaEvaluatorNullBound const& evaluator,
    +
    1226 Mapping const& mapping,
    +
    1227 DField<IdxRangeQuadratureRTheta> int_volume)
    +
    1228 {
    + +
    1230 idx_r,
    +
    1231 idx_theta,
    +
    1232 test_bspline_val_and_deriv_r,
    +
    1233 trial_bspline_val_and_deriv_r,
    +
    1234 test_bspline_val_and_deriv_theta,
    +
    1235 trial_bspline_val_and_deriv_theta,
    +
    1236 coeff_alpha,
    +
    1237 coeff_beta,
    +
    1238 evaluator,
    +
    1239 mapping,
    +
    1240 int_volume);
    +
    1241 }
    +
    1243
    +
    +
    1255 static KOKKOS_INLINE_FUNCTION void get_value_and_gradient(
    +
    1256 double& value,
    +
    1257 std::array<double, 2>& gradient,
    +
    1258 EvalDeriv1DType const& r_basis,
    +
    1259 EvalDeriv1DType const& theta_basis)
    +
    1260 {
    +
    1261 value = r_basis.value * theta_basis.value;
    +
    1262 gradient = {r_basis.derivative * theta_basis.value, r_basis.value * theta_basis.derivative};
    +
    1263 }
    +
    1264
    -
    1265 // Approaching the external boundary the overlapping possiblities between two radial splines decrease
    -
    1266 Kokkos::parallel_for(
    -
    1267 "outer overlap",
    -
    1268 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(1, degree + 1),
    -
    1269 KOKKOS_LAMBDA(const int i) {
    -
    1270 for (size_t k = mat_size - i * nbasis_theta_proxy;
    -
    1271 k < mat_size - (i - 1) * nbasis_theta_proxy;
    -
    1272 k++) {
    -
    1273 nnz(k + 2) = (degree + i) * radial_overlap;
    -
    1274 }
    -
    1275 });
    -
    1276
    -
    1277 // sum non-zero elements count
    -
    1278 Kokkos::parallel_for(
    -
    1279 "Sum over lines",
    -
    1280 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(0, 1),
    -
    1281 KOKKOS_LAMBDA(const int idx) {
    -
    1282 for (size_t k = 1; k < mat_size; k++) {
    -
    1283 nnz(k + 1) += nnz(k);
    -
    1284 }
    -
    1285 nnz(0) = 0;
    -
    1286 nnz(1) = 0;
    -
    1287 });
    -
    1288 Kokkos::Profiling::popRegion();
    -
    1289 }
    +
    +
    1275 static KOKKOS_INLINE_FUNCTION void get_value_and_gradient(
    +
    1276 double& value,
    +
    1277 std::array<double, 2>& gradient,
    +
    1278 EvalDeriv2DType const& basis,
    +
    1279 EvalDeriv2DType const&) // Last argument is duplicate
    +
    1280 {
    +
    1281 value = basis.value;
    +
    1282 gradient = {basis.radial_derivative, basis.poloidal_derivative};
    +
    1283 }
    +
    +
    1284
    +
    1319 template <class Mapping, class TestValDerivType, class TrialValDerivType>
    +
    +
    1320 static KOKKOS_FUNCTION double templated_weak_integral_element(
    +
    1321 IdxQuadratureR idx_r,
    +
    1322 IdxQuadratureTheta idx_theta,
    +
    1323 TestValDerivType const& test_bspline_val_and_deriv,
    +
    1324 TrialValDerivType const& trial_bspline_val_and_deriv,
    +
    1325 TestValDerivType const& test_bspline_val_and_deriv_theta,
    +
    1326 TrialValDerivType const& trial_bspline_val_and_deriv_theta,
    +
    1327 ConstSpline2D coeff_alpha,
    +
    1328 ConstSpline2D coeff_beta,
    +
    1329 SplineRThetaEvaluatorNullBound const& spline_evaluator,
    +
    1330 Mapping const& mapping,
    +
    1331 DField<IdxRangeQuadratureRTheta> int_volume)
    +
    1332 {
    +
    1333 static_assert(
    +
    1334 std::is_same_v<
    +
    1335 TestValDerivType,
    +
    1336 EvalDeriv1DType> || std::is_same_v<TestValDerivType, EvalDeriv2DType>);
    +
    1337 static_assert(
    +
    1338 std::is_same_v<
    +
    1339 TrialValDerivType,
    +
    1340 EvalDeriv1DType> || std::is_same_v<TrialValDerivType, EvalDeriv2DType>);
    +
    1341
    +
    1342 // Calculate coefficients at quadrature point
    +
    1343 CoordRTheta coord(ddc::coordinate(idx_r), ddc::coordinate(idx_theta));
    +
    1344 const double alpha = spline_evaluator(coord, coeff_alpha);
    +
    1345 const double beta = spline_evaluator(coord, coeff_beta);
    +
    1346
    +
    1347 // Define the value and gradient of the test and trial basis functions
    +
    1348 double basis_val_test_space;
    +
    1349 double basis_val_trial_space;
    +
    1350 std::array<double, 2> basis_gradient_test_space;
    +
    1351 std::array<double, 2> basis_gradient_trial_space;
    + +
    1353 basis_val_test_space,
    +
    1354 basis_gradient_test_space,
    +
    1355 test_bspline_val_and_deriv,
    +
    1356 test_bspline_val_and_deriv_theta);
    + +
    1358 basis_val_trial_space,
    +
    1359 basis_gradient_trial_space,
    +
    1360 trial_bspline_val_and_deriv,
    +
    1361 trial_bspline_val_and_deriv_theta);
    +
    1362
    +
    1363 MetricTensor<Mapping, CoordRTheta> metric_tensor(mapping);
    +
    1364
    +
    1365 // Assemble the weak integral element
    +
    1366 return int_volume(idx_r, idx_theta)
    +
    1367 * (alpha
    +
    1368 * dot_product(
    +
    1369 basis_gradient_test_space,
    +
    1370 metric_tensor.to_covariant(basis_gradient_trial_space, coord))
    +
    1371 + beta * basis_val_test_space * basis_val_trial_space);
    +
    1372 }
    +
    +
    1373
    +
    1396 template <class Mapping>
    +
    + +
    1398 IdxBSRTheta idx_test,
    +
    1399 IdxBSRTheta idx_trial,
    +
    1400 ConstSpline2D coeff_alpha,
    +
    1401 ConstSpline2D coeff_beta,
    +
    1402 SplineRThetaEvaluatorNullBound const& evaluator,
    +
    1403 Mapping const& mapping)
    +
    1404 {
    +
    1405 // 0 <= idx_test_r < 8
    +
    1406 // 0 <= idx_trial_r < 8
    +
    1407 // idx_test_r < idx_trial_r
    +
    1408 const int idx_test_r(ddc::select<BSplinesR>(idx_test).uid());
    +
    1409 const int idx_trial_r(ddc::select<BSplinesR>(idx_trial).uid());
    +
    1410 // 0 <= idx_test_theta < 8
    +
    1411 // 0 <= idx_trial_theta < 8
    +
    1412 int idx_test_theta(theta_mod(ddc::select<BSplinesTheta>(idx_test).uid()));
    +
    1413 int idx_trial_theta(theta_mod(ddc::select<BSplinesTheta>(idx_trial).uid()));
    +
    1414
    +
    1415 const std::size_t ncells_r = ddc::discrete_space<BSplinesR>().ncells();
    +
    1416
    +
    1417 // 0<= r_offset <= degree_r
    +
    1418 // -degree_theta <= theta_offset <= degree_theta
    +
    1419 const int r_offset = idx_trial_r - idx_test_r;
    +
    1420 int theta_offset = theta_mod(idx_trial_theta - idx_test_theta);
    +
    1421 if (theta_offset >= int(m_nbasis_theta - BSplinesTheta::degree())) {
    +
    1422 theta_offset -= m_nbasis_theta;
    +
    1423 }
    +
    1424 assert(r_offset >= 0);
    +
    1425 assert(r_offset <= int(BSplinesR::degree()));
    +
    1426 assert(theta_offset >= -int(BSplinesTheta::degree()));
    +
    1427 assert(theta_offset <= int(BSplinesTheta::degree()));
    +
    1428
    +
    1429 // Find the index range covering the cells where both the test and trial functions are non-zero
    +
    1430 int n_overlap_stencil_r(BSplinesR::degree() + 1 - r_offset);
    +
    1431 int first_overlap_r(idx_trial_r - BSplinesR::degree());
    +
    1432
    +
    1433 int first_overlap_theta;
    +
    1434 int n_overlap_stencil_theta;
    +
    1435 if (theta_offset > 0) {
    +
    1436 n_overlap_stencil_theta = BSplinesTheta::degree() + 1 - theta_offset;
    +
    1437 first_overlap_theta = theta_mod(idx_trial_theta - BSplinesTheta::degree());
    +
    1438 } else {
    +
    1439 n_overlap_stencil_theta = BSplinesTheta::degree() + 1 + theta_offset;
    +
    1440 first_overlap_theta = theta_mod(idx_test_theta - BSplinesTheta::degree());
    +
    1441 }
    +
    1442
    +
    1443 if (first_overlap_r < 0) {
    +
    1444 const int n_compact = first_overlap_r;
    +
    1445 first_overlap_r = 0;
    +
    1446 n_overlap_stencil_r += n_compact;
    +
    1447 }
    +
    1448
    +
    1449 const int n_to_edge_r(ncells_r - first_overlap_r);
    +
    1450
    +
    1451 const IdxStep<RCellDim> n_overlap_r(min(n_overlap_stencil_r, n_to_edge_r));
    +
    1452 const IdxStep<ThetaCellDim> n_overlap_theta(n_overlap_stencil_theta);
    +
    1453
    +
    1454 const Idx<RCellDim> first_overlap_element_r(first_overlap_r);
    +
    1455 const Idx<ThetaCellDim> first_overlap_element_theta(first_overlap_theta);
    +
    1456
    +
    1457 const IdxRange<RCellDim> r_cells(first_overlap_element_r, n_overlap_r);
    +
    1458 const IdxRange<ThetaCellDim> theta_cells(first_overlap_element_theta, n_overlap_theta);
    +
    1459 const IdxRange<RCellDim, ThetaCellDim> non_zero_cells(r_cells, theta_cells);
    +
    1460
    +
    1461 auto r_basis_vals_and_derivs_alloc = ddc::create_mirror_view_and_copy(
    +
    1462 Kokkos::DefaultExecutionSpace(),
    +
    1463 get_field(m_r_basis_vals_and_derivs));
    +
    1464 auto theta_basis_vals_and_derivs_alloc = ddc::create_mirror_view_and_copy(
    +
    1465 Kokkos::DefaultExecutionSpace(),
    +
    1466 get_field(m_theta_basis_vals_and_derivs));
    +
    1467
    +
    1468 Field<EvalDeriv1DType, IdxRange<RBasisSubset, QDimRMesh>> r_basis_vals_and_derivs
    +
    1469 = get_field(r_basis_vals_and_derivs_alloc);
    +
    1470 Field<EvalDeriv1DType, IdxRange<ThetaBasisSubset, QDimThetaMesh>>
    +
    1471 theta_basis_vals_and_derivs = get_field(theta_basis_vals_and_derivs_alloc);
    +
    1472 DField<IdxRangeQuadratureRTheta> int_volume_proxy = get_field(m_int_volume);
    +
    1473
    +
    1474 assert(n_overlap_r * n_overlap_theta > 0);
    +
    1475 return ddc::transform_reduce(
    +
    1476 non_zero_cells,
    +
    1477 0.0,
    +
    1478 ddc::reducer::sum<double>(),
    +
    1479 [&](IdxCell const cell_idx) {
    +
    1480 const int cell_idx_r(ddc::select<RCellDim>(cell_idx).uid());
    +
    1481 const int cell_idx_theta(theta_mod(ddc::select<ThetaCellDim>(cell_idx).uid()));
    +
    1482
    +
    1483 const IdxRangeQuadratureRTheta cell_quad_points(
    +
    1484 get_quadrature_points_in_cell(cell_idx_r, cell_idx_theta));
    +
    1485
    +
    1486 int ib_test_theta_idx = idx_test_theta - cell_idx_theta;
    +
    1487 int ib_trial_theta_idx = idx_trial_theta - cell_idx_theta;
    +
    1488
    +
    1489 // Find the column where the non-zero data is stored
    +
    1490 Idx<RBasisSubset> ib_test_r(idx_test_r - cell_idx_r);
    +
    1491 Idx<ThetaBasisSubset> ib_test_theta(theta_mod(ib_test_theta_idx));
    +
    1492 Idx<RBasisSubset> ib_trial_r(idx_trial_r - cell_idx_r);
    +
    1493 Idx<ThetaBasisSubset> ib_trial_theta(theta_mod(ib_trial_theta_idx));
    +
    1494
    +
    1495 assert(ib_test_r.uid() < BSplinesR::degree() + 1);
    +
    1496 assert(ib_test_theta.uid() < BSplinesTheta::degree() + 1);
    +
    1497 assert(ib_trial_r.uid() < BSplinesR::degree() + 1);
    +
    1498 assert(ib_trial_theta.uid() < BSplinesTheta::degree() + 1);
    +
    1499
    +
    1500 // Calculate the weak integral
    +
    1501 return ddc::parallel_transform_reduce(
    +
    1502 Kokkos::DefaultExecutionSpace(),
    +
    1503 cell_quad_points,
    +
    1504 0.0,
    +
    1505 ddc::reducer::sum<double>(),
    +
    1506 KOKKOS_LAMBDA(IdxQuadratureRTheta const idx_quad) {
    +
    1507 IdxQuadratureR const idx_r(idx_quad);
    +
    1508 IdxQuadratureTheta const idx_theta(idx_quad);
    +
    1509 return weak_integral_element(
    +
    1510 idx_r,
    +
    1511 idx_theta,
    +
    1512 r_basis_vals_and_derivs(ib_test_r, idx_r),
    +
    1513 r_basis_vals_and_derivs(ib_trial_r, idx_r),
    +
    1514 theta_basis_vals_and_derivs(ib_test_theta, idx_theta),
    +
    1515 theta_basis_vals_and_derivs(ib_trial_theta, idx_theta),
    +
    1516 coeff_alpha,
    +
    1517 coeff_beta,
    +
    1518 evaluator,
    +
    1519 mapping,
    +
    1520 int_volume_proxy);
    +
    1521 });
    +
    1522 });
    +
    1523 }
    +
    +
    1524
    +
    +
    1532 static KOKKOS_FUNCTION int theta_mod(int idx_theta)
    +
    1533 {
    +
    1534 int ncells_theta = ddc::discrete_space<BSplinesTheta>().ncells();
    +
    1535 while (idx_theta < 0)
    +
    1536 idx_theta += ncells_theta;
    +
    1537 while (idx_theta >= ncells_theta)
    +
    1538 idx_theta -= ncells_theta;
    +
    1539 return idx_theta;
    +
    1540 }
    +
    +
    1541
    +
    +
    1555 void init_nnz_per_line(Kokkos::View<int*, Kokkos::LayoutRight> nnz) const
    +
    1556 {
    +
    1557 Kokkos::Profiling::pushRegion("PolarPoissonInitNnz");
    +
    1558 size_t const mat_size = nnz.extent(0) - 1;
    +
    1559 size_t constexpr n_singular_basis = PolarBSplinesRTheta::n_singular_basis();
    +
    1560 size_t constexpr degree = BSplinesR::degree();
    +
    1561 size_t constexpr radial_overlap = 2 * degree + 1;
    +
    1562 size_t const nbasis_theta_proxy = m_nbasis_theta;
    +
    1563
    +
    1564 // overlap between singular domain splines and radial splines
    +
    1565 Kokkos::parallel_for(
    +
    1566 "overlap singular radial",
    +
    1567 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(1, n_singular_basis + 1),
    +
    1568 KOKKOS_LAMBDA(const int k) {
    +
    1569 nnz(k + 1) = n_singular_basis + degree * nbasis_theta_proxy;
    +
    1570 });
    +
    1571
    +
    1572 // going from the internal boundary the overlapping possiblities between two radial splines increase
    +
    1573 Kokkos::parallel_for(
    +
    1574 "inner overlap",
    +
    1575 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(1, degree + 2),
    +
    1576 KOKKOS_LAMBDA(const int i) {
    +
    1577 for (size_t k = n_singular_basis + (i - 1) * nbasis_theta_proxy;
    +
    1578 k < n_singular_basis + i * nbasis_theta_proxy;
    +
    1579 k++) {
    +
    1580 nnz(k + 2) = n_singular_basis + (degree + i) * radial_overlap;
    +
    1581 }
    +
    1582 });
    +
    1583
    +
    1584 // Stencil with maximum possible overlap from two sides for radial spline
    +
    1585 Kokkos::parallel_for(
    +
    1586 "Inner Stencil",
    +
    1587 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(
    +
    1588 n_singular_basis + degree * nbasis_theta_proxy,
    +
    1589 mat_size - degree * nbasis_theta_proxy),
    +
    1590 KOKKOS_LAMBDA(const int k) { nnz(k + 2) = radial_overlap * radial_overlap; });
    +
    1591
    +
    1592 // Approaching the external boundary the overlapping possiblities between two radial splines decrease
    +
    1593 Kokkos::parallel_for(
    +
    1594 "outer overlap",
    +
    1595 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(1, degree + 1),
    +
    1596 KOKKOS_LAMBDA(const int i) {
    +
    1597 for (size_t k = mat_size - i * nbasis_theta_proxy;
    +
    1598 k < mat_size - (i - 1) * nbasis_theta_proxy;
    +
    1599 k++) {
    +
    1600 nnz(k + 2) = (degree + i) * radial_overlap;
    +
    1601 }
    +
    1602 });
    +
    1603
    +
    1604 // sum non-zero elements count
    +
    1605 Kokkos::parallel_for(
    +
    1606 "Sum over lines",
    +
    1607 Kokkos::RangePolicy<Kokkos::DefaultExecutionSpace>(0, 1),
    +
    1608 KOKKOS_LAMBDA(const int idx) {
    +
    1609 for (size_t k = 1; k < mat_size; k++) {
    +
    1610 nnz(k + 1) += nnz(k);
    +
    1611 }
    +
    1612 nnz(0) = 0;
    +
    1613 nnz(1) = 0;
    +
    1614 });
    +
    1615 Kokkos::Profiling::popRegion();
    +
    1616 }
    -
    1290};
    +
    1617};
    Definition gauss_legendre_integration.hpp:27
    Matrix class which is able to manage and solve a batch of sparse linear systems.
    Definition matrix_batch_csr.hpp:37
    An operator for calculating the metric tensor.
    Definition metric_tensor.hpp:15
    -
    static KOKKOS_FUNCTION tensor_product_index_type get_2d_index(ddc::DiscreteElement< DDim > const &idx)
    Get the 2D index of the tensor product bspline which, when evaluated at the same point,...
    Definition polar_bsplines.hpp:153
    -
    BSplinesTheta BSplinesTheta_tag
    The poloidal bspline from which the polar bsplines are constructed.
    Definition polar_bsplines.hpp:50
    -
    static constexpr std::size_t n_singular_basis()
    Get the number of singular bsplines i.e.
    Definition polar_bsplines.hpp:103
    -
    static int constexpr continuity
    The continuity enforced by the bsplines at the singular point.
    Definition polar_bsplines.hpp:61
    -
    BSplinesR BSplinesR_tag
    The radial bspline from which the polar bsplines are constructed.
    Definition polar_bsplines.hpp:47
    +
    KOKKOS_FUNCTION std::array< double, 2 > to_covariant(std::array< double, 2 > const &contravariant_vector, PositionCoordinate const &coord) const
    Compute the covariant vector from the contravariant vector.
    Definition metric_tensor.hpp:89
    +
    static KOKKOS_FUNCTION tensor_product_index_type get_2d_index(ddc::DiscreteElement< DDim > const &idx)
    Get the 2D index of the tensor product bspline which, when evaluated at the same point,...
    Definition polar_bsplines.hpp:154
    +
    BSplinesTheta BSplinesTheta_tag
    The poloidal bspline from which the polar bsplines are constructed.
    Definition polar_bsplines.hpp:51
    +
    static constexpr std::size_t n_singular_basis()
    Get the number of singular bsplines i.e.
    Definition polar_bsplines.hpp:104
    +
    static int constexpr continuity
    The continuity enforced by the bsplines at the singular point.
    Definition polar_bsplines.hpp:62
    +
    BSplinesR BSplinesR_tag
    The radial bspline from which the polar bsplines are constructed.
    Definition polar_bsplines.hpp:48
    Define an evaluator on polar B-splines.
    Definition polar_spline_evaluator.hpp:13
    -
    Define a polar PDE solver for a Poisson-like equation.
    Definition polarpoissonlikesolver.hpp:50
    -
    void operator()(RHSFunction const &rhs, host_t< DFieldRTheta > phi) const
    Solve the Poisson-like equation.
    Definition polarpoissonlikesolver.hpp:872
    -
    PolarSplineFEMPoissonLikeSolver(host_t< ConstSpline2D > coeff_alpha, host_t< ConstSpline2D > coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound_host const &spline_evaluator)
    Instantiate a polar Poisson-like solver using FEM with B-splines.
    Definition polarpoissonlikesolver.hpp:268
    -
    void operator()(RHSFunction const &rhs, host_t< SplinePolar > &spline) const
    Solve the Poisson-like equation.
    Definition polarpoissonlikesolver.hpp:712
    -
    void init_nnz_per_line(Kokkos::View< int *, Kokkos::LayoutRight > nnz) const
    Fills the nnz data structure by computing the number of non-zero per line.
    Definition polarpoissonlikesolver.hpp:1228
    -
    Definition polarpoissonlikesolver.hpp:64
    -
    Definition polarpoissonlikesolver.hpp:70
    -
    Definition polarpoissonlikesolver.hpp:67
    -
    Definition polarpoissonlikesolver.hpp:73
    +
    Define a polar PDE solver for a Poisson-like equation.
    Definition polarpoissonlikesolver.hpp:51
    +
    void fill_int_volume(Mapping const &mapping)
    Compute the volume integrals and stores the values in a member variable.
    Definition polarpoissonlikesolver.hpp:515
    +
    static KOKKOS_INLINE_FUNCTION void get_value_and_gradient(double &value, std::array< double, 2 > &gradient, EvalDeriv1DType const &r_basis, EvalDeriv1DType const &theta_basis)
    Computes the value and gradient from r_basis and theta_basis inputs.
    Definition polarpoissonlikesolver.hpp:1255
    +
    void compute_stencil_elements(ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)
    Computes the matrix element corresponding to the regular stencil ie: out to singular or overlapping a...
    Definition polarpoissonlikesolver.hpp:787
    +
    void operator()(RHSFunction const &rhs, host_t< SplinePolar > &spline) const
    Solve the Poisson-like equation.
    Definition polarpoissonlikesolver.hpp:904
    +
    void compute_overlapping_singular_elements(ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)
    Computes the matrix element corresponding to singular elements overlapping with regular grid.
    Definition polarpoissonlikesolver.hpp:648
    +
    PolarSplineFEMPoissonLikeSolver(ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator)
    Instantiate a polar Poisson-like solver using FEM with B-splines.
    Definition polarpoissonlikesolver.hpp:272
    +
    double get_matrix_stencil_element(IdxBSRTheta idx_test, IdxBSRTheta idx_trial, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &evaluator, Mapping const &mapping)
    Computes the matrix element corresponding to two tensor product splines with index idx_test and idx_t...
    Definition polarpoissonlikesolver.hpp:1397
    +
    static KOKKOS_INLINE_FUNCTION void get_value_and_gradient(double &value, std::array< double, 2 > &gradient, EvalDeriv2DType const &basis, EvalDeriv2DType const &)
    Computes the value and gradient from r_basis and theta_basis inputs.
    Definition polarpoissonlikesolver.hpp:1275
    +
    void operator()(RHSFunction const &rhs, DFieldRTheta phi) const
    Solve the Poisson-like equation.
    Definition polarpoissonlikesolver.hpp:1062
    +
    static KOKKOS_FUNCTION double templated_weak_integral_element(IdxQuadratureR idx_r, IdxQuadratureTheta idx_theta, TestValDerivType const &test_bspline_val_and_deriv, TrialValDerivType const &trial_bspline_val_and_deriv, TestValDerivType const &test_bspline_val_and_deriv_theta, TrialValDerivType const &trial_bspline_val_and_deriv_theta, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &spline_evaluator, Mapping const &mapping, DField< IdxRangeQuadratureRTheta > int_volume)
    Computes a quadrature summand corresponding to the inner product.
    Definition polarpoissonlikesolver.hpp:1320
    +
    static KOKKOS_FUNCTION int theta_mod(int idx_theta)
    Calculates the modulo idx_theta in relation to cells number along direction .
    Definition polarpoissonlikesolver.hpp:1532
    +
    void init_nnz_per_line(Kokkos::View< int *, Kokkos::LayoutRight > nnz) const
    Fills the nnz data structure by computing the number of non-zero per line.
    Definition polarpoissonlikesolver.hpp:1555
    +
    static KOKKOS_FUNCTION IdxRangeQuadratureRTheta get_quadrature_points_in_cell(int cell_idx_r, int cell_idx_theta)
    compute the quadrature range for a given pair of indices
    Definition polarpoissonlikesolver.hpp:1096
    +
    void compute_singular_elements(ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, Mapping const &mapping, SplineRThetaEvaluatorNullBound const &spline_evaluator, Kokkos::View< double **, Kokkos::LayoutRight, Kokkos::HostSpace > const values_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const col_idx_csr_host, Kokkos::View< int *, Kokkos::LayoutRight, Kokkos::HostSpace > const nnz_per_row_csr_host)
    Computes the matrix element corresponding to the singular area.
    Definition polarpoissonlikesolver.hpp:567
    +
    Idx< RCellDim, ThetaCellDim > IdxCell
    Tag an index of cell.
    Definition polarpoissonlikesolver.hpp:187
    +
    static KOKKOS_FUNCTION double weak_integral_element(IdxQuadratureR idx_r, IdxQuadratureTheta idx_theta, EvalDeriv2DType const &test_bspline_val_and_deriv, EvalDeriv2DType const &trial_bspline_val_and_deriv, ConstSpline2D coeff_alpha, ConstSpline2D coeff_beta, SplineRThetaEvaluatorNullBound const &evaluator, Mapping const &mapping, DField< IdxRangeQuadratureRTheta > int_volume)
    compute the weak integral value.
    Definition polarpoissonlikesolver.hpp:1135
    +
    Object storing a value and a value of the derivative of a 1D function.
    Definition polarpoissonlikesolver.hpp:168
    +
    Object storing a value and a value of the derivatives in each direction of a 2D function.
    Definition polarpoissonlikesolver.hpp:178
    +
    Definition polarpoissonlikesolver.hpp:65
    +
    Definition polarpoissonlikesolver.hpp:71
    +
    Definition polarpoissonlikesolver.hpp:68
    +
    Definition polarpoissonlikesolver.hpp:74
    Definition geometry.hpp:93
    Definition geometry.hpp:100
    Definition geometry.hpp:116
    Definition geometry.hpp:119
    Definition geometry.hpp:103
    -
    Tag the first dimension for the quadrature mesh.
    Definition polarpoissonlikesolver.hpp:82
    -
    Tag the second dimension for the quadrature mesh.
    Definition polarpoissonlikesolver.hpp:88
    +
    Tag the first dimension for the quadrature mesh.
    Definition polarpoissonlikesolver.hpp:83
    +
    Tag the second dimension for the quadrature mesh.
    Definition polarpoissonlikesolver.hpp:89
    A structure containing the two Chunks necessary to define a spline on a set of polar basis splines.
    Definition polar_spline.hpp:20
    Define non periodic real R dimension.
    Definition geometry.hpp:31
    Define periodic real Theta dimension.
    Definition geometry.hpp:42
    diff --git a/search/all_12.js b/search/all_12.js index a0ac51bcc..9293928f7 100644 --- a/search/all_12.js +++ b/search/all_12.js @@ -30,7 +30,7 @@ var searchData= ['oop_27',['Key Difference: Functional vs. Object-Oriented Programming (OOP)',['../docs_getting_started.html#autotoc_md22',1,'']]], ['operator_28',['operator',['../src_geometryRTheta_advection.html',1,'Advection operator'],['../src_mpi_parallelisation.html#src_mpi_parallelisation__Alltoall_Transpose_Operator',1,'Alltoall Transpose Operator'],['../tests_geometryRTheta_advection_2d_rp.html',1,'Tests on the 2D polar advection operator'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Tests_on_the_2D_polar_advection_operator',1,'Tests on the 2D polar advection operator']]], ['operator_21_3d_29',['operator!=',['../structIdxRangeSliceIterator.html#a9c97b510fa95c83eb250ad2888d1614f',1,'IdxRangeSliceIterator']]], - ['operator_28_29_30',['operator()',['../classElectrostaticalPotentialSimulation__translation.html#ab42dce0f7ac411db86c2dd9871537189',1,'ElectrostaticalPotentialSimulation_translation::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CircularToCartesian_3_01R_00_01Theta_00_01X_00_0179fdb551d5240572466d89e3eb7a8bfc.html#a20a9f506fb02601083c84533d0e6209e',1,'InvJacobianOPoint< CombinedMapping< CircularToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classElectrostaticalPotentialSimulation__rotation.html#af3f3c3819cbc815aa2a272028ef24fcd',1,'ElectrostaticalPotentialSimulation_rotation::operator()()'],['../classPoissonSolution.html#a88e27ab5b89c3992369e44ca7ecb56de',1,'PoissonSolution::operator()()'],['../classCurvilinearSolution.html#a88ec8a5cb7ec05b1abb9e9347016ea42',1,'CurvilinearSolution::operator()()'],['../classCartesianSolution.html#a0153345ef0de946e25e0bad9a68cc8dd',1,'CartesianSolution::operator()()'],['../classManufacturedPoissonTest.html#a88bc41fa060076c0477a808ac4395b79',1,'ManufacturedPoissonTest::operator()()'],['../classBarycentricToCartesian.html#a9bd05c5378d5246a7ad4f18dbb86ab76',1,'BarycentricToCartesian::operator()()'],['../classCartesianToBarycentric.html#a2a067e2af8444be27e98f571604aa939',1,'CartesianToBarycentric::operator()()'],['../classCartesianToCircular.html#a76d65d1853e88176be7ffd71c50f8abb',1,'CartesianToCircular::operator()()'],['../classCartesianToCzarny.html#a2a409a220bb1d0d67b6128e7c6f92347',1,'CartesianToCzarny::operator()()'],['../classCircularToCartesian.html#a6ecdc63bdc19d5f267559d674c48aa9c',1,'CircularToCartesian::operator()()'],['../classCombinedMapping.html#ae6bdf142f7b26378f0dc1326e9045fde',1,'CombinedMapping::operator()()'],['../classCzarnyToCartesian.html#ac792805cabfd26bb39f768845b86388c',1,'CzarnyToCartesian::operator()()'],['../classDiscreteToCartesianBuilder.html#ae85a1541fb4b1695515c7d97526b8d40',1,'DiscreteToCartesianBuilder::operator()()'],['../classRefinedDiscreteToCartesianBuilder.html#ad569e80c83f31dfec64813d24bfb2e25',1,'RefinedDiscreteToCartesianBuilder::operator()()'],['../classDiscreteToCartesian.html#a6b6915fcec41468d6d03ba9fd6cac374',1,'DiscreteToCartesian::operator()()'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a852a2a09220eabd3122cec7c741cacb2',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::operator()()'],['../classFunctionToBeAdvected.html#ac469846a7162037505e058f7d248dc4b',1,'FunctionToBeAdvected::operator()()'],['../classPoissonLikeRHSFunction.html#a87f656365ccc4fe8d8fb650c0264679a',1,'PoissonLikeRHSFunction::operator()()'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#aceeef36c98f8db8338a170049e81d624',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::operator()(field_type phi, field_type rho) const =0'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#ab446c64f8dd8b13fe58964cf7821be05',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::operator()(field_type phi, vector_field_type E, field_type rho) const =0'],['../classPolarSplineFEMPoissonLikeSolver.html#ab96025644e98f8d005f8df7f1c6506e4',1,'PolarSplineFEMPoissonLikeSolver::operator()(RHSFunction const &rhs, host_t< SplinePolar > &spline) const'],['../classPolarSplineFEMPoissonLikeSolver.html#a400425e0ecc5088c1c6427ce8f1e881b',1,'PolarSplineFEMPoissonLikeSolver::operator()(RHSFunction const &rhs, host_t< DFieldRTheta > phi) const'],['../classQuadrature.html#acc3a757e91e2d185ee290c409156fd4f',1,'Quadrature::operator()(ExecutionSpace exec_space, IntegratorFunction integrated_function) const'],['../classQuadrature.html#ad7645c75af6af6bdf3f2d13eaa7cd6ff',1,'Quadrature::operator()(ExecutionSpace exec_space, Field< double, BatchIdxRange, MemorySpace > const result, IntegratorFunction integrated_function) const'],['../classGridBuilder.html#a9b022df3951111963099676b1a580dc5',1,'GridBuilder::operator()()'],['../classElectrostaticalPotentialSimulation__decentred__rotation.html#a0a5322b2df29b69ab4c5438b5b0207af',1,'ElectrostaticalPotentialSimulation_decentred_rotation::operator()()'],['../classFunctionToBeAdvected__cos__4__elipse.html#a2f35b8a7024c4e1e1d0a09e761abf56e',1,'FunctionToBeAdvected_cos_4_elipse::operator()()'],['../classFunctionToBeAdvected__gaussian.html#a5cefc067d3394e546900673571f6e612',1,'FunctionToBeAdvected_gaussian::operator()()'],['../classAdvectionField.html#ad83cd6e152724ab1c8e91be077eb5727',1,'AdvectionField::operator()()'],['../classAdvectionField__decentred__rotation.html#aaabb7b2f3ae0f6aadaa1b5e3a7d1a94f',1,'AdvectionField_decentred_rotation::operator()()'],['../classAdvectionField__translation.html#afd102ec3e9ce04fa1d0a38643525eb8d',1,'AdvectionField_translation::operator()()'],['../classAdvectionField__rotation.html#a4dc539810d2d10aa68104841574802cf',1,'AdvectionField_rotation::operator()()'],['../classElectrostaticalPotentialSimulation.html#a445037f02ef92015762871398e8fd471',1,'ElectrostaticalPotentialSimulation::operator()()'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#af060ce1efbb1b8977510596bfda7c7d9',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::operator()()'],['../classIAdvectionRTheta.html#a6b0a226521869e6508886562b32a7cf9',1,'IAdvectionRTheta::operator()()'],['../classBslAdvectionRTheta.html#affe3f9d4097bf05e95ce8d1c14557ca6',1,'BslAdvectionRTheta::operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY const &advection_field_xy_center, double dt) const override'],['../classBslAdvectionRTheta.html#ad2bf20f8a318faf0575e09a372317c70',1,'BslAdvectionRTheta::operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< X, Y > > advection_field_xy, double dt) const override'],['../classVectorFieldMem.html#ab9430bd40d0b0924dc2a5735617483a5',1,'VectorFieldMem::operator()(Idx< ODDims... > const &delems) const noexcept'],['../classVectorFieldMem.html#ad9369a957b143d0cee28f49fb82d7d88',1,'VectorFieldMem::operator()(ddc::DiscreteElement< ODDims > const &... delems) const noexcept'],['../classVectorField.html#a081ddf837d169a837141e18446730b1d',1,'VectorField::operator()(Idx< ODDims... > const &delems) const noexcept'],['../classVectorField.html#a660ef0b0f3f4791ab5540f533e148f09',1,'VectorField::operator()(ddc::DiscreteElement< ODDims > const &... delems) const noexcept'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#a452e3d080c0cf135f1610348fc469b42',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::operator()()'],['../classIAdvectionRTheta.html#a346eaaf9a5ce416b0f3011efe94458b7',1,'IAdvectionRTheta::operator()()'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a11d7a0ef77df2e057a0f56d2555fe582',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::operator()()'],['../classCollisionSpVparMu.html#a87ae0a4bf2125a89b0f5235d6217b545',1,'CollisionSpVparMu::operator()()'],['../classNullAdvectionVelocity.html#a006ed56c49d2f95f5b95f78ed574f72e',1,'NullAdvectionVelocity::operator()()'],['../classIAdvectionSpatial.html#a1ca175ba280c8d9f82a96b285a0a56f2',1,'IAdvectionSpatial::operator()()'],['../classIAdvectionVelocity.html#a3421d3fb6a659e30d75af3ce8bac861a',1,'IAdvectionVelocity::operator()()'],['../classBslAdvectionSpatial.html#ab806340298fc18ebefefe09f205d116f',1,'BslAdvectionSpatial::operator()()'],['../classBslAdvectionVelocity.html#a9774e52704d997107ddeeb0d4041a0a9',1,'BslAdvectionVelocity::operator()()'],['../classBslAdvection1D.html#ab6c09fdec0ac2ec060d846a03a775766',1,'BslAdvection1D::operator()()'],['../classAdvectionFieldFinder.html#a02551b0e4207225b6f0244a81766c837',1,'AdvectionFieldFinder::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01DiscreteToCartesian_3_01X_00_01Y_00_01SplineEvaludfe78b5e2437ea09e09ab68f82896984.html#a7db69865b918559feb0abfef1964973b',1,'InvJacobianOPoint< CombinedMapping< DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classInverseJacobianMatrix.html#ad33e3bab6bf8473ddbb65ca77661b3a2',1,'InverseJacobianMatrix::operator()()'],['../classMetricTensor.html#afa4a1d1ac34eb5fc3a2464d3844151fe',1,'MetricTensor::operator()()'],['../classPolarSplineEvaluator.html#a936ad154152aab8185954b19e6e25b86',1,'PolarSplineEvaluator::operator()(ddc::Coordinate< DimR, DimTheta > coord_eval, PolarSplineView< PolarBSplinesType, MemSpace > const spline_coef) const'],['../classPolarSplineEvaluator.html#a68c59720235b1edcb3cc354a20e33155',1,'PolarSplineEvaluator::operator()(ddc::ChunkSpan< double, Domain, Kokkos::layout_right, MemSpace > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< DimR, DimTheta > const, Domain, Kokkos::layout_right, MemSpace > const coords_eval, PolarSplineView< PolarBSplinesType, MemSpace > const spline_coef) const'],['../classSplineInterpolatorRTheta.html#a9668b330c6f20ffd37b9712668a8b80b',1,'SplineInterpolatorRTheta::operator()()'],['../classIPreallocatableInterpolatorRTheta.html#a2956ac969cedd10e25e86db83effc123',1,'IPreallocatableInterpolatorRTheta::operator()()'],['../classIInterpolatorRTheta.html#aef9cc9d724e5b0191efad905d8bfaeee',1,'IInterpolatorRTheta::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CzarnyToCartesian_3_01R_00_01Theta_00_01X_00_01Y_8f5ea6a67f8bbc15e1b2c45d7660cfb5.html#a5f3ec1e15de5ee544fac4d50bb6a9397',1,'InvJacobianOPoint< CombinedMapping< CzarnyToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classAdvectionFieldFinder.html#af8a043f36e90ea2b67a30978ccbca01b',1,'AdvectionFieldFinder::operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classAdvectionFieldFinder.html#ab2f205f106d6c6c784c34f52d9a76de0',1,'AdvectionFieldFinder::operator()(host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classAdvectionFieldFinder.html#a266b3868a92f671084142eb26344bad0',1,'AdvectionFieldFinder::operator()(host_t< SplinePolar > &electrostatic_potential_coef, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#a1c94218e7996b38d562fa98ccd29dde5',1,'AdvectionFieldFinder::operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#a6c48a3bdb689fb9a270698a6617f2cfb',1,'AdvectionFieldFinder::operator()(host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classSplineFootFinder.html#ae557bc9c915b40ddfecad5332dced74c',1,'SplineFootFinder::operator()()'],['../classIFootFinder.html#abc0cb5c4fada6ea222d9cdee0969fb75',1,'IFootFinder::operator()()'],['../classITimeSolverRTheta.html#a5e17feb3b5b1c2cf535b2bf58732e137',1,'ITimeSolverRTheta::operator()()'],['../classBumpontailEquilibrium.html#a4c85a379ea216bb7ac95186cf8af8817',1,'BumpontailEquilibrium::operator()()'],['../classSplitVlasovSolver.html#a958b142757ef330191c9c25188294f15',1,'SplitVlasovSolver::operator()()'],['../classSplitRightHandSideSolver.html#a350971eed31753861f6e2917b9b6b968',1,'SplitRightHandSideSolver::operator()()'],['../classIBoltzmannSolver.html#aedf19fb0ae7e0bf80729c9f761ee20ed',1,'IBoltzmannSolver::operator()()'],['../classNoPerturbInitialization.html#a7debfeb8001108b1fb6d431ecf98a19e',1,'NoPerturbInitialization::operator()()'],['../classMaxwellianEquilibrium.html#a0cc2b9bdb6300dd5661cedbfc27957b3',1,'MaxwellianEquilibrium::operator()()'],['../classIInitialization.html#abc23a07c3e1a7852b4be401e57526061',1,'IInitialization::operator()()'],['../classIEquilibrium.html#a425f7b104d75900fcc769bdee9c0cdbd',1,'IEquilibrium::operator()(DFieldSpVparMu allfequilibrium) const =0'],['../classIEquilibrium.html#a3ea3adf00a9a416a8e3fe54caba902a4',1,'IEquilibrium::operator()(DFieldSpVx allfequilibrium) const =0'],['../classBslImplicitPredCorrRTheta.html#a35fb8dc2ae119da7ed06f1f8dc2d439e',1,'BslImplicitPredCorrRTheta::operator()()'],['../classBslExplicitPredCorrRTheta.html#aaeabe916423e28d00c1ab8e0d8a4db54',1,'BslExplicitPredCorrRTheta::operator()()'],['../classBslPredCorrRTheta.html#ad47f1c1d3fb1b113fee4bd955272a5b0',1,'BslPredCorrRTheta::operator()()'],['../classIQNSolver.html#a1398a276bd2f959a0a3474c9d10b94c3',1,'IQNSolver::operator()()'],['../classPredCorr.html#a2a3c70566fbfaef1d04bb540c980e7d1',1,'PredCorr::operator()()'],['../classFluidMoments.html#aeb2a3f97d8a00b2c5eed9df9e1317fd7',1,'FluidMoments::operator()(double &density, DConstFieldVx fdistribu, MomentDensity moment_density)'],['../classFluidMoments.html#a2ae74d24f0db28d93e39b88d885b90cd',1,'FluidMoments::operator()(DFieldSpX density, DConstFieldSpXVx allfdistribu, MomentDensity moment_density)'],['../classFluidMoments.html#a4ab19d391047e94ce2dcc8e73bf94faa',1,'FluidMoments::operator()(double &mean_velocity, DConstFieldVx fdistribu, double density, MomentVelocity moment_velocity)'],['../classNullQNSolver.html#ac636ac6b797e8bf883a53955f191d4ed',1,'NullQNSolver::operator()()'],['../classITimeSolver.html#abfdecd652433d1ae388a6489da2ed865',1,'ITimeSolver::operator()()'],['../classKrookSourceConstant.html#a266237a1a58a6f8f000ee4e910353dcc',1,'KrookSourceConstant::operator()()'],['../classKrookSourceAdaptive.html#a1f7a6ce3a4f5f93214352a4787ba7888',1,'KrookSourceAdaptive::operator()()'],['../classKineticSource.html#a384f4c655ebe246d99964de77ee780d2',1,'KineticSource::operator()()'],['../classIRightHandSide.html#a00f66ff88f6b0fd17a931a09b1ddb2d3',1,'IRightHandSide::operator()()'],['../classCollisionsIntra.html#ad066a79f6c0a9dcf3720dbfc5e9056e0',1,'CollisionsIntra::operator()()'],['../classCollisionsInter.html#a1f8104eb5930b71b25856a0640c534bf',1,'CollisionsInter::operator()()'],['../classQNSolver.html#a866ea0a8cd34e7789d8847aaf963fdf2',1,'QNSolver::operator()()'],['../classFEM1DPoissonSolver.html#a066aa2568bdfd946f04c1d831debd663',1,'FEM1DPoissonSolver::operator()()'],['../classIQNSolver.html#a0a2d3c31695c821a43582f1c2cd4e928',1,'IQNSolver::operator()()'],['../classIChargeDensityCalculator.html#a33642031ef4d350e865b9b3d81f6bc76',1,'IChargeDensityCalculator::operator()()'],['../classChargeDensityCalculator.html#a164ef05aba41f41d7862c1aa216c154e',1,'ChargeDensityCalculator::operator()()'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a4bb7415769d706c9b48d3a66efd76c71',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::operator()()'],['../classSingleModePerturbInitialization.html#a6fe8be7de3eefd844b3f15e7d50b1707',1,'SingleModePerturbInitialization::operator()()'],['../classRestartInitialization.html#adb0bfb34f2397f95e8d559e5b04222b8',1,'RestartInitialization::operator()()'],['../classMaxwellianEquilibrium.html#af3b41f93de3bb96ae0b44d8f89ee2a0a',1,'MaxwellianEquilibrium::operator()()'],['../classIInitialization.html#ac70366059a8d5679ff45c1a3eed5ad6b',1,'IInitialization::operator()()'],['../classPartialDerivative.html#a82c5b7cc236af1bc2df0726e8345fe18',1,'PartialDerivative::operator()()'],['../classNullQNSolver.html#af216cca80bf1989bb5031c640b6e3db1',1,'NullQNSolver::operator()()'],['../classQNSolver.html#a7a295c1742a016b2f154a35a315a608c',1,'QNSolver::operator()()'],['../classITimeSolver.html#a66cc73d3765db94df87fc17cc215c01b',1,'ITimeSolver::operator()()'],['../classPredCorr.html#afbad5baf6bfcce5c48b0cd47ce1de29d',1,'PredCorr::operator()()'],['../classIVlasovSolver.html#ae2c2b1a0762d06fe0beba20613003bff',1,'IVlasovSolver::operator()()'],['../classSplitVlasovSolver.html#ad980db982084e40e1777484ddc3312b0',1,'SplitVlasovSolver::operator()()'],['../classLagrangeInterpolator.html#a27441b99d16e977bf606a01442e8a957',1,'LagrangeInterpolator::operator()()'],['../classIInterpolator.html#a83d8113fe207f0d87a240f6ae3f99498',1,'IInterpolator::operator()()'],['../classIPreallocatableInterpolator.html#acf51b8cbb5a54ff83ee67c20f538e7e3',1,'IPreallocatableInterpolator::operator()()'],['../classSplineInterpolator.html#a39f32a67cd5be9f26c7dafdb8e33ecaf',1,'SplineInterpolator::operator()()'],['../classVectorMapper_3_01NDTag_3_01XIn_00_01YIn_01_4_00_01NDTag_3_01XOut_00_01YOut_01_4_00_01Mapping_00_01ExecSpace_01_4.html#a47677a0e696c7f9eb9f254f4a92bde73',1,'VectorMapper< NDTag< XIn, YIn >, NDTag< XOut, YOut >, Mapping, ExecSpace >::operator()()'],['../classFluidMoments.html#a180dd355d3d536623a0393c243af58d3',1,'FluidMoments::operator()()'],['../classMPITransposeAllToAll.html#a0d1c226fe054058b70a1b1d9a228ff1a',1,'MPITransposeAllToAll::operator()()'],['../classEdgeTransformation.html#a10c297fdec475ce3b1b6afbbcdedb5cb',1,'EdgeTransformation::operator()(Coord< CurrentDim > const &current_coord) const'],['../classEdgeTransformation.html#a953cea3a043308fbce6a55438daf7376',1,'EdgeTransformation::operator()(CurrentIdx const &current_idx) const'],['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a02e7fbec0ed664f9ad20d20d48c85ab4',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >::operator()()'],['../structConstantExtrapolationRuleOnion.html#a2fc1ed58f951dd2d5ae6878853524664',1,'ConstantExtrapolationRuleOnion::operator()()'],['../classMultipatchSplineBuilder.html#a0292da3c87a8bd59c429f1bc076051c3',1,'MultipatchSplineBuilder::operator()()'],['../classMultipatchSplineBuilder2D.html#a08dc1aebc4ea52636be03f3888b03c49',1,'MultipatchSplineBuilder2D::operator()()'],['../classMultipatchSplineEvaluator2D.html#a6d3f057e123cd847109fae5a4e190149',1,'MultipatchSplineEvaluator2D::operator()(Coord const coord_eval, MultipatchSplineCoeff const &patches_splines) const'],['../classMultipatchSplineEvaluator2D.html#aaecde8a4cb5fccb1f10dadf7a09b4300',1,'MultipatchSplineEvaluator2D::operator()(MultipatchValues const &patches_values, MultipatchCoordField const &patches_coords, MultipatchSplineCoeff const &patches_splines) const'],['../structNullExtrapolationRule.html#afff2dfac58dbcfcc760da499bb23b953',1,'NullExtrapolationRule::operator()()'],['../classFEM1DPoissonSolver.html#a74360fade3d3986423b148334d88ea74',1,'FEM1DPoissonSolver::operator()()'],['../classIChargeDensityCalculator.html#a14a845fbe0e835ff765a33611f09bd8b',1,'IChargeDensityCalculator::operator()()'],['../classIQNSolver.html#a4df01b6445f6c8dc356ebce808102115',1,'IQNSolver::operator()()'],['../classPredCorrRK2XY.html#a03ce8460021646ecb76554cbb4f1b088',1,'PredCorrRK2XY::operator()()'],['../classKelvinHelmholtzInstabilityInitialization.html#a7e681122586f70b241acc2c647cf2f67',1,'KelvinHelmholtzInstabilityInitialization::operator()()'],['../classFluidMoments.html#ac15b6dd021fe761a18301a5475035aae',1,'FluidMoments::operator()(DFieldSpX temperature, DConstFieldSpXVx allfdistribu, DConstFieldSpX density, DConstFieldSpX mean_velocity, MomentTemperature moment_temperature)'],['../classFluidMoments.html#a60e881623a1a0db3245c690b4d7cc27f',1,'FluidMoments::operator()(DFieldSpX mean_velocity, DConstFieldSpXVx allfdistribu, DConstFieldSpX density, MomentVelocity moment_velocity)'],['../classIEquilibrium.html#ac3766d5ef01c1e949ec3dd6d55892a75',1,'IEquilibrium::operator()()'],['../classIInitialization.html#a6fd840a3367ef39aed60a036fc196618',1,'IInitialization::operator()()'],['../classMaxwellianEquilibrium.html#a883dfc9d838b53deeb47e93f178c7655',1,'MaxwellianEquilibrium::operator()()'],['../classSingleModePerturbInitialization.html#abcef02302c35de979ca2d34d5f4b5b8f',1,'SingleModePerturbInitialization::operator()()'],['../classChargeDensityCalculator.html#a7ad6d91143f3e31e3ed8318a9970ef8e',1,'ChargeDensityCalculator::operator()()']]], + ['operator_28_29_30',['operator()',['../classElectrostaticalPotentialSimulation__translation.html#ab42dce0f7ac411db86c2dd9871537189',1,'ElectrostaticalPotentialSimulation_translation::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CircularToCartesian_3_01R_00_01Theta_00_01X_00_0179fdb551d5240572466d89e3eb7a8bfc.html#a20a9f506fb02601083c84533d0e6209e',1,'InvJacobianOPoint< CombinedMapping< CircularToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classElectrostaticalPotentialSimulation__rotation.html#af3f3c3819cbc815aa2a272028ef24fcd',1,'ElectrostaticalPotentialSimulation_rotation::operator()()'],['../classPoissonSolution.html#a88e27ab5b89c3992369e44ca7ecb56de',1,'PoissonSolution::operator()()'],['../classCurvilinearSolution.html#a88ec8a5cb7ec05b1abb9e9347016ea42',1,'CurvilinearSolution::operator()()'],['../classCartesianSolution.html#a0153345ef0de946e25e0bad9a68cc8dd',1,'CartesianSolution::operator()()'],['../classManufacturedPoissonTest.html#a88bc41fa060076c0477a808ac4395b79',1,'ManufacturedPoissonTest::operator()()'],['../classBarycentricToCartesian.html#a9bd05c5378d5246a7ad4f18dbb86ab76',1,'BarycentricToCartesian::operator()()'],['../classCartesianToBarycentric.html#a2a067e2af8444be27e98f571604aa939',1,'CartesianToBarycentric::operator()()'],['../classCartesianToCircular.html#a76d65d1853e88176be7ffd71c50f8abb',1,'CartesianToCircular::operator()()'],['../classCartesianToCzarny.html#a2a409a220bb1d0d67b6128e7c6f92347',1,'CartesianToCzarny::operator()()'],['../classCircularToCartesian.html#a6ecdc63bdc19d5f267559d674c48aa9c',1,'CircularToCartesian::operator()()'],['../classCombinedMapping.html#ae6bdf142f7b26378f0dc1326e9045fde',1,'CombinedMapping::operator()()'],['../classCzarnyToCartesian.html#ac792805cabfd26bb39f768845b86388c',1,'CzarnyToCartesian::operator()()'],['../classDiscreteToCartesianBuilder.html#ae85a1541fb4b1695515c7d97526b8d40',1,'DiscreteToCartesianBuilder::operator()()'],['../classRefinedDiscreteToCartesianBuilder.html#ad569e80c83f31dfec64813d24bfb2e25',1,'RefinedDiscreteToCartesianBuilder::operator()()'],['../classDiscreteToCartesian.html#a6b6915fcec41468d6d03ba9fd6cac374',1,'DiscreteToCartesian::operator()()'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a852a2a09220eabd3122cec7c741cacb2',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::operator()()'],['../classFunctionToBeAdvected.html#ac469846a7162037505e058f7d248dc4b',1,'FunctionToBeAdvected::operator()()'],['../classPoissonLikeRHSFunction.html#a87f656365ccc4fe8d8fb650c0264679a',1,'PoissonLikeRHSFunction::operator()()'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#aceeef36c98f8db8338a170049e81d624',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::operator()(field_type phi, field_type rho) const =0'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#ab446c64f8dd8b13fe58964cf7821be05',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::operator()(field_type phi, vector_field_type E, field_type rho) const =0'],['../classPolarSplineFEMPoissonLikeSolver.html#a2ffbf750c185ff40c8a4697b3937bc63',1,'PolarSplineFEMPoissonLikeSolver::operator()(RHSFunction const &rhs, host_t< SplinePolar > &spline) const'],['../classPolarSplineFEMPoissonLikeSolver.html#ac699f74359d1f9160bed57ffcf325861',1,'PolarSplineFEMPoissonLikeSolver::operator()(RHSFunction const &rhs, DFieldRTheta phi) const'],['../classQuadrature.html#acc3a757e91e2d185ee290c409156fd4f',1,'Quadrature::operator()(ExecutionSpace exec_space, IntegratorFunction integrated_function) const'],['../classQuadrature.html#ad7645c75af6af6bdf3f2d13eaa7cd6ff',1,'Quadrature::operator()(ExecutionSpace exec_space, Field< double, BatchIdxRange, MemorySpace > const result, IntegratorFunction integrated_function) const'],['../classGridBuilder.html#a9b022df3951111963099676b1a580dc5',1,'GridBuilder::operator()()'],['../classElectrostaticalPotentialSimulation__decentred__rotation.html#a0a5322b2df29b69ab4c5438b5b0207af',1,'ElectrostaticalPotentialSimulation_decentred_rotation::operator()()'],['../classFunctionToBeAdvected__cos__4__elipse.html#a2f35b8a7024c4e1e1d0a09e761abf56e',1,'FunctionToBeAdvected_cos_4_elipse::operator()()'],['../classFunctionToBeAdvected__gaussian.html#a5cefc067d3394e546900673571f6e612',1,'FunctionToBeAdvected_gaussian::operator()()'],['../classAdvectionField.html#ad83cd6e152724ab1c8e91be077eb5727',1,'AdvectionField::operator()()'],['../classAdvectionField__decentred__rotation.html#aaabb7b2f3ae0f6aadaa1b5e3a7d1a94f',1,'AdvectionField_decentred_rotation::operator()()'],['../classAdvectionField__translation.html#afd102ec3e9ce04fa1d0a38643525eb8d',1,'AdvectionField_translation::operator()()'],['../classAdvectionField__rotation.html#a4dc539810d2d10aa68104841574802cf',1,'AdvectionField_rotation::operator()()'],['../classElectrostaticalPotentialSimulation.html#a445037f02ef92015762871398e8fd471',1,'ElectrostaticalPotentialSimulation::operator()()'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#af060ce1efbb1b8977510596bfda7c7d9',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::operator()()'],['../classIAdvectionRTheta.html#a6b0a226521869e6508886562b32a7cf9',1,'IAdvectionRTheta::operator()()'],['../classBslAdvectionRTheta.html#affe3f9d4097bf05e95ce8d1c14557ca6',1,'BslAdvectionRTheta::operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY const &advection_field_xy_center, double dt) const override'],['../classBslAdvectionRTheta.html#ad2bf20f8a318faf0575e09a372317c70',1,'BslAdvectionRTheta::operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< X, Y > > advection_field_xy, double dt) const override'],['../classVectorFieldMem.html#ab9430bd40d0b0924dc2a5735617483a5',1,'VectorFieldMem::operator()(Idx< ODDims... > const &delems) const noexcept'],['../classVectorFieldMem.html#ad9369a957b143d0cee28f49fb82d7d88',1,'VectorFieldMem::operator()(ddc::DiscreteElement< ODDims > const &... delems) const noexcept'],['../classVectorField.html#a081ddf837d169a837141e18446730b1d',1,'VectorField::operator()(Idx< ODDims... > const &delems) const noexcept'],['../classVectorField.html#a660ef0b0f3f4791ab5540f533e148f09',1,'VectorField::operator()(ddc::DiscreteElement< ODDims > const &... delems) const noexcept'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#a452e3d080c0cf135f1610348fc469b42',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::operator()()'],['../classIAdvectionRTheta.html#a346eaaf9a5ce416b0f3011efe94458b7',1,'IAdvectionRTheta::operator()()'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a11d7a0ef77df2e057a0f56d2555fe582',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::operator()()'],['../classCollisionSpVparMu.html#a87ae0a4bf2125a89b0f5235d6217b545',1,'CollisionSpVparMu::operator()()'],['../classNullAdvectionVelocity.html#a006ed56c49d2f95f5b95f78ed574f72e',1,'NullAdvectionVelocity::operator()()'],['../classIAdvectionSpatial.html#a1ca175ba280c8d9f82a96b285a0a56f2',1,'IAdvectionSpatial::operator()()'],['../classIAdvectionVelocity.html#a3421d3fb6a659e30d75af3ce8bac861a',1,'IAdvectionVelocity::operator()()'],['../classBslAdvectionSpatial.html#ab806340298fc18ebefefe09f205d116f',1,'BslAdvectionSpatial::operator()()'],['../classBslAdvectionVelocity.html#a9774e52704d997107ddeeb0d4041a0a9',1,'BslAdvectionVelocity::operator()()'],['../classBslAdvection1D.html#ab6c09fdec0ac2ec060d846a03a775766',1,'BslAdvection1D::operator()()'],['../classAdvectionFieldFinder.html#a02551b0e4207225b6f0244a81766c837',1,'AdvectionFieldFinder::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01DiscreteToCartesian_3_01X_00_01Y_00_01SplineEvaludfe78b5e2437ea09e09ab68f82896984.html#a7db69865b918559feb0abfef1964973b',1,'InvJacobianOPoint< CombinedMapping< DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classInverseJacobianMatrix.html#ad33e3bab6bf8473ddbb65ca77661b3a2',1,'InverseJacobianMatrix::operator()()'],['../classMetricTensor.html#afa4a1d1ac34eb5fc3a2464d3844151fe',1,'MetricTensor::operator()()'],['../classPolarSplineEvaluator.html#a936ad154152aab8185954b19e6e25b86',1,'PolarSplineEvaluator::operator()(ddc::Coordinate< DimR, DimTheta > coord_eval, PolarSplineView< PolarBSplinesType, MemSpace > const spline_coef) const'],['../classPolarSplineEvaluator.html#a68c59720235b1edcb3cc354a20e33155',1,'PolarSplineEvaluator::operator()(ddc::ChunkSpan< double, Domain, Kokkos::layout_right, MemSpace > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< DimR, DimTheta > const, Domain, Kokkos::layout_right, MemSpace > const coords_eval, PolarSplineView< PolarBSplinesType, MemSpace > const spline_coef) const'],['../classSplineInterpolatorRTheta.html#a9668b330c6f20ffd37b9712668a8b80b',1,'SplineInterpolatorRTheta::operator()()'],['../classIPreallocatableInterpolatorRTheta.html#a2956ac969cedd10e25e86db83effc123',1,'IPreallocatableInterpolatorRTheta::operator()()'],['../classIInterpolatorRTheta.html#aef9cc9d724e5b0191efad905d8bfaeee',1,'IInterpolatorRTheta::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CzarnyToCartesian_3_01R_00_01Theta_00_01X_00_01Y_8f5ea6a67f8bbc15e1b2c45d7660cfb5.html#a5f3ec1e15de5ee544fac4d50bb6a9397',1,'InvJacobianOPoint< CombinedMapping< CzarnyToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classAdvectionFieldFinder.html#af8a043f36e90ea2b67a30978ccbca01b',1,'AdvectionFieldFinder::operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classAdvectionFieldFinder.html#ab2f205f106d6c6c784c34f52d9a76de0',1,'AdvectionFieldFinder::operator()(host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classAdvectionFieldFinder.html#a266b3868a92f671084142eb26344bad0',1,'AdvectionFieldFinder::operator()(host_t< SplinePolar > &electrostatic_potential_coef, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#a1c94218e7996b38d562fa98ccd29dde5',1,'AdvectionFieldFinder::operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#a6c48a3bdb689fb9a270698a6617f2cfb',1,'AdvectionFieldFinder::operator()(host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classSplineFootFinder.html#ae557bc9c915b40ddfecad5332dced74c',1,'SplineFootFinder::operator()()'],['../classIFootFinder.html#abc0cb5c4fada6ea222d9cdee0969fb75',1,'IFootFinder::operator()()'],['../classITimeSolverRTheta.html#a5e17feb3b5b1c2cf535b2bf58732e137',1,'ITimeSolverRTheta::operator()()'],['../classBumpontailEquilibrium.html#a4c85a379ea216bb7ac95186cf8af8817',1,'BumpontailEquilibrium::operator()()'],['../classSplitVlasovSolver.html#a958b142757ef330191c9c25188294f15',1,'SplitVlasovSolver::operator()()'],['../classSplitRightHandSideSolver.html#a350971eed31753861f6e2917b9b6b968',1,'SplitRightHandSideSolver::operator()()'],['../classIBoltzmannSolver.html#aedf19fb0ae7e0bf80729c9f761ee20ed',1,'IBoltzmannSolver::operator()()'],['../classNoPerturbInitialization.html#a7debfeb8001108b1fb6d431ecf98a19e',1,'NoPerturbInitialization::operator()()'],['../classMaxwellianEquilibrium.html#a0cc2b9bdb6300dd5661cedbfc27957b3',1,'MaxwellianEquilibrium::operator()()'],['../classIInitialization.html#abc23a07c3e1a7852b4be401e57526061',1,'IInitialization::operator()()'],['../classIEquilibrium.html#a425f7b104d75900fcc769bdee9c0cdbd',1,'IEquilibrium::operator()(DFieldSpVparMu allfequilibrium) const =0'],['../classIEquilibrium.html#a3ea3adf00a9a416a8e3fe54caba902a4',1,'IEquilibrium::operator()(DFieldSpVx allfequilibrium) const =0'],['../classBslImplicitPredCorrRTheta.html#a35fb8dc2ae119da7ed06f1f8dc2d439e',1,'BslImplicitPredCorrRTheta::operator()()'],['../classBslExplicitPredCorrRTheta.html#aaeabe916423e28d00c1ab8e0d8a4db54',1,'BslExplicitPredCorrRTheta::operator()()'],['../classBslPredCorrRTheta.html#ad47f1c1d3fb1b113fee4bd955272a5b0',1,'BslPredCorrRTheta::operator()()'],['../classIQNSolver.html#a1398a276bd2f959a0a3474c9d10b94c3',1,'IQNSolver::operator()()'],['../classPredCorr.html#a2a3c70566fbfaef1d04bb540c980e7d1',1,'PredCorr::operator()()'],['../classFluidMoments.html#aeb2a3f97d8a00b2c5eed9df9e1317fd7',1,'FluidMoments::operator()(double &density, DConstFieldVx fdistribu, MomentDensity moment_density)'],['../classFluidMoments.html#a2ae74d24f0db28d93e39b88d885b90cd',1,'FluidMoments::operator()(DFieldSpX density, DConstFieldSpXVx allfdistribu, MomentDensity moment_density)'],['../classFluidMoments.html#a4ab19d391047e94ce2dcc8e73bf94faa',1,'FluidMoments::operator()(double &mean_velocity, DConstFieldVx fdistribu, double density, MomentVelocity moment_velocity)'],['../classNullQNSolver.html#ac636ac6b797e8bf883a53955f191d4ed',1,'NullQNSolver::operator()()'],['../classITimeSolver.html#abfdecd652433d1ae388a6489da2ed865',1,'ITimeSolver::operator()()'],['../classKrookSourceConstant.html#a266237a1a58a6f8f000ee4e910353dcc',1,'KrookSourceConstant::operator()()'],['../classKrookSourceAdaptive.html#a1f7a6ce3a4f5f93214352a4787ba7888',1,'KrookSourceAdaptive::operator()()'],['../classKineticSource.html#a384f4c655ebe246d99964de77ee780d2',1,'KineticSource::operator()()'],['../classIRightHandSide.html#a00f66ff88f6b0fd17a931a09b1ddb2d3',1,'IRightHandSide::operator()()'],['../classCollisionsIntra.html#ad066a79f6c0a9dcf3720dbfc5e9056e0',1,'CollisionsIntra::operator()()'],['../classCollisionsInter.html#a1f8104eb5930b71b25856a0640c534bf',1,'CollisionsInter::operator()()'],['../classQNSolver.html#a866ea0a8cd34e7789d8847aaf963fdf2',1,'QNSolver::operator()()'],['../classFEM1DPoissonSolver.html#a066aa2568bdfd946f04c1d831debd663',1,'FEM1DPoissonSolver::operator()()'],['../classIQNSolver.html#a0a2d3c31695c821a43582f1c2cd4e928',1,'IQNSolver::operator()()'],['../classIChargeDensityCalculator.html#a33642031ef4d350e865b9b3d81f6bc76',1,'IChargeDensityCalculator::operator()()'],['../classChargeDensityCalculator.html#a164ef05aba41f41d7862c1aa216c154e',1,'ChargeDensityCalculator::operator()()'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a4bb7415769d706c9b48d3a66efd76c71',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::operator()()'],['../classSingleModePerturbInitialization.html#a6fe8be7de3eefd844b3f15e7d50b1707',1,'SingleModePerturbInitialization::operator()()'],['../classRestartInitialization.html#adb0bfb34f2397f95e8d559e5b04222b8',1,'RestartInitialization::operator()()'],['../classMaxwellianEquilibrium.html#af3b41f93de3bb96ae0b44d8f89ee2a0a',1,'MaxwellianEquilibrium::operator()()'],['../classIInitialization.html#ac70366059a8d5679ff45c1a3eed5ad6b',1,'IInitialization::operator()()'],['../classPartialDerivative.html#a82c5b7cc236af1bc2df0726e8345fe18',1,'PartialDerivative::operator()()'],['../classNullQNSolver.html#af216cca80bf1989bb5031c640b6e3db1',1,'NullQNSolver::operator()()'],['../classQNSolver.html#a7a295c1742a016b2f154a35a315a608c',1,'QNSolver::operator()()'],['../classITimeSolver.html#a66cc73d3765db94df87fc17cc215c01b',1,'ITimeSolver::operator()()'],['../classPredCorr.html#afbad5baf6bfcce5c48b0cd47ce1de29d',1,'PredCorr::operator()()'],['../classIVlasovSolver.html#ae2c2b1a0762d06fe0beba20613003bff',1,'IVlasovSolver::operator()()'],['../classSplitVlasovSolver.html#ad980db982084e40e1777484ddc3312b0',1,'SplitVlasovSolver::operator()()'],['../classLagrangeInterpolator.html#a27441b99d16e977bf606a01442e8a957',1,'LagrangeInterpolator::operator()()'],['../classIInterpolator.html#a83d8113fe207f0d87a240f6ae3f99498',1,'IInterpolator::operator()()'],['../classIPreallocatableInterpolator.html#acf51b8cbb5a54ff83ee67c20f538e7e3',1,'IPreallocatableInterpolator::operator()()'],['../classSplineInterpolator.html#a39f32a67cd5be9f26c7dafdb8e33ecaf',1,'SplineInterpolator::operator()()'],['../classVectorMapper_3_01NDTag_3_01XIn_00_01YIn_01_4_00_01NDTag_3_01XOut_00_01YOut_01_4_00_01Mapping_00_01ExecSpace_01_4.html#a47677a0e696c7f9eb9f254f4a92bde73',1,'VectorMapper< NDTag< XIn, YIn >, NDTag< XOut, YOut >, Mapping, ExecSpace >::operator()()'],['../classFluidMoments.html#a180dd355d3d536623a0393c243af58d3',1,'FluidMoments::operator()()'],['../classMPITransposeAllToAll.html#a0d1c226fe054058b70a1b1d9a228ff1a',1,'MPITransposeAllToAll::operator()()'],['../classEdgeTransformation.html#a10c297fdec475ce3b1b6afbbcdedb5cb',1,'EdgeTransformation::operator()(Coord< CurrentDim > const &current_coord) const'],['../classEdgeTransformation.html#a953cea3a043308fbce6a55438daf7376',1,'EdgeTransformation::operator()(CurrentIdx const &current_idx) const'],['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a02e7fbec0ed664f9ad20d20d48c85ab4',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >::operator()()'],['../structConstantExtrapolationRuleOnion.html#a2fc1ed58f951dd2d5ae6878853524664',1,'ConstantExtrapolationRuleOnion::operator()()'],['../classMultipatchSplineBuilder.html#a0292da3c87a8bd59c429f1bc076051c3',1,'MultipatchSplineBuilder::operator()()'],['../classMultipatchSplineBuilder2D.html#a08dc1aebc4ea52636be03f3888b03c49',1,'MultipatchSplineBuilder2D::operator()()'],['../classMultipatchSplineEvaluator2D.html#a6d3f057e123cd847109fae5a4e190149',1,'MultipatchSplineEvaluator2D::operator()(Coord const coord_eval, MultipatchSplineCoeff const &patches_splines) const'],['../classMultipatchSplineEvaluator2D.html#aaecde8a4cb5fccb1f10dadf7a09b4300',1,'MultipatchSplineEvaluator2D::operator()(MultipatchValues const &patches_values, MultipatchCoordField const &patches_coords, MultipatchSplineCoeff const &patches_splines) const'],['../structNullExtrapolationRule.html#afff2dfac58dbcfcc760da499bb23b953',1,'NullExtrapolationRule::operator()()'],['../classFEM1DPoissonSolver.html#a74360fade3d3986423b148334d88ea74',1,'FEM1DPoissonSolver::operator()()'],['../classIChargeDensityCalculator.html#a14a845fbe0e835ff765a33611f09bd8b',1,'IChargeDensityCalculator::operator()()'],['../classIQNSolver.html#a4df01b6445f6c8dc356ebce808102115',1,'IQNSolver::operator()()'],['../classPredCorrRK2XY.html#a03ce8460021646ecb76554cbb4f1b088',1,'PredCorrRK2XY::operator()()'],['../classKelvinHelmholtzInstabilityInitialization.html#a7e681122586f70b241acc2c647cf2f67',1,'KelvinHelmholtzInstabilityInitialization::operator()()'],['../classFluidMoments.html#ac15b6dd021fe761a18301a5475035aae',1,'FluidMoments::operator()(DFieldSpX temperature, DConstFieldSpXVx allfdistribu, DConstFieldSpX density, DConstFieldSpX mean_velocity, MomentTemperature moment_temperature)'],['../classFluidMoments.html#a60e881623a1a0db3245c690b4d7cc27f',1,'FluidMoments::operator()(DFieldSpX mean_velocity, DConstFieldSpXVx allfdistribu, DConstFieldSpX density, MomentVelocity moment_velocity)'],['../classIEquilibrium.html#ac3766d5ef01c1e949ec3dd6d55892a75',1,'IEquilibrium::operator()()'],['../classIInitialization.html#a6fd840a3367ef39aed60a036fc196618',1,'IInitialization::operator()()'],['../classMaxwellianEquilibrium.html#a883dfc9d838b53deeb47e93f178c7655',1,'MaxwellianEquilibrium::operator()()'],['../classSingleModePerturbInitialization.html#abcef02302c35de979ca2d34d5f4b5b8f',1,'SingleModePerturbInitialization::operator()()'],['../classChargeDensityCalculator.html#a7ad6d91143f3e31e3ed8318a9970ef8e',1,'ChargeDensityCalculator::operator()()']]], ['operator_2a_31',['operator*',['../structIdxRangeSliceIterator.html#aa0e84d0ad195d6b35f0d567da81b8ab8',1,'IdxRangeSliceIterator']]], ['operator_2b_32',['operator+',['../structIdxRangeSliceIterator.html#a72cd1010b51d205c6dfeb7d86c2a52cc',1,'IdxRangeSliceIterator::operator+'],['../structIdxRangeSliceIterator.html#a9e1f33547deedae501feaeea8c1d6376',1,'IdxRangeSliceIterator::operator+']]], ['operator_2b_2b_33',['operator++',['../structIdxRangeSliceIterator.html#a58387aeb6b23bade952ee6c6f17af075',1,'IdxRangeSliceIterator::operator++(int)'],['../structIdxRangeSliceIterator.html#a428daf3ced0f82c06eb2a2c9eef543c6',1,'IdxRangeSliceIterator::operator++()']]], diff --git a/search/all_13.js b/search/all_13.js index c40b11f28..5dc2c380f 100644 --- a/search/all_13.js +++ b/search/all_13.js @@ -45,7 +45,7 @@ var searchData= ['polarspline_42',['polarspline',['../structPolarSpline.html#a16899c9b2a639f3e67d3de861a0d2a2f',1,'PolarSpline::PolarSpline(ddc::DiscreteDomain< PolarBSplinesType > singular_domain, ddc::DiscreteDomain< BSplinesR, BSplinesTheta > domain)'],['../structPolarSpline.html#a34e62893f3710c8798ada29346a5a842',1,'PolarSpline::PolarSpline(ddc::DiscreteDomain< BSplinesR, BSplinesTheta > domain)'],['../structPolarSpline.html',1,'PolarSpline< PolarBSplinesType, MemSpace >']]], ['polarsplineevaluator_43',['polarsplineevaluator',['../classPolarSplineEvaluator.html',1,'PolarSplineEvaluator< PolarBSplinesType, OuterExtrapolationRule, MemSpace >'],['../classPolarSplineEvaluator.html#a8ccb414d5d9022278cc31f19ee3c77f1',1,'PolarSplineEvaluator::PolarSplineEvaluator(OuterExtrapolationRule const &outer_bc)'],['../classPolarSplineEvaluator.html#ad09e22ffcc4addf7c2560bf20a3d4d85',1,'PolarSplineEvaluator::PolarSplineEvaluator(PolarSplineEvaluator &&x)=default'],['../classPolarSplineEvaluator.html#aff023d9beff16f85fa01f2cf45e6433a',1,'PolarSplineEvaluator::PolarSplineEvaluator(PolarSplineEvaluator const &x)=default']]], ['polarsplineevaluator_3c_20polarbsplinesrtheta_2c_20ddc_3a_3anullextrapolationrule_2c_20kokkos_3a_3ahostspace_20_3e_44',['PolarSplineEvaluator< PolarBSplinesRTheta, ddc::NullExtrapolationRule, Kokkos::HostSpace >',['../classPolarSplineEvaluator.html',1,'']]], - ['polarsplinefempoissonlikesolver_45',['polarsplinefempoissonlikesolver',['../classPolarSplineFEMPoissonLikeSolver.html#a5a09f433677b3358cdb5fe205a003bf8',1,'PolarSplineFEMPoissonLikeSolver::PolarSplineFEMPoissonLikeSolver()'],['../classPolarSplineFEMPoissonLikeSolver.html',1,'PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >']]], + ['polarsplinefempoissonlikesolver_45',['polarsplinefempoissonlikesolver',['../classPolarSplineFEMPoissonLikeSolver.html#a6e4d95b7b1ce10cf43579ff77b9ea88b',1,'PolarSplineFEMPoissonLikeSolver::PolarSplineFEMPoissonLikeSolver()'],['../classPolarSplineFEMPoissonLikeSolver.html',1,'PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >']]], ['polarsplinespan_46',['polarsplinespan',['../structPolarSplineSpan.html#a09f1d7d4e23574060fce940f93bb97fd',1,'PolarSplineSpan::PolarSplineSpan()'],['../structPolarSplineSpan.html',1,'PolarSplineSpan< PolarBSplinesType, MemSpace >']]], ['polarsplineview_47',['polarsplineview',['../structPolarSplineView.html#a46b559e5420ee6cf92251b756fcc63a0',1,'PolarSplineView::PolarSplineView(PolarSpline< PolarBSplinesType, MemSpace > const &spl)'],['../structPolarSplineView.html#af93380b00bf639f5071f99fef5cedac7',1,'PolarSplineView::PolarSplineView(PolarSplineSpan< PolarBSplinesType, MemSpace > const &spl)'],['../structPolarSplineView.html',1,'PolarSplineView< PolarBSplinesType, MemSpace >']]], ['pre_20made_20build_20settings_48',['Pre-made build settings',['../toolchains.html',1,'index']]], diff --git a/search/all_15.js b/search/all_15.js index 7aa39f328..fc5ed38bc 100644 --- a/search/all_15.js +++ b/search/all_15.js @@ -1,6 +1,6 @@ var searchData= [ - ['r_0',['r',['../structonion__shape__uniform__2d__2patches_1_1R.html',1,'onion_shape_uniform_2d_2patches::R'],['../structR.html',1,'R'],['../structonion__shape__non__uniform__2d__2patches_1_1R.html',1,'onion_shape_non_uniform_2d_2patches::R'],['../classPolarSplineFEMPoissonLikeSolver.html#a4be4b0150bea8b8972bf3400e52d1bcb',1,'PolarSplineFEMPoissonLikeSolver::R']]], + ['r_0',['r',['../structonion__shape__uniform__2d__2patches_1_1R.html',1,'onion_shape_uniform_2d_2patches::R'],['../structR.html',1,'R'],['../structonion__shape__non__uniform__2d__2patches_1_1R.html',1,'onion_shape_non_uniform_2d_2patches::R'],['../classPolarSplineFEMPoissonLikeSolver.html#aea7575e5ec7f7e2a776c1677a79137d9',1,'PolarSplineFEMPoissonLikeSolver::R']]], ['r_20theta_1',['r theta',['../src_geometryRTheta.html',1,'Geometry (r, theta)'],['../tests_geometryRTheta.html',1,'Tests : Geometry (r, theta)']]], ['r_20theta_20geometry_2',['Simulations in (r, theta) geometry',['../simulations_geometryRTheta.html',1,'simulations']]], ['r1_5fmax_3',['r1_max',['../classMultipatchSplineOnionShapeTest.html#a397a53a5abf7d9072f1fae5c4bae6f86',1,'MultipatchSplineOnionShapeTest']]], diff --git a/search/all_17.js b/search/all_17.js index b650d217b..a7aafb65f 100644 --- a/search/all_17.js +++ b/search/all_17.js @@ -11,96 +11,98 @@ var searchData= ['template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_8',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], ['template_20strategy_9',['Template Strategy',['../docs_CODING_STANDARD.html#autotoc_md11',1,'']]], ['templated_20advection_20operators_10',['Tests on the templated advection operators',['../tests_advection.html',1,'tests']]], - ['tensor_5fbspline_5fidx_5frange_11',['tensor_bspline_idx_range',['../classPolarBSplines_1_1Impl.html#af3133a4ea7b7cc4796da428de9bba352',1,'PolarBSplines::Impl']]], - ['tensor_5fproduct_5fidx_5frange_5ftype_12',['tensor_product_idx_range_type',['../classPolarBSplines.html#aa4d0e6fff9aa8d6641fca3cfad60bc0b',1,'PolarBSplines']]], - ['tensor_5fproduct_5fidx_5fstep_5ftype_13',['tensor_product_idx_step_type',['../classPolarBSplines.html#a88a1c2cb066c6e86912f15115ee2aa57',1,'PolarBSplines']]], - ['tensor_5fproduct_5findex_5ftype_14',['tensor_product_index_type',['../classPolarBSplines.html#aafa27d2710cd09d6713d6dafcb2ae564',1,'PolarBSplines']]], - ['test_20case_15',['test case',['../src_geometryXY_initialization.html#src_geometryXY_initialization__Kelvin-Helmholtz_instability_test_case',1,'Kelvin-Helmholtz instability test case'],['../simulations_geometryXY_guiding_center.html#autotoc_md43',1,'Test case: Kelvin-Helmholtz instability test case']]], - ['test_20case_20diocotron_20instability_16',['Test case - diocotron instability',['../simulations_geometryRTheta_diocotron.html#simulations_geometryRTheta_diocotron__Test_case_-_diocotron_instability',1,'']]], - ['test_20case_20vortex_20merger_17',['Test case - vortex merger',['../simulations_geometryRTheta_vortex_merger.html#simulations_geometryRTheta_vortex_merger__Test_case_-_vortex_merger',1,'']]], - ['test_20case_3a_20kelvin_20helmholtz_20instability_20test_20case_18',['Test case: Kelvin-Helmholtz instability test case',['../simulations_geometryXY_guiding_center.html#autotoc_md43',1,'']]], - ['test_20cases_20as_20for_20bsladvectionspatial_20and_20bsladvectionvelocity_19',['Same test cases as for BslAdvectionSpatial and BslAdvectionVelocity',['../tests_advection.html#autotoc_md84',1,'']]], - ['test_20simulation_3a_20',['- The test simulation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md89',1,'']]], - ['tests_21',['tests',['../tests.html',1,'Gyselalib++ tests'],['../tests_multipatch.html',1,'Multipatch geometry tests'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Python_tests',1,'Python tests'],['../src_geometryRTheta_poisson.html#src_geometryRTheta_poisson__Unit_tests',1,'Unit tests'],['../src_geometryRTheta_advection.html#autotoc_md51',1,'Unit tests']]], - ['tests_20_3a_20geometry_20r_20theta_22',['Tests : Geometry (r, theta)',['../tests_geometryRTheta.html',1,'tests']]], - ['tests_20on_20spline_20interpolator_20in_20polar_20coordinates_23',['Tests on spline interpolator in polar coordinates',['../tests_geometryRTheta_2d_spline_interpolator.html',1,'tests_geometryRTheta']]], - ['tests_20on_20the_202d_20polar_20advection_20operator_24',['tests on the 2d polar advection operator',['../tests_geometryRTheta_advection_2d_rp.html',1,'Tests on the 2D polar advection operator'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Tests_on_the_2D_polar_advection_operator',1,'Tests on the 2D polar advection operator']]], - ['tests_20on_20the_202d_20polar_20poisson_20solver_25',['Tests on the 2D polar poisson solver',['../tests_geometryRTheta_polar_poisson.html',1,'tests_geometryRTheta']]], - ['tests_20on_20the_20templated_20advection_20operators_26',['Tests on the templated advection operators',['../tests_advection.html',1,'tests']]], - ['tests_3a_27',['Functions tests:',['../tests_geometryRTheta_2d_spline_interpolator.html#autotoc_md85',1,'']]], - ['the_202d_20polar_20advection_20operator_28',['the 2d polar advection operator',['../tests_geometryRTheta_advection_2d_rp.html',1,'Tests on the 2D polar advection operator'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Tests_on_the_2D_polar_advection_operator',1,'Tests on the 2D polar advection operator']]], - ['the_202d_20polar_20poisson_20solver_29',['Tests on the 2D polar poisson solver',['../tests_geometryRTheta_polar_poisson.html',1,'tests_geometryRTheta']]], - ['the_20advection_20field_30',['Aplication to the advection field',['../src_geometryRTheta_advection_field.html#autotoc_md57',1,'']]], - ['the_20b_20splines_31',['The B-splines',['../src_geometryRTheta_poisson.html#autotoc_md66',1,'']]], - ['the_20characteristic_20equation_3a_32',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], - ['the_20closure_20type_20for_20a_20lambda_20cannot_20be_20used_20in_20the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_33',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], - ['the_20code_34',['References to other relevant parts of the code',['../docs_Adding_docs.html#autotoc_md4',1,'']]], - ['the_20difference_20between_20debug_20and_20release_20mode_35',['What is the difference between Debug and Release mode?',['../docs_developer_FAQ.html#docs_developer_FAQ__What_is_the_difference_between_Debug_and_Release_mode',1,'']]], - ['the_20domain_20used_20for_20the_20advection_3a_36',['- The mapping and the domain used for the advection:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md87',1,'']]], - ['the_20enclosing_20parent_20function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_37',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], - ['the_20enclosing_20parent_20function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_38',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], - ['the_20gyselalib_20codebase_39',['Navigating the Gyselalib++ Codebase',['../docs_getting_started.html#docs_getting_started__Navigating_the_Gyselalibxx_Codebase',1,'']]], - ['the_20logical_20domain_20axis_40',['Advection field along the logical domain axis',['../src_geometryRTheta_advection_field.html#autotoc_md55',1,'']]], - ['the_20mapping_20and_20the_20domain_20used_20for_20the_20advection_3a_41',['- The mapping and the domain used for the advection:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md87',1,'']]], - ['the_20meshes_42',['Conformity of the meshes',['../src_multipatch_connectivity.html#autotoc_md75',1,'']]], - ['the_20o_20point_43',['Treatment of the O-point',['../src_geometryRTheta_poisson.html#autotoc_md67',1,'']]], - ['the_20physical_20domain_20axis_44',['Advection field along the physical domain axis',['../src_geometryRTheta_advection_field.html#autotoc_md54',1,'']]], - ['the_20poisson_20like_20equation_45',['The Poisson-like equation',['../src_geometryRTheta_poisson.html#src_geometryRTheta_poisson__The_Poisson-like_equation',1,'']]], - ['the_20repository_20but_20the_20submodules_20were_20not_20cloned_46',['Q: I cloned the repository but the submodules were not cloned',['../docs_Using_git.html#autotoc_md19',1,'']]], - ['the_20submodule_20but_20i_20didn_20t_20change_20this_20code_47',['Q: Git reports changes in the submodule but I didn't change this code',['../docs_Using_git.html#autotoc_md20',1,'']]], - ['the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_48',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], - ['the_20templated_20advection_20operators_49',['Tests on the templated advection operators',['../tests_advection.html',1,'tests']]], - ['the_20test_20simulation_3a_50',['- The test simulation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md89',1,'']]], - ['the_20time_20integration_20method_20used_20to_20solve_20the_20characteristic_20equation_3a_51',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], - ['theta_52',['theta',['../src_geometryRTheta.html',1,'Geometry (r, theta)'],['../tests_geometryRTheta.html',1,'Tests : Geometry (r, theta)'],['../structonion__shape__non__uniform__2d__2patches_1_1Theta.html',1,'onion_shape_non_uniform_2d_2patches::Theta'],['../classPolarSplineFEMPoissonLikeSolver.html#a68effe5bc79a8795c6513a38489d6813',1,'PolarSplineFEMPoissonLikeSolver::Theta'],['../structTheta.html',1,'Theta'],['../structonion__shape__uniform__2d__2patches_1_1Theta.html',1,'onion_shape_uniform_2d_2patches::Theta']]], - ['theta_20geometry_53',['Simulations in (r, theta) geometry',['../simulations_geometryRTheta.html',1,'simulations']]], - ['theta1_5fmax_54',['theta1_max',['../classMultipatchSplineOnionShapeTest.html#a0ecc7140018d1b15747d40c47c572d08',1,'MultipatchSplineOnionShapeTest']]], - ['theta1_5fmin_55',['theta1_min',['../classMultipatchSplineOnionShapeTest.html#af765587eab255ab043033e430915c607',1,'MultipatchSplineOnionShapeTest']]], - ['theta1_5fncells_56',['theta1_ncells',['../classMultipatchSplineOnionShapeTest.html#a18543cf97a4482190d9aa434c0e1aa42',1,'MultipatchSplineOnionShapeTest']]], - ['theta2_5fmax_57',['theta2_max',['../classMultipatchSplineOnionShapeTest.html#a04e85a3a6c302f1c8c23a44c2d3f68f1',1,'MultipatchSplineOnionShapeTest']]], - ['theta2_5fmin_58',['theta2_min',['../classMultipatchSplineOnionShapeTest.html#aa60d8ac4cec9e36e30064e5d8de63bca',1,'MultipatchSplineOnionShapeTest']]], - ['theta2_5fncells_59',['theta2_ncells',['../classMultipatchSplineOnionShapeTest.html#a78efc6ef423a003fa0a4f16d393ae208',1,'MultipatchSplineOnionShapeTest']]], - ['thetabasissubset_60',['ThetaBasisSubset',['../classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaBasisSubset',1,'PolarSplineFEMPoissonLikeSolver']]], - ['thetacelldim_61',['ThetaCellDim',['../classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaCellDim',1,'PolarSplineFEMPoissonLikeSolver']]], - ['this_20code_62',['Q: Git reports changes in the submodule but I didn't change this code',['../docs_Using_git.html#autotoc_md20',1,'']]], - ['this_20in_20extended_20lambda_20expression_63',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], - ['time_20integration_64',['Time integration',['../src_geometryXVx_time_integration.html',1,'src_geometryXVx']]], - ['time_20integration_20method_20used_20to_20solve_20the_20characteristic_20equation_3a_65',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], - ['time_20integration_20methods_66',['Time integration methods',['../src_geometryRTheta_advection.html#src_geometryRTheta_advection__Time_integration_methods',1,'']]], - ['time_20stepping_20methods_67',['Time Stepping Methods',['../src_timestepper.html',1,'src']]], - ['to_20a_20specific_20object_68',['A nonstatic member reference must be relative to a specific object',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__A_nonstatic_member_reference_must_be_relative_to_a_specific_object',1,'']]], - ['to_20be_20taken_69',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], - ['to_20other_20relevant_20parts_20of_20the_20code_70',['References to other relevant parts of the code',['../docs_Adding_docs.html#autotoc_md4',1,'']]], - ['to_20raise_20an_20error_71',['Should I use abort, assert, or static_assert to raise an error?',['../docs_developer_FAQ.html#docs_developer_FAQ__Should_I_use_abort_assert_or_static_assert_to_raise_an_error',1,'']]], - ['to_20solve_20the_20characteristic_20equation_3a_72',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], - ['to_20the_20advection_20field_73',['Aplication to the advection field',['../src_geometryRTheta_advection_field.html#autotoc_md57',1,'']]], - ['to_5fcovariant_74',['to_covariant',['../classMetricTensor.html#aa6a650351eb694fef48334a192469d25',1,'MetricTensor']]], - ['to_5ftuple_75',['to_tuple',['../structto__tuple.html',1,'']]], - ['to_5ftuple_3c_20std_3a_3ainteger_5fsequence_3c_20t_2c_20ints_2e_2e_2e_20_3e_20_3e_76',['to_tuple< std::integer_sequence< T, Ints... > >',['../structto__tuple_3_01std_1_1integer__sequence_3_01T_00_01Ints_8_8_8_01_4_01_4.html',1,'']]], - ['to_5ftuple_3c_20std_3a_3apair_3c_20t_2c_20u_20_3e_20_3e_77',['to_tuple< std::pair< T, U > >',['../structto__tuple_3_01std_1_1pair_3_01T_00_01U_01_4_01_4.html',1,'']]], - ['toolchains_78',['Toolchains',['../toolchains.html#toolchains__Toolchains',1,'']]], - ['tools_79',['tools',['../src_math_tools.html#src_math_tools__Derivative_tools',1,'Derivative tools'],['../src_matrix_tools.html',1,'Matrix tools'],['../src_math_tools.html#src_math_tools__Utility_tools',1,'Utility tools']]], - ['top_5fblock_5fsize_80',['top_block_size',['../classMatrix__Center__Block.html#aaf499227ba7d90c20967ab6d8e776482',1,'Matrix_Center_Block']]], - ['totuple_81',['ToTuple',['../structconnectivity__details_1_1ToTuple.html',1,'connectivity_details']]], - ['totuple_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_20i_2e_2e_2e_20_3e_20_3e_82',['ToTuple< ddc::detail::TypeSeq< I... > >',['../structconnectivity__details_1_1ToTuple_3_01ddc_1_1detail_1_1TypeSeq_3_01I_8_8_8_01_4_01_4.html',1,'connectivity_details']]], - ['transformation_83',['transformation',['../src_multipatch_connectivity.html#autotoc_md74',1,'Index transformation'],['../src_multipatch_connectivity.html#autotoc_md73',1,'Sticking and Coordinate Transformation']]], - ['translationadvectionfieldsimulation_84',['translationadvectionfieldsimulation',['../classTranslationAdvectionFieldSimulation.html',1,'TranslationAdvectionFieldSimulation< Mapping >'],['../classTranslationAdvectionFieldSimulation.html#aa89e869c6d580ce70c186d3a3ec99272',1,'TranslationAdvectionFieldSimulation::TranslationAdvectionFieldSimulation()']]], - ['translationsimulation_85',['translationsimulation',['../classTranslationSimulation.html',1,'TranslationSimulation< Mapping >'],['../classTranslationSimulation.html#a93ef880e4bde7812610f07198d620be1',1,'TranslationSimulation::TranslationSimulation()']]], - ['transpose_20operator_86',['Alltoall Transpose Operator',['../src_mpi_parallelisation.html#src_mpi_parallelisation__Alltoall_Transpose_Operator',1,'']]], - ['transpose_5fto_87',['transpose_to',['../classMPITransposeAllToAll.html#ab8710a5c605dad849087077632f2e17e',1,'MPITransposeAllToAll']]], - ['transposeoperator_88',['TransposeOperator',['../src_mpi_parallelisation.html#src_mpi_parallelisation__TransposeOperator',1,'']]], - ['trapezoid_5fquadrature_2ehpp_89',['trapezoid_quadrature.hpp',['../trapezoid__quadrature_8hpp.html',1,'']]], - ['trapezoid_5fquadrature_5fcoefficients_90',['trapezoid_quadrature_coefficients',['../trapezoid__quadrature_8hpp.html#a70e64a14c696ce6d674297e947ff7074',1,'trapezoid_quadrature.hpp']]], - ['trapezoid_5fquadrature_5fcoefficients_5f1d_91',['trapezoid_quadrature_coefficients_1d',['../trapezoid__quadrature_8hpp.html#a00b23ab6bb69740215a7962df6bcb2f8',1,'trapezoid_quadrature.hpp']]], - ['treatment_20of_20the_20o_20point_92',['Treatment of the O-point',['../src_geometryRTheta_poisson.html#autotoc_md67',1,'']]], - ['treatments_20diagnosis_93',['Results treatments - diagnosis',['../simulations_geometryXY_guiding_center.html#autotoc_md44',1,'']]], - ['triangularbernsteinpolynomialbasis_94',['TriangularBernsteinPolynomialBasis',['../classTriangularBernsteinPolynomialBasis.html',1,'']]], - ['triangularbernsteinpolynomialbasis_3c_20discretemapping_3a_3acartesian_5ftag_5fx_2c_20discretemapping_3a_3acartesian_5ftag_5fy_2c_20corner1tag_2c_20corner2tag_2c_20corner3tag_2c_20c_20_3e_95',['TriangularBernsteinPolynomialBasis< DiscreteMapping::cartesian_tag_x, DiscreteMapping::cartesian_tag_y, Corner1Tag, Corner2Tag, Corner3Tag, C >',['../classTriangularBernsteinPolynomialBasis.html',1,'']]], - ['tuple_5fto_5ftypes_96',['tuple_to_types',['../structtuple__to__types.html',1,'']]], - ['tuple_5fto_5ftypes_3c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_20_3e_97',['tuple_to_types< std::tuple< Args... > >',['../structtuple__to__types_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html',1,'']]], - ['two_20edges_98',['Sticking of Two Edges',['../src_multipatch_connectivity.html#autotoc_md70',1,'']]], - ['type_99',['type',['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_01Id3b131c802b30082f4412eb4689d6d53b.html#a236983aa6398032c45d2a998cfeb4306',1,'connectivity_details::FindRelevantIdxRangeType< QueryGrid1D, std::tuple< IdxRangeHead, IdxRangeTypes... > >::type'],['../structconnectivity__details_1_1StripOutsideEdges_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_036e9ce7e4506982efa52c09ca049ae90.html#af6fa608673168ba90267d5b0c71676a6',1,'connectivity_details::StripOutsideEdges< ddc::detail::TypeSeq< EdgeType1, RemainingEdgeTypes... > >::type'],['../structconnectivity__details_1_1ToTuple_3_01ddc_1_1detail_1_1TypeSeq_3_01I_8_8_8_01_4_01_4.html#a0af138539a7a646b5e405614d86b4a97',1,'connectivity_details::ToTuple< ddc::detail::TypeSeq< I... > >::type'],['../structconnectivity__details_1_1StripOutsideEdges_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType_01_4_01_4.html#a7a3343dbe34154d96b037ecc7f16ea72',1,'connectivity_details::StripOutsideEdges< ddc::detail::TypeSeq< EdgeType > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_01Interd9a0a5e7aafe0b71fe7c76720b7c5da6.html#a85f83871403ebf25a23cba2736268c30',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq< InterfaceType1, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_01InterfaceType_01_4_01_4.html#a8f3e514120676d44e357f6ed57700784',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq< InterfaceType > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html#a29d56e6980c8c4f084dbeadd8b217794',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq<> >::type'],['../structinterpolator__on__idx__range_3_01Interp_00_01GridInterp_00_01IdxRange_3_01Grid1D_8_8_8_01_4_01_4.html#a3d7bd6ff70bbce6361c363dd77cc76bd',1,'interpolator_on_idx_range< Interp, GridInterp, IdxRange< Grid1D... > >::type'],['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_01EdgeTypes_8_8_8_01_4_01_4.html#a8965f4b521e6227c5d1b785cc8b5fb25',1,'connectivity_details::ExtractPatches< ddc::detail::TypeSeq< EdgeType1, EdgeTypes... > >::type'],['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_4_01_4.html#aa9bdbcc7da369ed1f67c16b29380e10f',1,'connectivity_details::FindRelevantIdxRangeType< QueryGrid1D, std::tuple<> >::type'],['../structconnectivity__details_1_1SelectRelevantIdxRangeType_3_01QueryGrid1D_00_01IdxRange_3_01IdxRangeGrids_8_8_8_01_4_01_4.html#aaaf7c6c9ace8dd44ff08cd50695cb3ab',1,'connectivity_details::SelectRelevantIdxRangeType< QueryGrid1D, IdxRange< IdxRangeGrids... > >::type'],['../structconnectivity__details_1_1CollectAllInterfacesOnDim.html#a67f0a5013edd67b8677a784ce2788943',1,'connectivity_details::CollectAllInterfacesOnDim::type'],['../structconnectivity__details_1_1CollectAllGridsOnDim.html#a5a3778e3b25f878a9876eaf6ba6202d4',1,'connectivity_details::CollectAllGridsOnDim::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01ins70deef724c6e45ed62db534c3d9697ec.html#a4daf9ac9c99d43f3cd8facec42acadc9',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, OutsideEdge, false >::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01ins8ee738c554d8fbbf6bab92ba87dd3b80.html#a48d1d754e28b0c788521f4bbf726c331',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, MatchingEdge, true >::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01insd7a4bdb826ecb568487bbd509c5f008b.html#a61f31127356ceede4092449d8daea05c',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, MatchingEdge, false >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_ebd86d7b2345baf351562d16964c47d9.html#a2086dfaa9ddbdd4eb07271691f38fee5',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, OutsideEdge, false >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_36879d7a164b5ac728612e4a981c6d65.html#ad52638706761847365f3eebd80c501d3',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, MatchingEdge, true >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_b2108f65f3430e895714f416a2f43701.html#a2636f16ad2713171f31c1e914e5e4ffa',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, MatchingEdge, false >::type'],['../structconnectivity__details_1_1AddToTypeSeq_3_01ToInsert_00_01TypeSeq_00_01BackInsert_01_4.html#a33b756a17a67e5c3d750f5dbbc2651ab',1,'connectivity_details::AddToTypeSeq< ToInsert, TypeSeq, BackInsert >::type'],['../structconnectivity__details_1_1AddToTypeSeq_3_01ToInsert_00_01TypeSeq_00_01FrontInsert_01_4.html#a740fc6cb29bd99877ea578ca4aa911b1',1,'connectivity_details::AddToTypeSeq< ToInsert, TypeSeq, FrontInsert >::type'],['../structconnectivity__details_1_1SwapExtremity_3_01Edge_3_01Patch_00_01Grid1D_00_01BACK_01_4_01_4.html#a5838bc2bc6598da043ef9201f68fdc78',1,'connectivity_details::SwapExtremity< Edge< Patch, Grid1D, BACK > >::type'],['../structconnectivity__details_1_1SwapExtremity_3_01Edge_3_01Patch_00_01Grid1D_00_01FRONT_01_4_01_4.html#a078f35939498a6a06b366f95fce809cd',1,'connectivity_details::SwapExtremity< Edge< Patch, Grid1D, FRONT > >::type'],['../structconnectivity__details_1_1EnforceFirstInterfaceEdge_3_01Interface_3_01Edge2_00_01FirstEdge_221a02b03250a49af1745b2263467420.html#a7b9517e569600da04149fd82a203fdb4',1,'connectivity_details::EnforceFirstInterfaceEdge< Interface< Edge2, FirstEdge, Orientations >, FirstEdge >::type'],['../structconnectivity__details_1_1EnforceFirstInterfaceEdge_3_01Interface_3_01FirstEdge_00_01Edge2_788676fcb3310ca4c1ec984ff0b4531b.html#a83a7cb1884c62494474e32842dc2ce9a',1,'connectivity_details::EnforceFirstInterfaceEdge< Interface< FirstEdge, Edge2, Orientations >, FirstEdge >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacee698732bdf35f06db097afe1714904c.html#acc784bd6a6b388cc4ac731bc61ef0385',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface< OEdge, Edge, Orientations >, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacd1aa547d7cc4bf022e85928246ab2d07.html#ab1aa5cb1d073bb2150df0b723addd5ab',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface< Edge, OEdge, Orientations >, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfac6d31b188ee73012ad6c98be99219379f.html#aa742d8a5d1a7430567bb022b83f5488e',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface1, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01Grid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch1_00_33770856242f7c5cee1ce419b2efaf64.html#a6a17996ac38973f5c589a737d2bdb270',1,'connectivity_details::FindPatch< Grid1D, ddc::detail::TypeSeq< Patch1, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch5f5acd76cfd59a22ebf513823679a320.html#a491a77c69817438993bb5df49e0c5fc8',1,'connectivity_details::FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< OGrid, QueryGrid1D, BSpl1, BSpl2 >, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patchd8fc8921dec760f8fe4c90c2a6947228.html#a1208d0ea2590083cdeb5f887b67b78e6',1,'connectivity_details::FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< QueryGrid1D, OGrid, BSpl1, BSpl2 >, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html#aa57353c6b14c5fd23369d18288cabd0f',1,'connectivity_details::ExtractPatches< ddc::detail::TypeSeq<> >::type']]], - ['type_20for_20a_20lambda_20cannot_20be_20used_20in_20the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_100',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], - ['types_101',['types',['../src_data_types.html',1,'Data Storage Types'],['../src_multipatch_data_types.html#autotoc_md79',1,'Types']]], - ['types_20for_20multipatch_20geometry_102',['Data Types for Multipatch Geometry',['../src_multipatch_data_types.html',1,'src_multipatch']]] + ['templated_5fweak_5fintegral_5felement_11',['templated_weak_integral_element',['../classPolarSplineFEMPoissonLikeSolver.html#ac94824022d7b90428f769126de178000',1,'PolarSplineFEMPoissonLikeSolver']]], + ['tensor_5fbspline_5fidx_5frange_12',['tensor_bspline_idx_range',['../classPolarBSplines_1_1Impl.html#af3133a4ea7b7cc4796da428de9bba352',1,'PolarBSplines::Impl']]], + ['tensor_5fproduct_5fidx_5frange_5ftype_13',['tensor_product_idx_range_type',['../classPolarBSplines.html#aa4d0e6fff9aa8d6641fca3cfad60bc0b',1,'PolarBSplines']]], + ['tensor_5fproduct_5fidx_5fstep_5ftype_14',['tensor_product_idx_step_type',['../classPolarBSplines.html#a88a1c2cb066c6e86912f15115ee2aa57',1,'PolarBSplines']]], + ['tensor_5fproduct_5findex_5ftype_15',['tensor_product_index_type',['../classPolarBSplines.html#aafa27d2710cd09d6713d6dafcb2ae564',1,'PolarBSplines']]], + ['test_20case_16',['test case',['../src_geometryXY_initialization.html#src_geometryXY_initialization__Kelvin-Helmholtz_instability_test_case',1,'Kelvin-Helmholtz instability test case'],['../simulations_geometryXY_guiding_center.html#autotoc_md43',1,'Test case: Kelvin-Helmholtz instability test case']]], + ['test_20case_20diocotron_20instability_17',['Test case - diocotron instability',['../simulations_geometryRTheta_diocotron.html#simulations_geometryRTheta_diocotron__Test_case_-_diocotron_instability',1,'']]], + ['test_20case_20vortex_20merger_18',['Test case - vortex merger',['../simulations_geometryRTheta_vortex_merger.html#simulations_geometryRTheta_vortex_merger__Test_case_-_vortex_merger',1,'']]], + ['test_20case_3a_20kelvin_20helmholtz_20instability_20test_20case_19',['Test case: Kelvin-Helmholtz instability test case',['../simulations_geometryXY_guiding_center.html#autotoc_md43',1,'']]], + ['test_20cases_20as_20for_20bsladvectionspatial_20and_20bsladvectionvelocity_20',['Same test cases as for BslAdvectionSpatial and BslAdvectionVelocity',['../tests_advection.html#autotoc_md84',1,'']]], + ['test_20simulation_3a_21',['- The test simulation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md89',1,'']]], + ['tests_22',['tests',['../tests.html',1,'Gyselalib++ tests'],['../tests_multipatch.html',1,'Multipatch geometry tests'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Python_tests',1,'Python tests'],['../src_geometryRTheta_advection.html#autotoc_md51',1,'Unit tests'],['../src_geometryRTheta_poisson.html#src_geometryRTheta_poisson__Unit_tests',1,'Unit tests']]], + ['tests_20_3a_20geometry_20r_20theta_23',['Tests : Geometry (r, theta)',['../tests_geometryRTheta.html',1,'tests']]], + ['tests_20on_20spline_20interpolator_20in_20polar_20coordinates_24',['Tests on spline interpolator in polar coordinates',['../tests_geometryRTheta_2d_spline_interpolator.html',1,'tests_geometryRTheta']]], + ['tests_20on_20the_202d_20polar_20advection_20operator_25',['tests on the 2d polar advection operator',['../tests_geometryRTheta_advection_2d_rp.html',1,'Tests on the 2D polar advection operator'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Tests_on_the_2D_polar_advection_operator',1,'Tests on the 2D polar advection operator']]], + ['tests_20on_20the_202d_20polar_20poisson_20solver_26',['Tests on the 2D polar poisson solver',['../tests_geometryRTheta_polar_poisson.html',1,'tests_geometryRTheta']]], + ['tests_20on_20the_20templated_20advection_20operators_27',['Tests on the templated advection operators',['../tests_advection.html',1,'tests']]], + ['tests_3a_28',['Functions tests:',['../tests_geometryRTheta_2d_spline_interpolator.html#autotoc_md85',1,'']]], + ['the_202d_20polar_20advection_20operator_29',['the 2d polar advection operator',['../tests_geometryRTheta_advection_2d_rp.html',1,'Tests on the 2D polar advection operator'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Tests_on_the_2D_polar_advection_operator',1,'Tests on the 2D polar advection operator']]], + ['the_202d_20polar_20poisson_20solver_30',['Tests on the 2D polar poisson solver',['../tests_geometryRTheta_polar_poisson.html',1,'tests_geometryRTheta']]], + ['the_20advection_20field_31',['Aplication to the advection field',['../src_geometryRTheta_advection_field.html#autotoc_md57',1,'']]], + ['the_20b_20splines_32',['The B-splines',['../src_geometryRTheta_poisson.html#autotoc_md66',1,'']]], + ['the_20characteristic_20equation_3a_33',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], + ['the_20closure_20type_20for_20a_20lambda_20cannot_20be_20used_20in_20the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_34',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], + ['the_20code_35',['References to other relevant parts of the code',['../docs_Adding_docs.html#autotoc_md4',1,'']]], + ['the_20difference_20between_20debug_20and_20release_20mode_36',['What is the difference between Debug and Release mode?',['../docs_developer_FAQ.html#docs_developer_FAQ__What_is_the_difference_between_Debug_and_Release_mode',1,'']]], + ['the_20domain_20used_20for_20the_20advection_3a_37',['- The mapping and the domain used for the advection:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md87',1,'']]], + ['the_20enclosing_20parent_20function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_38',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], + ['the_20enclosing_20parent_20function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_39',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], + ['the_20gyselalib_20codebase_40',['Navigating the Gyselalib++ Codebase',['../docs_getting_started.html#docs_getting_started__Navigating_the_Gyselalibxx_Codebase',1,'']]], + ['the_20logical_20domain_20axis_41',['Advection field along the logical domain axis',['../src_geometryRTheta_advection_field.html#autotoc_md55',1,'']]], + ['the_20mapping_20and_20the_20domain_20used_20for_20the_20advection_3a_42',['- The mapping and the domain used for the advection:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md87',1,'']]], + ['the_20meshes_43',['Conformity of the meshes',['../src_multipatch_connectivity.html#autotoc_md75',1,'']]], + ['the_20o_20point_44',['Treatment of the O-point',['../src_geometryRTheta_poisson.html#autotoc_md67',1,'']]], + ['the_20physical_20domain_20axis_45',['Advection field along the physical domain axis',['../src_geometryRTheta_advection_field.html#autotoc_md54',1,'']]], + ['the_20poisson_20like_20equation_46',['The Poisson-like equation',['../src_geometryRTheta_poisson.html#src_geometryRTheta_poisson__The_Poisson-like_equation',1,'']]], + ['the_20repository_20but_20the_20submodules_20were_20not_20cloned_47',['Q: I cloned the repository but the submodules were not cloned',['../docs_Using_git.html#autotoc_md19',1,'']]], + ['the_20submodule_20but_20i_20didn_20t_20change_20this_20code_48',['Q: Git reports changes in the submodule but I didn't change this code',['../docs_Using_git.html#autotoc_md20',1,'']]], + ['the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_49',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], + ['the_20templated_20advection_20operators_50',['Tests on the templated advection operators',['../tests_advection.html',1,'tests']]], + ['the_20test_20simulation_3a_51',['- The test simulation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md89',1,'']]], + ['the_20time_20integration_20method_20used_20to_20solve_20the_20characteristic_20equation_3a_52',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], + ['theta_53',['theta',['../src_geometryRTheta.html',1,'Geometry (r, theta)'],['../tests_geometryRTheta.html',1,'Tests : Geometry (r, theta)'],['../structonion__shape__non__uniform__2d__2patches_1_1Theta.html',1,'onion_shape_non_uniform_2d_2patches::Theta'],['../structonion__shape__uniform__2d__2patches_1_1Theta.html',1,'onion_shape_uniform_2d_2patches::Theta'],['../structTheta.html',1,'Theta'],['../classPolarSplineFEMPoissonLikeSolver.html#a0c880f33d839cedfafdf2b3b32139417',1,'PolarSplineFEMPoissonLikeSolver::Theta']]], + ['theta_20geometry_54',['Simulations in (r, theta) geometry',['../simulations_geometryRTheta.html',1,'simulations']]], + ['theta1_5fmax_55',['theta1_max',['../classMultipatchSplineOnionShapeTest.html#a0ecc7140018d1b15747d40c47c572d08',1,'MultipatchSplineOnionShapeTest']]], + ['theta1_5fmin_56',['theta1_min',['../classMultipatchSplineOnionShapeTest.html#af765587eab255ab043033e430915c607',1,'MultipatchSplineOnionShapeTest']]], + ['theta1_5fncells_57',['theta1_ncells',['../classMultipatchSplineOnionShapeTest.html#a18543cf97a4482190d9aa434c0e1aa42',1,'MultipatchSplineOnionShapeTest']]], + ['theta2_5fmax_58',['theta2_max',['../classMultipatchSplineOnionShapeTest.html#a04e85a3a6c302f1c8c23a44c2d3f68f1',1,'MultipatchSplineOnionShapeTest']]], + ['theta2_5fmin_59',['theta2_min',['../classMultipatchSplineOnionShapeTest.html#aa60d8ac4cec9e36e30064e5d8de63bca',1,'MultipatchSplineOnionShapeTest']]], + ['theta2_5fncells_60',['theta2_ncells',['../classMultipatchSplineOnionShapeTest.html#a78efc6ef423a003fa0a4f16d393ae208',1,'MultipatchSplineOnionShapeTest']]], + ['theta_5fmod_61',['theta_mod',['../classPolarSplineFEMPoissonLikeSolver.html#acbe58349c9ea9b73ae5476df678f4010',1,'PolarSplineFEMPoissonLikeSolver']]], + ['thetabasissubset_62',['ThetaBasisSubset',['../classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaBasisSubset',1,'PolarSplineFEMPoissonLikeSolver']]], + ['thetacelldim_63',['ThetaCellDim',['../classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1ThetaCellDim',1,'PolarSplineFEMPoissonLikeSolver']]], + ['this_20code_64',['Q: Git reports changes in the submodule but I didn't change this code',['../docs_Using_git.html#autotoc_md20',1,'']]], + ['this_20in_20extended_20lambda_20expression_65',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], + ['time_20integration_66',['Time integration',['../src_geometryXVx_time_integration.html',1,'src_geometryXVx']]], + ['time_20integration_20method_20used_20to_20solve_20the_20characteristic_20equation_3a_67',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], + ['time_20integration_20methods_68',['Time integration methods',['../src_geometryRTheta_advection.html#src_geometryRTheta_advection__Time_integration_methods',1,'']]], + ['time_20stepping_20methods_69',['Time Stepping Methods',['../src_timestepper.html',1,'src']]], + ['to_20a_20specific_20object_70',['A nonstatic member reference must be relative to a specific object',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__A_nonstatic_member_reference_must_be_relative_to_a_specific_object',1,'']]], + ['to_20be_20taken_71',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], + ['to_20other_20relevant_20parts_20of_20the_20code_72',['References to other relevant parts of the code',['../docs_Adding_docs.html#autotoc_md4',1,'']]], + ['to_20raise_20an_20error_73',['Should I use abort, assert, or static_assert to raise an error?',['../docs_developer_FAQ.html#docs_developer_FAQ__Should_I_use_abort_assert_or_static_assert_to_raise_an_error',1,'']]], + ['to_20solve_20the_20characteristic_20equation_3a_74',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], + ['to_20the_20advection_20field_75',['Aplication to the advection field',['../src_geometryRTheta_advection_field.html#autotoc_md57',1,'']]], + ['to_5fcovariant_76',['to_covariant',['../classMetricTensor.html#aa6a650351eb694fef48334a192469d25',1,'MetricTensor']]], + ['to_5ftuple_77',['to_tuple',['../structto__tuple.html',1,'']]], + ['to_5ftuple_3c_20std_3a_3ainteger_5fsequence_3c_20t_2c_20ints_2e_2e_2e_20_3e_20_3e_78',['to_tuple< std::integer_sequence< T, Ints... > >',['../structto__tuple_3_01std_1_1integer__sequence_3_01T_00_01Ints_8_8_8_01_4_01_4.html',1,'']]], + ['to_5ftuple_3c_20std_3a_3apair_3c_20t_2c_20u_20_3e_20_3e_79',['to_tuple< std::pair< T, U > >',['../structto__tuple_3_01std_1_1pair_3_01T_00_01U_01_4_01_4.html',1,'']]], + ['toolchains_80',['Toolchains',['../toolchains.html#toolchains__Toolchains',1,'']]], + ['tools_81',['tools',['../src_math_tools.html#src_math_tools__Derivative_tools',1,'Derivative tools'],['../src_matrix_tools.html',1,'Matrix tools'],['../src_math_tools.html#src_math_tools__Utility_tools',1,'Utility tools']]], + ['top_5fblock_5fsize_82',['top_block_size',['../classMatrix__Center__Block.html#aaf499227ba7d90c20967ab6d8e776482',1,'Matrix_Center_Block']]], + ['totuple_83',['ToTuple',['../structconnectivity__details_1_1ToTuple.html',1,'connectivity_details']]], + ['totuple_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_20i_2e_2e_2e_20_3e_20_3e_84',['ToTuple< ddc::detail::TypeSeq< I... > >',['../structconnectivity__details_1_1ToTuple_3_01ddc_1_1detail_1_1TypeSeq_3_01I_8_8_8_01_4_01_4.html',1,'connectivity_details']]], + ['transformation_85',['transformation',['../src_multipatch_connectivity.html#autotoc_md74',1,'Index transformation'],['../src_multipatch_connectivity.html#autotoc_md73',1,'Sticking and Coordinate Transformation']]], + ['translationadvectionfieldsimulation_86',['translationadvectionfieldsimulation',['../classTranslationAdvectionFieldSimulation.html',1,'TranslationAdvectionFieldSimulation< Mapping >'],['../classTranslationAdvectionFieldSimulation.html#aa89e869c6d580ce70c186d3a3ec99272',1,'TranslationAdvectionFieldSimulation::TranslationAdvectionFieldSimulation()']]], + ['translationsimulation_87',['translationsimulation',['../classTranslationSimulation.html',1,'TranslationSimulation< Mapping >'],['../classTranslationSimulation.html#a93ef880e4bde7812610f07198d620be1',1,'TranslationSimulation::TranslationSimulation()']]], + ['transpose_20operator_88',['Alltoall Transpose Operator',['../src_mpi_parallelisation.html#src_mpi_parallelisation__Alltoall_Transpose_Operator',1,'']]], + ['transpose_5fto_89',['transpose_to',['../classMPITransposeAllToAll.html#ab8710a5c605dad849087077632f2e17e',1,'MPITransposeAllToAll']]], + ['transposeoperator_90',['TransposeOperator',['../src_mpi_parallelisation.html#src_mpi_parallelisation__TransposeOperator',1,'']]], + ['trapezoid_5fquadrature_2ehpp_91',['trapezoid_quadrature.hpp',['../trapezoid__quadrature_8hpp.html',1,'']]], + ['trapezoid_5fquadrature_5fcoefficients_92',['trapezoid_quadrature_coefficients',['../trapezoid__quadrature_8hpp.html#a70e64a14c696ce6d674297e947ff7074',1,'trapezoid_quadrature.hpp']]], + ['trapezoid_5fquadrature_5fcoefficients_5f1d_93',['trapezoid_quadrature_coefficients_1d',['../trapezoid__quadrature_8hpp.html#a00b23ab6bb69740215a7962df6bcb2f8',1,'trapezoid_quadrature.hpp']]], + ['treatment_20of_20the_20o_20point_94',['Treatment of the O-point',['../src_geometryRTheta_poisson.html#autotoc_md67',1,'']]], + ['treatments_20diagnosis_95',['Results treatments - diagnosis',['../simulations_geometryXY_guiding_center.html#autotoc_md44',1,'']]], + ['triangularbernsteinpolynomialbasis_96',['TriangularBernsteinPolynomialBasis',['../classTriangularBernsteinPolynomialBasis.html',1,'']]], + ['triangularbernsteinpolynomialbasis_3c_20discretemapping_3a_3acartesian_5ftag_5fx_2c_20discretemapping_3a_3acartesian_5ftag_5fy_2c_20corner1tag_2c_20corner2tag_2c_20corner3tag_2c_20c_20_3e_97',['TriangularBernsteinPolynomialBasis< DiscreteMapping::cartesian_tag_x, DiscreteMapping::cartesian_tag_y, Corner1Tag, Corner2Tag, Corner3Tag, C >',['../classTriangularBernsteinPolynomialBasis.html',1,'']]], + ['tuple_5fto_5ftypes_98',['tuple_to_types',['../structtuple__to__types.html',1,'']]], + ['tuple_5fto_5ftypes_3c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_20_3e_99',['tuple_to_types< std::tuple< Args... > >',['../structtuple__to__types_3_01std_1_1tuple_3_01Args_8_8_8_01_4_01_4.html',1,'']]], + ['two_20edges_100',['Sticking of Two Edges',['../src_multipatch_connectivity.html#autotoc_md70',1,'']]], + ['type_101',['type',['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_01Id3b131c802b30082f4412eb4689d6d53b.html#a236983aa6398032c45d2a998cfeb4306',1,'connectivity_details::FindRelevantIdxRangeType< QueryGrid1D, std::tuple< IdxRangeHead, IdxRangeTypes... > >::type'],['../structconnectivity__details_1_1StripOutsideEdges_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_036e9ce7e4506982efa52c09ca049ae90.html#af6fa608673168ba90267d5b0c71676a6',1,'connectivity_details::StripOutsideEdges< ddc::detail::TypeSeq< EdgeType1, RemainingEdgeTypes... > >::type'],['../structconnectivity__details_1_1ToTuple_3_01ddc_1_1detail_1_1TypeSeq_3_01I_8_8_8_01_4_01_4.html#a0af138539a7a646b5e405614d86b4a97',1,'connectivity_details::ToTuple< ddc::detail::TypeSeq< I... > >::type'],['../structconnectivity__details_1_1StripOutsideEdges_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType_01_4_01_4.html#a7a3343dbe34154d96b037ecc7f16ea72',1,'connectivity_details::StripOutsideEdges< ddc::detail::TypeSeq< EdgeType > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_01Interd9a0a5e7aafe0b71fe7c76720b7c5da6.html#a85f83871403ebf25a23cba2736268c30',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq< InterfaceType1, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_01InterfaceType_01_4_01_4.html#a8f3e514120676d44e357f6ed57700784',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq< InterfaceType > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html#a29d56e6980c8c4f084dbeadd8b217794',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq<> >::type'],['../structinterpolator__on__idx__range_3_01Interp_00_01GridInterp_00_01IdxRange_3_01Grid1D_8_8_8_01_4_01_4.html#a3d7bd6ff70bbce6361c363dd77cc76bd',1,'interpolator_on_idx_range< Interp, GridInterp, IdxRange< Grid1D... > >::type'],['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_01EdgeTypes_8_8_8_01_4_01_4.html#a8965f4b521e6227c5d1b785cc8b5fb25',1,'connectivity_details::ExtractPatches< ddc::detail::TypeSeq< EdgeType1, EdgeTypes... > >::type'],['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_4_01_4.html#aa9bdbcc7da369ed1f67c16b29380e10f',1,'connectivity_details::FindRelevantIdxRangeType< QueryGrid1D, std::tuple<> >::type'],['../structconnectivity__details_1_1SelectRelevantIdxRangeType_3_01QueryGrid1D_00_01IdxRange_3_01IdxRangeGrids_8_8_8_01_4_01_4.html#aaaf7c6c9ace8dd44ff08cd50695cb3ab',1,'connectivity_details::SelectRelevantIdxRangeType< QueryGrid1D, IdxRange< IdxRangeGrids... > >::type'],['../structconnectivity__details_1_1CollectAllInterfacesOnDim.html#a67f0a5013edd67b8677a784ce2788943',1,'connectivity_details::CollectAllInterfacesOnDim::type'],['../structconnectivity__details_1_1CollectAllGridsOnDim.html#a5a3778e3b25f878a9876eaf6ba6202d4',1,'connectivity_details::CollectAllGridsOnDim::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01ins70deef724c6e45ed62db534c3d9697ec.html#a4daf9ac9c99d43f3cd8facec42acadc9',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, OutsideEdge, false >::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01ins8ee738c554d8fbbf6bab92ba87dd3b80.html#a48d1d754e28b0c788521f4bbf726c331',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, MatchingEdge, true >::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01insd7a4bdb826ecb568487bbd509c5f008b.html#a61f31127356ceede4092449d8daea05c',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, MatchingEdge, false >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_ebd86d7b2345baf351562d16964c47d9.html#a2086dfaa9ddbdd4eb07271691f38fee5',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, OutsideEdge, false >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_36879d7a164b5ac728612e4a981c6d65.html#ad52638706761847365f3eebd80c501d3',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, MatchingEdge, true >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_b2108f65f3430e895714f416a2f43701.html#a2636f16ad2713171f31c1e914e5e4ffa',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, MatchingEdge, false >::type'],['../structconnectivity__details_1_1AddToTypeSeq_3_01ToInsert_00_01TypeSeq_00_01BackInsert_01_4.html#a33b756a17a67e5c3d750f5dbbc2651ab',1,'connectivity_details::AddToTypeSeq< ToInsert, TypeSeq, BackInsert >::type'],['../structconnectivity__details_1_1AddToTypeSeq_3_01ToInsert_00_01TypeSeq_00_01FrontInsert_01_4.html#a740fc6cb29bd99877ea578ca4aa911b1',1,'connectivity_details::AddToTypeSeq< ToInsert, TypeSeq, FrontInsert >::type'],['../structconnectivity__details_1_1SwapExtremity_3_01Edge_3_01Patch_00_01Grid1D_00_01BACK_01_4_01_4.html#a5838bc2bc6598da043ef9201f68fdc78',1,'connectivity_details::SwapExtremity< Edge< Patch, Grid1D, BACK > >::type'],['../structconnectivity__details_1_1SwapExtremity_3_01Edge_3_01Patch_00_01Grid1D_00_01FRONT_01_4_01_4.html#a078f35939498a6a06b366f95fce809cd',1,'connectivity_details::SwapExtremity< Edge< Patch, Grid1D, FRONT > >::type'],['../structconnectivity__details_1_1EnforceFirstInterfaceEdge_3_01Interface_3_01Edge2_00_01FirstEdge_221a02b03250a49af1745b2263467420.html#a7b9517e569600da04149fd82a203fdb4',1,'connectivity_details::EnforceFirstInterfaceEdge< Interface< Edge2, FirstEdge, Orientations >, FirstEdge >::type'],['../structconnectivity__details_1_1EnforceFirstInterfaceEdge_3_01Interface_3_01FirstEdge_00_01Edge2_788676fcb3310ca4c1ec984ff0b4531b.html#a83a7cb1884c62494474e32842dc2ce9a',1,'connectivity_details::EnforceFirstInterfaceEdge< Interface< FirstEdge, Edge2, Orientations >, FirstEdge >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacee698732bdf35f06db097afe1714904c.html#acc784bd6a6b388cc4ac731bc61ef0385',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface< OEdge, Edge, Orientations >, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacd1aa547d7cc4bf022e85928246ab2d07.html#ab1aa5cb1d073bb2150df0b723addd5ab',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface< Edge, OEdge, Orientations >, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfac6d31b188ee73012ad6c98be99219379f.html#aa742d8a5d1a7430567bb022b83f5488e',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface1, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01Grid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch1_00_33770856242f7c5cee1ce419b2efaf64.html#a6a17996ac38973f5c589a737d2bdb270',1,'connectivity_details::FindPatch< Grid1D, ddc::detail::TypeSeq< Patch1, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch5f5acd76cfd59a22ebf513823679a320.html#a491a77c69817438993bb5df49e0c5fc8',1,'connectivity_details::FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< OGrid, QueryGrid1D, BSpl1, BSpl2 >, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patchd8fc8921dec760f8fe4c90c2a6947228.html#a1208d0ea2590083cdeb5f887b67b78e6',1,'connectivity_details::FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< QueryGrid1D, OGrid, BSpl1, BSpl2 >, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html#aa57353c6b14c5fd23369d18288cabd0f',1,'connectivity_details::ExtractPatches< ddc::detail::TypeSeq<> >::type']]], + ['type_20for_20a_20lambda_20cannot_20be_20used_20in_20the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_102',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], + ['types_103',['types',['../src_data_types.html',1,'Data Storage Types'],['../src_multipatch_data_types.html#autotoc_md79',1,'Types']]], + ['types_20for_20multipatch_20geometry_104',['Data Types for Multipatch Geometry',['../src_multipatch_data_types.html',1,'src_multipatch']]] ]; diff --git a/search/all_19.js b/search/all_19.js index 494c20067..1a409fdc9 100644 --- a/search/all_19.js +++ b/search/all_19.js @@ -23,7 +23,7 @@ var searchData= ['volume_5fquadrature_5fnd_2ehpp_20',['volume_quadrature_nd.hpp',['../volume__quadrature__nd_8hpp.html',1,'']]], ['vortex_20merger_21',['vortex merger',['../simulations_geometryRTheta_vortex_merger.html#simulations_geometryRTheta_vortex_merger__Test_case_-_vortex_merger',1,'Test case - vortex merger'],['../simulations_geometryRTheta_vortex_merger.html',1,'Vortex merger'],['../src_geometryRTheta_initialization.html#src_geometryRTheta_initialization__Vortex_merger',1,'Vortex merger']]], ['vortexmergerdensitysolution_22',['vortexmergerdensitysolution',['../classVortexMergerDensitySolution.html#a75f051a4a9d1ccfee6c1976e4a914c75',1,'VortexMergerDensitySolution::VortexMergerDensitySolution()'],['../classVortexMergerDensitySolution.html',1,'VortexMergerDensitySolution< Mapping >']]], - ['vortexmergerequilibria_23',['vortexmergerequilibria',['../classVortexMergerEquilibria.html#a8e5ac553bd6628804db325b59ca8605d',1,'VortexMergerEquilibria::VortexMergerEquilibria()'],['../classVortexMergerEquilibria.html',1,'VortexMergerEquilibria< Mapping >']]], + ['vortexmergerequilibria_23',['vortexmergerequilibria',['../classVortexMergerEquilibria.html#a3a8975ef28538c07c2a08ce9b0db3c9f',1,'VortexMergerEquilibria::VortexMergerEquilibria()'],['../classVortexMergerEquilibria.html',1,'VortexMergerEquilibria< Mapping >']]], ['vpar_24',['Vpar',['../structVpar.html',1,'']]], ['vpar_20mu_25',['Geometry (vpar, mu)',['../src_geometryVparMu.html',1,'src']]], ['vr_26',['Vr',['../structVr.html',1,'']]], diff --git a/search/all_1a.js b/search/all_1a.js index e65fca7e8..22adfcb16 100644 --- a/search/all_1a.js +++ b/search/all_1a.js @@ -1,9 +1,10 @@ var searchData= [ ['weak_20formulation_0',['Weak formulation',['../src_geometryRTheta_poisson.html#autotoc_md68',1,'']]], - ['were_20not_20cloned_1',['Q: I cloned the repository but the submodules were not cloned',['../docs_Using_git.html#autotoc_md19',1,'']]], - ['what_20is_20the_20difference_20between_20debug_20and_20release_20mode_2',['What is the difference between Debug and Release mode?',['../docs_developer_FAQ.html#docs_developer_FAQ__What_is_the_difference_between_Debug_and_Release_mode',1,'']]], - ['with_20a_20given_20advection_20field_3',['1D advection with a given advection field',['../src_advection.html#src_advection__1D_advection_with_a_given_advection_field',1,'']]], - ['with_20gyselalib_4',['Getting Started with Gyselalib++',['../docs_getting_started.html',1,'']]], - ['within_20its_20class_5',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]] + ['weak_5fintegral_5felement_1',['weak_integral_element',['../classPolarSplineFEMPoissonLikeSolver.html#af97748fe740d17247902a8b1d4b1f2ac',1,'PolarSplineFEMPoissonLikeSolver']]], + ['were_20not_20cloned_2',['Q: I cloned the repository but the submodules were not cloned',['../docs_Using_git.html#autotoc_md19',1,'']]], + ['what_20is_20the_20difference_20between_20debug_20and_20release_20mode_3',['What is the difference between Debug and Release mode?',['../docs_developer_FAQ.html#docs_developer_FAQ__What_is_the_difference_between_Debug_and_Release_mode',1,'']]], + ['with_20a_20given_20advection_20field_4',['1D advection with a given advection field',['../src_advection.html#src_advection__1D_advection_with_a_given_advection_field',1,'']]], + ['with_20gyselalib_5',['Getting Started with Gyselalib++',['../docs_getting_started.html',1,'']]], + ['within_20its_20class_6',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]] ]; diff --git a/search/all_5.js b/search/all_5.js index 21b264f7c..4db042858 100644 --- a/search/all_5.js +++ b/search/all_5.js @@ -32,9 +32,9 @@ var searchData= ['bsladvectionspatial_29',['bsladvectionspatial',['../classBslAdvectionSpatial.html',1,'BslAdvectionSpatial< Geometry, GridX >'],['../classBslAdvectionSpatial.html#a6ee34fd8becaaf459692d47d6f59568d',1,'BslAdvectionSpatial::BslAdvectionSpatial()']]], ['bsladvectionspatial_20and_20bsladvectionvelocity_30',['Same test cases as for BslAdvectionSpatial and BslAdvectionVelocity',['../tests_advection.html#autotoc_md84',1,'']]], ['bsladvectionvelocity_31',['bsladvectionvelocity',['../classBslAdvectionVelocity.html',1,'BslAdvectionVelocity< Geometry, GridV >'],['../classBslAdvectionVelocity.html#a85c69c265dbb2410fdd60f7b78117593',1,'BslAdvectionVelocity::BslAdvectionVelocity()'],['../tests_advection.html#autotoc_md84',1,'Same test cases as for BslAdvectionSpatial and BslAdvectionVelocity']]], - ['bslexplicitpredcorrrtheta_32',['bslexplicitpredcorrrtheta',['../classBslExplicitPredCorrRTheta.html#a06242b4dc42f0275ebd48935a822a41e',1,'BslExplicitPredCorrRTheta::BslExplicitPredCorrRTheta()'],['../classBslExplicitPredCorrRTheta.html',1,'BslExplicitPredCorrRTheta< Mapping, AdvectionDomain >']]], - ['bslimplicitpredcorrrtheta_33',['bslimplicitpredcorrrtheta',['../classBslImplicitPredCorrRTheta.html#a6bd04e7ccba156c98c4516ae0a3a3cae',1,'BslImplicitPredCorrRTheta::BslImplicitPredCorrRTheta()'],['../classBslImplicitPredCorrRTheta.html',1,'BslImplicitPredCorrRTheta< Mapping, AdvectionDomain >']]], - ['bslpredcorrrtheta_34',['bslpredcorrrtheta',['../classBslPredCorrRTheta.html',1,'BslPredCorrRTheta< Mapping, FootFinder >'],['../classBslPredCorrRTheta.html#a82df60ba134e54e107c105544ef15763',1,'BslPredCorrRTheta::BslPredCorrRTheta()']]], + ['bslexplicitpredcorrrtheta_32',['bslexplicitpredcorrrtheta',['../classBslExplicitPredCorrRTheta.html#af3274e5a2342ff8b6446622d48cd4ecf',1,'BslExplicitPredCorrRTheta::BslExplicitPredCorrRTheta()'],['../classBslExplicitPredCorrRTheta.html',1,'BslExplicitPredCorrRTheta< Mapping, AdvectionDomain >']]], + ['bslimplicitpredcorrrtheta_33',['bslimplicitpredcorrrtheta',['../classBslImplicitPredCorrRTheta.html#a27731f9a9c3e076aca10206bb0bfd3ba',1,'BslImplicitPredCorrRTheta::BslImplicitPredCorrRTheta()'],['../classBslImplicitPredCorrRTheta.html',1,'BslImplicitPredCorrRTheta< Mapping, AdvectionDomain >']]], + ['bslpredcorrrtheta_34',['bslpredcorrrtheta',['../classBslPredCorrRTheta.html',1,'BslPredCorrRTheta< Mapping, FootFinder >'],['../classBslPredCorrRTheta.html#ac5a6457ec7d54f8fbb926aca93a55069',1,'BslPredCorrRTheta::BslPredCorrRTheta()']]], ['bspliner_35',['BSplineR',['../classDiscreteToCartesian.html#a77815368f1e5e77222cf4a66b3589c2e',1,'DiscreteToCartesian']]], ['bsplines1_36',['BSplines1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#abf58b838d30e05fa91d71feec6dde132',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], ['bsplines2_37',['BSplines2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a79f96be697217aefd52077b6449f47b2',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], diff --git a/search/all_6.js b/search/all_6.js index 3aa60d0bc..e3046fd5c 100644 --- a/search/all_6.js +++ b/search/all_6.js @@ -76,46 +76,49 @@ var searchData= ['compute_5fcoeff_5fad_73',['compute_coeff_AD',['../classCollisionInfoRadial.html#a7894972e43a80d903597cd5e05092825',1,'CollisionInfoRadial']]], ['compute_5fcoeffs_5fon_5fmapping_74',['compute_coeffs_on_mapping',['../volume__quadrature__nd_8hpp.html#a606ed8438555c5104a22658ba68f32ae',1,'volume_quadrature_nd.hpp']]], ['compute_5fmatrix_5fcoeff_75',['compute_matrix_coeff',['../classCollisionsIntra.html#aa3c59137d3bc0e30d7ca9b413039b050',1,'CollisionsIntra']]], - ['compute_5fmaxwellian_76',['compute_maxwellian',['../classMaxwellianEquilibrium.html#a0dd190b10d5776e496d826ae26f2be16',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVparMu const fMaxwellian, double const mass, double const density, double const temperature, double const mean_velocity, double const magnetic_field)'],['../classMaxwellianEquilibrium.html#ad36cc8fa4fd55e3db9aa9e04bb45e36a',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVx const fMaxwellian, double const density, double const temperature, double const mean_velocity)'],['../classMaxwellianEquilibrium.html#aa483c442400af8b6eb3b887a9945315a',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVxVy const fMaxwellian, double const density, double const temperature, double const mean_velocity)']]], - ['compute_5frhs_5fvector_77',['compute_rhs_vector',['../classCollisionsIntra.html#a21406b811ef83d4f90a80c0139ddb5de',1,'CollisionsIntra']]], - ['compute_5ftwomaxwellian_78',['compute_twomaxwellian',['../classBumpontailEquilibrium.html#aacc82cfd448632f072b0e536c93ea668',1,'BumpontailEquilibrium']]], - ['concepts_79',['Indexing and associated concepts',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Indexing_and_associated_concepts',1,'']]], - ['concerns_80',['Memory concerns',['../src_interpolation.html#src_interpolation__Memory_concerns',1,'']]], - ['conformity_20of_20the_20meshes_81',['Conformity of the meshes',['../src_multipatch_connectivity.html#autotoc_md75',1,'']]], - ['connected_5fto_5fpatch_82',['connected_to_patch',['../structInterface.html#ae0bdd297037fb4c4415bc7f9a3ca9fff',1,'Interface']]], - ['connectivity_83',['Multipatch connectivity',['../src_multipatch_connectivity.html',1,'src_multipatch']]], - ['const_5ffield_5ftype_84',['const_field_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#af39085e61fa32cc40b8f2c307df46c51',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::const_field_type'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#a1ba928089033949f1a0843dc2851a6d9',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::const_field_type']]], - ['constantextrapolationruleonion_85',['constantextrapolationruleonion',['../structConstantExtrapolationRuleOnion.html#af9e46e05ba3bc87e5df2f8d1f7a6393d',1,'ConstantExtrapolationRuleOnion::ConstantExtrapolationRuleOnion()'],['../structConstantExtrapolationRuleOnion.html',1,'ConstantExtrapolationRuleOnion< PatchLocator >']]], - ['contains_86',['contains',['../classIdxRangeSlice.html#af94edc7f3cecfc5b987d37f7929b719f',1,'IdxRangeSlice::contains(IdxRange< DDims... > idx_range) const'],['../classIdxRangeSlice.html#aa1cc7ec0912e5195f762b6176b2aa085',1,'IdxRangeSlice::contains(Idx< DDims... > elem) const']]], - ['contents_87',['contents',['../simulations_geometryRTheta_vortex_merger.html#simulations_geometryRTheta_vortex_merger__Contents',1,'Contents'],['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Contents',1,'Contents'],['../tests_geometryRTheta_polar_poisson.html#tests_geometryRTheta_polar_poisson__Contents',1,'Contents'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Contents',1,'Contents'],['../tests_advection.html#tests_advection__Contents',1,'Contents'],['../src_multipatch_spline.html#src_multipatch_spline__Contents',1,'Contents'],['../src_multipatch_connectivity.html#src_multipatch_connectivity__Contents',1,'Contents'],['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Contents',1,'Contents'],['../src_geometryRTheta_poisson.html#src_geometryRTheta_poisson__Contents',1,'Contents'],['../simulations_geometryRTheta_diocotron.html#simulations_geometryRTheta_diocotron__Contents',1,'Contents'],['../src_geometryRTheta_initialization.html#src_geometryRTheta_initialization__Contents',1,'Contents'],['../src_geometryRTheta_advection_field.html#autotoc_md59',1,'Contents'],['../src_geometryRTheta_advection.html#autotoc_md53',1,'Contents'],['../simulations_geometryXY_guiding_center.html#simulations_geometryXY_guiding_center__Contents',1,'Contents'],['../src.html',1,'Gyselalib++ contents']]], - ['continuity_88',['continuity',['../classPolarBSplines.html#ae4895a87f3e1ed953614a3546c319762',1,'PolarBSplines::continuity'],['../classPolarSplineEvaluator.html#aff3a579842265d1c1573d5017d4386b0',1,'PolarSplineEvaluator::continuity']]], - ['continuous_20vs_20discrete_20objects_89',['Continuous vs. discrete objects',['../docs_DDC_in_gyselalibxx.html#autotoc_md16',1,'']]], - ['continuous_5fdimension_5ftype1_90',['continuous_dimension_type1',['../classMultipatchSplineEvaluator2D.html#aca629c0ba3055e9c2ea60c1e6fc63718',1,'MultipatchSplineEvaluator2D']]], - ['continuous_5fdimension_5ftype2_91',['continuous_dimension_type2',['../classMultipatchSplineEvaluator2D.html#a017bd9abfdec7c21a53cb3c45ed7eae6',1,'MultipatchSplineEvaluator2D']]], - ['control_5fpoint_92',['control_point',['../classDiscreteToCartesian.html#abca1c36c8c422aba25af218dac17f56e',1,'DiscreteToCartesian']]], - ['coord1_93',['Coord1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af003e5287ebd73f5b10b2d4f5b96a036',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['coord12_94',['Coord12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a94c9cc839f7a8bc54781f92e57808474',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['coord2_95',['Coord2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#aed38b340e11a628505083d8ccace02a2',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['coordarg_96',['coordarg',['../classCzarnyToCartesian.html#a06f5c1674122814b20685b878e20bb0b',1,'CzarnyToCartesian::CoordArg'],['../classCombinedMapping.html#a967567a14f47ca5d71be6aab594b1f14',1,'CombinedMapping::CoordArg'],['../classCircularToCartesian.html#a10590c88cadb0c1698d92aa6dbf79099',1,'CircularToCartesian::CoordArg'],['../classCartesianToCzarny.html#ae44fdbb40d9c54e2fec2c85b6f8d3c7c',1,'CartesianToCzarny::CoordArg'],['../classBarycentricToCartesian.html#a46c468d35cbff57bd23bc068186cdde0',1,'BarycentricToCartesian::CoordArg'],['../classCartesianToBarycentric.html#a61d610f54349c95afec59eb8d8bf4bb8',1,'CartesianToBarycentric::CoordArg'],['../classCartesianToCircular.html#a9e82a4a3ba180118f89eecd44945c00c',1,'CartesianToCircular::CoordArg'],['../classDiscreteToCartesian.html#ad59cf6c437f00c984b321d88c0c08d46',1,'DiscreteToCartesian::CoordArg']]], - ['coordinate_20transformation_97',['Sticking and Coordinate Transformation',['../src_multipatch_connectivity.html#autotoc_md73',1,'']]], - ['coordinate_5fconverter_5ftype_98',['coordinate_converter_type',['../classPoissonSolution.html#a6451537e7ef15aa643718b9fec5c998c',1,'PoissonSolution']]], - ['coordinates_99',['coordinates',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Coordinates',1,'Coordinates'],['../src_geometryRTheta_interpolation.html',1,'Spline interpolator in polar coordinates'],['../tests_geometryRTheta_2d_spline_interpolator.html',1,'Tests on spline interpolator in polar coordinates']]], - ['coordinates_20system_100',['General coordinates system',['../src_geometryRTheta_advection_field.html#autotoc_md56',1,'']]], - ['coordjacobian_101',['CoordJacobian',['../classCombinedMapping.html#adb0b420bad29ecc3a1fcec5252421d6d',1,'CombinedMapping']]], - ['coordresult_102',['coordresult',['../classBarycentricToCartesian.html#af8ae3dd79e93464da26e88fd9a7c9606',1,'BarycentricToCartesian::CoordResult'],['../classCartesianToBarycentric.html#a376f1cef52b04261b1a77d0895bcaff3',1,'CartesianToBarycentric::CoordResult'],['../classDiscreteToCartesian.html#a6c48f05ea7569f0b211927c4eff9b3c8',1,'DiscreteToCartesian::CoordResult'],['../classCzarnyToCartesian.html#a2eb5d3c8e9d4453bee32cb7e0b15dfd9',1,'CzarnyToCartesian::CoordResult'],['../classCartesianToCircular.html#a58343580d61674a4f0532bda5b960859',1,'CartesianToCircular::CoordResult'],['../classCartesianToCzarny.html#aaa627aa1879ea7ad2667d4085227231c',1,'CartesianToCzarny::CoordResult'],['../classCircularToCartesian.html#a49a1f001259ff7e801cf3e67caf7d1f0',1,'CircularToCartesian::CoordResult'],['../classCombinedMapping.html#a72884aba7cc176b42af7cfd3053cbe4d',1,'CombinedMapping::CoordResult']]], - ['coordxy_5fadv_103',['CoordXY_adv',['../classAdvectionDomain.html#ab09e95979aa3d15ef615b7852b68a307',1,'AdvectionDomain']]], - ['copy_104',['copy',['../classITimeStepper.html#ac976ff8bc85dbfed9f7b378f69bd52b4',1,'ITimeStepper']]], - ['corner1tag_105',['Corner1Tag',['../classPolarBSplines_1_1Impl.html#structPolarBSplines_1_1Impl_1_1Corner1Tag',1,'PolarBSplines::Impl']]], - ['corner2tag_106',['Corner2Tag',['../classPolarBSplines_1_1Impl.html#structPolarBSplines_1_1Impl_1_1Corner2Tag',1,'PolarBSplines::Impl']]], - ['corner3tag_107',['Corner3Tag',['../classPolarBSplines_1_1Impl.html#structPolarBSplines_1_1Impl_1_1Corner3Tag',1,'PolarBSplines::Impl']]], - ['corrector_108',['corrector',['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Explicit_predictor-corrector',1,'Explicit predictor-corrector'],['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Implicit_predictor-corrector',1,'Implicit predictor-corrector'],['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Predictor-corrector',1,'Predictor-corrector'],['../simulations_geometryRTheta_diocotron.html#autotoc_md30',1,'Predictor-corrector']]], - ['corrector_20based_20on_20rk2_109',['Predictor-corrector based on RK2',['../src_geometryXY_time_integration.html#src_geometryXY_time_integration__Predictor-corrector_based_on_RK2',1,'']]], - ['corrector_20methods_110',['corrector methods',['../src_geometryRTheta_time_solver.html',1,'Predictor-corrector methods'],['../src_geometryXY_time_integration.html',1,'Predictor-corrector methods']]], - ['crank_20nicolson_20method_111',['Crank-Nicolson method',['../src_geometryRTheta_advection.html#autotoc_md48',1,'']]], - ['cranknicolson_112',['cranknicolson',['../classCrankNicolson.html#acee28614e8739edfb476a51aa7c2fe91',1,'CrankNicolson::CrankNicolson()'],['../classCrankNicolson.html',1,'CrankNicolson< FieldMem, DerivFieldMem, ExecSpace >']]], - ['curvilinear_5ftag_5fr_113',['curvilinear_tag_r',['../classCzarnyToCartesian.html#ade4b789de130ce79e60c7b35f0551b63',1,'CzarnyToCartesian::curvilinear_tag_r'],['../classDiscreteToCartesian.html#aec413130c64ea6b59a0c177566eb9d7e',1,'DiscreteToCartesian::curvilinear_tag_r'],['../classCircularToCartesian.html#a85920bf056d72b2afd47bbf270fc3ab7',1,'CircularToCartesian::curvilinear_tag_r'],['../classCartesianToCzarny.html#a15d0c470e0c1db4816e1709a8ccdc511',1,'CartesianToCzarny::curvilinear_tag_r'],['../classCartesianToCircular.html#a97b27a4e4e766216d76ce150a2903345',1,'CartesianToCircular::curvilinear_tag_r']]], - ['curvilinear_5ftag_5ftheta_114',['curvilinear_tag_theta',['../classCartesianToCircular.html#a22c0b5fa2d5952f5bd9e9db9045226e9',1,'CartesianToCircular::curvilinear_tag_theta'],['../classCartesianToCzarny.html#adcbf32a27b9e869788c88c6268c57731',1,'CartesianToCzarny::curvilinear_tag_theta'],['../classCircularToCartesian.html#ad391094efa9fde76191826ee2bf7fdd7',1,'CircularToCartesian::curvilinear_tag_theta'],['../classCzarnyToCartesian.html#a293ee4cfdbbb0349873c5a8494536dd8',1,'CzarnyToCartesian::curvilinear_tag_theta'],['../classDiscreteToCartesian.html#a44d272af350574b3d72f696e38f2159d',1,'DiscreteToCartesian::curvilinear_tag_theta']]], - ['curvilinearsolution_115',['curvilinearsolution',['../classCurvilinearSolution.html',1,'CurvilinearSolution< CurvilinearToCartesian >'],['../classCurvilinearSolution.html#a9675511665b712671f19b17b74749763',1,'CurvilinearSolution::CurvilinearSolution()']]], - ['curvilineartocartesian_116',['CurvilinearToCartesian',['../classManufacturedPoissonTest.html#a7349fe81c3343867df59d8e72a110736',1,'ManufacturedPoissonTest']]], - ['czarnytocartesian_117',['czarnytocartesian',['../classCzarnyToCartesian.html#ae821b68a527f54c5da9aabfa2a5b6995',1,'CzarnyToCartesian::CzarnyToCartesian(CzarnyToCartesian const &other)'],['../classCzarnyToCartesian.html#ac86693dda1f089062598e4bb31fb67b5',1,'CzarnyToCartesian::CzarnyToCartesian(double epsilon, double e)'],['../classCzarnyToCartesian.html',1,'CzarnyToCartesian< R, Theta, X, Y >'],['../classCzarnyToCartesian.html#ad999ca35e162f88c5e84a11afeb18301',1,'CzarnyToCartesian::CzarnyToCartesian()']]] + ['compute_5fmaxwellian_76',['compute_maxwellian',['../classMaxwellianEquilibrium.html#aa483c442400af8b6eb3b887a9945315a',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVxVy const fMaxwellian, double const density, double const temperature, double const mean_velocity)'],['../classMaxwellianEquilibrium.html#ad36cc8fa4fd55e3db9aa9e04bb45e36a',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVx const fMaxwellian, double const density, double const temperature, double const mean_velocity)'],['../classMaxwellianEquilibrium.html#a0dd190b10d5776e496d826ae26f2be16',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVparMu const fMaxwellian, double const mass, double const density, double const temperature, double const mean_velocity, double const magnetic_field)']]], + ['compute_5foverlapping_5fsingular_5felements_77',['compute_overlapping_singular_elements',['../classPolarSplineFEMPoissonLikeSolver.html#a36be84f08a082b52a73f5134b8f1a8e2',1,'PolarSplineFEMPoissonLikeSolver']]], + ['compute_5frhs_5fvector_78',['compute_rhs_vector',['../classCollisionsIntra.html#a21406b811ef83d4f90a80c0139ddb5de',1,'CollisionsIntra']]], + ['compute_5fsingular_5felements_79',['compute_singular_elements',['../classPolarSplineFEMPoissonLikeSolver.html#ae5645f014d26559165955e51746f3e70',1,'PolarSplineFEMPoissonLikeSolver']]], + ['compute_5fstencil_5felements_80',['compute_stencil_elements',['../classPolarSplineFEMPoissonLikeSolver.html#a161e772a03b980ad5cb19bdeb6b02925',1,'PolarSplineFEMPoissonLikeSolver']]], + ['compute_5ftwomaxwellian_81',['compute_twomaxwellian',['../classBumpontailEquilibrium.html#aacc82cfd448632f072b0e536c93ea668',1,'BumpontailEquilibrium']]], + ['concepts_82',['Indexing and associated concepts',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Indexing_and_associated_concepts',1,'']]], + ['concerns_83',['Memory concerns',['../src_interpolation.html#src_interpolation__Memory_concerns',1,'']]], + ['conformity_20of_20the_20meshes_84',['Conformity of the meshes',['../src_multipatch_connectivity.html#autotoc_md75',1,'']]], + ['connected_5fto_5fpatch_85',['connected_to_patch',['../structInterface.html#ae0bdd297037fb4c4415bc7f9a3ca9fff',1,'Interface']]], + ['connectivity_86',['Multipatch connectivity',['../src_multipatch_connectivity.html',1,'src_multipatch']]], + ['const_5ffield_5ftype_87',['const_field_type',['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#a1ba928089033949f1a0843dc2851a6d9',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::const_field_type'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#af39085e61fa32cc40b8f2c307df46c51',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::const_field_type']]], + ['constantextrapolationruleonion_88',['constantextrapolationruleonion',['../structConstantExtrapolationRuleOnion.html',1,'ConstantExtrapolationRuleOnion< PatchLocator >'],['../structConstantExtrapolationRuleOnion.html#af9e46e05ba3bc87e5df2f8d1f7a6393d',1,'ConstantExtrapolationRuleOnion::ConstantExtrapolationRuleOnion()']]], + ['contains_89',['contains',['../classIdxRangeSlice.html#af94edc7f3cecfc5b987d37f7929b719f',1,'IdxRangeSlice::contains(IdxRange< DDims... > idx_range) const'],['../classIdxRangeSlice.html#aa1cc7ec0912e5195f762b6176b2aa085',1,'IdxRangeSlice::contains(Idx< DDims... > elem) const']]], + ['contents_90',['contents',['../src_geometryRTheta_advection.html#autotoc_md53',1,'Contents'],['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Contents',1,'Contents'],['../tests_geometryRTheta_polar_poisson.html#tests_geometryRTheta_polar_poisson__Contents',1,'Contents'],['../tests_geometryRTheta_advection_2d_rp.html#tests_geometryRTheta_advection_2d_rp__Contents',1,'Contents'],['../tests_advection.html#tests_advection__Contents',1,'Contents'],['../src_multipatch_spline.html#src_multipatch_spline__Contents',1,'Contents'],['../src_multipatch_connectivity.html#src_multipatch_connectivity__Contents',1,'Contents'],['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Contents',1,'Contents'],['../simulations_geometryRTheta_diocotron.html#simulations_geometryRTheta_diocotron__Contents',1,'Contents'],['../src_geometryRTheta_poisson.html#src_geometryRTheta_poisson__Contents',1,'Contents'],['../src_geometryRTheta_initialization.html#src_geometryRTheta_initialization__Contents',1,'Contents'],['../src_geometryRTheta_advection_field.html#autotoc_md59',1,'Contents'],['../simulations_geometryRTheta_vortex_merger.html#simulations_geometryRTheta_vortex_merger__Contents',1,'Contents'],['../simulations_geometryXY_guiding_center.html#simulations_geometryXY_guiding_center__Contents',1,'Contents'],['../src.html',1,'Gyselalib++ contents']]], + ['continuity_91',['continuity',['../classPolarSplineEvaluator.html#aff3a579842265d1c1573d5017d4386b0',1,'PolarSplineEvaluator::continuity'],['../classPolarBSplines.html#ae4895a87f3e1ed953614a3546c319762',1,'PolarBSplines::continuity']]], + ['continuous_20vs_20discrete_20objects_92',['Continuous vs. discrete objects',['../docs_DDC_in_gyselalibxx.html#autotoc_md16',1,'']]], + ['continuous_5fdimension_5ftype1_93',['continuous_dimension_type1',['../classMultipatchSplineEvaluator2D.html#aca629c0ba3055e9c2ea60c1e6fc63718',1,'MultipatchSplineEvaluator2D']]], + ['continuous_5fdimension_5ftype2_94',['continuous_dimension_type2',['../classMultipatchSplineEvaluator2D.html#a017bd9abfdec7c21a53cb3c45ed7eae6',1,'MultipatchSplineEvaluator2D']]], + ['control_5fpoint_95',['control_point',['../classDiscreteToCartesian.html#abca1c36c8c422aba25af218dac17f56e',1,'DiscreteToCartesian']]], + ['coord1_96',['Coord1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af003e5287ebd73f5b10b2d4f5b96a036',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['coord12_97',['Coord12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a94c9cc839f7a8bc54781f92e57808474',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['coord2_98',['Coord2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#aed38b340e11a628505083d8ccace02a2',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['coordarg_99',['coordarg',['../classCzarnyToCartesian.html#a06f5c1674122814b20685b878e20bb0b',1,'CzarnyToCartesian::CoordArg'],['../classDiscreteToCartesian.html#ad59cf6c437f00c984b321d88c0c08d46',1,'DiscreteToCartesian::CoordArg'],['../classCircularToCartesian.html#a10590c88cadb0c1698d92aa6dbf79099',1,'CircularToCartesian::CoordArg'],['../classCartesianToCzarny.html#ae44fdbb40d9c54e2fec2c85b6f8d3c7c',1,'CartesianToCzarny::CoordArg'],['../classCartesianToCircular.html#a9e82a4a3ba180118f89eecd44945c00c',1,'CartesianToCircular::CoordArg'],['../classCartesianToBarycentric.html#a61d610f54349c95afec59eb8d8bf4bb8',1,'CartesianToBarycentric::CoordArg'],['../classCombinedMapping.html#a967567a14f47ca5d71be6aab594b1f14',1,'CombinedMapping::CoordArg'],['../classBarycentricToCartesian.html#a46c468d35cbff57bd23bc068186cdde0',1,'BarycentricToCartesian::CoordArg']]], + ['coordinate_20transformation_100',['Sticking and Coordinate Transformation',['../src_multipatch_connectivity.html#autotoc_md73',1,'']]], + ['coordinate_5fconverter_5ftype_101',['coordinate_converter_type',['../classPoissonSolution.html#a6451537e7ef15aa643718b9fec5c998c',1,'PoissonSolution']]], + ['coordinates_102',['coordinates',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Coordinates',1,'Coordinates'],['../src_geometryRTheta_interpolation.html',1,'Spline interpolator in polar coordinates'],['../tests_geometryRTheta_2d_spline_interpolator.html',1,'Tests on spline interpolator in polar coordinates']]], + ['coordinates_20system_103',['General coordinates system',['../src_geometryRTheta_advection_field.html#autotoc_md56',1,'']]], + ['coordjacobian_104',['CoordJacobian',['../classCombinedMapping.html#adb0b420bad29ecc3a1fcec5252421d6d',1,'CombinedMapping']]], + ['coordresult_105',['coordresult',['../classDiscreteToCartesian.html#a6c48f05ea7569f0b211927c4eff9b3c8',1,'DiscreteToCartesian::CoordResult'],['../classCzarnyToCartesian.html#a2eb5d3c8e9d4453bee32cb7e0b15dfd9',1,'CzarnyToCartesian::CoordResult'],['../classCombinedMapping.html#a72884aba7cc176b42af7cfd3053cbe4d',1,'CombinedMapping::CoordResult'],['../classCircularToCartesian.html#a49a1f001259ff7e801cf3e67caf7d1f0',1,'CircularToCartesian::CoordResult'],['../classCartesianToCzarny.html#aaa627aa1879ea7ad2667d4085227231c',1,'CartesianToCzarny::CoordResult'],['../classCartesianToCircular.html#a58343580d61674a4f0532bda5b960859',1,'CartesianToCircular::CoordResult'],['../classCartesianToBarycentric.html#a376f1cef52b04261b1a77d0895bcaff3',1,'CartesianToBarycentric::CoordResult'],['../classBarycentricToCartesian.html#af8ae3dd79e93464da26e88fd9a7c9606',1,'BarycentricToCartesian::CoordResult']]], + ['coordxy_5fadv_106',['CoordXY_adv',['../classAdvectionDomain.html#ab09e95979aa3d15ef615b7852b68a307',1,'AdvectionDomain']]], + ['copy_107',['copy',['../classITimeStepper.html#ac976ff8bc85dbfed9f7b378f69bd52b4',1,'ITimeStepper']]], + ['corner1tag_108',['Corner1Tag',['../classPolarBSplines_1_1Impl.html#structPolarBSplines_1_1Impl_1_1Corner1Tag',1,'PolarBSplines::Impl']]], + ['corner2tag_109',['Corner2Tag',['../classPolarBSplines_1_1Impl.html#structPolarBSplines_1_1Impl_1_1Corner2Tag',1,'PolarBSplines::Impl']]], + ['corner3tag_110',['Corner3Tag',['../classPolarBSplines_1_1Impl.html#structPolarBSplines_1_1Impl_1_1Corner3Tag',1,'PolarBSplines::Impl']]], + ['corrector_111',['corrector',['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Explicit_predictor-corrector',1,'Explicit predictor-corrector'],['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Implicit_predictor-corrector',1,'Implicit predictor-corrector'],['../simulations_geometryRTheta_diocotron.html#autotoc_md30',1,'Predictor-corrector'],['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Predictor-corrector',1,'Predictor-corrector']]], + ['corrector_20based_20on_20rk2_112',['Predictor-corrector based on RK2',['../src_geometryXY_time_integration.html#src_geometryXY_time_integration__Predictor-corrector_based_on_RK2',1,'']]], + ['corrector_20methods_113',['corrector methods',['../src_geometryXY_time_integration.html',1,'Predictor-corrector methods'],['../src_geometryRTheta_time_solver.html',1,'Predictor-corrector methods']]], + ['crank_20nicolson_20method_114',['Crank-Nicolson method',['../src_geometryRTheta_advection.html#autotoc_md48',1,'']]], + ['cranknicolson_115',['cranknicolson',['../classCrankNicolson.html',1,'CrankNicolson< FieldMem, DerivFieldMem, ExecSpace >'],['../classCrankNicolson.html#acee28614e8739edfb476a51aa7c2fe91',1,'CrankNicolson::CrankNicolson()']]], + ['curvilinear_5ftag_5fr_116',['curvilinear_tag_r',['../classCartesianToCircular.html#a97b27a4e4e766216d76ce150a2903345',1,'CartesianToCircular::curvilinear_tag_r'],['../classCartesianToCzarny.html#a15d0c470e0c1db4816e1709a8ccdc511',1,'CartesianToCzarny::curvilinear_tag_r'],['../classCircularToCartesian.html#a85920bf056d72b2afd47bbf270fc3ab7',1,'CircularToCartesian::curvilinear_tag_r'],['../classCzarnyToCartesian.html#ade4b789de130ce79e60c7b35f0551b63',1,'CzarnyToCartesian::curvilinear_tag_r'],['../classDiscreteToCartesian.html#aec413130c64ea6b59a0c177566eb9d7e',1,'DiscreteToCartesian::curvilinear_tag_r']]], + ['curvilinear_5ftag_5ftheta_117',['curvilinear_tag_theta',['../classCartesianToCzarny.html#adcbf32a27b9e869788c88c6268c57731',1,'CartesianToCzarny::curvilinear_tag_theta'],['../classDiscreteToCartesian.html#a44d272af350574b3d72f696e38f2159d',1,'DiscreteToCartesian::curvilinear_tag_theta'],['../classCzarnyToCartesian.html#a293ee4cfdbbb0349873c5a8494536dd8',1,'CzarnyToCartesian::curvilinear_tag_theta'],['../classCircularToCartesian.html#ad391094efa9fde76191826ee2bf7fdd7',1,'CircularToCartesian::curvilinear_tag_theta'],['../classCartesianToCircular.html#a22c0b5fa2d5952f5bd9e9db9045226e9',1,'CartesianToCircular::curvilinear_tag_theta']]], + ['curvilinearsolution_118',['curvilinearsolution',['../classCurvilinearSolution.html',1,'CurvilinearSolution< CurvilinearToCartesian >'],['../classCurvilinearSolution.html#a9675511665b712671f19b17b74749763',1,'CurvilinearSolution::CurvilinearSolution()']]], + ['curvilineartocartesian_119',['CurvilinearToCartesian',['../classManufacturedPoissonTest.html#a7349fe81c3343867df59d8e72a110736',1,'ManufacturedPoissonTest']]], + ['czarnytocartesian_120',['czarnytocartesian',['../classCzarnyToCartesian.html#ac86693dda1f089062598e4bb31fb67b5',1,'CzarnyToCartesian::CzarnyToCartesian(double epsilon, double e)'],['../classCzarnyToCartesian.html#ae821b68a527f54c5da9aabfa2a5b6995',1,'CzarnyToCartesian::CzarnyToCartesian(CzarnyToCartesian const &other)'],['../classCzarnyToCartesian.html#ad999ca35e162f88c5e84a11afeb18301',1,'CzarnyToCartesian::CzarnyToCartesian(CzarnyToCartesian &&x)=default'],['../classCzarnyToCartesian.html',1,'CzarnyToCartesian< R, Theta, X, Y >']]] ]; diff --git a/search/all_8.js b/search/all_8.js index 135a531ce..cfd7e07ff 100644 --- a/search/all_8.js +++ b/search/all_8.js @@ -8,9 +8,9 @@ var searchData= ['edgetransformation_5',['edgetransformation',['../classEdgeTransformation.html',1,'EdgeTransformation< Interface >'],['../classEdgeTransformation.html#a11c84fec5577a58b0addfd13bd744117',1,'EdgeTransformation::EdgeTransformation()']]], ['electrostaticalpotentialsimulation_6',['ElectrostaticalPotentialSimulation',['../classElectrostaticalPotentialSimulation.html',1,'']]], ['electrostaticalpotentialsimulation_5fdecentred_5frotation_7',['electrostaticalpotentialsimulation_decentred_rotation',['../classElectrostaticalPotentialSimulation__decentred__rotation.html',1,'ElectrostaticalPotentialSimulation_decentred_rotation'],['../classElectrostaticalPotentialSimulation__decentred__rotation.html#a6a741279515929335be52f35905b3445',1,'ElectrostaticalPotentialSimulation_decentred_rotation::ElectrostaticalPotentialSimulation_decentred_rotation()']]], - ['electrostaticalpotentialsimulation_5frotation_8',['electrostaticalpotentialsimulation_rotation',['../classElectrostaticalPotentialSimulation__rotation.html#a8c4dd29051c85c7365ff291f8f3f58fb',1,'ElectrostaticalPotentialSimulation_rotation::ElectrostaticalPotentialSimulation_rotation()'],['../classElectrostaticalPotentialSimulation__rotation.html',1,'ElectrostaticalPotentialSimulation_rotation']]], - ['electrostaticalpotentialsimulation_5ftranslation_9',['electrostaticalpotentialsimulation_translation',['../classElectrostaticalPotentialSimulation__translation.html#aed3279c83ba2704c2f5e52da4cc7bf64',1,'ElectrostaticalPotentialSimulation_translation::ElectrostaticalPotentialSimulation_translation()'],['../classElectrostaticalPotentialSimulation__translation.html',1,'ElectrostaticalPotentialSimulation_translation']]], - ['element_5ftype_10',['element_type',['../classMultipatchFieldMem.html#a841face1ddf0be7541b620046ab3fd93',1,'MultipatchFieldMem::element_type'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a11cfbe470116c190df197c7ded0ac20b',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::element_type'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a8df83185147fa5fdbcf1d54fbbb734a2',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::element_type'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#a3857065aca7a7e4d911f2b5eee499c69',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::element_type'],['../classVectorField.html#a3218822ab1d75e77caa2e0b1cb0d39c8',1,'VectorField::element_type'],['../classMultipatchField.html#a22720108209413ba6d27300ed253adf6',1,'MultipatchField::element_type']]], + ['electrostaticalpotentialsimulation_5frotation_8',['electrostaticalpotentialsimulation_rotation',['../classElectrostaticalPotentialSimulation__rotation.html',1,'ElectrostaticalPotentialSimulation_rotation'],['../classElectrostaticalPotentialSimulation__rotation.html#a8c4dd29051c85c7365ff291f8f3f58fb',1,'ElectrostaticalPotentialSimulation_rotation::ElectrostaticalPotentialSimulation_rotation()']]], + ['electrostaticalpotentialsimulation_5ftranslation_9',['electrostaticalpotentialsimulation_translation',['../classElectrostaticalPotentialSimulation__translation.html',1,'ElectrostaticalPotentialSimulation_translation'],['../classElectrostaticalPotentialSimulation__translation.html#aed3279c83ba2704c2f5e52da4cc7bf64',1,'ElectrostaticalPotentialSimulation_translation::ElectrostaticalPotentialSimulation_translation()']]], + ['element_5ftype_10',['element_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a8df83185147fa5fdbcf1d54fbbb734a2',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::element_type'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a11cfbe470116c190df197c7ded0ac20b',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::element_type'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#a3857065aca7a7e4d911f2b5eee499c69',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::element_type'],['../classVectorField.html#a3218822ab1d75e77caa2e0b1cb0d39c8',1,'VectorField::element_type'],['../classMultipatchField.html#a22720108209413ba6d27300ed253adf6',1,'MultipatchField::element_type'],['../classMultipatchFieldMem.html#a841face1ddf0be7541b620046ab3fd93',1,'MultipatchFieldMem::element_type']]], ['enclosing_20parent_20function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_11',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], ['enclosing_20parent_20function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_12',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], ['end_13',['end',['../classIdxRangeSlice.html#a77ce2afa2b2a692ba19d2caa02dd57bb',1,'IdxRangeSlice']]], @@ -26,61 +26,63 @@ var searchData= ['equilibirum_23',['equilibirum',['../src_geometryRTheta_initialization.html#autotoc_md61',1,'Equilibirum'],['../src_geometryRTheta_initialization.html#autotoc_md63',1,'Equilibirum']]], ['equilibrium_24',['equilibrium',['../classDiocotronDensitySolution.html#a9615447cc5be0e3addf4f885660af89a',1,'DiocotronDensitySolution']]], ['error_25',['Should I use abort, assert, or static_assert to raise an error?',['../docs_developer_FAQ.html#docs_developer_FAQ__Should_I_use_abort_assert_or_static_assert_to_raise_an_error',1,'']]], - ['error_20message_26',['error message',['../docs_Common_compilation_problems.html#autotoc_md15',1,'Error Message'],['../docs_Common_compilation_problems.html#autotoc_md12',1,'Error Message'],['../docs_Common_compilation_problems.html#autotoc_md13',1,'Error Message'],['../docs_Common_compilation_problems.html#autotoc_md14',1,'Error Message']]], - ['error_5fnorm_5finf_27',['error_norm_inf',['../l__norm__tools_8hpp.html#adaecce94200353e1fc9bd3e73d9e85ca',1,'error_norm_inf(ExecSpace exec_space, ConstField< ElementType, IdxRange, typename ExecSpace::memory_space > function, ConstField< ElementType, IdxRange, typename ExecSpace::memory_space > exact_function): l_norm_tools.hpp'],['../l__norm__tools_8hpp.html#a45430c16dfe8e7235584fb194c65c164',1,'error_norm_inf(ExecSpace exec_space, VectorConstField< ElementType, IdxRange, NDTag, typename ExecSpace::memory_space > function, VectorConstField< ElementType, IdxRange, NDTag, typename ExecSpace::memory_space > exact_function): l_norm_tools.hpp']]], + ['error_20message_26',['error message',['../docs_Common_compilation_problems.html#autotoc_md15',1,'Error Message'],['../docs_Common_compilation_problems.html#autotoc_md14',1,'Error Message'],['../docs_Common_compilation_problems.html#autotoc_md13',1,'Error Message'],['../docs_Common_compilation_problems.html#autotoc_md12',1,'Error Message']]], + ['error_5fnorm_5finf_27',['error_norm_inf',['../l__norm__tools_8hpp.html#a45430c16dfe8e7235584fb194c65c164',1,'error_norm_inf(ExecSpace exec_space, VectorConstField< ElementType, IdxRange, NDTag, typename ExecSpace::memory_space > function, VectorConstField< ElementType, IdxRange, NDTag, typename ExecSpace::memory_space > exact_function): l_norm_tools.hpp'],['../l__norm__tools_8hpp.html#adaecce94200353e1fc9bd3e73d9e85ca',1,'error_norm_inf(ExecSpace exec_space, ConstField< ElementType, IdxRange, typename ExecSpace::memory_space > function, ConstField< ElementType, IdxRange, typename ExecSpace::memory_space > exact_function): l_norm_tools.hpp']]], ['error_5fnorm_5fl1_28',['error_norm_L1',['../l__norm__tools_8hpp.html#a27082a4ff6b4ad2c890a613983f6f287',1,'l_norm_tools.hpp']]], ['error_5fnorm_5fl2_29',['error_norm_L2',['../l__norm__tools_8hpp.html#a67052dc8560915ab8cf2d26716926883',1,'l_norm_tools.hpp']]], - ['euler_30',['euler',['../classEuler.html',1,'Euler< FieldMem, DerivFieldMem, ExecSpace >'],['../classEuler.html#af50845d5ab16f17f2008250aee1bacb0',1,'Euler::Euler()']]], + ['euler_30',['euler',['../classEuler.html#af50845d5ab16f17f2008250aee1bacb0',1,'Euler::Euler()'],['../classEuler.html',1,'Euler< FieldMem, DerivFieldMem, ExecSpace >']]], ['euler_20method_31',['Explicit Euler method',['../src_geometryRTheta_advection.html#autotoc_md47',1,'']]], - ['eval_5fbasis_32',['eval_basis',['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#a99752cf66c5ac4c3ec9c2c1ec85c96ae',1,'TriangularBernsteinPolynomialBasis::Impl::eval_basis()'],['../classPolarBSplines_1_1Impl.html#aca84a982ed6da7a6167cd3832f23ec97',1,'PolarBSplines::Impl::eval_basis(DSpan1D singular_values, DSpan2D values, ddc::Coordinate< DimR, DimTheta > p) const']]], + ['eval_5fbasis_32',['eval_basis',['../classPolarBSplines_1_1Impl.html#aca84a982ed6da7a6167cd3832f23ec97',1,'PolarBSplines::Impl::eval_basis()'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#a99752cf66c5ac4c3ec9c2c1ec85c96ae',1,'TriangularBernsteinPolynomialBasis::Impl::eval_basis()']]], ['eval_5fderiv_5fr_33',['eval_deriv_r',['../classPolarBSplines_1_1Impl.html#af01b6b63c807ba90698ab1458300c5ba',1,'PolarBSplines::Impl']]], ['eval_5fderiv_5fr_5fand_5ftheta_34',['eval_deriv_r_and_theta',['../classPolarBSplines_1_1Impl.html#a7216a3146fbf30c16899bd0f508a0352',1,'PolarBSplines::Impl']]], ['eval_5fderiv_5ftheta_35',['eval_deriv_theta',['../classPolarBSplines_1_1Impl.html#ae0a2a5a64a66fbf151bdb4cf90e41745',1,'PolarBSplines::Impl']]], ['eval_5fderiv_5ftype_36',['eval_deriv_type',['../classMultipatchSplineEvaluator2D.html#structMultipatchSplineEvaluator2D_1_1eval__deriv__type',1,'MultipatchSplineEvaluator2D']]], ['eval_5ftype_37',['eval_type',['../classMultipatchSplineEvaluator2D.html#structMultipatchSplineEvaluator2D_1_1eval__type',1,'MultipatchSplineEvaluator2D']]], - ['evaluate_38',['evaluate',['../classLagrange.html#a74b5dae43695245aaf9063c1dedc0523',1,'Lagrange']]], - ['evaluation_5fdiscrete_5fdimension_5ftype1_39',['evaluation_discrete_dimension_type1',['../classMultipatchSplineEvaluator2D.html#a292ea65ac876b0f331c12925773791fe',1,'MultipatchSplineEvaluator2D']]], - ['evaluation_5fdiscrete_5fdimension_5ftype2_40',['evaluation_discrete_dimension_type2',['../classMultipatchSplineEvaluator2D.html#a5f152bddb4de59d7c25fde30e538c8df',1,'MultipatchSplineEvaluator2D']]], - ['evaluation_5fidx_5frange_5ftype_41',['evaluation_idx_range_type',['../classMultipatchSplineEvaluator2D.html#aa1018dece7d47119f04db0f2359bc129',1,'MultipatchSplineEvaluator2D']]], - ['evaluation_5fidx_5frange_5ftype1_42',['evaluation_idx_range_type1',['../classMultipatchSplineEvaluator2D.html#ac15a2686cc2db98d2f76f771a800271b',1,'MultipatchSplineEvaluator2D']]], - ['evaluation_5fidx_5frange_5ftype2_43',['evaluation_idx_range_type2',['../classMultipatchSplineEvaluator2D.html#a997e1d9fd600799e618bfcab353a645d',1,'MultipatchSplineEvaluator2D']]], - ['evaluator_44',['Multipatch spline evaluator',['../src_multipatch_spline.html#src_multipatch_spline__Multipatch_spline_evaluator',1,'']]], - ['evaluator_5ftype_45',['evaluator_type',['../classSplineInterpolatorRTheta.html#abf12ff5881094af3162809f6ece1bf6e',1,'SplineInterpolatorRTheta::evaluator_type'],['../classPreallocatableSplineInterpolatorRTheta.html#a173a762a2fa1539067a687d2bc7c69b3',1,'PreallocatableSplineInterpolatorRTheta::evaluator_type'],['../classPoissonLikeRHSFunction.html#a8a5be6904f96090542b2a617dbfb7bd9',1,'PoissonLikeRHSFunction::evaluator_type']]], - ['exact_5ffeet_46',['exact_feet',['../classElectrostaticalPotentialSimulation__rotation.html#af7a04b40f9ba3220367b6b1eebaf6533',1,'ElectrostaticalPotentialSimulation_rotation::exact_feet()'],['../classElectrostaticalPotentialSimulation__translation.html#a93ab63e24d057215cc40e2cdae0fc909',1,'ElectrostaticalPotentialSimulation_translation::exact_feet()'],['../classElectrostaticalPotentialSimulation__decentred__rotation.html#a9a93124e713a5da0c81695f10d723f3d',1,'ElectrostaticalPotentialSimulation_decentred_rotation::exact_feet()'],['../classElectrostaticalPotentialSimulation.html#acf93729d91941c8db9f9b73d761f4821',1,'ElectrostaticalPotentialSimulation::exact_feet()'],['../classAdvectionField__rotation.html#a3c60e8cc5684b7c0394b42a5746bd23e',1,'AdvectionField_rotation::exact_feet()'],['../classAdvectionField__translation.html#a07f7b172dc47150da0b7c865a52dc11e',1,'AdvectionField_translation::exact_feet()'],['../classAdvectionField__decentred__rotation.html#afadcf1aa52017d707a425f1bf579700d',1,'AdvectionField_decentred_rotation::exact_feet()'],['../classAdvectionField.html#ab0c285eac8fe3ebe600c740149dbdd8c',1,'AdvectionField::exact_feet()']]], - ['example_47',['example',['../src_mpi_parallelisation.html#autotoc_md69',1,'Example'],['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Example',1,'Example'],['../docs_Adding_docs.html#autotoc_md5',1,'Example']]], - ['example_20of_20use_48',['Example of use',['../src_advection.html#autotoc_md45',1,'']]], - ['example_20of_20use_20of_20multipatchsplinebuilder_49',['Example of use of MultipatchSplineBuilder',['../src_multipatch_spline.html#autotoc_md80',1,'']]], - ['example_20use_20of_20index_20step_20for_20finite_20differences_50',['Example use of Index Step for Finite Differences',['../docs_DDC_in_gyselalibxx.html#autotoc_md17',1,'']]], - ['example_5felement_51',['example_element',['../classMultipatchType.html#afba13bfc8d2a69be4c8760228c4a8414',1,'MultipatchType']]], - ['exec_5fspace_52',['exec_space',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#ade4557ce3239a36e96a844cd2d9826c9',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >::exec_space'],['../classMultipatchSplineEvaluator2D.html#a26a762fd50c51c476042b00bb0705d5a',1,'MultipatchSplineEvaluator2D::exec_space']]], - ['executables_3a_53',['executables:',['../simulations_geometryRTheta_vortex_merger.html#autotoc_md37',1,'Executables:'],['../simulations_geometryRTheta_diocotron.html#autotoc_md32',1,'Executables:']]], - ['execution_54',['Execution',['../index.html#__Execution',1,'']]], - ['execution_20space_55',['Execution space',['../simulations_geometryXY_guiding_center.html#autotoc_md39',1,'']]], - ['explicit_20euler_20method_56',['Explicit Euler method',['../src_geometryRTheta_advection.html#autotoc_md47',1,'']]], - ['explicit_20predictor_20corrector_57',['Explicit predictor-corrector',['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Explicit_predictor-corrector',1,'']]], - ['expression_58',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], - ['extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_59',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], - ['extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_60',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], - ['extended_20lambda_20expression_61',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], - ['extended_20summary_62',['Extended summary',['../docs_Adding_docs.html#autotoc_md1',1,'']]], - ['extent_63',['extent',['../classIdxRangeSlice.html#a64ad71f7659189ff1ce4bfff4420a894',1,'IdxRangeSlice']]], - ['extents_64',['extents',['../classIdxRangeSlice.html#af6daea2b71b8e34e4b1c0a8b2a3fc95e',1,'IdxRangeSlice']]], - ['extractpatches_65',['ExtractPatches',['../structconnectivity__details_1_1ExtractPatches.html',1,'connectivity_details']]], - ['extractpatches_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_20edgetype1_2c_20edgetypes_2e_2e_2e_20_3e_20_3e_66',['ExtractPatches< ddc::detail::TypeSeq< EdgeType1, EdgeTypes... > >',['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_01EdgeTypes_8_8_8_01_4_01_4.html',1,'connectivity_details']]], - ['extractpatches_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_3e_20_3e_67',['ExtractPatches< ddc::detail::TypeSeq<> >',['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html',1,'connectivity_details']]], - ['extractrdim_68',['ExtractRDim',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim',1,'collisions_dimensions']]], - ['extractrdim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_20_3e_69',['ExtractRDim< ConstField< double, IdxRange< GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01ConstField_3_01double_00_01IdxRange_3_01GridR_01d49ad374498953b7d2b9069aa134d214',1,'collisions_dimensions']]], - ['extractrdim_3c_20double_20_3e_70',['ExtractRDim< double >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01double_01_4',1,'collisions_dimensions']]], - ['extractrdim_3c_20field_3c_20elementtype_2c_20idxrange_2c_20memspace_2c_20layout_20_3e_20_3e_71',['ExtractRDim< Field< ElementType, IdxRange, MemSpace, Layout > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01Field_3_01ElementType_00_01IdxRange_00_01MemSpace_00_01Layout_01_4_01_4',1,'collisions_dimensions']]], - ['extractrthetatags_72',['ExtractRThetaTags',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags',1,'collisions_dimensions']]], - ['extractrthetatags_3c_20dconstfield_3c_20idxrange_20_3e_20_3e_73',['ExtractRThetaTags< DConstField< IdxRange > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags_3_01DConstField_3_01IdxRange_01_4_01_4',1,'collisions_dimensions']]], - ['extractrthetatags_3c_20double_20_3e_74',['ExtractRThetaTags< double >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags_3_01double_01_4',1,'collisions_dimensions']]], - ['extractthetadim_75',['ExtractThetaDim',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim',1,'collisions_dimensions']]], - ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_76',['ExtractThetaDim< ConstField< double, IdxRange< GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grid4d06e1e2d0c2d7c6dba5eb3f62b8c1f6',1,'collisions_dimensions']]], - ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridtheta_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_77',['ExtractThetaDim< ConstField< double, IdxRange< GridTheta >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grid60b078372e4f21da53e41a7105d0e223',1,'collisions_dimensions']]], - ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridtheta_2c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_78',['ExtractThetaDim< ConstField< double, IdxRange< GridTheta, GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grida5f24db67f7287ccd8eb306d1be5d530',1,'collisions_dimensions']]], - ['extractthetadim_3c_20double_2c_20internalspoofgridr_20_3e_79',['ExtractThetaDim< double, InternalSpoofGridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01double_00_01InternalSpoofGridR_01_4',1,'collisions_dimensions']]], - ['extractthetadim_3c_20field_3c_20elementtype_2c_20idxrange_2c_20memspace_2c_20layout_20_3e_2c_20gridr_20_3e_80',['ExtractThetaDim< Field< ElementType, IdxRange, MemSpace, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01Field_3_01ElementType_00_01IdxRange_00_01Memb61e2a7adc5523dde8976f9c0d44ef20',1,'collisions_dimensions']]], - ['extrapolation_20rules_81',['Multipatch extrapolation rules',['../src_multipatch_spline.html#src_multipatch_spline__Multipatch_extrapolation_rules',1,'']]], - ['extremity_82',['extremity',['../structEdge.html#ab30ccf4f66cb1a094ab1d771965a9154',1,'Edge']]] + ['evalderiv1dtype_38',['EvalDeriv1DType',['../classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1EvalDeriv1DType',1,'PolarSplineFEMPoissonLikeSolver']]], + ['evalderiv2dtype_39',['EvalDeriv2DType',['../classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1EvalDeriv2DType',1,'PolarSplineFEMPoissonLikeSolver']]], + ['evaluate_40',['evaluate',['../classLagrange.html#a74b5dae43695245aaf9063c1dedc0523',1,'Lagrange']]], + ['evaluation_5fdiscrete_5fdimension_5ftype1_41',['evaluation_discrete_dimension_type1',['../classMultipatchSplineEvaluator2D.html#a292ea65ac876b0f331c12925773791fe',1,'MultipatchSplineEvaluator2D']]], + ['evaluation_5fdiscrete_5fdimension_5ftype2_42',['evaluation_discrete_dimension_type2',['../classMultipatchSplineEvaluator2D.html#a5f152bddb4de59d7c25fde30e538c8df',1,'MultipatchSplineEvaluator2D']]], + ['evaluation_5fidx_5frange_5ftype_43',['evaluation_idx_range_type',['../classMultipatchSplineEvaluator2D.html#aa1018dece7d47119f04db0f2359bc129',1,'MultipatchSplineEvaluator2D']]], + ['evaluation_5fidx_5frange_5ftype1_44',['evaluation_idx_range_type1',['../classMultipatchSplineEvaluator2D.html#ac15a2686cc2db98d2f76f771a800271b',1,'MultipatchSplineEvaluator2D']]], + ['evaluation_5fidx_5frange_5ftype2_45',['evaluation_idx_range_type2',['../classMultipatchSplineEvaluator2D.html#a997e1d9fd600799e618bfcab353a645d',1,'MultipatchSplineEvaluator2D']]], + ['evaluator_46',['Multipatch spline evaluator',['../src_multipatch_spline.html#src_multipatch_spline__Multipatch_spline_evaluator',1,'']]], + ['evaluator_5ftype_47',['evaluator_type',['../classSplineInterpolatorRTheta.html#abf12ff5881094af3162809f6ece1bf6e',1,'SplineInterpolatorRTheta::evaluator_type'],['../classPreallocatableSplineInterpolatorRTheta.html#a173a762a2fa1539067a687d2bc7c69b3',1,'PreallocatableSplineInterpolatorRTheta::evaluator_type'],['../classPoissonLikeRHSFunction.html#a8a5be6904f96090542b2a617dbfb7bd9',1,'PoissonLikeRHSFunction::evaluator_type']]], + ['exact_5ffeet_48',['exact_feet',['../classElectrostaticalPotentialSimulation__decentred__rotation.html#a9a93124e713a5da0c81695f10d723f3d',1,'ElectrostaticalPotentialSimulation_decentred_rotation::exact_feet()'],['../classElectrostaticalPotentialSimulation__translation.html#a93ab63e24d057215cc40e2cdae0fc909',1,'ElectrostaticalPotentialSimulation_translation::exact_feet()'],['../classElectrostaticalPotentialSimulation__rotation.html#af7a04b40f9ba3220367b6b1eebaf6533',1,'ElectrostaticalPotentialSimulation_rotation::exact_feet()'],['../classElectrostaticalPotentialSimulation.html#acf93729d91941c8db9f9b73d761f4821',1,'ElectrostaticalPotentialSimulation::exact_feet()'],['../classAdvectionField__rotation.html#a3c60e8cc5684b7c0394b42a5746bd23e',1,'AdvectionField_rotation::exact_feet()'],['../classAdvectionField__translation.html#a07f7b172dc47150da0b7c865a52dc11e',1,'AdvectionField_translation::exact_feet()'],['../classAdvectionField__decentred__rotation.html#afadcf1aa52017d707a425f1bf579700d',1,'AdvectionField_decentred_rotation::exact_feet()'],['../classAdvectionField.html#ab0c285eac8fe3ebe600c740149dbdd8c',1,'AdvectionField::exact_feet()']]], + ['example_49',['example',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Example',1,'Example'],['../src_mpi_parallelisation.html#autotoc_md69',1,'Example'],['../docs_Adding_docs.html#autotoc_md5',1,'Example']]], + ['example_20of_20use_50',['Example of use',['../src_advection.html#autotoc_md45',1,'']]], + ['example_20of_20use_20of_20multipatchsplinebuilder_51',['Example of use of MultipatchSplineBuilder',['../src_multipatch_spline.html#autotoc_md80',1,'']]], + ['example_20use_20of_20index_20step_20for_20finite_20differences_52',['Example use of Index Step for Finite Differences',['../docs_DDC_in_gyselalibxx.html#autotoc_md17',1,'']]], + ['example_5felement_53',['example_element',['../classMultipatchType.html#afba13bfc8d2a69be4c8760228c4a8414',1,'MultipatchType']]], + ['exec_5fspace_54',['exec_space',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#ade4557ce3239a36e96a844cd2d9826c9',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >::exec_space'],['../classMultipatchSplineEvaluator2D.html#a26a762fd50c51c476042b00bb0705d5a',1,'MultipatchSplineEvaluator2D::exec_space']]], + ['executables_3a_55',['executables:',['../simulations_geometryRTheta_vortex_merger.html#autotoc_md37',1,'Executables:'],['../simulations_geometryRTheta_diocotron.html#autotoc_md32',1,'Executables:']]], + ['execution_56',['Execution',['../index.html#__Execution',1,'']]], + ['execution_20space_57',['Execution space',['../simulations_geometryXY_guiding_center.html#autotoc_md39',1,'']]], + ['explicit_20euler_20method_58',['Explicit Euler method',['../src_geometryRTheta_advection.html#autotoc_md47',1,'']]], + ['explicit_20predictor_20corrector_59',['Explicit predictor-corrector',['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Explicit_predictor-corrector',1,'']]], + ['expression_60',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], + ['extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_61',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], + ['extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_62',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], + ['extended_20lambda_20expression_63',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], + ['extended_20summary_64',['Extended summary',['../docs_Adding_docs.html#autotoc_md1',1,'']]], + ['extent_65',['extent',['../classIdxRangeSlice.html#a64ad71f7659189ff1ce4bfff4420a894',1,'IdxRangeSlice']]], + ['extents_66',['extents',['../classIdxRangeSlice.html#af6daea2b71b8e34e4b1c0a8b2a3fc95e',1,'IdxRangeSlice']]], + ['extractpatches_67',['ExtractPatches',['../structconnectivity__details_1_1ExtractPatches.html',1,'connectivity_details']]], + ['extractpatches_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_20edgetype1_2c_20edgetypes_2e_2e_2e_20_3e_20_3e_68',['ExtractPatches< ddc::detail::TypeSeq< EdgeType1, EdgeTypes... > >',['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_01EdgeTypes_8_8_8_01_4_01_4.html',1,'connectivity_details']]], + ['extractpatches_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_3e_20_3e_69',['ExtractPatches< ddc::detail::TypeSeq<> >',['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html',1,'connectivity_details']]], + ['extractrdim_70',['ExtractRDim',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim',1,'collisions_dimensions']]], + ['extractrdim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_20_3e_71',['ExtractRDim< ConstField< double, IdxRange< GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01ConstField_3_01double_00_01IdxRange_3_01GridR_01d49ad374498953b7d2b9069aa134d214',1,'collisions_dimensions']]], + ['extractrdim_3c_20double_20_3e_72',['ExtractRDim< double >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01double_01_4',1,'collisions_dimensions']]], + ['extractrdim_3c_20field_3c_20elementtype_2c_20idxrange_2c_20memspace_2c_20layout_20_3e_20_3e_73',['ExtractRDim< Field< ElementType, IdxRange, MemSpace, Layout > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01Field_3_01ElementType_00_01IdxRange_00_01MemSpace_00_01Layout_01_4_01_4',1,'collisions_dimensions']]], + ['extractrthetatags_74',['ExtractRThetaTags',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags',1,'collisions_dimensions']]], + ['extractrthetatags_3c_20dconstfield_3c_20idxrange_20_3e_20_3e_75',['ExtractRThetaTags< DConstField< IdxRange > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags_3_01DConstField_3_01IdxRange_01_4_01_4',1,'collisions_dimensions']]], + ['extractrthetatags_3c_20double_20_3e_76',['ExtractRThetaTags< double >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags_3_01double_01_4',1,'collisions_dimensions']]], + ['extractthetadim_77',['ExtractThetaDim',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim',1,'collisions_dimensions']]], + ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_78',['ExtractThetaDim< ConstField< double, IdxRange< GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grid4d06e1e2d0c2d7c6dba5eb3f62b8c1f6',1,'collisions_dimensions']]], + ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridtheta_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_79',['ExtractThetaDim< ConstField< double, IdxRange< GridTheta >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grid60b078372e4f21da53e41a7105d0e223',1,'collisions_dimensions']]], + ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridtheta_2c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_80',['ExtractThetaDim< ConstField< double, IdxRange< GridTheta, GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grida5f24db67f7287ccd8eb306d1be5d530',1,'collisions_dimensions']]], + ['extractthetadim_3c_20double_2c_20internalspoofgridr_20_3e_81',['ExtractThetaDim< double, InternalSpoofGridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01double_00_01InternalSpoofGridR_01_4',1,'collisions_dimensions']]], + ['extractthetadim_3c_20field_3c_20elementtype_2c_20idxrange_2c_20memspace_2c_20layout_20_3e_2c_20gridr_20_3e_82',['ExtractThetaDim< Field< ElementType, IdxRange, MemSpace, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01Field_3_01ElementType_00_01IdxRange_00_01Memb61e2a7adc5523dde8976f9c0d44ef20',1,'collisions_dimensions']]], + ['extrapolation_20rules_83',['Multipatch extrapolation rules',['../src_multipatch_spline.html#src_multipatch_spline__Multipatch_extrapolation_rules',1,'']]], + ['extremity_84',['extremity',['../structEdge.html#ab30ccf4f66cb1a094ab1d771965a9154',1,'Edge']]] ]; diff --git a/search/all_9.js b/search/all_9.js index e1705566c..e2759107b 100644 --- a/search/all_9.js +++ b/search/all_9.js @@ -7,66 +7,67 @@ var searchData= ['features_4',['C++ Features',['../docs_CODING_STANDARD.html#docs_CODING_STANDARD__Cxx_Features',1,'']]], ['fem_5',['B-splines FEM',['../src_geometryRTheta_poisson.html#autotoc_md65',1,'']]], ['fem1dpoissonsolver_6',['fem1dpoissonsolver',['../classFEM1DPoissonSolver.html#a32cb0525a0c6b57cf325eef69dac5216',1,'FEM1DPoissonSolver::FEM1DPoissonSolver()'],['../classFEM1DPoissonSolver.html',1,'FEM1DPoissonSolver< SplineBuilder, SplineEvaluator >']]], - ['fftpoissonsolver_7',['fftpoissonsolver',['../classFFTPoissonSolver.html',1,'FFTPoissonSolver< IdxRangeLaplacian, IdxRangeFull, ExecSpace, LayoutSpace >'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a362273a31c591d4d99fae6e665bcea95',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::FFTPoissonSolver()']]], + ['fftpoissonsolver_7',['fftpoissonsolver',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a362273a31c591d4d99fae6e665bcea95',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::FFTPoissonSolver()'],['../classFFTPoissonSolver.html',1,'FFTPoissonSolver< IdxRangeLaplacian, IdxRangeFull, ExecSpace, LayoutSpace >']]], ['fftpoissonsolver_3c_20idxrange_3c_20gridpdedim1d_2e_2e_2e_20_3e_2c_20idxrangefull_2c_20execspace_2c_20layoutspace_20_3e_8',['FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html',1,'']]], ['field_9',['field',['../src_advection.html#src_advection__1D_advection_with_a_given_advection_field',1,'1D advection with a given advection field'],['../src_geometryRTheta_advection.html#src_geometryRTheta_advection__Advection_Field',1,'Advection Field'],['../src_geometryRTheta_advection_field.html#autotoc_md57',1,'Aplication to the advection field']]], ['field_20along_20the_20logical_20domain_20axis_10',['Advection field along the logical domain axis',['../src_geometryRTheta_advection_field.html#autotoc_md55',1,'']]], ['field_20along_20the_20physical_20domain_20axis_11',['Advection field along the physical domain axis',['../src_geometryRTheta_advection_field.html#autotoc_md54',1,'']]], ['field_20finder_12',['Advection Field finder',['../src_geometryRTheta_advection_field.html',1,'src_geometryRTheta']]], - ['field_20setup_13',['field setup',['../simulations_geometryRTheta_diocotron.html#autotoc_md27',1,'Field setup'],['../simulations_geometryRTheta_vortex_merger.html#autotoc_md33',1,'Field setup']]], + ['field_20setup_13',['field setup',['../simulations_geometryRTheta_vortex_merger.html#autotoc_md33',1,'Field setup'],['../simulations_geometryRTheta_diocotron.html#autotoc_md27',1,'Field setup']]], ['field_5ftype_14',['field_type',['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#aa2c395a9fd1033e93f3dbfdb802c04d1',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::field_type'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a7cdff0d96a3b6bee16f632dd1cb3d4a6',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::field_type'],['../classVectorField.html#a7f814318283767df370cfbc22e757c43',1,'VectorField::field_type']]], ['files_15',['Output files',['../simulations_geometryXY_guiding_center.html#autotoc_md40',1,'']]], - ['fill_5fk_5ftotal_16',['fill_k_total',['../classITimeStepper.html#ae63472e999a720127694c2e0a0a3c3dc',1,'ITimeStepper']]], - ['fill_5fmatrix_5fwith_5fcoeff_17',['fill_matrix_with_coeff',['../classCollisionsIntra.html#a8f9e7a4e2131b1641f821f4bb4a78b03',1,'CollisionsIntra']]], - ['find_5fconnections_5ft_18',['find_connections_t',['../classMultipatchConnectivity.html#a2e53e4b857d0861bfe271be891c60f50',1,'MultipatchConnectivity']]], - ['find_5fequilibrium_19',['find_equilibrium',['../classVortexMergerEquilibria.html#ad3b9139693f6f2aeabf9355d14c7c37b',1,'VortexMergerEquilibria']]], - ['finder_20',['Advection Field finder',['../src_geometryRTheta_advection_field.html',1,'src_geometryRTheta']]], - ['findinterface_21',['FindInterface',['../structconnectivity__details_1_1FindInterface.html',1,'connectivity_details']]], - ['findinterface_3c_20edge_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20interface1_2c_20remaininginterfacetypes_2e_2e_2e_20_3e_20_3e_22',['FindInterface< Edge, ddc::detail::TypeSeq< Interface1, RemainingInterfaceTypes... > >',['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfac6d31b188ee73012ad6c98be99219379f.html',1,'connectivity_details']]], - ['findinterface_3c_20edge_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20interface_3c_20edge_2c_20oedge_2c_20orientations_20_3e_2c_20remaininginterfacetypes_2e_2e_2e_20_3e_20_3e_23',['FindInterface< Edge, ddc::detail::TypeSeq< Interface< Edge, OEdge, Orientations >, RemainingInterfaceTypes... > >',['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacd1aa547d7cc4bf022e85928246ab2d07.html',1,'connectivity_details']]], - ['findinterface_3c_20edge_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20interface_3c_20oedge_2c_20edge_2c_20orientations_20_3e_2c_20remaininginterfacetypes_2e_2e_2e_20_3e_20_3e_24',['FindInterface< Edge, ddc::detail::TypeSeq< Interface< OEdge, Edge, Orientations >, RemainingInterfaceTypes... > >',['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacee698732bdf35f06db097afe1714904c.html',1,'connectivity_details']]], - ['findinterface_3c_20edge_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_3e_20_3e_25',['FindInterface< Edge, ddc::detail::TypeSeq<> >',['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html',1,'connectivity_details']]], - ['findpatch_26',['FindPatch',['../structconnectivity__details_1_1FindPatch.html',1,'connectivity_details']]], - ['findpatch_3c_20grid1d_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20patch1_2c_20remainingpatchtypes_2e_2e_2e_20_3e_20_3e_27',['FindPatch< Grid1D, ddc::detail::TypeSeq< Patch1, RemainingPatchTypes... > >',['../structconnectivity__details_1_1FindPatch_3_01Grid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch1_00_33770856242f7c5cee1ce419b2efaf64.html',1,'connectivity_details']]], - ['findpatch_3c_20grid1d_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_3e_20_3e_28',['FindPatch< Grid1D, ddc::detail::TypeSeq<> >',['../structconnectivity__details_1_1FindPatch_3_01Grid1D_00_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html',1,'connectivity_details']]], - ['findpatch_3c_20querygrid1d_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20patch_3c_20ogrid_2c_20querygrid1d_2c_20bspl1_2c_20bspl2_20_3e_2c_20remainingpatchtypes_2e_2e_2e_20_3e_20_3e_29',['FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< OGrid, QueryGrid1D, BSpl1, BSpl2 >, RemainingPatchTypes... > >',['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch5f5acd76cfd59a22ebf513823679a320.html',1,'connectivity_details']]], - ['findpatch_3c_20querygrid1d_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20patch_3c_20querygrid1d_2c_20ogrid_2c_20bspl1_2c_20bspl2_20_3e_2c_20remainingpatchtypes_2e_2e_2e_20_3e_20_3e_30',['FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< QueryGrid1D, OGrid, BSpl1, BSpl2 >, RemainingPatchTypes... > >',['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patchd8fc8921dec760f8fe4c90c2a6947228.html',1,'connectivity_details']]], - ['findrelevantidxrangetype_31',['FindRelevantIdxRangeType',['../structconnectivity__details_1_1FindRelevantIdxRangeType.html',1,'connectivity_details']]], - ['findrelevantidxrangetype_3c_20querygrid1d_2c_20std_3a_3atuple_3c_20idxrangehead_2c_20idxrangetypes_2e_2e_2e_20_3e_20_3e_32',['FindRelevantIdxRangeType< QueryGrid1D, std::tuple< IdxRangeHead, IdxRangeTypes... > >',['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_01Id3b131c802b30082f4412eb4689d6d53b.html',1,'connectivity_details']]], - ['findrelevantidxrangetype_3c_20querygrid1d_2c_20std_3a_3atuple_3c_3e_20_3e_33',['FindRelevantIdxRangeType< QueryGrid1D, std::tuple<> >',['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_4_01_4.html',1,'connectivity_details']]], - ['finite_20differences_34',['Example use of Index Step for Finite Differences',['../docs_DDC_in_gyselalibxx.html#autotoc_md17',1,'']]], - ['first_5forder_5fjacobian_5fmatrix_5fr_5frtheta_35',['first_order_jacobian_matrix_r_rtheta',['../classDiscreteToCartesian.html#a498beca5028315a8c94c31d4bf141a1a',1,'DiscreteToCartesian']]], - ['fluidmoments_36',['fluidmoments',['../classFluidMoments.html',1,'FluidMoments'],['../classFluidMoments.html#a5c0e28b4c6f0f4eaf93ed730c3ab81b6',1,'FluidMoments::FluidMoments()']]], - ['for_20a_20lambda_20cannot_20be_20used_20in_20the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_37',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], - ['for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_38',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], - ['for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_39',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], - ['for_20bsladvectionspatial_20and_20bsladvectionvelocity_40',['Same test cases as for BslAdvectionSpatial and BslAdvectionVelocity',['../tests_advection.html#autotoc_md84',1,'']]], - ['for_20finite_20differences_41',['Example use of Index Step for Finite Differences',['../docs_DDC_in_gyselalibxx.html#autotoc_md17',1,'']]], - ['for_20getting_20started_42',['Recommended Steps for Getting Started',['../docs_getting_started.html#docs_getting_started__Recommended_Steps_for_Getting_Started',1,'']]], - ['for_20input_20and_20output_43',['Functions used for input and output.',['../src_io.html',1,'src']]], - ['for_20multipatch_20geometry_44',['Data Types for Multipatch Geometry',['../src_multipatch_data_types.html',1,'src_multipatch']]], - ['for_20the_20advection_3a_45',['- The mapping and the domain used for the advection:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md87',1,'']]], - ['for_5feach_5ftuple_5fcat_46',['for_each_tuple_cat',['../structfor__each__tuple__cat.html',1,'']]], - ['for_5feach_5ftuple_5fcat_3c_20std_3a_3atuple_3c_20tuples_2e_2e_2e_20_3e_2c_20tuple_20_3e_47',['for_each_tuple_cat< std::tuple< Tuples... >, Tuple >',['../structfor__each__tuple__cat_3_01std_1_1tuple_3_01Tuples_8_8_8_01_4_00_01Tuple_01_4.html',1,'']]], - ['formulation_48',['Weak formulation',['../src_geometryRTheta_poisson.html#autotoc_md68',1,'']]], - ['fourier_5ffield_5fmem_5ftype_49',['fourier_field_mem_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a8590dd393f09bf3381a6f81ff8ab0034',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], - ['fourier_5ffield_5ftype_50',['fourier_field_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#ac0bc6c14fcb18c5426da0c57a1758115',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], - ['fourier_5fidx_5frange_5ftype_51',['fourier_idx_range_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a03297d4504878bc4e3b4a858cb51b200',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], - ['fourier_5findex_5ftype_52',['fourier_index_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#ab12b55b0f5ea7fda912b72de4e3f3178',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], - ['front_53',['front',['../classIdxRangeSlice.html#a7f97c317c82426f237b421e036200973',1,'IdxRangeSlice']]], - ['full_5fdomain_54',['full_domain',['../classPolarBSplines_1_1Impl.html#a244d6ebb4a31d96e25c1844614979cc7',1,'PolarBSplines::Impl']]], - ['function_55',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], - ['function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_56',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], - ['function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_57',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], - ['function_5f1_5fcoef_5falloc_58',['function_1_coef_alloc',['../classMultipatchSplineOnionShapeTest.html#a2d2fc93568955e117461eeed34c62319',1,'MultipatchSplineOnionShapeTest']]], - ['function_5f2_5fcoef_5falloc_59',['function_2_coef_alloc',['../classMultipatchSplineOnionShapeTest.html#a840198196926cfb5dbaa179c8c4cd98e',1,'MultipatchSplineOnionShapeTest']]], - ['functional_20programming_60',['Object-Oriented vs. Functional Programming',['../docs_CODING_STANDARD.html#autotoc_md8',1,'']]], - ['functional_20programming_20in_20gyselalib_61',['Understanding Functional Programming in Gyselalib++',['../docs_getting_started.html#docs_getting_started__Understanding_Functional_Programming_in_Gyselalibxx',1,'']]], - ['functional_20vs_20object_20oriented_20programming_20oop_62',['Key Difference: Functional vs. Object-Oriented Programming (OOP)',['../docs_getting_started.html#autotoc_md22',1,'']]], - ['functions_63',['functions',['../docs_Adding_docs.html#docs_Adding_docs__Documenting_functions',1,'Documenting functions'],['../src_multipatch_utils.html',1,'Multipatch utilitary functions'],['../src_utils.html',1,'Utility Functions'],['../src_math_tools.html',1,'Utility Functions']]], - ['functions_20tests_3a_64',['Functions tests:',['../tests_geometryRTheta_2d_spline_interpolator.html#autotoc_md85',1,'']]], - ['functions_20used_20for_20input_20and_20output_65',['Functions used for input and output.',['../src_io.html',1,'src']]], - ['functiontobeadvected_66',['FunctionToBeAdvected',['../classFunctionToBeAdvected.html',1,'']]], - ['functiontobeadvected_5fcos_5f4_5felipse_67',['functiontobeadvected_cos_4_elipse',['../classFunctionToBeAdvected__cos__4__elipse.html#a3b7c4536b840b3c02e61b57b3bfb0ec6',1,'FunctionToBeAdvected_cos_4_elipse::FunctionToBeAdvected_cos_4_elipse()'],['../classFunctionToBeAdvected__cos__4__elipse.html',1,'FunctionToBeAdvected_cos_4_elipse< Mapping >']]], - ['functiontobeadvected_5fgaussian_68',['functiontobeadvected_gaussian',['../classFunctionToBeAdvected__gaussian.html#aef3eeccf31077b83bd59c4d83d5ab360',1,'FunctionToBeAdvected_gaussian::FunctionToBeAdvected_gaussian()'],['../classFunctionToBeAdvected__gaussian.html',1,'FunctionToBeAdvected_gaussian< Mapping >']]] + ['fill_5fint_5fvolume_16',['fill_int_volume',['../classPolarSplineFEMPoissonLikeSolver.html#a0d5abf61af4436e3bb7ee922b035447a',1,'PolarSplineFEMPoissonLikeSolver']]], + ['fill_5fk_5ftotal_17',['fill_k_total',['../classITimeStepper.html#ae63472e999a720127694c2e0a0a3c3dc',1,'ITimeStepper']]], + ['fill_5fmatrix_5fwith_5fcoeff_18',['fill_matrix_with_coeff',['../classCollisionsIntra.html#a8f9e7a4e2131b1641f821f4bb4a78b03',1,'CollisionsIntra']]], + ['find_5fconnections_5ft_19',['find_connections_t',['../classMultipatchConnectivity.html#a2e53e4b857d0861bfe271be891c60f50',1,'MultipatchConnectivity']]], + ['find_5fequilibrium_20',['find_equilibrium',['../classVortexMergerEquilibria.html#ad3b9139693f6f2aeabf9355d14c7c37b',1,'VortexMergerEquilibria']]], + ['finder_21',['Advection Field finder',['../src_geometryRTheta_advection_field.html',1,'src_geometryRTheta']]], + ['findinterface_22',['FindInterface',['../structconnectivity__details_1_1FindInterface.html',1,'connectivity_details']]], + ['findinterface_3c_20edge_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20interface1_2c_20remaininginterfacetypes_2e_2e_2e_20_3e_20_3e_23',['FindInterface< Edge, ddc::detail::TypeSeq< Interface1, RemainingInterfaceTypes... > >',['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfac6d31b188ee73012ad6c98be99219379f.html',1,'connectivity_details']]], + ['findinterface_3c_20edge_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20interface_3c_20edge_2c_20oedge_2c_20orientations_20_3e_2c_20remaininginterfacetypes_2e_2e_2e_20_3e_20_3e_24',['FindInterface< Edge, ddc::detail::TypeSeq< Interface< Edge, OEdge, Orientations >, RemainingInterfaceTypes... > >',['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacd1aa547d7cc4bf022e85928246ab2d07.html',1,'connectivity_details']]], + ['findinterface_3c_20edge_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20interface_3c_20oedge_2c_20edge_2c_20orientations_20_3e_2c_20remaininginterfacetypes_2e_2e_2e_20_3e_20_3e_25',['FindInterface< Edge, ddc::detail::TypeSeq< Interface< OEdge, Edge, Orientations >, RemainingInterfaceTypes... > >',['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacee698732bdf35f06db097afe1714904c.html',1,'connectivity_details']]], + ['findinterface_3c_20edge_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_3e_20_3e_26',['FindInterface< Edge, ddc::detail::TypeSeq<> >',['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html',1,'connectivity_details']]], + ['findpatch_27',['FindPatch',['../structconnectivity__details_1_1FindPatch.html',1,'connectivity_details']]], + ['findpatch_3c_20grid1d_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20patch1_2c_20remainingpatchtypes_2e_2e_2e_20_3e_20_3e_28',['FindPatch< Grid1D, ddc::detail::TypeSeq< Patch1, RemainingPatchTypes... > >',['../structconnectivity__details_1_1FindPatch_3_01Grid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch1_00_33770856242f7c5cee1ce419b2efaf64.html',1,'connectivity_details']]], + ['findpatch_3c_20grid1d_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_3e_20_3e_29',['FindPatch< Grid1D, ddc::detail::TypeSeq<> >',['../structconnectivity__details_1_1FindPatch_3_01Grid1D_00_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html',1,'connectivity_details']]], + ['findpatch_3c_20querygrid1d_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20patch_3c_20ogrid_2c_20querygrid1d_2c_20bspl1_2c_20bspl2_20_3e_2c_20remainingpatchtypes_2e_2e_2e_20_3e_20_3e_30',['FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< OGrid, QueryGrid1D, BSpl1, BSpl2 >, RemainingPatchTypes... > >',['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch5f5acd76cfd59a22ebf513823679a320.html',1,'connectivity_details']]], + ['findpatch_3c_20querygrid1d_2c_20ddc_3a_3adetail_3a_3atypeseq_3c_20patch_3c_20querygrid1d_2c_20ogrid_2c_20bspl1_2c_20bspl2_20_3e_2c_20remainingpatchtypes_2e_2e_2e_20_3e_20_3e_31',['FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< QueryGrid1D, OGrid, BSpl1, BSpl2 >, RemainingPatchTypes... > >',['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patchd8fc8921dec760f8fe4c90c2a6947228.html',1,'connectivity_details']]], + ['findrelevantidxrangetype_32',['FindRelevantIdxRangeType',['../structconnectivity__details_1_1FindRelevantIdxRangeType.html',1,'connectivity_details']]], + ['findrelevantidxrangetype_3c_20querygrid1d_2c_20std_3a_3atuple_3c_20idxrangehead_2c_20idxrangetypes_2e_2e_2e_20_3e_20_3e_33',['FindRelevantIdxRangeType< QueryGrid1D, std::tuple< IdxRangeHead, IdxRangeTypes... > >',['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_01Id3b131c802b30082f4412eb4689d6d53b.html',1,'connectivity_details']]], + ['findrelevantidxrangetype_3c_20querygrid1d_2c_20std_3a_3atuple_3c_3e_20_3e_34',['FindRelevantIdxRangeType< QueryGrid1D, std::tuple<> >',['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_4_01_4.html',1,'connectivity_details']]], + ['finite_20differences_35',['Example use of Index Step for Finite Differences',['../docs_DDC_in_gyselalibxx.html#autotoc_md17',1,'']]], + ['first_5forder_5fjacobian_5fmatrix_5fr_5frtheta_36',['first_order_jacobian_matrix_r_rtheta',['../classDiscreteToCartesian.html#a498beca5028315a8c94c31d4bf141a1a',1,'DiscreteToCartesian']]], + ['fluidmoments_37',['fluidmoments',['../classFluidMoments.html#a5c0e28b4c6f0f4eaf93ed730c3ab81b6',1,'FluidMoments::FluidMoments()'],['../classFluidMoments.html',1,'FluidMoments']]], + ['for_20a_20lambda_20cannot_20be_20used_20in_20the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_38',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], + ['for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_39',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], + ['for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_40',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], + ['for_20bsladvectionspatial_20and_20bsladvectionvelocity_41',['Same test cases as for BslAdvectionSpatial and BslAdvectionVelocity',['../tests_advection.html#autotoc_md84',1,'']]], + ['for_20finite_20differences_42',['Example use of Index Step for Finite Differences',['../docs_DDC_in_gyselalibxx.html#autotoc_md17',1,'']]], + ['for_20getting_20started_43',['Recommended Steps for Getting Started',['../docs_getting_started.html#docs_getting_started__Recommended_Steps_for_Getting_Started',1,'']]], + ['for_20input_20and_20output_44',['Functions used for input and output.',['../src_io.html',1,'src']]], + ['for_20multipatch_20geometry_45',['Data Types for Multipatch Geometry',['../src_multipatch_data_types.html',1,'src_multipatch']]], + ['for_20the_20advection_3a_46',['- The mapping and the domain used for the advection:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md87',1,'']]], + ['for_5feach_5ftuple_5fcat_47',['for_each_tuple_cat',['../structfor__each__tuple__cat.html',1,'']]], + ['for_5feach_5ftuple_5fcat_3c_20std_3a_3atuple_3c_20tuples_2e_2e_2e_20_3e_2c_20tuple_20_3e_48',['for_each_tuple_cat< std::tuple< Tuples... >, Tuple >',['../structfor__each__tuple__cat_3_01std_1_1tuple_3_01Tuples_8_8_8_01_4_00_01Tuple_01_4.html',1,'']]], + ['formulation_49',['Weak formulation',['../src_geometryRTheta_poisson.html#autotoc_md68',1,'']]], + ['fourier_5ffield_5fmem_5ftype_50',['fourier_field_mem_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a8590dd393f09bf3381a6f81ff8ab0034',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], + ['fourier_5ffield_5ftype_51',['fourier_field_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#ac0bc6c14fcb18c5426da0c57a1758115',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], + ['fourier_5fidx_5frange_5ftype_52',['fourier_idx_range_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a03297d4504878bc4e3b4a858cb51b200',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], + ['fourier_5findex_5ftype_53',['fourier_index_type',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#ab12b55b0f5ea7fda912b72de4e3f3178',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], + ['front_54',['front',['../classIdxRangeSlice.html#a7f97c317c82426f237b421e036200973',1,'IdxRangeSlice']]], + ['full_5fdomain_55',['full_domain',['../classPolarBSplines_1_1Impl.html#a244d6ebb4a31d96e25c1844614979cc7',1,'PolarBSplines::Impl']]], + ['function_56',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], + ['function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20cannot_20have_20private_20or_20protected_20access_20within_20its_20class_57',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], + ['function_20for_20an_20extended_20_5f_5fhost_5f_5f_20_5f_5fdevice_5f_5f_20lambda_20must_20allow_20its_20address_20to_20be_20taken_58',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], + ['function_5f1_5fcoef_5falloc_59',['function_1_coef_alloc',['../classMultipatchSplineOnionShapeTest.html#a2d2fc93568955e117461eeed34c62319',1,'MultipatchSplineOnionShapeTest']]], + ['function_5f2_5fcoef_5falloc_60',['function_2_coef_alloc',['../classMultipatchSplineOnionShapeTest.html#a840198196926cfb5dbaa179c8c4cd98e',1,'MultipatchSplineOnionShapeTest']]], + ['functional_20programming_61',['Object-Oriented vs. Functional Programming',['../docs_CODING_STANDARD.html#autotoc_md8',1,'']]], + ['functional_20programming_20in_20gyselalib_62',['Understanding Functional Programming in Gyselalib++',['../docs_getting_started.html#docs_getting_started__Understanding_Functional_Programming_in_Gyselalibxx',1,'']]], + ['functional_20vs_20object_20oriented_20programming_20oop_63',['Key Difference: Functional vs. Object-Oriented Programming (OOP)',['../docs_getting_started.html#autotoc_md22',1,'']]], + ['functions_64',['functions',['../docs_Adding_docs.html#docs_Adding_docs__Documenting_functions',1,'Documenting functions'],['../src_multipatch_utils.html',1,'Multipatch utilitary functions'],['../src_utils.html',1,'Utility Functions'],['../src_math_tools.html',1,'Utility Functions']]], + ['functions_20tests_3a_65',['Functions tests:',['../tests_geometryRTheta_2d_spline_interpolator.html#autotoc_md85',1,'']]], + ['functions_20used_20for_20input_20and_20output_66',['Functions used for input and output.',['../src_io.html',1,'src']]], + ['functiontobeadvected_67',['FunctionToBeAdvected',['../classFunctionToBeAdvected.html',1,'']]], + ['functiontobeadvected_5fcos_5f4_5felipse_68',['functiontobeadvected_cos_4_elipse',['../classFunctionToBeAdvected__cos__4__elipse.html#a3b7c4536b840b3c02e61b57b3bfb0ec6',1,'FunctionToBeAdvected_cos_4_elipse::FunctionToBeAdvected_cos_4_elipse()'],['../classFunctionToBeAdvected__cos__4__elipse.html',1,'FunctionToBeAdvected_cos_4_elipse< Mapping >']]], + ['functiontobeadvected_5fgaussian_69',['functiontobeadvected_gaussian',['../classFunctionToBeAdvected__gaussian.html#aef3eeccf31077b83bd59c4d83d5ab360',1,'FunctionToBeAdvected_gaussian::FunctionToBeAdvected_gaussian()'],['../classFunctionToBeAdvected__gaussian.html',1,'FunctionToBeAdvected_gaussian< Mapping >']]] ]; diff --git a/search/all_a.js b/search/all_a.js index 7a316afa3..9395d34f3 100644 --- a/search/all_a.js +++ b/search/all_a.js @@ -47,56 +47,59 @@ var searchData= ['get_5fgridvx_5fghosted_5fstaggered_44',['get_gridvx_ghosted_staggered',['../classCollisionsIntra.html#a405ad2094ef4f20d34a6108e70f53d18',1,'CollisionsIntra']]], ['get_5findex_45',['get_index',['../classIdxRangeSlice.html#a2ee4615ebb6864cdea1f6d93dc3e6add',1,'IdxRangeSlice::get_index()'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#aca0752ae1b3cc1d2885e6644fbe1d6f2',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_index(DElem elem) const']]], ['get_5finternal_5ffield_46',['get_internal_field',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#ab37c3af17859ce88bd4842eb614c75ce',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_internal_field(IdxRange< ODims... > idx_range) const'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#ac7bdb7d57cf9d0ba344724a0a9797457',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_internal_field(Idx< ODims... > elem) const']]], - ['get_5finverse_5fmapping_47',['get_inverse_mapping',['../classCartesianToCircular.html#a12006646133b008b23ec0467dc76886a',1,'CartesianToCircular::get_inverse_mapping()'],['../classCzarnyToCartesian.html#a3db743b369fe2c5b63c993abb1429bb1',1,'CzarnyToCartesian::get_inverse_mapping()'],['../classCircularToCartesian.html#a933c7fa215c360fe24e6fa3b2e2cb646',1,'CircularToCartesian::get_inverse_mapping()'],['../classCartesianToCzarny.html#a208767628db193c5b3b727e5ea8dbc7e',1,'CartesianToCzarny::get_inverse_mapping()']]], + ['get_5finverse_5fmapping_47',['get_inverse_mapping',['../classCircularToCartesian.html#a933c7fa215c360fe24e6fa3b2e2cb646',1,'CircularToCartesian::get_inverse_mapping()'],['../classCzarnyToCartesian.html#a3db743b369fe2c5b63c993abb1429bb1',1,'CzarnyToCartesian::get_inverse_mapping()'],['../classCartesianToCzarny.html#a208767628db193c5b3b727e5ea8dbc7e',1,'CartesianToCzarny::get_inverse_mapping()'],['../classCartesianToCircular.html#a12006646133b008b23ec0467dc76886a',1,'CartesianToCircular::get_inverse_mapping()']]], ['get_5flocal_5fidx_5frange_48',['get_local_idx_range',['../classMPITransposeAllToAll.html#a992524cf2f61b2ba1e199d108140aad8',1,'MPITransposeAllToAll']]], ['get_5fmapping_5fon_5flogical_5fdim_49',['get_mapping_on_logical_dim',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a6989dccaab70d5b5974a0d3f5263edff',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >']]], ['get_5fmapping_5fon_5flogical_5fdim_5ft_50',['get_mapping_on_logical_dim_t',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a3e5fd579574bdae3d4ecc7881c668859',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >']]], ['get_5fmapping_5fon_5fpatch_51',['get_mapping_on_patch',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a83853bf96978cf43658602ed45fea3cb',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >']]], ['get_5fmapping_5fon_5fpatch_5ft_52',['get_mapping_on_patch_t',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a22a6aaf47e4c677a8f4ad88143ec2d07',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >']]], - ['get_5fmdspan_53',['get_mdspan',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#afb79eb00f2eb1a1b757d190663c085d1',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_mdspan(IdxRange< ODims... > provided_deriv_idx_range)'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a3515c17c41fab7daaf8842344473acb5',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_mdspan()']]], - ['get_5fmesh_5fghosted_54',['get_mesh_ghosted',['../classCollisionsIntra.html#a891b8ddb1bea2745b12408041b7ab9f3',1,'CollisionsIntra']]], - ['get_5fnustar0_55',['get_nustar0',['../classCollisionsIntra.html#a6b18fb17a213025672de06d8d6b7cee8',1,'CollisionsIntra::get_nustar0()'],['../classCollisionsInter.html#a0de983fd5f398b17fc7b5c6137f8e8ac',1,'CollisionsInter::get_nustar0()']]], - ['get_5fpolar_5findex_56',['get_polar_index',['../classPolarBSplines.html#a014f57828a47b6fc65e18c4632eafa5c',1,'PolarBSplines']]], - ['get_5fsampling_57',['get_sampling',['../classddcHelper_1_1NonUniformInterpolationPoints.html#ab89aa8de226681a7ac5f4c0f5009f0a6',1,'ddcHelper::NonUniformInterpolationPoints']]], - ['get_5fsize_58',['get_size',['../classMatrix.html#a15badbcf214a7842a0a654f9210f39a1',1,'Matrix']]], - ['get_5fslicer_5ffor_59',['get_slicer_for',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a868ed39fa484e90af6985b22c78df50c',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_slicer_for(Idx< ODDims... > const &slice_idx, int array_idx) const'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a87810847a0ebdc91930bdb5d861396c9',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_slicer_for(IdxRange< ODDims... > const &slice_idx_range, int array_idx) const']]], - ['get_5fslope_60',['get_slope',['../classDiocotronDensitySolution.html#a59c17bab82ed59b39b68750be2f81b62',1,'DiocotronDensitySolution']]], - ['get_5ftest_5ffunction_61',['get_test_function',['../classAdvectionSimulation.html#ae919baac00384fe092e9e7497371fa4f',1,'AdvectionSimulation::get_test_function()'],['../classAdvectionFieldSimulation.html#ab889ba149adbbc478ca434554391c9f0',1,'AdvectionFieldSimulation::get_test_function()']]], - ['get_5ftuple_62',['get_tuple',['../classMultipatchType.html#a6a44d19ff0704be6f0b4e1d476cefbcc',1,'MultipatchType']]], - ['get_5ftype_5fseq_5fconnections_5ft_63',['get_type_seq_connections_t',['../classMultipatchConnectivity.html#a4a3c042b78101bb31a9402fb6cb24f4b',1,'MultipatchConnectivity']]], - ['get_5fvalues_5ffield_64',['get_values_field',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#adffb6410e57ef9d4d3fd8801cbe73a30',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_values_field()'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#acf6b5f3e9791535ee527ffe5fe3ce71b',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_values_field() const']]], - ['getting_20started_65',['Recommended Steps for Getting Started',['../docs_getting_started.html#docs_getting_started__Recommended_Steps_for_Getting_Started',1,'']]], - ['getting_20started_20with_20gyselalib_66',['Getting Started with Gyselalib++',['../docs_getting_started.html',1,'']]], - ['ghostedvx_67',['GhostedVx',['../structCollisionsIntra_1_1GhostedVx.html',1,'CollisionsIntra']]], - ['ghostedvxstaggered_68',['GhostedVxStaggered',['../structCollisionsIntra_1_1GhostedVxStaggered.html',1,'CollisionsIntra']]], - ['git_69',['Using Git',['../docs_Using_git.html',1,'']]], - ['git_20reports_20changes_20in_20the_20submodule_20but_20i_20didn_20t_20change_20this_20code_70',['Q: Git reports changes in the submodule but I didn't change this code',['../docs_Using_git.html#autotoc_md20',1,'']]], - ['given_20advection_20field_71',['1D advection with a given advection field',['../src_advection.html#src_advection__1D_advection_with_a_given_advection_field',1,'']]], - ['global_20analytical_20invertible_20mapping_72',['Global analytical invertible mapping',['../src_multipatch_connectivity.html#autotoc_md77',1,'']]], - ['grid_73',['grid',['../simulations_geometryXY_guiding_center.html#autotoc_md42',1,'Grid'],['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Grid',1,'Grid']]], - ['grid1_74',['Grid1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#abad4a55c8bc66356aeb75b17e6169325',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['grid2_75',['Grid2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a10e13ba81718c97997111ded99c2276c',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['gridbuilder_76',['gridbuilder',['../classGridBuilder.html',1,'GridBuilder< Grid1D >'],['../classGridBuilder.html#a070eaf99580a98f094ee4e42f66ea2dd',1,'GridBuilder::GridBuilder()']]], - ['gridfourier_77',['GridFourier',['../structFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace2aeecfe91d464f5738599cc105fb6087.html',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], - ['gridmom_78',['GridMom',['../structGridMom.html',1,'']]], - ['gridmu_79',['GridMu',['../structGridMu.html',1,'']]], - ['gridpdedimq_80',['GridPDEDimQ',['../structFEM1DPoissonSolver_1_1GridPDEDimQ.html',1,'FEM1DPoissonSolver']]], - ['gridr_81',['gridr',['../structGridR.html',1,'GridR'],['../structonion__shape__non__uniform__2d__2patches_1_1GridR.html',1,'onion_shape_non_uniform_2d_2patches::GridR< PatchIdx >'],['../structonion__shape__uniform__2d__2patches_1_1GridR.html',1,'onion_shape_uniform_2d_2patches::GridR< PatchIdx >']]], - ['gridrrefined_82',['GridRRefined',['../structRefinedDiscreteToCartesianBuilder_1_1GridRRefined.html',1,'RefinedDiscreteToCartesianBuilder']]], - ['gridtheta_83',['gridtheta',['../structGridTheta.html',1,'GridTheta'],['../structonion__shape__non__uniform__2d__2patches_1_1GridTheta.html',1,'onion_shape_non_uniform_2d_2patches::GridTheta< PatchIdx >'],['../structonion__shape__uniform__2d__2patches_1_1GridTheta.html',1,'onion_shape_uniform_2d_2patches::GridTheta< PatchIdx >']]], - ['gridthetarefined_84',['GridThetaRefined',['../structRefinedDiscreteToCartesianBuilder_1_1GridThetaRefined.html',1,'RefinedDiscreteToCartesianBuilder']]], - ['gridvpar_85',['GridVpar',['../structGridVpar.html',1,'']]], - ['gridvx_86',['GridVx',['../structGridVx.html',1,'']]], - ['gridvy_87',['GridVy',['../structGridVy.html',1,'']]], - ['gridx_88',['gridx',['../structperiodic__strips__uniform__2d__9patches_1_1GridX.html',1,'periodic_strips_uniform_2d_9patches::GridX< PatchIdx >'],['../structGridX.html',1,'GridX'],['../structnon__periodic__non__uniform__2d__2patches_1_1GridX.html',1,'non_periodic_non_uniform_2d_2patches::GridX< PatchIdx >'],['../structfigure__of__eight__5patches_1_1GridX.html',1,'figure_of_eight_5patches::GridX< PatchIdx >'],['../structnon__periodic__non__uniform__2d__3patches_1_1GridX.html',1,'non_periodic_non_uniform_2d_3patches::GridX< PatchIdx >'],['../structnon__periodic__uniform__2d__2patches_1_1GridX.html',1,'non_periodic_uniform_2d_2patches::GridX< PatchIdx >'],['../structnon__periodic__uniform__2d__3patches_1_1GridX.html',1,'non_periodic_uniform_2d_3patches::GridX< PatchIdx >']]], - ['gridy_89',['gridy',['../structfigure__of__eight__5patches_1_1GridY.html',1,'figure_of_eight_5patches::GridY< PatchIdx >'],['../structGridY.html',1,'GridY'],['../structperiodic__strips__uniform__2d__9patches_1_1GridY.html',1,'periodic_strips_uniform_2d_9patches::GridY< PatchIdx >'],['../structnon__periodic__uniform__2d__3patches_1_1GridY.html',1,'non_periodic_uniform_2d_3patches::GridY< PatchIdx >'],['../structnon__periodic__uniform__2d__2patches_1_1GridY.html',1,'non_periodic_uniform_2d_2patches::GridY< PatchIdx >'],['../structnon__periodic__non__uniform__2d__3patches_1_1GridY.html',1,'non_periodic_non_uniform_2d_3patches::GridY< PatchIdx >'],['../structnon__periodic__non__uniform__2d__2patches_1_1GridY.html',1,'non_periodic_non_uniform_2d_2patches::GridY< PatchIdx >']]], - ['gslx_90',['gslx',['../namespacegslx.html',1,'']]], - ['guiding_20center_20case_91',['Guiding center case',['../src_geometryRTheta_advection_field.html#src_geometryRTheta_advection_field__Guiding_center_case',1,'']]], - ['guiding_20center_20x_20y_20simulation_92',['Guiding center (X,Y) simulation',['../simulations_geometryXY_guiding_center.html',1,'simulations_geometryXY']]], - ['gyselalib_93',['gyselalib',['../docs_getting_started.html',1,'Getting Started with Gyselalib++'],['../index.html',1,'Gyselalib++'],['../docs_getting_started.html#docs_getting_started__Understanding_Functional_Programming_in_Gyselalibxx',1,'Understanding Functional Programming in Gyselalib++']]], - ['gyselalib_20codebase_94',['Navigating the Gyselalib++ Codebase',['../docs_getting_started.html#docs_getting_started__Navigating_the_Gyselalibxx_Codebase',1,'']]], - ['gyselalib_20contents_95',['Gyselalib++ contents',['../src.html',1,'']]], - ['gyselalib_20simulations_96',['Gyselalib++ simulations',['../simulations.html',1,'']]], - ['gyselalib_20tests_97',['Gyselalib++ tests',['../tests.html',1,'']]], - ['gyselalibxx_98',['Using DDC in Gyselalibxx',['../docs_DDC_in_gyselalibxx.html',1,'']]] + ['get_5fmatrix_5fstencil_5felement_53',['get_matrix_stencil_element',['../classPolarSplineFEMPoissonLikeSolver.html#a90ab8ff1603bc0a3f36b5a0c5077de5b',1,'PolarSplineFEMPoissonLikeSolver']]], + ['get_5fmdspan_54',['get_mdspan',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#afb79eb00f2eb1a1b757d190663c085d1',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_mdspan(IdxRange< ODims... > provided_deriv_idx_range)'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a3515c17c41fab7daaf8842344473acb5',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_mdspan()']]], + ['get_5fmesh_5fghosted_55',['get_mesh_ghosted',['../classCollisionsIntra.html#a891b8ddb1bea2745b12408041b7ab9f3',1,'CollisionsIntra']]], + ['get_5fnustar0_56',['get_nustar0',['../classCollisionsIntra.html#a6b18fb17a213025672de06d8d6b7cee8',1,'CollisionsIntra::get_nustar0()'],['../classCollisionsInter.html#a0de983fd5f398b17fc7b5c6137f8e8ac',1,'CollisionsInter::get_nustar0()']]], + ['get_5fpolar_5findex_57',['get_polar_index',['../classPolarBSplines.html#a014f57828a47b6fc65e18c4632eafa5c',1,'PolarBSplines']]], + ['get_5fquadrature_5fpoints_5fin_5fcell_58',['get_quadrature_points_in_cell',['../classPolarSplineFEMPoissonLikeSolver.html#ad28d1360dd316f67bae8ae9a0b866958',1,'PolarSplineFEMPoissonLikeSolver']]], + ['get_5fsampling_59',['get_sampling',['../classddcHelper_1_1NonUniformInterpolationPoints.html#ab89aa8de226681a7ac5f4c0f5009f0a6',1,'ddcHelper::NonUniformInterpolationPoints']]], + ['get_5fsize_60',['get_size',['../classMatrix.html#a15badbcf214a7842a0a654f9210f39a1',1,'Matrix']]], + ['get_5fslicer_5ffor_61',['get_slicer_for',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a868ed39fa484e90af6985b22c78df50c',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_slicer_for(Idx< ODDims... > const &slice_idx, int array_idx) const'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a87810847a0ebdc91930bdb5d861396c9',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_slicer_for(IdxRange< ODDims... > const &slice_idx_range, int array_idx) const']]], + ['get_5fslope_62',['get_slope',['../classDiocotronDensitySolution.html#a59c17bab82ed59b39b68750be2f81b62',1,'DiocotronDensitySolution']]], + ['get_5ftest_5ffunction_63',['get_test_function',['../classAdvectionSimulation.html#ae919baac00384fe092e9e7497371fa4f',1,'AdvectionSimulation::get_test_function()'],['../classAdvectionFieldSimulation.html#ab889ba149adbbc478ca434554391c9f0',1,'AdvectionFieldSimulation::get_test_function()']]], + ['get_5ftuple_64',['get_tuple',['../classMultipatchType.html#a6a44d19ff0704be6f0b4e1d476cefbcc',1,'MultipatchType']]], + ['get_5ftype_5fseq_5fconnections_5ft_65',['get_type_seq_connections_t',['../classMultipatchConnectivity.html#a4a3c042b78101bb31a9402fb6cb24f4b',1,'MultipatchConnectivity']]], + ['get_5fvalue_5fand_5fgradient_66',['get_value_and_gradient',['../classPolarSplineFEMPoissonLikeSolver.html#a1365cb08d0b9a262dd4c89545edce0dd',1,'PolarSplineFEMPoissonLikeSolver::get_value_and_gradient(double &value, std::array< double, 2 > &gradient, EvalDeriv1DType const &r_basis, EvalDeriv1DType const &theta_basis)'],['../classPolarSplineFEMPoissonLikeSolver.html#aaa2f5cbc9937fab97a4dcbd0a36dba6c',1,'PolarSplineFEMPoissonLikeSolver::get_value_and_gradient(double &value, std::array< double, 2 > &gradient, EvalDeriv2DType const &basis, EvalDeriv2DType const &)']]], + ['get_5fvalues_5ffield_67',['get_values_field',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#adffb6410e57ef9d4d3fd8801cbe73a30',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_values_field()'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#acf6b5f3e9791535ee527ffe5fe3ce71b',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_values_field() const']]], + ['getting_20started_68',['Recommended Steps for Getting Started',['../docs_getting_started.html#docs_getting_started__Recommended_Steps_for_Getting_Started',1,'']]], + ['getting_20started_20with_20gyselalib_69',['Getting Started with Gyselalib++',['../docs_getting_started.html',1,'']]], + ['ghostedvx_70',['GhostedVx',['../structCollisionsIntra_1_1GhostedVx.html',1,'CollisionsIntra']]], + ['ghostedvxstaggered_71',['GhostedVxStaggered',['../structCollisionsIntra_1_1GhostedVxStaggered.html',1,'CollisionsIntra']]], + ['git_72',['Using Git',['../docs_Using_git.html',1,'']]], + ['git_20reports_20changes_20in_20the_20submodule_20but_20i_20didn_20t_20change_20this_20code_73',['Q: Git reports changes in the submodule but I didn't change this code',['../docs_Using_git.html#autotoc_md20',1,'']]], + ['given_20advection_20field_74',['1D advection with a given advection field',['../src_advection.html#src_advection__1D_advection_with_a_given_advection_field',1,'']]], + ['global_20analytical_20invertible_20mapping_75',['Global analytical invertible mapping',['../src_multipatch_connectivity.html#autotoc_md77',1,'']]], + ['grid_76',['grid',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Grid',1,'Grid'],['../simulations_geometryXY_guiding_center.html#autotoc_md42',1,'Grid']]], + ['grid1_77',['Grid1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#abad4a55c8bc66356aeb75b17e6169325',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['grid2_78',['Grid2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a10e13ba81718c97997111ded99c2276c',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['gridbuilder_79',['gridbuilder',['../classGridBuilder.html#a070eaf99580a98f094ee4e42f66ea2dd',1,'GridBuilder::GridBuilder()'],['../classGridBuilder.html',1,'GridBuilder< Grid1D >']]], + ['gridfourier_80',['GridFourier',['../structFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace2aeecfe91d464f5738599cc105fb6087.html',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], + ['gridmom_81',['GridMom',['../structGridMom.html',1,'']]], + ['gridmu_82',['GridMu',['../structGridMu.html',1,'']]], + ['gridpdedimq_83',['GridPDEDimQ',['../structFEM1DPoissonSolver_1_1GridPDEDimQ.html',1,'FEM1DPoissonSolver']]], + ['gridr_84',['gridr',['../structonion__shape__non__uniform__2d__2patches_1_1GridR.html',1,'onion_shape_non_uniform_2d_2patches::GridR< PatchIdx >'],['../structonion__shape__uniform__2d__2patches_1_1GridR.html',1,'onion_shape_uniform_2d_2patches::GridR< PatchIdx >'],['../structGridR.html',1,'GridR']]], + ['gridrrefined_85',['GridRRefined',['../structRefinedDiscreteToCartesianBuilder_1_1GridRRefined.html',1,'RefinedDiscreteToCartesianBuilder']]], + ['gridtheta_86',['gridtheta',['../structGridTheta.html',1,'GridTheta'],['../structonion__shape__non__uniform__2d__2patches_1_1GridTheta.html',1,'onion_shape_non_uniform_2d_2patches::GridTheta< PatchIdx >'],['../structonion__shape__uniform__2d__2patches_1_1GridTheta.html',1,'onion_shape_uniform_2d_2patches::GridTheta< PatchIdx >']]], + ['gridthetarefined_87',['GridThetaRefined',['../structRefinedDiscreteToCartesianBuilder_1_1GridThetaRefined.html',1,'RefinedDiscreteToCartesianBuilder']]], + ['gridvpar_88',['GridVpar',['../structGridVpar.html',1,'']]], + ['gridvx_89',['GridVx',['../structGridVx.html',1,'']]], + ['gridvy_90',['GridVy',['../structGridVy.html',1,'']]], + ['gridx_91',['gridx',['../structfigure__of__eight__5patches_1_1GridX.html',1,'figure_of_eight_5patches::GridX< PatchIdx >'],['../structGridX.html',1,'GridX'],['../structnon__periodic__non__uniform__2d__2patches_1_1GridX.html',1,'non_periodic_non_uniform_2d_2patches::GridX< PatchIdx >'],['../structnon__periodic__non__uniform__2d__3patches_1_1GridX.html',1,'non_periodic_non_uniform_2d_3patches::GridX< PatchIdx >'],['../structnon__periodic__uniform__2d__2patches_1_1GridX.html',1,'non_periodic_uniform_2d_2patches::GridX< PatchIdx >'],['../structnon__periodic__uniform__2d__3patches_1_1GridX.html',1,'non_periodic_uniform_2d_3patches::GridX< PatchIdx >'],['../structperiodic__strips__uniform__2d__9patches_1_1GridX.html',1,'periodic_strips_uniform_2d_9patches::GridX< PatchIdx >']]], + ['gridy_92',['gridy',['../structperiodic__strips__uniform__2d__9patches_1_1GridY.html',1,'periodic_strips_uniform_2d_9patches::GridY< PatchIdx >'],['../structfigure__of__eight__5patches_1_1GridY.html',1,'figure_of_eight_5patches::GridY< PatchIdx >'],['../structGridY.html',1,'GridY'],['../structnon__periodic__uniform__2d__3patches_1_1GridY.html',1,'non_periodic_uniform_2d_3patches::GridY< PatchIdx >'],['../structnon__periodic__non__uniform__2d__2patches_1_1GridY.html',1,'non_periodic_non_uniform_2d_2patches::GridY< PatchIdx >'],['../structnon__periodic__non__uniform__2d__3patches_1_1GridY.html',1,'non_periodic_non_uniform_2d_3patches::GridY< PatchIdx >'],['../structnon__periodic__uniform__2d__2patches_1_1GridY.html',1,'non_periodic_uniform_2d_2patches::GridY< PatchIdx >']]], + ['gslx_93',['gslx',['../namespacegslx.html',1,'']]], + ['guiding_20center_20case_94',['Guiding center case',['../src_geometryRTheta_advection_field.html#src_geometryRTheta_advection_field__Guiding_center_case',1,'']]], + ['guiding_20center_20x_20y_20simulation_95',['Guiding center (X,Y) simulation',['../simulations_geometryXY_guiding_center.html',1,'simulations_geometryXY']]], + ['gyselalib_96',['gyselalib',['../docs_getting_started.html',1,'Getting Started with Gyselalib++'],['../index.html',1,'Gyselalib++'],['../docs_getting_started.html#docs_getting_started__Understanding_Functional_Programming_in_Gyselalibxx',1,'Understanding Functional Programming in Gyselalib++']]], + ['gyselalib_20codebase_97',['Navigating the Gyselalib++ Codebase',['../docs_getting_started.html#docs_getting_started__Navigating_the_Gyselalibxx_Codebase',1,'']]], + ['gyselalib_20contents_98',['Gyselalib++ contents',['../src.html',1,'']]], + ['gyselalib_20simulations_99',['Gyselalib++ simulations',['../simulations.html',1,'']]], + ['gyselalib_20tests_100',['Gyselalib++ tests',['../tests.html',1,'']]], + ['gyselalibxx_101',['Using DDC in Gyselalibxx',['../docs_DDC_in_gyselalibxx.html',1,'']]] ]; diff --git a/search/all_c.js b/search/all_c.js index 30d7b0676..ef16fbcda 100644 --- a/search/all_c.js +++ b/search/all_c.js @@ -25,147 +25,148 @@ var searchData= ['idx_5frange_5ftype1_22',['idx_range_type1',['../classIMPITranspose.html#a280d7345bbf2d4f849a36a49bc4643f9',1,'IMPITranspose::idx_range_type1'],['../classMPITransposeAllToAll.html#aaaab817292b16b7950c336c245618f35',1,'MPITransposeAllToAll::idx_range_type1']]], ['idx_5frange_5ftype2_23',['idx_range_type2',['../classIMPITranspose.html#af0c568eecf467ecb7e913c5b3fc04f99',1,'IMPITranspose::idx_range_type2'],['../classMPITransposeAllToAll.html#af9426bfbb72332bf45cfff384863ce21',1,'MPITransposeAllToAll::idx_range_type2']]], ['idx_5ftype_24',['idx_type',['../classMultipatchField.html#a5a2a447cf52dda49f36c1089372e4e42',1,'MultipatchField']]], - ['idxrange_25',['idxrange',['../classRK2.html#a468e0909ac8b50f109dc810879253134',1,'RK2::IdxRange'],['../classITimeStepper.html#a468e0909ac8b50f109dc810879253134',1,'ITimeStepper::IdxRange'],['../classEuler.html#a468e0909ac8b50f109dc810879253134',1,'Euler::IdxRange'],['../classCrankNicolson.html#a468e0909ac8b50f109dc810879253134',1,'CrankNicolson::IdxRange'],['../classRK3.html#a468e0909ac8b50f109dc810879253134',1,'RK3::IdxRange'],['../classRK4.html#a468e0909ac8b50f109dc810879253134',1,'RK4::IdxRange']]], - ['idxrange1_26',['IdxRange1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ad0a77fd592485eb2c2d931f0db1ac9e8',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrange12_27',['IdxRange12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#abcf91678d4dd96d85521818178d54d66',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrange2_28',['IdxRange2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ae6a2972346b2cd63c07ff4d77a5b5b33',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrangebs1_29',['IdxRangeBS1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ac165e7e0ef0a783518a55c822eeec67f',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrangebs12_30',['IdxRangeBS12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a4753baa1e93d836c5aaeb8ddbf9c58d2',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrangebs2_31',['IdxRangeBS2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a281638bbfde5f496544d54ce87a89461',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrangefdistribu_32',['idxrangefdistribu',['../classGeometryXVx.html#afca0714427d19b4e591abd6f7b0656e8',1,'GeometryXVx::IdxRangeFdistribu'],['../classGeometryXYVxVy.html#ad164a1e1a7a2d43424dd9e1f88a66c22',1,'GeometryXYVxVy::IdxRangeFdistribu']]], - ['idxrangefieldval_33',['IdxRangeFieldVal',['../classPartialDerivative.html#a45597e48eeae460364f3ddea1d1d05e8',1,'PartialDerivative']]], - ['idxrangemu_34',['IdxRangeMu',['../classCollisionSpVparMu.html#adf88b0d72b030bd51728e9c0b35896cb',1,'CollisionSpVparMu']]], - ['idxranger_35',['IdxRangeR',['../classCollisionSpVparMu.html#a8f98c8f578998f9668cc30f0f141df5f',1,'CollisionSpVparMu']]], - ['idxrangeslice_36',['idxrangeslice',['../classIdxRangeSlice.html#af5cb71c4e5ef820d8774388eb6f44414',1,'IdxRangeSlice::IdxRangeSlice()=default'],['../classIdxRangeSlice.html#a14b43890dfd560f54e3de3c3859bd31d',1,'IdxRangeSlice::IdxRangeSlice(Idx< Dims... > front, IdxStep< Dims... > size, IdxStep< Dims... > stride)'],['../classIdxRangeSlice.html#a2b89aee054545931b156449008fd8fff',1,'IdxRangeSlice::IdxRangeSlice(DDoms const &... valid_indices)'],['../classIdxRangeSlice.html',1,'IdxRangeSlice< Dims >']]], - ['idxrangeslice_3c_20edgegrid1_20_3e_37',['IdxRangeSlice< EdgeGrid1 >',['../classIdxRangeSlice.html',1,'']]], - ['idxrangeslice_3c_20edgegrid2_20_3e_38',['IdxRangeSlice< EdgeGrid2 >',['../classIdxRangeSlice.html',1,'']]], - ['idxrangesliceiterator_39',['idxrangesliceiterator',['../structIdxRangeSliceIterator.html#a51e30a5240e788d2617746e1e0e3106a',1,'IdxRangeSliceIterator::IdxRangeSliceIterator()'],['../structIdxRangeSliceIterator.html',1,'IdxRangeSliceIterator< Grid1D >']]], - ['idxrangespatial_40',['idxrangespatial',['../classGeometryXYVxVy.html#a42ee633bb4e12b94dfccb9207bee2840',1,'GeometryXYVxVy::IdxRangeSpatial'],['../classGeometryXVx.html#a0e14480d4976661b66acb462e3beb309',1,'GeometryXVx::IdxRangeSpatial']]], - ['idxrangespthetarvpar_41',['IdxRangeSpThetaRVpar',['../classCollisionSpVparMu.html#a37fa025202123c51924d7d3b703499a8',1,'CollisionSpVparMu']]], - ['idxrangespxvx_5fghosted_42',['IdxRangeSpXVx_ghosted',['../classCollisionsIntra.html#a78125fea3147218240c8bb1cfd8b3b4e',1,'CollisionsIntra']]], - ['idxrangespxvx_5fghosted_5fstaggered_43',['IdxRangeSpXVx_ghosted_staggered',['../classCollisionsIntra.html#aa8de0dc7f09923428fa8ef0e30aeef1e',1,'CollisionsIntra']]], - ['idxrangethetar_44',['IdxRangeThetaR',['../classCollisionSpVparMu.html#a96fb7d2f1dab8e1b545564a663ec5680',1,'CollisionSpVparMu']]], - ['idxrangetoslice_45',['IdxRangeToSlice',['../structIdxRangeToSlice.html',1,'']]], - ['idxrangevelocity_46',['idxrangevelocity',['../classGeometryXVx.html#a8903d9f025308985617b427783801967',1,'GeometryXVx::IdxRangeVelocity'],['../classGeometryXYVxVy.html#a73bbb5da0780d301493db3c107f8e06b',1,'GeometryXYVxVy::IdxRangeVelocity']]], - ['idxrangevpar_47',['IdxRangeVpar',['../classCollisionSpVparMu.html#a96078427a19cbe8729130fe3fbb5ed7c',1,'CollisionSpVparMu']]], - ['idxspthetarvpar_48',['IdxSpThetaRVpar',['../classCollisionSpVparMu.html#a1dd423151b30318f4054b31e0b59fd8d',1,'CollisionSpVparMu']]], - ['idxspxvx_5fghosted_49',['IdxSpXVx_ghosted',['../classCollisionsIntra.html#aa075cab1489331085e1473960b074dd3',1,'CollisionsIntra']]], - ['idxspxvx_5fghosted_5fstaggered_50',['IdxSpXVx_ghosted_staggered',['../classCollisionsIntra.html#a8bd3150e39cbad46ac340e07ca315662',1,'CollisionsIntra']]], - ['idxstep1_51',['IdxStep1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af6492b7437a05bffcae91ec488fb3ebc',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxstep12_52',['IdxStep12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a7d0f81f6499b4284768beb4cffff271a',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxstep2_53',['IdxStep2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af4933351800318b415a122d2a2ef07bd',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxthetar_54',['IdxThetaR',['../classCollisionSpVparMu.html#a9276a78762d7c4fe256dd5796e6496b2',1,'CollisionSpVparMu']]], - ['idxvx_5fghosted_55',['IdxVx_ghosted',['../classCollisionsIntra.html#af1604f3f73be57180f6ab5e01606b1fd',1,'CollisionsIntra']]], - ['idxvx_5fghosted_5fstaggered_56',['IdxVx_ghosted_staggered',['../classCollisionsIntra.html#a164c6c249095a533900a12e2f1f48e25',1,'CollisionsIntra']]], - ['ielec_57',['ielec',['../classSpeciesInformation_1_1Impl.html#af4f71674dfd6e0c19e53a92bfaec3711',1,'SpeciesInformation::Impl']]], - ['iequilibrium_58',['IEquilibrium',['../classIEquilibrium.html',1,'']]], - ['ifootfinder_59',['IFootFinder',['../classIFootFinder.html',1,'']]], - ['iinitialization_60',['IInitialization',['../classIInitialization.html',1,'']]], - ['iinterpolator_61',['IInterpolator',['../classIInterpolator.html',1,'']]], - ['iinterpolator_3c_20gridinterp_2c_20grid1d_2e_2e_2e_20_3e_62',['IInterpolator< GridInterp, Grid1D... >',['../classIInterpolator.html',1,'']]], - ['iinterpolatorrtheta_63',['IInterpolatorRTheta',['../classIInterpolatorRTheta.html',1,'']]], - ['impilayout_64',['IMPILayout',['../classIMPILayout.html',1,'']]], - ['impilayout_3c_20idxrangedata_2c_20distributeddim_2e_2e_2e_20_3e_65',['IMPILayout< IdxRangeData, DistributedDim... >',['../classIMPILayout.html',1,'']]], - ['impitranspose_66',['impitranspose',['../classIMPITranspose.html#a896a457be3e1f9584122760868b9cbd4',1,'IMPITranspose::IMPITranspose()'],['../classIMPITranspose.html',1,'IMPITranspose< Layout1, Layout2 >']]], - ['impl_67',['impl',['../classMoments_1_1Impl.html#a53ef02b0e60b8aeafdaed641c660ba61',1,'Moments::Impl::Impl()'],['../classPolarBSplines_1_1Impl.html#a386e9fe73ec0a24b3773353aa4ad1af2',1,'PolarBSplines::Impl::Impl(Impl &&x)=default'],['../classPolarBSplines_1_1Impl.html#af79c5cc9a060916b31c8a41e5f7cd7da',1,'PolarBSplines::Impl::Impl(Impl const &x)=default'],['../classPolarBSplines_1_1Impl.html#aad7f0ed019b40ca8bea9259f53d94a83',1,'PolarBSplines::Impl::Impl(Impl< DDim, OriginMemorySpace > const &impl)'],['../classPolarBSplines_1_1Impl.html#a76ae9aee443a828ec5f62ddabbda37fb',1,'PolarBSplines::Impl::Impl(const DiscreteMapping &curvilinear_to_cartesian)'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#a4a5bf93f1e18841db8b6c010e7a1bcde',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(Impl &&x)=default'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#a49ed43bd10c8c5ea683b799a4106e3d2',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(Impl const &x)=default'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#ae33d1d61323db71d5d5a5089473e3b67',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(Impl< DDim, OriginMemorySpace > const &impl)'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#ab628a878e7d858a429dd6a2de850447f',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(CartesianToBarycentric< X, Y, Corner1Tag, Corner2Tag, Corner3Tag > const &coord_changer)'],['../classSpeciesInformation_1_1Impl.html#a1f565677d75cf122a50af8043c11d012',1,'SpeciesInformation::Impl::Impl(DFieldMem< index_range_type, MemorySpace > charge, DFieldMem< index_range_type, MemorySpace > mass)'],['../classSpeciesInformation_1_1Impl.html#a9db19ad040ca32c4bcd51b6aedd776c3',1,'SpeciesInformation::Impl::Impl(Impl< Grid1D, OMemorySpace > const &impl)'],['../classMoments_1_1Impl.html#a1d0f28c92509bf1c21a8f930dca915ea',1,'Moments::Impl::Impl()'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html',1,'TriangularBernsteinPolynomialBasis< X, Y, Corner1Tag, Corner2Tag, Corner3Tag, D >::Impl< DDim, MemorySpace >'],['../classSpeciesInformation_1_1Impl.html',1,'SpeciesInformation::Impl< Grid1D, MemorySpace >'],['../classPolarBSplines_1_1Impl.html',1,'PolarBSplines< BSplinesR, BSplinesTheta, C >::Impl< DDim, MemorySpace >'],['../classMoments_1_1Impl.html',1,'Moments::Impl< Grid1D, MemorySpace >']]], - ['implementation_68',['Implementation',['../docs_CODING_STANDARD.html#autotoc_md7',1,'']]], - ['implicit_20capture_20of_20this_20in_20extended_20lambda_20expression_69',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], - ['implicit_20predictor_20corrector_70',['Implicit predictor-corrector',['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Implicit_predictor-corrector',1,'']]], - ['in_20documentation_71',['Mathematical notation in documentation',['../docs_Adding_docs.html#docs_Adding_docs__Mathematical_notation_in_documentation',1,'']]], - ['in_20extended_20lambda_20expression_72',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], - ['in_20gyselalib_73',['Understanding Functional Programming in Gyselalib++',['../docs_getting_started.html#docs_getting_started__Understanding_Functional_Programming_in_Gyselalibxx',1,'']]], - ['in_20gyselalibxx_74',['Using DDC in Gyselalibxx',['../docs_DDC_in_gyselalibxx.html',1,'']]], - ['in_20polar_20coordinates_75',['in polar coordinates',['../src_geometryRTheta_interpolation.html',1,'Spline interpolator in polar coordinates'],['../tests_geometryRTheta_2d_spline_interpolator.html',1,'Tests on spline interpolator in polar coordinates']]], - ['in_20r_20theta_20geometry_76',['Simulations in (r, theta) geometry',['../simulations_geometryRTheta.html',1,'simulations']]], - ['in_20the_20submodule_20but_20i_20didn_20t_20change_20this_20code_77',['Q: Git reports changes in the submodule but I didn't change this code',['../docs_Using_git.html#autotoc_md20',1,'']]], - ['in_20the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_78',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], - ['in_20x_20vx_20geometry_79',['Simulations in (x, vx) geometry',['../simulations_geometryXVx.html',1,'simulations']]], - ['in_20x_20y_20geometry_80',['Simulations in (x, y) geometry',['../simulations_geometryXY.html',1,'simulations']]], - ['index_81',['Index',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Index',1,'']]], - ['index_20range_82',['Index Range',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Index_Range',1,'']]], - ['index_20step_83',['Index Step',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Index_Step',1,'']]], - ['index_20step_20for_20finite_20differences_84',['Example use of Index Step for Finite Differences',['../docs_DDC_in_gyselalibxx.html#autotoc_md17',1,'']]], - ['index_20transformation_85',['Index transformation',['../src_multipatch_connectivity.html#autotoc_md74',1,'']]], - ['index_5frange_5ftype_86',['index_range_type',['../classVectorField.html#afde84cdadf9f031e6cd584f15b0acb3f',1,'VectorField::index_range_type'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a9c9e1edb698734a3cc18c65c16f8cf2e',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::index_range_type'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a8976a7b20051721b99a646045565c0bb',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::index_range_type'],['../classVectorFieldMem.html#ac91e05db87f7dbcbc29c63ef94e900ac',1,'VectorFieldMem::index_range_type']]], - ['index_5ftype_87',['index_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a5f7df456b19ca5dbdc9ffcdb4c13a1de',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], - ['indexing_20and_20associated_20concepts_88',['Indexing and associated concepts',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Indexing_and_associated_concepts',1,'']]], - ['init_5ffrom_5finput_89',['init_from_input',['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classSingleModePerturbInitialization.html#a0defeabc2c4c50acb313cc919e0f39fa',1,'SingleModePerturbInitialization::init_from_input()'],['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classBumpontailEquilibrium.html#ade9524f9a546fdcb20c3e60f9d788edd',1,'BumpontailEquilibrium::init_from_input()'],['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classSingleModePerturbInitialization.html#a53a65b6a5efe391943ebd71f97be0278',1,'SingleModePerturbInitialization::init_from_input()']]], - ['init_5fnnz_5fper_5fline_90',['init_nnz_per_line',['../classPolarSplineFEMPoissonLikeSolver.html#ad6c2770cd84599b20bc3a9adc5a94c6b',1,'PolarSplineFEMPoissonLikeSolver']]], - ['initialisation_91',['initialisation',['../classDiocotronDensitySolution.html#a87def8e146e4c4104e3a3d3d7d54445d',1,'DiocotronDensitySolution']]], - ['initialization_92',['initialization',['../src_geometryRTheta_initialization.html',1,'Initialization'],['../src_geometryRTheta_initialization.html#autotoc_md60',1,'Initialization']]], - ['initialization_20methods_93',['initialization methods',['../src_geometryXVx_initialization.html',1,'Initialization methods'],['../src_geometryVparMu_initialization.html',1,'Initialization methods']]], - ['initialization_20on_20x_20y_20geometry_94',['Initialization on (x,y) geometry',['../src_geometryXY_initialization.html',1,'src_geometryXY']]], - ['inner_5fedges_95',['inner_edges',['../classMultipatchConnectivity.html#a762ff8496d1ec32be37bad6e25f7e926',1,'MultipatchConnectivity']]], - ['input_20and_20output_96',['Functions used for input and output.',['../src_io.html',1,'src']]], - ['inputdfieldspthetarvpar_97',['InputDFieldSpThetaRVpar',['../classCollisionSpVparMu.html#a11cef1817d30d02345e255b3d95c33a2',1,'CollisionSpVparMu']]], - ['instability_98',['instability',['../src_geometryRTheta_initialization.html#src_geometryRTheta_initialization__Diocotron_instability',1,'Diocotron instability'],['../simulations_geometryRTheta_diocotron.html',1,'Diocotron instability'],['../simulations_geometryRTheta_diocotron.html#simulations_geometryRTheta_diocotron__Test_case_-_diocotron_instability',1,'Test case - diocotron instability']]], - ['instability_20test_20case_99',['instability test case',['../src_geometryXY_initialization.html#src_geometryXY_initialization__Kelvin-Helmholtz_instability_test_case',1,'Kelvin-Helmholtz instability test case'],['../simulations_geometryXY_guiding_center.html#autotoc_md43',1,'Test case: Kelvin-Helmholtz instability test case']]], - ['integrals_100',['integrals',['../classPolarBSplines_1_1Impl.html#aced2ee11d0967ae40b922adeefbc8a28',1,'PolarBSplines::Impl']]], - ['integrate_101',['integrate',['../classMultipatchSplineEvaluator2D.html#a6cea2a836a1df080f509a16ce5802688',1,'MultipatchSplineEvaluator2D::integrate()'],['../classPolarSplineEvaluator.html#a4138c63cadd45444a7d820eda652b64b',1,'PolarSplineEvaluator::integrate()']]], - ['integration_102',['Time integration',['../src_geometryXVx_time_integration.html',1,'src_geometryXVx']]], - ['integration_20method_20used_20to_20solve_20the_20characteristic_20equation_3a_103',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], - ['integration_20methods_104',['Time integration methods',['../src_geometryRTheta_advection.html#src_geometryRTheta_advection__Time_integration_methods',1,'']]], - ['interface_105',['Interface',['../structInterface.html',1,'']]], - ['interface_5fcollection_106',['interface_collection',['../classMultipatchConnectivity.html#abde3a24c33217daec8074c6ab527f84c',1,'MultipatchConnectivity']]], - ['interfaces_107',['interfaces',['../docs_CODING_STANDARD.html#autotoc_md6',1,'Interfaces'],['../src_multipatch_connectivity.html#src_multipatch_connectivity__Interfaces',1,'Interfaces']]], - ['intermediatebernsteinbasis_108',['IntermediateBernsteinBasis',['../structPolarBSplines_1_1Impl_1_1IntermediateBernsteinBasis.html',1,'PolarBSplines::Impl']]], - ['internal_5fdistribute_5fidx_5frange_109',['internal_distribute_idx_range',['../classMPILayout.html#a6f9deb749c456a6c7a8fbccb10f35bd6',1,'MPILayout::internal_distribute_idx_range(IdxRange< HeadTag > global_idx_range, int comm_size, int rank)'],['../classMPILayout.html#ad73e8704d2db772bd557acb1876f0b02',1,'MPILayout::internal_distribute_idx_range(IdxRange< HeadTag, Tags... > idx_range, int comm_size, int rank)']]], - ['internal_5ffields_110',['internal_fields',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a31fae5a5f7a6d504fcca1299b6b9eedd',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], - ['internal_5fmdspan_5ftype_111',['internal_mdspan_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a4be3e064e85e11603bf67daaebf70dc6',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], - ['internal_5fmdview_5ftype_112',['internal_mdview_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a54599ac7aa42fc2a124115661a0c676b',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], - ['internalconstfieldonpatch_113',['internalconstfieldonpatch',['../classMultipatchField.html#a44a9591797e84d0f116b8d424725fdea',1,'MultipatchField::InternalConstFieldOnPatch'],['../classMultipatchFieldMem.html#a3c244af591bf82d81c2bcbc05d614f7c',1,'MultipatchFieldMem::InternalConstFieldOnPatch']]], - ['internalfieldonpatch_114',['internalfieldonpatch',['../classMultipatchFieldMem.html#a0619dafdf75c12736c49816b0d928f6a',1,'MultipatchFieldMem::InternalFieldOnPatch'],['../classMultipatchField.html#af03d87daa72042dad5e2f47b11f3fc06',1,'MultipatchField::InternalFieldOnPatch']]], - ['internalidxrangeonpatch_115',['internalidxrangeonpatch',['../classMultipatchField.html#a233d6c418d017cdfd11e79694eee50b0',1,'MultipatchField::InternalIdxRangeOnPatch'],['../classMultipatchFieldMem.html#affec2555dc86033cbcb5e80113cd91ac',1,'MultipatchFieldMem::InternalIdxRangeOnPatch']]], - ['internalspoofgrid_116',['InternalSpoofGrid',['../structcollisions__dimensions_1_1InternalSpoofGrid.html',1,'collisions_dimensions']]], - ['internalspoofgridr_117',['InternalSpoofGridR',['../structcollisions__dimensions_1_1InternalSpoofGridR.html',1,'collisions_dimensions']]], - ['internalspoofgridtheta_118',['InternalSpoofGridTheta',['../structcollisions__dimensions_1_1InternalSpoofGridTheta.html',1,'collisions_dimensions']]], - ['interpolation_119',['Spline Interpolation',['../src_interpolation.html#src_interpolation__Spline_Interpolation',1,'']]], - ['interpolation_20methods_120',['Interpolation Methods',['../src_interpolation.html',1,'src']]], - ['interpolation_5fdiscrete_5fdimension_5ftype_121',['interpolation_discrete_dimension_type',['../classddcHelper_1_1NonUniformInterpolationPoints.html#afe391dfd5787f205a4096fef58e7beab',1,'ddcHelper::NonUniformInterpolationPoints']]], - ['interpolator_20in_20polar_20coordinates_122',['interpolator in polar coordinates',['../src_geometryRTheta_interpolation.html',1,'Spline interpolator in polar coordinates'],['../tests_geometryRTheta_2d_spline_interpolator.html',1,'Tests on spline interpolator in polar coordinates']]], - ['interpolator_5fon_5fidx_5frange_123',['interpolator_on_idx_range',['../structinterpolator__on__idx__range.html',1,'']]], - ['interpolator_5fon_5fidx_5frange_3c_20interp_2c_20gridinterp_2c_20idxrange_3c_20grid1d_2e_2e_2e_20_3e_20_3e_124',['interpolator_on_idx_range< Interp, GridInterp, IdxRange< Grid1D... > >',['../structinterpolator__on__idx__range_3_01Interp_00_01GridInterp_00_01IdxRange_3_01Grid1D_8_8_8_01_4_01_4.html',1,'']]], - ['inv_5fjacobian_125',['inv_jacobian',['../classCombinedMapping.html#ac60309ab3ffb26c973f521c862ce5ed1',1,'CombinedMapping']]], - ['inv_5fjacobian_5f11_126',['inv_jacobian_11',['../classCircularToCartesian.html#abf4cdbc7b10f47056aa3f41a3e340811',1,'CircularToCartesian::inv_jacobian_11()'],['../classCombinedMapping.html#a3ed2f33fa5953ac3e731b041c9bc149b',1,'CombinedMapping::inv_jacobian_11()'],['../classInverseJacobianMatrix.html#a39a32715b1ab87b946eef74360303c30',1,'InverseJacobianMatrix::inv_jacobian_11()'],['../classCzarnyToCartesian.html#a62a06fbfe6432d9e7d789b75af7c31f2',1,'CzarnyToCartesian::inv_jacobian_11()']]], - ['inv_5fjacobian_5f12_127',['inv_jacobian_12',['../classCircularToCartesian.html#a6a6a8ce8a56f37456954985bc5555573',1,'CircularToCartesian::inv_jacobian_12()'],['../classCzarnyToCartesian.html#a2558af0463cf8a93b5a6e1941bd3d0fb',1,'CzarnyToCartesian::inv_jacobian_12()'],['../classInverseJacobianMatrix.html#adfb394b2e3169b46fae6d5d483714fa2',1,'InverseJacobianMatrix::inv_jacobian_12()'],['../classCombinedMapping.html#a334c16692b5c155c579a6fada37fa822',1,'CombinedMapping::inv_jacobian_12()']]], - ['inv_5fjacobian_5f21_128',['inv_jacobian_21',['../classCircularToCartesian.html#ada4943d56e137e909c05f4a65695f32c',1,'CircularToCartesian::inv_jacobian_21()'],['../classCombinedMapping.html#ae27e58bd0f9df22c8b850199eef8a7a1',1,'CombinedMapping::inv_jacobian_21()'],['../classCzarnyToCartesian.html#a4b1e9eb7caeeaf338d5ab83b1f269855',1,'CzarnyToCartesian::inv_jacobian_21()'],['../classInverseJacobianMatrix.html#ac017681ec46990381351f88dc784c143',1,'InverseJacobianMatrix::inv_jacobian_21()']]], - ['inv_5fjacobian_5f22_129',['inv_jacobian_22',['../classCircularToCartesian.html#a48349b38c6381e571f4028c5284ee504',1,'CircularToCartesian::inv_jacobian_22()'],['../classCombinedMapping.html#adcac00610eac90e415ea1fd55f09319e',1,'CombinedMapping::inv_jacobian_22()'],['../classCzarnyToCartesian.html#a0b29c13b61c5e33d93e24890f06faf61',1,'CzarnyToCartesian::inv_jacobian_22()'],['../classInverseJacobianMatrix.html#ae17b8f5837fdfec9979bd9b558b89056',1,'InverseJacobianMatrix::inv_jacobian_22()']]], - ['inv_5fjacobian_5fmatrix_130',['inv_jacobian_matrix',['../classCircularToCartesian.html#ab32fc8c4571885fb58a6580b2c1bad5e',1,'CircularToCartesian::inv_jacobian_matrix()'],['../classCombinedMapping.html#a6dbf6686929960b3bc19973a22c2c275',1,'CombinedMapping::inv_jacobian_matrix()'],['../classCzarnyToCartesian.html#aea75514939b49d499e11c606decf049a',1,'CzarnyToCartesian::inv_jacobian_matrix()']]], - ['inverse_131',['inverse',['../classMetricTensor.html#aad3d46ec6f7910bcacd5075de429a08d',1,'MetricTensor']]], - ['inversejacobianmatrix_132',['inversejacobianmatrix',['../classInverseJacobianMatrix.html#a8484531e5dbf59a3ab2a6ef08711a84d',1,'InverseJacobianMatrix::InverseJacobianMatrix()'],['../classInverseJacobianMatrix.html',1,'InverseJacobianMatrix< Mapping, PositionCoordinate >']]], - ['inversejacobianmatrix_3c_20curvilineartocartesian_2c_20coord_3c_20r_2c_20theta_20_3e_20_3e_133',['InverseJacobianMatrix< CurvilinearToCartesian, Coord< R, Theta > >',['../classInverseJacobianMatrix.html',1,'']]], - ['inversejacobianmatrix_3c_20inversemapping2_2c_20coordjacobian_20_3e_134',['InverseJacobianMatrix< InverseMapping2, CoordJacobian >',['../classInverseJacobianMatrix.html',1,'']]], - ['invertible_20mapping_135',['Global analytical invertible mapping',['../src_multipatch_connectivity.html#autotoc_md77',1,'']]], - ['invjacobianopoint_136',['invjacobianopoint',['../classInvJacobianOPoint_3_01CombinedMapping_3_01CzarnyToCartesian_3_01R_00_01Theta_00_01X_00_01Y_8f5ea6a67f8bbc15e1b2c45d7660cfb5.html#ae533e75feb744dd14a9978f9dc01e30c',1,'InvJacobianOPoint< CombinedMapping< CzarnyToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::InvJacobianOPoint()'],['../classInvJacobianOPoint.html',1,'InvJacobianOPoint< Mapping, CoordRTheta >'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01DiscreteToCartesian_3_01X_00_01Y_00_01SplineEvaludfe78b5e2437ea09e09ab68f82896984.html#a0c6cc46cdae9a3e6754060bb54148578',1,'InvJacobianOPoint< CombinedMapping< DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::InvJacobianOPoint()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CircularToCartesian_3_01R_00_01Theta_00_01X_00_0179fdb551d5240572466d89e3eb7a8bfc.html#ab5cee9dca84420eb59677cc2dd5b79d5',1,'InvJacobianOPoint< CombinedMapping< CircularToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::InvJacobianOPoint()']]], - ['invjacobianopoint_3c_20combinedmapping_3c_20circulartocartesian_3c_20r_2c_20theta_2c_20x_2c_20y_20_3e_2c_20cartesiantocircular_3c_20xpc_2c_20ypc_2c_20r_2c_20theta_20_3e_20_3e_2c_20ddc_3a_3acoordinate_3c_20r_2c_20theta_20_3e_20_3e_137',['InvJacobianOPoint< CombinedMapping< CircularToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >',['../classInvJacobianOPoint_3_01CombinedMapping_3_01CircularToCartesian_3_01R_00_01Theta_00_01X_00_0179fdb551d5240572466d89e3eb7a8bfc.html',1,'']]], - ['invjacobianopoint_3c_20combinedmapping_3c_20czarnytocartesian_3c_20r_2c_20theta_2c_20x_2c_20y_20_3e_2c_20cartesiantocircular_3c_20xpc_2c_20ypc_2c_20r_2c_20theta_20_3e_20_3e_2c_20ddc_3a_3acoordinate_3c_20r_2c_20theta_20_3e_20_3e_138',['InvJacobianOPoint< CombinedMapping< CzarnyToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >',['../classInvJacobianOPoint_3_01CombinedMapping_3_01CzarnyToCartesian_3_01R_00_01Theta_00_01X_00_01Y_8f5ea6a67f8bbc15e1b2c45d7660cfb5.html',1,'']]], - ['invjacobianopoint_3c_20combinedmapping_3c_20discretetocartesian_3c_20x_2c_20y_2c_20splineevaluator_2c_20r_2c_20theta_2c_20memoryspace_20_3e_2c_20cartesiantocircular_3c_20xpc_2c_20ypc_2c_20r_2c_20theta_20_3e_20_3e_2c_20ddc_3a_3acoordinate_3c_20r_2c_20theta_20_3e_20_3e_139',['InvJacobianOPoint< CombinedMapping< DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >',['../classInvJacobianOPoint_3_01CombinedMapping_3_01DiscreteToCartesian_3_01X_00_01Y_00_01SplineEvaludfe78b5e2437ea09e09ab68f82896984.html',1,'']]], - ['ipiv_140',['ipiv',['../classMatrix__Banded.html#a5b048b1936941d7188b996cd531cd630',1,'Matrix_Banded']]], - ['ipoissonsolver_141',['IPoissonSolver',['../classIPoissonSolver.html',1,'']]], - ['ipoissonsolver_3c_20idxrange_3c_20gridpdedim1d_2e_2e_2e_20_3e_2c_20idxrangefull_2c_20execspace_3a_3amemory_5fspace_2c_20layoutspace_20_3e_142',['IPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace::memory_space, LayoutSpace >',['../classIPoissonSolver.html',1,'']]], - ['ipoissonsolver_3c_20idxrange_3c_20odims_2e_2e_2e_20_3e_2c_20idxrangefull_2c_20memoryspace_2c_20layoutspace_20_3e_143',['IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >',['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html',1,'']]], - ['ipoissonsolver_3c_20splineevaluator_3a_3aevaluation_5fdomain_5ftype_2c_20splineevaluator_3a_3abatched_5fevaluation_5fdomain_5ftype_2c_20splineevaluator_3a_3amemory_5fspace_2c_20kokkos_3a_3alayout_5fright_20_3e_144',['IPoissonSolver< SplineEvaluator::evaluation_domain_type, SplineEvaluator::batched_evaluation_domain_type, SplineEvaluator::memory_space, Kokkos::layout_right >',['../classIPoissonSolver.html',1,'']]], - ['ipreallocatableinterpolator_145',['IPreallocatableInterpolator',['../classIPreallocatableInterpolator.html',1,'']]], - ['ipreallocatableinterpolator_3c_20gridinterp_2c_20grid1d_2e_2e_2e_20_3e_146',['IPreallocatableInterpolator< GridInterp, Grid1D... >',['../classIPreallocatableInterpolator.html',1,'']]], - ['ipreallocatableinterpolatorrtheta_147',['IPreallocatableInterpolatorRTheta',['../classIPreallocatableInterpolatorRTheta.html',1,'']]], - ['iqnsolver_148',['IQNSolver',['../classIQNSolver.html',1,'']]], - ['irighthandside_149',['IRightHandSide',['../classIRightHandSide.html',1,'']]], - ['is_20not_20defined_150',['X is not defined',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__X_is_not_defined',1,'']]], - ['is_20the_20difference_20between_20debug_20and_20release_20mode_151',['What is the difference between Debug and Release mode?',['../docs_developer_FAQ.html#docs_developer_FAQ__What_is_the_difference_between_Debug_and_Release_mode',1,'']]], - ['is_5fmatch_5favailable_152',['is_match_available',['../classEdgeTransformation.html#a608a25e1800da17a87d13fa7f8a5cfc7',1,'EdgeTransformation']]], - ['is_5fnon_5funiform_5finterpolation_5fpoints_153',['is_non_uniform_interpolation_points',['../structddcHelper_1_1is__non__uniform__interpolation__points.html',1,'ddcHelper']]], - ['is_5fnon_5funiform_5finterpolation_5fpoints_3c_20nonuniforminterpolationpoints_3c_20bsplines_2c_20bcxmin_2c_20bcxmax_20_3e_20_3e_154',['is_non_uniform_interpolation_points< NonUniformInterpolationPoints< BSplines, BcXmin, BcXmax > >',['../structddcHelper_1_1is__non__uniform__interpolation__points_3_01NonUniformInterpolationPoints_3_047d1c8570873e3c052e2e394afcf9270.html',1,'ddcHelper']]], - ['is_5fonion_5fpatch_5flocator_155',['is_onion_patch_locator',['../structis__onion__patch__locator.html',1,'']]], - ['is_5fonion_5fpatch_5flocator_3c_20onionpatchlocator_3c_20multipatchidxranges_2c_20logicaltophysicalmapping_2c_20physicaltologicalmapping_2c_20execspace_20_3e_20_3e_156',['is_onion_patch_locator< OnionPatchLocator< MultipatchIdxRanges, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace > >',['../structis__onion__patch__locator_3_01OnionPatchLocator_3_01MultipatchIdxRanges_00_01LogicalToPhys15c96379834346672a2b2d644897e91f.html',1,'']]], - ['is_5fspoofed_5fdim_5fv_157',['is_spoofed_dim_v',['../namespacecollisions__dimensions.html#ac3125f189a1fac1fa360641606ac3e23',1,'collisions_dimensions']]], - ['is_5fsubidx_5frange_5fcollection_158',['is_subidx_range_collection',['../structis__subidx__range__collection.html',1,'']]], - ['is_5fsubidx_5frange_5fcollection_3c_20idxrangeslice_3c_20tags_2e_2e_2e_20_3e_20_3e_159',['is_subidx_range_collection< IdxRangeSlice< Tags... > >',['../structis__subidx__range__collection_3_01IdxRangeSlice_3_01Tags_8_8_8_01_4_01_4.html',1,'']]], - ['iterator_5fcategory_160',['iterator_category',['../structIdxRangeSliceIterator.html#ae433765c9e433256f44fae63b22c8dd3',1,'IdxRangeSliceIterator']]], - ['itimesolver_161',['ITimeSolver',['../classITimeSolver.html',1,'']]], - ['itimesolverrtheta_162',['ITimeSolverRTheta',['../classITimeSolverRTheta.html',1,'']]], - ['itimestepper_163',['ITimeStepper',['../classITimeStepper.html',1,'']]], - ['itimestepper_3c_20fieldmem_2c_20fieldmem_2c_20kokkos_3a_3adefaultexecutionspace_20_3e_164',['ITimeStepper< FieldMem, FieldMem, Kokkos::DefaultExecutionSpace >',['../classITimeStepper.html',1,'']]], - ['its_20address_20to_20be_20taken_165',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], - ['its_20class_166',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], - ['ivlasovsolver_167',['IVlasovSolver',['../classIVlasovSolver.html',1,'']]] + ['idxcell_25',['IdxCell',['../classPolarSplineFEMPoissonLikeSolver.html#aea010ac6bec8090ec2686ad2110befd4',1,'PolarSplineFEMPoissonLikeSolver']]], + ['idxrange_26',['idxrange',['../classRK2.html#a468e0909ac8b50f109dc810879253134',1,'RK2::IdxRange'],['../classCrankNicolson.html#a468e0909ac8b50f109dc810879253134',1,'CrankNicolson::IdxRange'],['../classEuler.html#a468e0909ac8b50f109dc810879253134',1,'Euler::IdxRange'],['../classITimeStepper.html#a468e0909ac8b50f109dc810879253134',1,'ITimeStepper::IdxRange'],['../classRK3.html#a468e0909ac8b50f109dc810879253134',1,'RK3::IdxRange'],['../classRK4.html#a468e0909ac8b50f109dc810879253134',1,'RK4::IdxRange']]], + ['idxrange1_27',['IdxRange1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ad0a77fd592485eb2c2d931f0db1ac9e8',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrange12_28',['IdxRange12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#abcf91678d4dd96d85521818178d54d66',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrange2_29',['IdxRange2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ae6a2972346b2cd63c07ff4d77a5b5b33',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrangebs1_30',['IdxRangeBS1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ac165e7e0ef0a783518a55c822eeec67f',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrangebs12_31',['IdxRangeBS12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a4753baa1e93d836c5aaeb8ddbf9c58d2',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrangebs2_32',['IdxRangeBS2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a281638bbfde5f496544d54ce87a89461',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrangefdistribu_33',['idxrangefdistribu',['../classGeometryXVx.html#afca0714427d19b4e591abd6f7b0656e8',1,'GeometryXVx::IdxRangeFdistribu'],['../classGeometryXYVxVy.html#ad164a1e1a7a2d43424dd9e1f88a66c22',1,'GeometryXYVxVy::IdxRangeFdistribu']]], + ['idxrangefieldval_34',['IdxRangeFieldVal',['../classPartialDerivative.html#a45597e48eeae460364f3ddea1d1d05e8',1,'PartialDerivative']]], + ['idxrangemu_35',['IdxRangeMu',['../classCollisionSpVparMu.html#adf88b0d72b030bd51728e9c0b35896cb',1,'CollisionSpVparMu']]], + ['idxranger_36',['IdxRangeR',['../classCollisionSpVparMu.html#a8f98c8f578998f9668cc30f0f141df5f',1,'CollisionSpVparMu']]], + ['idxrangeslice_37',['idxrangeslice',['../classIdxRangeSlice.html#af5cb71c4e5ef820d8774388eb6f44414',1,'IdxRangeSlice::IdxRangeSlice()=default'],['../classIdxRangeSlice.html#a14b43890dfd560f54e3de3c3859bd31d',1,'IdxRangeSlice::IdxRangeSlice(Idx< Dims... > front, IdxStep< Dims... > size, IdxStep< Dims... > stride)'],['../classIdxRangeSlice.html#a2b89aee054545931b156449008fd8fff',1,'IdxRangeSlice::IdxRangeSlice(DDoms const &... valid_indices)'],['../classIdxRangeSlice.html',1,'IdxRangeSlice< Dims >']]], + ['idxrangeslice_3c_20edgegrid1_20_3e_38',['IdxRangeSlice< EdgeGrid1 >',['../classIdxRangeSlice.html',1,'']]], + ['idxrangeslice_3c_20edgegrid2_20_3e_39',['IdxRangeSlice< EdgeGrid2 >',['../classIdxRangeSlice.html',1,'']]], + ['idxrangesliceiterator_40',['idxrangesliceiterator',['../structIdxRangeSliceIterator.html#a51e30a5240e788d2617746e1e0e3106a',1,'IdxRangeSliceIterator::IdxRangeSliceIterator()'],['../structIdxRangeSliceIterator.html',1,'IdxRangeSliceIterator< Grid1D >']]], + ['idxrangespatial_41',['idxrangespatial',['../classGeometryXYVxVy.html#a42ee633bb4e12b94dfccb9207bee2840',1,'GeometryXYVxVy::IdxRangeSpatial'],['../classGeometryXVx.html#a0e14480d4976661b66acb462e3beb309',1,'GeometryXVx::IdxRangeSpatial']]], + ['idxrangespthetarvpar_42',['IdxRangeSpThetaRVpar',['../classCollisionSpVparMu.html#a37fa025202123c51924d7d3b703499a8',1,'CollisionSpVparMu']]], + ['idxrangespxvx_5fghosted_43',['IdxRangeSpXVx_ghosted',['../classCollisionsIntra.html#a78125fea3147218240c8bb1cfd8b3b4e',1,'CollisionsIntra']]], + ['idxrangespxvx_5fghosted_5fstaggered_44',['IdxRangeSpXVx_ghosted_staggered',['../classCollisionsIntra.html#aa8de0dc7f09923428fa8ef0e30aeef1e',1,'CollisionsIntra']]], + ['idxrangethetar_45',['IdxRangeThetaR',['../classCollisionSpVparMu.html#a96fb7d2f1dab8e1b545564a663ec5680',1,'CollisionSpVparMu']]], + ['idxrangetoslice_46',['IdxRangeToSlice',['../structIdxRangeToSlice.html',1,'']]], + ['idxrangevelocity_47',['idxrangevelocity',['../classGeometryXYVxVy.html#a73bbb5da0780d301493db3c107f8e06b',1,'GeometryXYVxVy::IdxRangeVelocity'],['../classGeometryXVx.html#a8903d9f025308985617b427783801967',1,'GeometryXVx::IdxRangeVelocity']]], + ['idxrangevpar_48',['IdxRangeVpar',['../classCollisionSpVparMu.html#a96078427a19cbe8729130fe3fbb5ed7c',1,'CollisionSpVparMu']]], + ['idxspthetarvpar_49',['IdxSpThetaRVpar',['../classCollisionSpVparMu.html#a1dd423151b30318f4054b31e0b59fd8d',1,'CollisionSpVparMu']]], + ['idxspxvx_5fghosted_50',['IdxSpXVx_ghosted',['../classCollisionsIntra.html#aa075cab1489331085e1473960b074dd3',1,'CollisionsIntra']]], + ['idxspxvx_5fghosted_5fstaggered_51',['IdxSpXVx_ghosted_staggered',['../classCollisionsIntra.html#a8bd3150e39cbad46ac340e07ca315662',1,'CollisionsIntra']]], + ['idxstep1_52',['IdxStep1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af6492b7437a05bffcae91ec488fb3ebc',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxstep12_53',['IdxStep12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a7d0f81f6499b4284768beb4cffff271a',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxstep2_54',['IdxStep2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af4933351800318b415a122d2a2ef07bd',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxthetar_55',['IdxThetaR',['../classCollisionSpVparMu.html#a9276a78762d7c4fe256dd5796e6496b2',1,'CollisionSpVparMu']]], + ['idxvx_5fghosted_56',['IdxVx_ghosted',['../classCollisionsIntra.html#af1604f3f73be57180f6ab5e01606b1fd',1,'CollisionsIntra']]], + ['idxvx_5fghosted_5fstaggered_57',['IdxVx_ghosted_staggered',['../classCollisionsIntra.html#a164c6c249095a533900a12e2f1f48e25',1,'CollisionsIntra']]], + ['ielec_58',['ielec',['../classSpeciesInformation_1_1Impl.html#af4f71674dfd6e0c19e53a92bfaec3711',1,'SpeciesInformation::Impl']]], + ['iequilibrium_59',['IEquilibrium',['../classIEquilibrium.html',1,'']]], + ['ifootfinder_60',['IFootFinder',['../classIFootFinder.html',1,'']]], + ['iinitialization_61',['IInitialization',['../classIInitialization.html',1,'']]], + ['iinterpolator_62',['IInterpolator',['../classIInterpolator.html',1,'']]], + ['iinterpolator_3c_20gridinterp_2c_20grid1d_2e_2e_2e_20_3e_63',['IInterpolator< GridInterp, Grid1D... >',['../classIInterpolator.html',1,'']]], + ['iinterpolatorrtheta_64',['IInterpolatorRTheta',['../classIInterpolatorRTheta.html',1,'']]], + ['impilayout_65',['IMPILayout',['../classIMPILayout.html',1,'']]], + ['impilayout_3c_20idxrangedata_2c_20distributeddim_2e_2e_2e_20_3e_66',['IMPILayout< IdxRangeData, DistributedDim... >',['../classIMPILayout.html',1,'']]], + ['impitranspose_67',['impitranspose',['../classIMPITranspose.html#a896a457be3e1f9584122760868b9cbd4',1,'IMPITranspose::IMPITranspose()'],['../classIMPITranspose.html',1,'IMPITranspose< Layout1, Layout2 >']]], + ['impl_68',['impl',['../classMoments_1_1Impl.html#a1d0f28c92509bf1c21a8f930dca915ea',1,'Moments::Impl::Impl()'],['../classPolarBSplines_1_1Impl.html#a386e9fe73ec0a24b3773353aa4ad1af2',1,'PolarBSplines::Impl::Impl(Impl &&x)=default'],['../classPolarBSplines_1_1Impl.html#af79c5cc9a060916b31c8a41e5f7cd7da',1,'PolarBSplines::Impl::Impl(Impl const &x)=default'],['../classPolarBSplines_1_1Impl.html#aad7f0ed019b40ca8bea9259f53d94a83',1,'PolarBSplines::Impl::Impl(Impl< DDim, OriginMemorySpace > const &impl)'],['../classPolarBSplines_1_1Impl.html#a76ae9aee443a828ec5f62ddabbda37fb',1,'PolarBSplines::Impl::Impl(const DiscreteMapping &curvilinear_to_cartesian)'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#a4a5bf93f1e18841db8b6c010e7a1bcde',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(Impl &&x)=default'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#a49ed43bd10c8c5ea683b799a4106e3d2',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(Impl const &x)=default'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#ae33d1d61323db71d5d5a5089473e3b67',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(Impl< DDim, OriginMemorySpace > const &impl)'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#ab628a878e7d858a429dd6a2de850447f',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(CartesianToBarycentric< X, Y, Corner1Tag, Corner2Tag, Corner3Tag > const &coord_changer)'],['../classSpeciesInformation_1_1Impl.html#a1f565677d75cf122a50af8043c11d012',1,'SpeciesInformation::Impl::Impl(DFieldMem< index_range_type, MemorySpace > charge, DFieldMem< index_range_type, MemorySpace > mass)'],['../classSpeciesInformation_1_1Impl.html#a9db19ad040ca32c4bcd51b6aedd776c3',1,'SpeciesInformation::Impl::Impl(Impl< Grid1D, OMemorySpace > const &impl)'],['../classMoments_1_1Impl.html#a53ef02b0e60b8aeafdaed641c660ba61',1,'Moments::Impl::Impl()'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html',1,'TriangularBernsteinPolynomialBasis< X, Y, Corner1Tag, Corner2Tag, Corner3Tag, D >::Impl< DDim, MemorySpace >'],['../classSpeciesInformation_1_1Impl.html',1,'SpeciesInformation::Impl< Grid1D, MemorySpace >'],['../classPolarBSplines_1_1Impl.html',1,'PolarBSplines< BSplinesR, BSplinesTheta, C >::Impl< DDim, MemorySpace >'],['../classMoments_1_1Impl.html',1,'Moments::Impl< Grid1D, MemorySpace >']]], + ['implementation_69',['Implementation',['../docs_CODING_STANDARD.html#autotoc_md7',1,'']]], + ['implicit_20capture_20of_20this_20in_20extended_20lambda_20expression_70',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], + ['implicit_20predictor_20corrector_71',['Implicit predictor-corrector',['../src_geometryRTheta_time_solver.html#src_geometryRTheta_time_solver__Implicit_predictor-corrector',1,'']]], + ['in_20documentation_72',['Mathematical notation in documentation',['../docs_Adding_docs.html#docs_Adding_docs__Mathematical_notation_in_documentation',1,'']]], + ['in_20extended_20lambda_20expression_73',['Implicit capture of 'this' in extended lambda expression',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__Implicit_capture_of__this__in_extended_lambda_expression',1,'']]], + ['in_20gyselalib_74',['Understanding Functional Programming in Gyselalib++',['../docs_getting_started.html#docs_getting_started__Understanding_Functional_Programming_in_Gyselalibxx',1,'']]], + ['in_20gyselalibxx_75',['Using DDC in Gyselalibxx',['../docs_DDC_in_gyselalibxx.html',1,'']]], + ['in_20polar_20coordinates_76',['in polar coordinates',['../src_geometryRTheta_interpolation.html',1,'Spline interpolator in polar coordinates'],['../tests_geometryRTheta_2d_spline_interpolator.html',1,'Tests on spline interpolator in polar coordinates']]], + ['in_20r_20theta_20geometry_77',['Simulations in (r, theta) geometry',['../simulations_geometryRTheta.html',1,'simulations']]], + ['in_20the_20submodule_20but_20i_20didn_20t_20change_20this_20code_78',['Q: Git reports changes in the submodule but I didn't change this code',['../docs_Using_git.html#autotoc_md20',1,'']]], + ['in_20the_20template_20argument_20type_20of_20a_20_5f_5fglobal_5f_5f_20function_79',['The closure type for a lambda cannot be used in the template argument type of a '__global__' function',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_closure_type_for_a_lambda_cannot_be_used_in_the_template_argument_type_of_a____global____function',1,'']]], + ['in_20x_20vx_20geometry_80',['Simulations in (x, vx) geometry',['../simulations_geometryXVx.html',1,'simulations']]], + ['in_20x_20y_20geometry_81',['Simulations in (x, y) geometry',['../simulations_geometryXY.html',1,'simulations']]], + ['index_82',['Index',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Index',1,'']]], + ['index_20range_83',['Index Range',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Index_Range',1,'']]], + ['index_20step_84',['Index Step',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Index_Step',1,'']]], + ['index_20step_20for_20finite_20differences_85',['Example use of Index Step for Finite Differences',['../docs_DDC_in_gyselalibxx.html#autotoc_md17',1,'']]], + ['index_20transformation_86',['Index transformation',['../src_multipatch_connectivity.html#autotoc_md74',1,'']]], + ['index_5frange_5ftype_87',['index_range_type',['../classVectorField.html#afde84cdadf9f031e6cd584f15b0acb3f',1,'VectorField::index_range_type'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a9c9e1edb698734a3cc18c65c16f8cf2e',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::index_range_type'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a8976a7b20051721b99a646045565c0bb',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::index_range_type'],['../classVectorFieldMem.html#ac91e05db87f7dbcbc29c63ef94e900ac',1,'VectorFieldMem::index_range_type']]], + ['index_5ftype_88',['index_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a5f7df456b19ca5dbdc9ffcdb4c13a1de',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], + ['indexing_20and_20associated_20concepts_89',['Indexing and associated concepts',['../docs_DDC_in_gyselalibxx.html#docs_DDC_in_gyselalibxx__Indexing_and_associated_concepts',1,'']]], + ['init_5ffrom_5finput_90',['init_from_input',['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classSingleModePerturbInitialization.html#a0defeabc2c4c50acb313cc919e0f39fa',1,'SingleModePerturbInitialization::init_from_input()'],['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classBumpontailEquilibrium.html#ade9524f9a546fdcb20c3e60f9d788edd',1,'BumpontailEquilibrium::init_from_input()'],['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classSingleModePerturbInitialization.html#a53a65b6a5efe391943ebd71f97be0278',1,'SingleModePerturbInitialization::init_from_input()']]], + ['init_5fnnz_5fper_5fline_91',['init_nnz_per_line',['../classPolarSplineFEMPoissonLikeSolver.html#ad1b92b440d6e5c71e14b09d53beefd84',1,'PolarSplineFEMPoissonLikeSolver']]], + ['initialisation_92',['initialisation',['../classDiocotronDensitySolution.html#a87def8e146e4c4104e3a3d3d7d54445d',1,'DiocotronDensitySolution']]], + ['initialization_93',['initialization',['../src_geometryRTheta_initialization.html',1,'Initialization'],['../src_geometryRTheta_initialization.html#autotoc_md60',1,'Initialization']]], + ['initialization_20methods_94',['initialization methods',['../src_geometryXVx_initialization.html',1,'Initialization methods'],['../src_geometryVparMu_initialization.html',1,'Initialization methods']]], + ['initialization_20on_20x_20y_20geometry_95',['Initialization on (x,y) geometry',['../src_geometryXY_initialization.html',1,'src_geometryXY']]], + ['inner_5fedges_96',['inner_edges',['../classMultipatchConnectivity.html#a762ff8496d1ec32be37bad6e25f7e926',1,'MultipatchConnectivity']]], + ['input_20and_20output_97',['Functions used for input and output.',['../src_io.html',1,'src']]], + ['inputdfieldspthetarvpar_98',['InputDFieldSpThetaRVpar',['../classCollisionSpVparMu.html#a11cef1817d30d02345e255b3d95c33a2',1,'CollisionSpVparMu']]], + ['instability_99',['instability',['../src_geometryRTheta_initialization.html#src_geometryRTheta_initialization__Diocotron_instability',1,'Diocotron instability'],['../simulations_geometryRTheta_diocotron.html',1,'Diocotron instability'],['../simulations_geometryRTheta_diocotron.html#simulations_geometryRTheta_diocotron__Test_case_-_diocotron_instability',1,'Test case - diocotron instability']]], + ['instability_20test_20case_100',['instability test case',['../src_geometryXY_initialization.html#src_geometryXY_initialization__Kelvin-Helmholtz_instability_test_case',1,'Kelvin-Helmholtz instability test case'],['../simulations_geometryXY_guiding_center.html#autotoc_md43',1,'Test case: Kelvin-Helmholtz instability test case']]], + ['integrals_101',['integrals',['../classPolarBSplines_1_1Impl.html#aced2ee11d0967ae40b922adeefbc8a28',1,'PolarBSplines::Impl']]], + ['integrate_102',['integrate',['../classMultipatchSplineEvaluator2D.html#a6cea2a836a1df080f509a16ce5802688',1,'MultipatchSplineEvaluator2D::integrate()'],['../classPolarSplineEvaluator.html#a4138c63cadd45444a7d820eda652b64b',1,'PolarSplineEvaluator::integrate()']]], + ['integration_103',['Time integration',['../src_geometryXVx_time_integration.html',1,'src_geometryXVx']]], + ['integration_20method_20used_20to_20solve_20the_20characteristic_20equation_3a_104',['- The time integration method used to solve the characteristic equation:',['../tests_geometryRTheta_advection_2d_rp.html#autotoc_md88',1,'']]], + ['integration_20methods_105',['Time integration methods',['../src_geometryRTheta_advection.html#src_geometryRTheta_advection__Time_integration_methods',1,'']]], + ['interface_106',['Interface',['../structInterface.html',1,'']]], + ['interface_5fcollection_107',['interface_collection',['../classMultipatchConnectivity.html#abde3a24c33217daec8074c6ab527f84c',1,'MultipatchConnectivity']]], + ['interfaces_108',['interfaces',['../docs_CODING_STANDARD.html#autotoc_md6',1,'Interfaces'],['../src_multipatch_connectivity.html#src_multipatch_connectivity__Interfaces',1,'Interfaces']]], + ['intermediatebernsteinbasis_109',['IntermediateBernsteinBasis',['../structPolarBSplines_1_1Impl_1_1IntermediateBernsteinBasis.html',1,'PolarBSplines::Impl']]], + ['internal_5fdistribute_5fidx_5frange_110',['internal_distribute_idx_range',['../classMPILayout.html#a6f9deb749c456a6c7a8fbccb10f35bd6',1,'MPILayout::internal_distribute_idx_range(IdxRange< HeadTag > global_idx_range, int comm_size, int rank)'],['../classMPILayout.html#ad73e8704d2db772bd557acb1876f0b02',1,'MPILayout::internal_distribute_idx_range(IdxRange< HeadTag, Tags... > idx_range, int comm_size, int rank)']]], + ['internal_5ffields_111',['internal_fields',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a31fae5a5f7a6d504fcca1299b6b9eedd',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], + ['internal_5fmdspan_5ftype_112',['internal_mdspan_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a4be3e064e85e11603bf67daaebf70dc6',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], + ['internal_5fmdview_5ftype_113',['internal_mdview_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a54599ac7aa42fc2a124115661a0c676b',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], + ['internalconstfieldonpatch_114',['internalconstfieldonpatch',['../classMultipatchField.html#a44a9591797e84d0f116b8d424725fdea',1,'MultipatchField::InternalConstFieldOnPatch'],['../classMultipatchFieldMem.html#a3c244af591bf82d81c2bcbc05d614f7c',1,'MultipatchFieldMem::InternalConstFieldOnPatch']]], + ['internalfieldonpatch_115',['internalfieldonpatch',['../classMultipatchFieldMem.html#a0619dafdf75c12736c49816b0d928f6a',1,'MultipatchFieldMem::InternalFieldOnPatch'],['../classMultipatchField.html#af03d87daa72042dad5e2f47b11f3fc06',1,'MultipatchField::InternalFieldOnPatch']]], + ['internalidxrangeonpatch_116',['internalidxrangeonpatch',['../classMultipatchField.html#a233d6c418d017cdfd11e79694eee50b0',1,'MultipatchField::InternalIdxRangeOnPatch'],['../classMultipatchFieldMem.html#affec2555dc86033cbcb5e80113cd91ac',1,'MultipatchFieldMem::InternalIdxRangeOnPatch']]], + ['internalspoofgrid_117',['InternalSpoofGrid',['../structcollisions__dimensions_1_1InternalSpoofGrid.html',1,'collisions_dimensions']]], + ['internalspoofgridr_118',['InternalSpoofGridR',['../structcollisions__dimensions_1_1InternalSpoofGridR.html',1,'collisions_dimensions']]], + ['internalspoofgridtheta_119',['InternalSpoofGridTheta',['../structcollisions__dimensions_1_1InternalSpoofGridTheta.html',1,'collisions_dimensions']]], + ['interpolation_120',['Spline Interpolation',['../src_interpolation.html#src_interpolation__Spline_Interpolation',1,'']]], + ['interpolation_20methods_121',['Interpolation Methods',['../src_interpolation.html',1,'src']]], + ['interpolation_5fdiscrete_5fdimension_5ftype_122',['interpolation_discrete_dimension_type',['../classddcHelper_1_1NonUniformInterpolationPoints.html#afe391dfd5787f205a4096fef58e7beab',1,'ddcHelper::NonUniformInterpolationPoints']]], + ['interpolator_20in_20polar_20coordinates_123',['interpolator in polar coordinates',['../src_geometryRTheta_interpolation.html',1,'Spline interpolator in polar coordinates'],['../tests_geometryRTheta_2d_spline_interpolator.html',1,'Tests on spline interpolator in polar coordinates']]], + ['interpolator_5fon_5fidx_5frange_124',['interpolator_on_idx_range',['../structinterpolator__on__idx__range.html',1,'']]], + ['interpolator_5fon_5fidx_5frange_3c_20interp_2c_20gridinterp_2c_20idxrange_3c_20grid1d_2e_2e_2e_20_3e_20_3e_125',['interpolator_on_idx_range< Interp, GridInterp, IdxRange< Grid1D... > >',['../structinterpolator__on__idx__range_3_01Interp_00_01GridInterp_00_01IdxRange_3_01Grid1D_8_8_8_01_4_01_4.html',1,'']]], + ['inv_5fjacobian_126',['inv_jacobian',['../classCombinedMapping.html#ac60309ab3ffb26c973f521c862ce5ed1',1,'CombinedMapping']]], + ['inv_5fjacobian_5f11_127',['inv_jacobian_11',['../classCircularToCartesian.html#abf4cdbc7b10f47056aa3f41a3e340811',1,'CircularToCartesian::inv_jacobian_11()'],['../classCombinedMapping.html#a3ed2f33fa5953ac3e731b041c9bc149b',1,'CombinedMapping::inv_jacobian_11()'],['../classInverseJacobianMatrix.html#a39a32715b1ab87b946eef74360303c30',1,'InverseJacobianMatrix::inv_jacobian_11()'],['../classCzarnyToCartesian.html#a62a06fbfe6432d9e7d789b75af7c31f2',1,'CzarnyToCartesian::inv_jacobian_11()']]], + ['inv_5fjacobian_5f12_128',['inv_jacobian_12',['../classCircularToCartesian.html#a6a6a8ce8a56f37456954985bc5555573',1,'CircularToCartesian::inv_jacobian_12()'],['../classCzarnyToCartesian.html#a2558af0463cf8a93b5a6e1941bd3d0fb',1,'CzarnyToCartesian::inv_jacobian_12()'],['../classInverseJacobianMatrix.html#adfb394b2e3169b46fae6d5d483714fa2',1,'InverseJacobianMatrix::inv_jacobian_12()'],['../classCombinedMapping.html#a334c16692b5c155c579a6fada37fa822',1,'CombinedMapping::inv_jacobian_12()']]], + ['inv_5fjacobian_5f21_129',['inv_jacobian_21',['../classCircularToCartesian.html#ada4943d56e137e909c05f4a65695f32c',1,'CircularToCartesian::inv_jacobian_21()'],['../classCombinedMapping.html#ae27e58bd0f9df22c8b850199eef8a7a1',1,'CombinedMapping::inv_jacobian_21()'],['../classCzarnyToCartesian.html#a4b1e9eb7caeeaf338d5ab83b1f269855',1,'CzarnyToCartesian::inv_jacobian_21()'],['../classInverseJacobianMatrix.html#ac017681ec46990381351f88dc784c143',1,'InverseJacobianMatrix::inv_jacobian_21()']]], + ['inv_5fjacobian_5f22_130',['inv_jacobian_22',['../classCircularToCartesian.html#a48349b38c6381e571f4028c5284ee504',1,'CircularToCartesian::inv_jacobian_22()'],['../classCombinedMapping.html#adcac00610eac90e415ea1fd55f09319e',1,'CombinedMapping::inv_jacobian_22()'],['../classCzarnyToCartesian.html#a0b29c13b61c5e33d93e24890f06faf61',1,'CzarnyToCartesian::inv_jacobian_22()'],['../classInverseJacobianMatrix.html#ae17b8f5837fdfec9979bd9b558b89056',1,'InverseJacobianMatrix::inv_jacobian_22()']]], + ['inv_5fjacobian_5fmatrix_131',['inv_jacobian_matrix',['../classCircularToCartesian.html#ab32fc8c4571885fb58a6580b2c1bad5e',1,'CircularToCartesian::inv_jacobian_matrix()'],['../classCombinedMapping.html#a6dbf6686929960b3bc19973a22c2c275',1,'CombinedMapping::inv_jacobian_matrix()'],['../classCzarnyToCartesian.html#aea75514939b49d499e11c606decf049a',1,'CzarnyToCartesian::inv_jacobian_matrix()']]], + ['inverse_132',['inverse',['../classMetricTensor.html#aad3d46ec6f7910bcacd5075de429a08d',1,'MetricTensor']]], + ['inversejacobianmatrix_133',['inversejacobianmatrix',['../classInverseJacobianMatrix.html#a8484531e5dbf59a3ab2a6ef08711a84d',1,'InverseJacobianMatrix::InverseJacobianMatrix()'],['../classInverseJacobianMatrix.html',1,'InverseJacobianMatrix< Mapping, PositionCoordinate >']]], + ['inversejacobianmatrix_3c_20curvilineartocartesian_2c_20coord_3c_20r_2c_20theta_20_3e_20_3e_134',['InverseJacobianMatrix< CurvilinearToCartesian, Coord< R, Theta > >',['../classInverseJacobianMatrix.html',1,'']]], + ['inversejacobianmatrix_3c_20inversemapping2_2c_20coordjacobian_20_3e_135',['InverseJacobianMatrix< InverseMapping2, CoordJacobian >',['../classInverseJacobianMatrix.html',1,'']]], + ['invertible_20mapping_136',['Global analytical invertible mapping',['../src_multipatch_connectivity.html#autotoc_md77',1,'']]], + ['invjacobianopoint_137',['invjacobianopoint',['../classInvJacobianOPoint_3_01CombinedMapping_3_01CzarnyToCartesian_3_01R_00_01Theta_00_01X_00_01Y_8f5ea6a67f8bbc15e1b2c45d7660cfb5.html#ae533e75feb744dd14a9978f9dc01e30c',1,'InvJacobianOPoint< CombinedMapping< CzarnyToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::InvJacobianOPoint()'],['../classInvJacobianOPoint.html',1,'InvJacobianOPoint< Mapping, CoordRTheta >'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01DiscreteToCartesian_3_01X_00_01Y_00_01SplineEvaludfe78b5e2437ea09e09ab68f82896984.html#a0c6cc46cdae9a3e6754060bb54148578',1,'InvJacobianOPoint< CombinedMapping< DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::InvJacobianOPoint()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CircularToCartesian_3_01R_00_01Theta_00_01X_00_0179fdb551d5240572466d89e3eb7a8bfc.html#ab5cee9dca84420eb59677cc2dd5b79d5',1,'InvJacobianOPoint< CombinedMapping< CircularToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::InvJacobianOPoint()']]], + ['invjacobianopoint_3c_20combinedmapping_3c_20circulartocartesian_3c_20r_2c_20theta_2c_20x_2c_20y_20_3e_2c_20cartesiantocircular_3c_20xpc_2c_20ypc_2c_20r_2c_20theta_20_3e_20_3e_2c_20ddc_3a_3acoordinate_3c_20r_2c_20theta_20_3e_20_3e_138',['InvJacobianOPoint< CombinedMapping< CircularToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >',['../classInvJacobianOPoint_3_01CombinedMapping_3_01CircularToCartesian_3_01R_00_01Theta_00_01X_00_0179fdb551d5240572466d89e3eb7a8bfc.html',1,'']]], + ['invjacobianopoint_3c_20combinedmapping_3c_20czarnytocartesian_3c_20r_2c_20theta_2c_20x_2c_20y_20_3e_2c_20cartesiantocircular_3c_20xpc_2c_20ypc_2c_20r_2c_20theta_20_3e_20_3e_2c_20ddc_3a_3acoordinate_3c_20r_2c_20theta_20_3e_20_3e_139',['InvJacobianOPoint< CombinedMapping< CzarnyToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >',['../classInvJacobianOPoint_3_01CombinedMapping_3_01CzarnyToCartesian_3_01R_00_01Theta_00_01X_00_01Y_8f5ea6a67f8bbc15e1b2c45d7660cfb5.html',1,'']]], + ['invjacobianopoint_3c_20combinedmapping_3c_20discretetocartesian_3c_20x_2c_20y_2c_20splineevaluator_2c_20r_2c_20theta_2c_20memoryspace_20_3e_2c_20cartesiantocircular_3c_20xpc_2c_20ypc_2c_20r_2c_20theta_20_3e_20_3e_2c_20ddc_3a_3acoordinate_3c_20r_2c_20theta_20_3e_20_3e_140',['InvJacobianOPoint< CombinedMapping< DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >',['../classInvJacobianOPoint_3_01CombinedMapping_3_01DiscreteToCartesian_3_01X_00_01Y_00_01SplineEvaludfe78b5e2437ea09e09ab68f82896984.html',1,'']]], + ['ipiv_141',['ipiv',['../classMatrix__Banded.html#a5b048b1936941d7188b996cd531cd630',1,'Matrix_Banded']]], + ['ipoissonsolver_142',['IPoissonSolver',['../classIPoissonSolver.html',1,'']]], + ['ipoissonsolver_3c_20idxrange_3c_20gridpdedim1d_2e_2e_2e_20_3e_2c_20idxrangefull_2c_20execspace_3a_3amemory_5fspace_2c_20layoutspace_20_3e_143',['IPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace::memory_space, LayoutSpace >',['../classIPoissonSolver.html',1,'']]], + ['ipoissonsolver_3c_20idxrange_3c_20odims_2e_2e_2e_20_3e_2c_20idxrangefull_2c_20memoryspace_2c_20layoutspace_20_3e_144',['IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >',['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html',1,'']]], + ['ipoissonsolver_3c_20splineevaluator_3a_3aevaluation_5fdomain_5ftype_2c_20splineevaluator_3a_3abatched_5fevaluation_5fdomain_5ftype_2c_20splineevaluator_3a_3amemory_5fspace_2c_20kokkos_3a_3alayout_5fright_20_3e_145',['IPoissonSolver< SplineEvaluator::evaluation_domain_type, SplineEvaluator::batched_evaluation_domain_type, SplineEvaluator::memory_space, Kokkos::layout_right >',['../classIPoissonSolver.html',1,'']]], + ['ipreallocatableinterpolator_146',['IPreallocatableInterpolator',['../classIPreallocatableInterpolator.html',1,'']]], + ['ipreallocatableinterpolator_3c_20gridinterp_2c_20grid1d_2e_2e_2e_20_3e_147',['IPreallocatableInterpolator< GridInterp, Grid1D... >',['../classIPreallocatableInterpolator.html',1,'']]], + ['ipreallocatableinterpolatorrtheta_148',['IPreallocatableInterpolatorRTheta',['../classIPreallocatableInterpolatorRTheta.html',1,'']]], + ['iqnsolver_149',['IQNSolver',['../classIQNSolver.html',1,'']]], + ['irighthandside_150',['IRightHandSide',['../classIRightHandSide.html',1,'']]], + ['is_20not_20defined_151',['X is not defined',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__X_is_not_defined',1,'']]], + ['is_20the_20difference_20between_20debug_20and_20release_20mode_152',['What is the difference between Debug and Release mode?',['../docs_developer_FAQ.html#docs_developer_FAQ__What_is_the_difference_between_Debug_and_Release_mode',1,'']]], + ['is_5fmatch_5favailable_153',['is_match_available',['../classEdgeTransformation.html#a608a25e1800da17a87d13fa7f8a5cfc7',1,'EdgeTransformation']]], + ['is_5fnon_5funiform_5finterpolation_5fpoints_154',['is_non_uniform_interpolation_points',['../structddcHelper_1_1is__non__uniform__interpolation__points.html',1,'ddcHelper']]], + ['is_5fnon_5funiform_5finterpolation_5fpoints_3c_20nonuniforminterpolationpoints_3c_20bsplines_2c_20bcxmin_2c_20bcxmax_20_3e_20_3e_155',['is_non_uniform_interpolation_points< NonUniformInterpolationPoints< BSplines, BcXmin, BcXmax > >',['../structddcHelper_1_1is__non__uniform__interpolation__points_3_01NonUniformInterpolationPoints_3_047d1c8570873e3c052e2e394afcf9270.html',1,'ddcHelper']]], + ['is_5fonion_5fpatch_5flocator_156',['is_onion_patch_locator',['../structis__onion__patch__locator.html',1,'']]], + ['is_5fonion_5fpatch_5flocator_3c_20onionpatchlocator_3c_20multipatchidxranges_2c_20logicaltophysicalmapping_2c_20physicaltologicalmapping_2c_20execspace_20_3e_20_3e_157',['is_onion_patch_locator< OnionPatchLocator< MultipatchIdxRanges, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace > >',['../structis__onion__patch__locator_3_01OnionPatchLocator_3_01MultipatchIdxRanges_00_01LogicalToPhys15c96379834346672a2b2d644897e91f.html',1,'']]], + ['is_5fspoofed_5fdim_5fv_158',['is_spoofed_dim_v',['../namespacecollisions__dimensions.html#ac3125f189a1fac1fa360641606ac3e23',1,'collisions_dimensions']]], + ['is_5fsubidx_5frange_5fcollection_159',['is_subidx_range_collection',['../structis__subidx__range__collection.html',1,'']]], + ['is_5fsubidx_5frange_5fcollection_3c_20idxrangeslice_3c_20tags_2e_2e_2e_20_3e_20_3e_160',['is_subidx_range_collection< IdxRangeSlice< Tags... > >',['../structis__subidx__range__collection_3_01IdxRangeSlice_3_01Tags_8_8_8_01_4_01_4.html',1,'']]], + ['iterator_5fcategory_161',['iterator_category',['../structIdxRangeSliceIterator.html#ae433765c9e433256f44fae63b22c8dd3',1,'IdxRangeSliceIterator']]], + ['itimesolver_162',['ITimeSolver',['../classITimeSolver.html',1,'']]], + ['itimesolverrtheta_163',['ITimeSolverRTheta',['../classITimeSolverRTheta.html',1,'']]], + ['itimestepper_164',['ITimeStepper',['../classITimeStepper.html',1,'']]], + ['itimestepper_3c_20fieldmem_2c_20fieldmem_2c_20kokkos_3a_3adefaultexecutionspace_20_3e_165',['ITimeStepper< FieldMem, FieldMem, Kokkos::DefaultExecutionSpace >',['../classITimeStepper.html',1,'']]], + ['its_20address_20to_20be_20taken_166',['The enclosing parent function for an extended '__host__' '__device__' lambda must allow its address to be taken',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_must_allow_its_address_to_be_taken',1,'']]], + ['its_20class_167',['The enclosing parent function for an extended '__host__' '__device__' lambda cannot have private or protected access within its class',['../docs_Common_compilation_problems.html#docs_Common_compilation_problems__The_enclosing_parent_function_for_an_extended____host_______device____lambda_cannot_have_private_or_protected_access_within_its_class',1,'']]], + ['ivlasovsolver_168',['IVlasovSolver',['../classIVlasovSolver.html',1,'']]] ]; diff --git a/search/classes_4.js b/search/classes_4.js index a2ee6dae3..08cd902a6 100644 --- a/search/classes_4.js +++ b/search/classes_4.js @@ -12,20 +12,22 @@ var searchData= ['euler_9',['Euler',['../classEuler.html',1,'']]], ['eval_5fderiv_5ftype_10',['eval_deriv_type',['../classMultipatchSplineEvaluator2D.html#structMultipatchSplineEvaluator2D_1_1eval__deriv__type',1,'MultipatchSplineEvaluator2D']]], ['eval_5ftype_11',['eval_type',['../classMultipatchSplineEvaluator2D.html#structMultipatchSplineEvaluator2D_1_1eval__type',1,'MultipatchSplineEvaluator2D']]], - ['extractpatches_12',['ExtractPatches',['../structconnectivity__details_1_1ExtractPatches.html',1,'connectivity_details']]], - ['extractpatches_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_20edgetype1_2c_20edgetypes_2e_2e_2e_20_3e_20_3e_13',['ExtractPatches< ddc::detail::TypeSeq< EdgeType1, EdgeTypes... > >',['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_01EdgeTypes_8_8_8_01_4_01_4.html',1,'connectivity_details']]], - ['extractpatches_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_3e_20_3e_14',['ExtractPatches< ddc::detail::TypeSeq<> >',['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html',1,'connectivity_details']]], - ['extractrdim_15',['ExtractRDim',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim',1,'collisions_dimensions']]], - ['extractrdim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_20_3e_16',['ExtractRDim< ConstField< double, IdxRange< GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01ConstField_3_01double_00_01IdxRange_3_01GridR_01d49ad374498953b7d2b9069aa134d214',1,'collisions_dimensions']]], - ['extractrdim_3c_20double_20_3e_17',['ExtractRDim< double >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01double_01_4',1,'collisions_dimensions']]], - ['extractrdim_3c_20field_3c_20elementtype_2c_20idxrange_2c_20memspace_2c_20layout_20_3e_20_3e_18',['ExtractRDim< Field< ElementType, IdxRange, MemSpace, Layout > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01Field_3_01ElementType_00_01IdxRange_00_01MemSpace_00_01Layout_01_4_01_4',1,'collisions_dimensions']]], - ['extractrthetatags_19',['ExtractRThetaTags',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags',1,'collisions_dimensions']]], - ['extractrthetatags_3c_20dconstfield_3c_20idxrange_20_3e_20_3e_20',['ExtractRThetaTags< DConstField< IdxRange > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags_3_01DConstField_3_01IdxRange_01_4_01_4',1,'collisions_dimensions']]], - ['extractrthetatags_3c_20double_20_3e_21',['ExtractRThetaTags< double >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags_3_01double_01_4',1,'collisions_dimensions']]], - ['extractthetadim_22',['ExtractThetaDim',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim',1,'collisions_dimensions']]], - ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_23',['ExtractThetaDim< ConstField< double, IdxRange< GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grid4d06e1e2d0c2d7c6dba5eb3f62b8c1f6',1,'collisions_dimensions']]], - ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridtheta_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_24',['ExtractThetaDim< ConstField< double, IdxRange< GridTheta >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grid60b078372e4f21da53e41a7105d0e223',1,'collisions_dimensions']]], - ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridtheta_2c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_25',['ExtractThetaDim< ConstField< double, IdxRange< GridTheta, GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grida5f24db67f7287ccd8eb306d1be5d530',1,'collisions_dimensions']]], - ['extractthetadim_3c_20double_2c_20internalspoofgridr_20_3e_26',['ExtractThetaDim< double, InternalSpoofGridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01double_00_01InternalSpoofGridR_01_4',1,'collisions_dimensions']]], - ['extractthetadim_3c_20field_3c_20elementtype_2c_20idxrange_2c_20memspace_2c_20layout_20_3e_2c_20gridr_20_3e_27',['ExtractThetaDim< Field< ElementType, IdxRange, MemSpace, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01Field_3_01ElementType_00_01IdxRange_00_01Memb61e2a7adc5523dde8976f9c0d44ef20',1,'collisions_dimensions']]] + ['evalderiv1dtype_12',['EvalDeriv1DType',['../classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1EvalDeriv1DType',1,'PolarSplineFEMPoissonLikeSolver']]], + ['evalderiv2dtype_13',['EvalDeriv2DType',['../classPolarSplineFEMPoissonLikeSolver.html#structPolarSplineFEMPoissonLikeSolver_1_1EvalDeriv2DType',1,'PolarSplineFEMPoissonLikeSolver']]], + ['extractpatches_14',['ExtractPatches',['../structconnectivity__details_1_1ExtractPatches.html',1,'connectivity_details']]], + ['extractpatches_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_20edgetype1_2c_20edgetypes_2e_2e_2e_20_3e_20_3e_15',['ExtractPatches< ddc::detail::TypeSeq< EdgeType1, EdgeTypes... > >',['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_01EdgeTypes_8_8_8_01_4_01_4.html',1,'connectivity_details']]], + ['extractpatches_3c_20ddc_3a_3adetail_3a_3atypeseq_3c_3e_20_3e_16',['ExtractPatches< ddc::detail::TypeSeq<> >',['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html',1,'connectivity_details']]], + ['extractrdim_17',['ExtractRDim',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim',1,'collisions_dimensions']]], + ['extractrdim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_20_3e_18',['ExtractRDim< ConstField< double, IdxRange< GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01ConstField_3_01double_00_01IdxRange_3_01GridR_01d49ad374498953b7d2b9069aa134d214',1,'collisions_dimensions']]], + ['extractrdim_3c_20double_20_3e_19',['ExtractRDim< double >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01double_01_4',1,'collisions_dimensions']]], + ['extractrdim_3c_20field_3c_20elementtype_2c_20idxrange_2c_20memspace_2c_20layout_20_3e_20_3e_20',['ExtractRDim< Field< ElementType, IdxRange, MemSpace, Layout > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRDim_3_01Field_3_01ElementType_00_01IdxRange_00_01MemSpace_00_01Layout_01_4_01_4',1,'collisions_dimensions']]], + ['extractrthetatags_21',['ExtractRThetaTags',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags',1,'collisions_dimensions']]], + ['extractrthetatags_3c_20dconstfield_3c_20idxrange_20_3e_20_3e_22',['ExtractRThetaTags< DConstField< IdxRange > >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags_3_01DConstField_3_01IdxRange_01_4_01_4',1,'collisions_dimensions']]], + ['extractrthetatags_3c_20double_20_3e_23',['ExtractRThetaTags< double >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractRThetaTags_3_01double_01_4',1,'collisions_dimensions']]], + ['extractthetadim_24',['ExtractThetaDim',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim',1,'collisions_dimensions']]], + ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_25',['ExtractThetaDim< ConstField< double, IdxRange< GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grid4d06e1e2d0c2d7c6dba5eb3f62b8c1f6',1,'collisions_dimensions']]], + ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridtheta_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_26',['ExtractThetaDim< ConstField< double, IdxRange< GridTheta >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grid60b078372e4f21da53e41a7105d0e223',1,'collisions_dimensions']]], + ['extractthetadim_3c_20constfield_3c_20double_2c_20idxrange_3c_20gridtheta_2c_20gridr_20_3e_2c_20kokkos_3a_3adefaultexecutionspace_3a_3amemory_5fspace_2c_20layout_20_3e_2c_20gridr_20_3e_27',['ExtractThetaDim< ConstField< double, IdxRange< GridTheta, GridR >, Kokkos::DefaultExecutionSpace::memory_space, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01ConstField_3_01double_00_01IdxRange_3_01Grida5f24db67f7287ccd8eb306d1be5d530',1,'collisions_dimensions']]], + ['extractthetadim_3c_20double_2c_20internalspoofgridr_20_3e_28',['ExtractThetaDim< double, InternalSpoofGridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01double_00_01InternalSpoofGridR_01_4',1,'collisions_dimensions']]], + ['extractthetadim_3c_20field_3c_20elementtype_2c_20idxrange_2c_20memspace_2c_20layout_20_3e_2c_20gridr_20_3e_29',['ExtractThetaDim< Field< ElementType, IdxRange, MemSpace, Layout >, GridR >',['../namespacecollisions__dimensions.html#structcollisions__dimensions_1_1ExtractThetaDim_3_01Field_3_01ElementType_00_01IdxRange_00_01Memb61e2a7adc5523dde8976f9c0d44ef20',1,'collisions_dimensions']]] ]; diff --git a/search/functions_1.js b/search/functions_1.js index 2d9d92249..66c007be8 100644 --- a/search/functions_1.js +++ b/search/functions_1.js @@ -10,8 +10,8 @@ var searchData= ['bsladvectionrtheta_7',['BslAdvectionRTheta',['../classBslAdvectionRTheta.html#af559bba295fb3d5fcac425cae71bb972',1,'BslAdvectionRTheta']]], ['bsladvectionspatial_8',['BslAdvectionSpatial',['../classBslAdvectionSpatial.html#a6ee34fd8becaaf459692d47d6f59568d',1,'BslAdvectionSpatial']]], ['bsladvectionvelocity_9',['BslAdvectionVelocity',['../classBslAdvectionVelocity.html#a85c69c265dbb2410fdd60f7b78117593',1,'BslAdvectionVelocity']]], - ['bslexplicitpredcorrrtheta_10',['BslExplicitPredCorrRTheta',['../classBslExplicitPredCorrRTheta.html#a06242b4dc42f0275ebd48935a822a41e',1,'BslExplicitPredCorrRTheta']]], - ['bslimplicitpredcorrrtheta_11',['BslImplicitPredCorrRTheta',['../classBslImplicitPredCorrRTheta.html#a6bd04e7ccba156c98c4516ae0a3a3cae',1,'BslImplicitPredCorrRTheta']]], - ['bslpredcorrrtheta_12',['BslPredCorrRTheta',['../classBslPredCorrRTheta.html#a82df60ba134e54e107c105544ef15763',1,'BslPredCorrRTheta']]], + ['bslexplicitpredcorrrtheta_10',['BslExplicitPredCorrRTheta',['../classBslExplicitPredCorrRTheta.html#af3274e5a2342ff8b6446622d48cd4ecf',1,'BslExplicitPredCorrRTheta']]], + ['bslimplicitpredcorrrtheta_11',['BslImplicitPredCorrRTheta',['../classBslImplicitPredCorrRTheta.html#a27731f9a9c3e076aca10206bb0bfd3ba',1,'BslImplicitPredCorrRTheta']]], + ['bslpredcorrrtheta_12',['BslPredCorrRTheta',['../classBslPredCorrRTheta.html#ac5a6457ec7d54f8fbb926aca93a55069',1,'BslPredCorrRTheta']]], ['bumpontailequilibrium_13',['BumpontailEquilibrium',['../classBumpontailEquilibrium.html#af3995062c5408eea2ae7761113d30c52',1,'BumpontailEquilibrium']]] ]; diff --git a/search/functions_13.js b/search/functions_13.js index de76b8e45..f69c73d27 100644 --- a/search/functions_13.js +++ b/search/functions_13.js @@ -2,11 +2,13 @@ var searchData= [ ['temperature_5fbot_0',['temperature_bot',['../classBumpontailEquilibrium.html#afaae3266ba6ecff76e2764c3f0bf4ffd',1,'BumpontailEquilibrium']]], ['temperature_5feq_1',['temperature_eq',['../classMaxwellianEquilibrium.html#ad82c2908d1306574b250ddc190bc2d28',1,'MaxwellianEquilibrium::temperature_eq() const'],['../classMaxwellianEquilibrium.html#ad82c2908d1306574b250ddc190bc2d28',1,'MaxwellianEquilibrium::temperature_eq() const'],['../classMaxwellianEquilibrium.html#aeba2d5c30212bd67b789c87610205263',1,'MaxwellianEquilibrium::temperature_eq() const']]], - ['tensor_5fbspline_5fidx_5frange_2',['tensor_bspline_idx_range',['../classPolarBSplines_1_1Impl.html#af3133a4ea7b7cc4796da428de9bba352',1,'PolarBSplines::Impl']]], - ['to_5fcovariant_3',['to_covariant',['../classMetricTensor.html#aa6a650351eb694fef48334a192469d25',1,'MetricTensor']]], - ['translationadvectionfieldsimulation_4',['TranslationAdvectionFieldSimulation',['../classTranslationAdvectionFieldSimulation.html#aa89e869c6d580ce70c186d3a3ec99272',1,'TranslationAdvectionFieldSimulation']]], - ['translationsimulation_5',['TranslationSimulation',['../classTranslationSimulation.html#a93ef880e4bde7812610f07198d620be1',1,'TranslationSimulation']]], - ['transpose_5fto_6',['transpose_to',['../classMPITransposeAllToAll.html#ab8710a5c605dad849087077632f2e17e',1,'MPITransposeAllToAll']]], - ['trapezoid_5fquadrature_5fcoefficients_7',['trapezoid_quadrature_coefficients',['../trapezoid__quadrature_8hpp.html#a70e64a14c696ce6d674297e947ff7074',1,'trapezoid_quadrature.hpp']]], - ['trapezoid_5fquadrature_5fcoefficients_5f1d_8',['trapezoid_quadrature_coefficients_1d',['../trapezoid__quadrature_8hpp.html#a00b23ab6bb69740215a7962df6bcb2f8',1,'trapezoid_quadrature.hpp']]] + ['templated_5fweak_5fintegral_5felement_2',['templated_weak_integral_element',['../classPolarSplineFEMPoissonLikeSolver.html#ac94824022d7b90428f769126de178000',1,'PolarSplineFEMPoissonLikeSolver']]], + ['tensor_5fbspline_5fidx_5frange_3',['tensor_bspline_idx_range',['../classPolarBSplines_1_1Impl.html#af3133a4ea7b7cc4796da428de9bba352',1,'PolarBSplines::Impl']]], + ['theta_5fmod_4',['theta_mod',['../classPolarSplineFEMPoissonLikeSolver.html#acbe58349c9ea9b73ae5476df678f4010',1,'PolarSplineFEMPoissonLikeSolver']]], + ['to_5fcovariant_5',['to_covariant',['../classMetricTensor.html#aa6a650351eb694fef48334a192469d25',1,'MetricTensor']]], + ['translationadvectionfieldsimulation_6',['TranslationAdvectionFieldSimulation',['../classTranslationAdvectionFieldSimulation.html#aa89e869c6d580ce70c186d3a3ec99272',1,'TranslationAdvectionFieldSimulation']]], + ['translationsimulation_7',['TranslationSimulation',['../classTranslationSimulation.html#a93ef880e4bde7812610f07198d620be1',1,'TranslationSimulation']]], + ['transpose_5fto_8',['transpose_to',['../classMPITransposeAllToAll.html#ab8710a5c605dad849087077632f2e17e',1,'MPITransposeAllToAll']]], + ['trapezoid_5fquadrature_5fcoefficients_9',['trapezoid_quadrature_coefficients',['../trapezoid__quadrature_8hpp.html#a70e64a14c696ce6d674297e947ff7074',1,'trapezoid_quadrature.hpp']]], + ['trapezoid_5fquadrature_5fcoefficients_5f1d_10',['trapezoid_quadrature_coefficients_1d',['../trapezoid__quadrature_8hpp.html#a00b23ab6bb69740215a7962df6bcb2f8',1,'trapezoid_quadrature.hpp']]] ]; diff --git a/search/functions_15.js b/search/functions_15.js index dbb09ed3c..b4466bb2b 100644 --- a/search/functions_15.js +++ b/search/functions_15.js @@ -5,5 +5,5 @@ var searchData= ['vectorfieldmem_2',['vectorfieldmem',['../classVectorFieldMem.html#ad29cdf601986a92058d0a28a809e4240',1,'VectorFieldMem::VectorFieldMem()=default'],['../classVectorFieldMem.html#a86f5f1bda5efd56e07a66525cd6f57cb',1,'VectorFieldMem::VectorFieldMem(index_range_type const &idx_range, Allocator allocator=Allocator())'],['../classVectorFieldMem.html#a1da4b4b8507ccef5bcaacc5a5189fc0a',1,'VectorFieldMem::VectorFieldMem(VectorFieldMem const &other)=delete'],['../classVectorFieldMem.html#a4bb85759e2d6fd3259434d80d8ecdc2d',1,'VectorFieldMem::VectorFieldMem(VectorFieldMem &&other)=default']]], ['vectormapper_3',['VectorMapper',['../classVectorMapper_3_01NDTag_3_01XIn_00_01YIn_01_4_00_01NDTag_3_01XOut_00_01YOut_01_4_00_01Mapping_00_01ExecSpace_01_4.html#af340c2a705c78bd00f7928744898abbf',1,'VectorMapper< NDTag< XIn, YIn >, NDTag< XOut, YOut >, Mapping, ExecSpace >']]], ['vortexmergerdensitysolution_4',['VortexMergerDensitySolution',['../classVortexMergerDensitySolution.html#a75f051a4a9d1ccfee6c1976e4a914c75',1,'VortexMergerDensitySolution']]], - ['vortexmergerequilibria_5',['VortexMergerEquilibria',['../classVortexMergerEquilibria.html#a8e5ac553bd6628804db325b59ca8605d',1,'VortexMergerEquilibria']]] + ['vortexmergerequilibria_5',['VortexMergerEquilibria',['../classVortexMergerEquilibria.html#a3a8975ef28538c07c2a08ce9b0db3c9f',1,'VortexMergerEquilibria']]] ]; diff --git a/search/functions_16.js b/search/functions_16.js index 55488325c..77fd939d1 100644 --- a/search/functions_16.js +++ b/search/functions_16.js @@ -1,9 +1,4 @@ var searchData= [ - ['_7ebarycentrictocartesian_0',['~BarycentricToCartesian',['../classBarycentricToCartesian.html#acd4b23c1212d5e8dd7b71f146e55f0fb',1,'BarycentricToCartesian']]], - ['_7ecartesiantobarycentric_1',['~CartesianToBarycentric',['../classCartesianToBarycentric.html#a061b577c34c83c47795c4ee00857a35a',1,'CartesianToBarycentric']]], - ['_7ederivfieldmem_2',['~DerivFieldMem',['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#a7af910528c9b40eb599439539340925d',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >']]], - ['_7eimpl_3',['~Impl',['../classPolarBSplines_1_1Impl.html#aa4c6ff5c6a2e63283fc779ef1a6befd2',1,'PolarBSplines::Impl']]], - ['_7ematrixbatch_4',['~MatrixBatch',['../classMatrixBatch.html#ad51f64ea5ba9ccd34f7bb1aa2993f547',1,'MatrixBatch']]], - ['_7evectorfield_5',['~VectorField',['../classVectorField.html#a8427826fe85452b261065430f7beebd0',1,'VectorField']]] + ['weak_5fintegral_5felement_0',['weak_integral_element',['../classPolarSplineFEMPoissonLikeSolver.html#af97748fe740d17247902a8b1d4b1f2ac',1,'PolarSplineFEMPoissonLikeSolver']]] ]; diff --git a/search/functions_17.js b/search/functions_17.js new file mode 100644 index 000000000..55488325c --- /dev/null +++ b/search/functions_17.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['_7ebarycentrictocartesian_0',['~BarycentricToCartesian',['../classBarycentricToCartesian.html#acd4b23c1212d5e8dd7b71f146e55f0fb',1,'BarycentricToCartesian']]], + ['_7ecartesiantobarycentric_1',['~CartesianToBarycentric',['../classCartesianToBarycentric.html#a061b577c34c83c47795c4ee00857a35a',1,'CartesianToBarycentric']]], + ['_7ederivfieldmem_2',['~DerivFieldMem',['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#a7af910528c9b40eb599439539340925d',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >']]], + ['_7eimpl_3',['~Impl',['../classPolarBSplines_1_1Impl.html#aa4c6ff5c6a2e63283fc779ef1a6befd2',1,'PolarBSplines::Impl']]], + ['_7ematrixbatch_4',['~MatrixBatch',['../classMatrixBatch.html#ad51f64ea5ba9ccd34f7bb1aa2993f547',1,'MatrixBatch']]], + ['_7evectorfield_5',['~VectorField',['../classVectorField.html#a8427826fe85452b261065430f7beebd0',1,'VectorField']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js index dff85ae1a..ca03d3ae5 100644 --- a/search/functions_2.js +++ b/search/functions_2.js @@ -6,7 +6,7 @@ var searchData= ['cartesiantocircular_3',['cartesiantocircular',['../classCartesianToCircular.html#a2162a169d565b588cf40345d197137e0',1,'CartesianToCircular::CartesianToCircular(CartesianToCircular const &other)'],['../classCartesianToCircular.html#abe8adddabf03ac964a31590c69e89f29',1,'CartesianToCircular::CartesianToCircular(CartesianToCircular &&x)=default']]], ['cartesiantoczarny_4',['cartesiantoczarny',['../classCartesianToCzarny.html#a80ca5099b71f0cdc2e0fafc64e5e574f',1,'CartesianToCzarny::CartesianToCzarny(double epsilon, double e)'],['../classCartesianToCzarny.html#a80547f490f808df5d5b9402eab77f4a1',1,'CartesianToCzarny::CartesianToCzarny(CartesianToCzarny const &other)'],['../classCartesianToCzarny.html#a4ce68c3eff3e32b912a64e0b47f5b8c2',1,'CartesianToCzarny::CartesianToCzarny(CartesianToCzarny &&x)=default']]], ['charge_5',['charge',['../classSpeciesInformation_1_1Impl.html#adc4091cbb9adc9c34bc0b874b0ac5ce5',1,'SpeciesInformation::Impl']]], - ['chargedensitycalculator_6',['chargedensitycalculator',['../classChargeDensityCalculator.html#a384d7a001ede75b2ccf2053e299ceba9',1,'ChargeDensityCalculator::ChargeDensityCalculator(DConstFieldVxVy coeffs)'],['../classChargeDensityCalculator.html#ae129d33bd6dcb7a675e664a53c0a4747',1,'ChargeDensityCalculator::ChargeDensityCalculator(DConstFieldVx coeffs)']]], + ['chargedensitycalculator_6',['chargedensitycalculator',['../classChargeDensityCalculator.html#ae129d33bd6dcb7a675e664a53c0a4747',1,'ChargeDensityCalculator::ChargeDensityCalculator(DConstFieldVx coeffs)'],['../classChargeDensityCalculator.html#a384d7a001ede75b2ccf2053e299ceba9',1,'ChargeDensityCalculator::ChargeDensityCalculator(DConstFieldVxVy coeffs)']]], ['charges_7',['charges',['../classSpeciesInformation_1_1Impl.html#a1b646bde625f303eb58abfd02bfa9b4d',1,'SpeciesInformation::Impl']]], ['check_5fdimension_5flocation_8',['check_dimension_location',['../namespacecollisions__dimensions.html#a7870e36eeb352997a20c1b3ff2451e2f',1,'collisions_dimensions']]], ['check_5fstability_9',['check_stability',['../classMatrixBatchTridiag.html#a5951ed8d2a582543b1962b6f0ecfe490',1,'MatrixBatchTridiag']]], @@ -18,19 +18,22 @@ var searchData= ['collisionsinter_15',['CollisionsInter',['../classCollisionsInter.html#acdd51d6c9f1b051ec7661c1a160a31b7',1,'CollisionsInter']]], ['collisionsintra_16',['CollisionsIntra',['../classCollisionsIntra.html#addf7a93d3bbdc450236e56d71609c10b',1,'CollisionsIntra']]], ['collisionspvparmu_17',['CollisionSpVparMu',['../classCollisionSpVparMu.html#ab14cecc024e532328c05d4ad9447a275',1,'CollisionSpVparMu']]], - ['combinedmapping_18',['combinedmapping',['../classCombinedMapping.html#a5394e02f2afbc5bd43ea1a90ffe0dcb0',1,'CombinedMapping::CombinedMapping(Map1 mapping_1, Mapping2 mapping_2, double epsilon)'],['../classCombinedMapping.html#a8fb44b1366eb67dced71e18066a3d064',1,'CombinedMapping::CombinedMapping(Map1 mapping_1, Mapping2 mapping_2)']]], + ['combinedmapping_18',['combinedmapping',['../classCombinedMapping.html#a8fb44b1366eb67dced71e18066a3d064',1,'CombinedMapping::CombinedMapping(Map1 mapping_1, Mapping2 mapping_2)'],['../classCombinedMapping.html#a5394e02f2afbc5bd43ea1a90ffe0dcb0',1,'CombinedMapping::CombinedMapping(Map1 mapping_1, Mapping2 mapping_2, double epsilon)']]], ['compute_5fcoeff_5fad_19',['compute_coeff_AD',['../classCollisionInfoRadial.html#a7894972e43a80d903597cd5e05092825',1,'CollisionInfoRadial']]], ['compute_5fcoeffs_5fon_5fmapping_20',['compute_coeffs_on_mapping',['../volume__quadrature__nd_8hpp.html#a606ed8438555c5104a22658ba68f32ae',1,'volume_quadrature_nd.hpp']]], ['compute_5fmatrix_5fcoeff_21',['compute_matrix_coeff',['../classCollisionsIntra.html#aa3c59137d3bc0e30d7ca9b413039b050',1,'CollisionsIntra']]], ['compute_5fmaxwellian_22',['compute_maxwellian',['../classMaxwellianEquilibrium.html#aa483c442400af8b6eb3b887a9945315a',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVxVy const fMaxwellian, double const density, double const temperature, double const mean_velocity)'],['../classMaxwellianEquilibrium.html#a0dd190b10d5776e496d826ae26f2be16',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVparMu const fMaxwellian, double const mass, double const density, double const temperature, double const mean_velocity, double const magnetic_field)'],['../classMaxwellianEquilibrium.html#ad36cc8fa4fd55e3db9aa9e04bb45e36a',1,'MaxwellianEquilibrium::compute_maxwellian(DFieldVx const fMaxwellian, double const density, double const temperature, double const mean_velocity)']]], - ['compute_5frhs_5fvector_23',['compute_rhs_vector',['../classCollisionsIntra.html#a21406b811ef83d4f90a80c0139ddb5de',1,'CollisionsIntra']]], - ['compute_5ftwomaxwellian_24',['compute_twomaxwellian',['../classBumpontailEquilibrium.html#aacc82cfd448632f072b0e536c93ea668',1,'BumpontailEquilibrium']]], - ['connected_5fto_5fpatch_25',['connected_to_patch',['../structInterface.html#ae0bdd297037fb4c4415bc7f9a3ca9fff',1,'Interface']]], - ['constantextrapolationruleonion_26',['ConstantExtrapolationRuleOnion',['../structConstantExtrapolationRuleOnion.html#af9e46e05ba3bc87e5df2f8d1f7a6393d',1,'ConstantExtrapolationRuleOnion']]], - ['contains_27',['contains',['../classIdxRangeSlice.html#aa1cc7ec0912e5195f762b6176b2aa085',1,'IdxRangeSlice::contains(Idx< DDims... > elem) const'],['../classIdxRangeSlice.html#af94edc7f3cecfc5b987d37f7929b719f',1,'IdxRangeSlice::contains(IdxRange< DDims... > idx_range) const']]], - ['control_5fpoint_28',['control_point',['../classDiscreteToCartesian.html#abca1c36c8c422aba25af218dac17f56e',1,'DiscreteToCartesian']]], - ['copy_29',['copy',['../classITimeStepper.html#ac976ff8bc85dbfed9f7b378f69bd52b4',1,'ITimeStepper']]], - ['cranknicolson_30',['CrankNicolson',['../classCrankNicolson.html#acee28614e8739edfb476a51aa7c2fe91',1,'CrankNicolson']]], - ['curvilinearsolution_31',['CurvilinearSolution',['../classCurvilinearSolution.html#a9675511665b712671f19b17b74749763',1,'CurvilinearSolution']]], - ['czarnytocartesian_32',['czarnytocartesian',['../classCzarnyToCartesian.html#ac86693dda1f089062598e4bb31fb67b5',1,'CzarnyToCartesian::CzarnyToCartesian(double epsilon, double e)'],['../classCzarnyToCartesian.html#ae821b68a527f54c5da9aabfa2a5b6995',1,'CzarnyToCartesian::CzarnyToCartesian(CzarnyToCartesian const &other)'],['../classCzarnyToCartesian.html#ad999ca35e162f88c5e84a11afeb18301',1,'CzarnyToCartesian::CzarnyToCartesian(CzarnyToCartesian &&x)=default']]] + ['compute_5foverlapping_5fsingular_5felements_23',['compute_overlapping_singular_elements',['../classPolarSplineFEMPoissonLikeSolver.html#a36be84f08a082b52a73f5134b8f1a8e2',1,'PolarSplineFEMPoissonLikeSolver']]], + ['compute_5frhs_5fvector_24',['compute_rhs_vector',['../classCollisionsIntra.html#a21406b811ef83d4f90a80c0139ddb5de',1,'CollisionsIntra']]], + ['compute_5fsingular_5felements_25',['compute_singular_elements',['../classPolarSplineFEMPoissonLikeSolver.html#ae5645f014d26559165955e51746f3e70',1,'PolarSplineFEMPoissonLikeSolver']]], + ['compute_5fstencil_5felements_26',['compute_stencil_elements',['../classPolarSplineFEMPoissonLikeSolver.html#a161e772a03b980ad5cb19bdeb6b02925',1,'PolarSplineFEMPoissonLikeSolver']]], + ['compute_5ftwomaxwellian_27',['compute_twomaxwellian',['../classBumpontailEquilibrium.html#aacc82cfd448632f072b0e536c93ea668',1,'BumpontailEquilibrium']]], + ['connected_5fto_5fpatch_28',['connected_to_patch',['../structInterface.html#ae0bdd297037fb4c4415bc7f9a3ca9fff',1,'Interface']]], + ['constantextrapolationruleonion_29',['ConstantExtrapolationRuleOnion',['../structConstantExtrapolationRuleOnion.html#af9e46e05ba3bc87e5df2f8d1f7a6393d',1,'ConstantExtrapolationRuleOnion']]], + ['contains_30',['contains',['../classIdxRangeSlice.html#aa1cc7ec0912e5195f762b6176b2aa085',1,'IdxRangeSlice::contains(Idx< DDims... > elem) const'],['../classIdxRangeSlice.html#af94edc7f3cecfc5b987d37f7929b719f',1,'IdxRangeSlice::contains(IdxRange< DDims... > idx_range) const']]], + ['control_5fpoint_31',['control_point',['../classDiscreteToCartesian.html#abca1c36c8c422aba25af218dac17f56e',1,'DiscreteToCartesian']]], + ['copy_32',['copy',['../classITimeStepper.html#ac976ff8bc85dbfed9f7b378f69bd52b4',1,'ITimeStepper']]], + ['cranknicolson_33',['CrankNicolson',['../classCrankNicolson.html#acee28614e8739edfb476a51aa7c2fe91',1,'CrankNicolson']]], + ['curvilinearsolution_34',['CurvilinearSolution',['../classCurvilinearSolution.html#a9675511665b712671f19b17b74749763',1,'CurvilinearSolution']]], + ['czarnytocartesian_35',['czarnytocartesian',['../classCzarnyToCartesian.html#ac86693dda1f089062598e4bb31fb67b5',1,'CzarnyToCartesian::CzarnyToCartesian(double epsilon, double e)'],['../classCzarnyToCartesian.html#ae821b68a527f54c5da9aabfa2a5b6995',1,'CzarnyToCartesian::CzarnyToCartesian(CzarnyToCartesian const &other)'],['../classCzarnyToCartesian.html#ad999ca35e162f88c5e84a11afeb18301',1,'CzarnyToCartesian::CzarnyToCartesian(CzarnyToCartesian &&x)=default']]] ]; diff --git a/search/functions_5.js b/search/functions_5.js index d6e2060cf..d906fbe0a 100644 --- a/search/functions_5.js +++ b/search/functions_5.js @@ -1,16 +1,17 @@ var searchData= [ - ['factorize_0',['factorize',['../classMatrix.html#a1d3dd4ae5b28f0f1ec3e64ae17998944',1,'Matrix::factorize()'],['../classMatrix__Corner__Block.html#a48fb0458b7bb4811406b6deda078de6e',1,'Matrix_Corner_Block::factorize()']]], + ['factorize_0',['factorize',['../classMatrix__Corner__Block.html#a48fb0458b7bb4811406b6deda078de6e',1,'Matrix_Corner_Block::factorize()'],['../classMatrix.html#a1d3dd4ae5b28f0f1ec3e64ae17998944',1,'Matrix::factorize()']]], ['factorize_5fmethod_1',['factorize_method',['../classMatrix.html#a490ec31dfcf14765beb1cce24ba3b985',1,'Matrix::factorize_method()'],['../classMatrix__Banded.html#af664e9b8322a6fb2e47619fffcc8201b',1,'Matrix_Banded::factorize_method()'],['../classMatrix__PDS__Tridiag.html#a89fb53c7047261f1f7360206bfdf0e67',1,'Matrix_PDS_Tridiag::factorize_method()']]], ['fem1dpoissonsolver_2',['FEM1DPoissonSolver',['../classFEM1DPoissonSolver.html#a32cb0525a0c6b57cf325eef69dac5216',1,'FEM1DPoissonSolver']]], ['fftpoissonsolver_3',['FFTPoissonSolver',['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a362273a31c591d4d99fae6e665bcea95',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >']]], - ['fill_5fk_5ftotal_4',['fill_k_total',['../classITimeStepper.html#ae63472e999a720127694c2e0a0a3c3dc',1,'ITimeStepper']]], - ['fill_5fmatrix_5fwith_5fcoeff_5',['fill_matrix_with_coeff',['../classCollisionsIntra.html#a8f9e7a4e2131b1641f821f4bb4a78b03',1,'CollisionsIntra']]], - ['find_5fequilibrium_6',['find_equilibrium',['../classVortexMergerEquilibria.html#ad3b9139693f6f2aeabf9355d14c7c37b',1,'VortexMergerEquilibria']]], - ['first_5forder_5fjacobian_5fmatrix_5fr_5frtheta_7',['first_order_jacobian_matrix_r_rtheta',['../classDiscreteToCartesian.html#a498beca5028315a8c94c31d4bf141a1a',1,'DiscreteToCartesian']]], - ['fluidmoments_8',['FluidMoments',['../classFluidMoments.html#a5c0e28b4c6f0f4eaf93ed730c3ab81b6',1,'FluidMoments']]], - ['front_9',['front',['../classIdxRangeSlice.html#a7f97c317c82426f237b421e036200973',1,'IdxRangeSlice']]], - ['full_5fdomain_10',['full_domain',['../classPolarBSplines_1_1Impl.html#a244d6ebb4a31d96e25c1844614979cc7',1,'PolarBSplines::Impl']]], - ['functiontobeadvected_5fcos_5f4_5felipse_11',['FunctionToBeAdvected_cos_4_elipse',['../classFunctionToBeAdvected__cos__4__elipse.html#a3b7c4536b840b3c02e61b57b3bfb0ec6',1,'FunctionToBeAdvected_cos_4_elipse']]], - ['functiontobeadvected_5fgaussian_12',['FunctionToBeAdvected_gaussian',['../classFunctionToBeAdvected__gaussian.html#aef3eeccf31077b83bd59c4d83d5ab360',1,'FunctionToBeAdvected_gaussian']]] + ['fill_5fint_5fvolume_4',['fill_int_volume',['../classPolarSplineFEMPoissonLikeSolver.html#a0d5abf61af4436e3bb7ee922b035447a',1,'PolarSplineFEMPoissonLikeSolver']]], + ['fill_5fk_5ftotal_5',['fill_k_total',['../classITimeStepper.html#ae63472e999a720127694c2e0a0a3c3dc',1,'ITimeStepper']]], + ['fill_5fmatrix_5fwith_5fcoeff_6',['fill_matrix_with_coeff',['../classCollisionsIntra.html#a8f9e7a4e2131b1641f821f4bb4a78b03',1,'CollisionsIntra']]], + ['find_5fequilibrium_7',['find_equilibrium',['../classVortexMergerEquilibria.html#ad3b9139693f6f2aeabf9355d14c7c37b',1,'VortexMergerEquilibria']]], + ['first_5forder_5fjacobian_5fmatrix_5fr_5frtheta_8',['first_order_jacobian_matrix_r_rtheta',['../classDiscreteToCartesian.html#a498beca5028315a8c94c31d4bf141a1a',1,'DiscreteToCartesian']]], + ['fluidmoments_9',['FluidMoments',['../classFluidMoments.html#a5c0e28b4c6f0f4eaf93ed730c3ab81b6',1,'FluidMoments']]], + ['front_10',['front',['../classIdxRangeSlice.html#a7f97c317c82426f237b421e036200973',1,'IdxRangeSlice']]], + ['full_5fdomain_11',['full_domain',['../classPolarBSplines_1_1Impl.html#a244d6ebb4a31d96e25c1844614979cc7',1,'PolarBSplines::Impl']]], + ['functiontobeadvected_5fcos_5f4_5felipse_12',['FunctionToBeAdvected_cos_4_elipse',['../classFunctionToBeAdvected__cos__4__elipse.html#a3b7c4536b840b3c02e61b57b3bfb0ec6',1,'FunctionToBeAdvected_cos_4_elipse']]], + ['functiontobeadvected_5fgaussian_13',['FunctionToBeAdvected_gaussian',['../classFunctionToBeAdvected__gaussian.html#aef3eeccf31077b83bd59c4d83d5ab360',1,'FunctionToBeAdvected_gaussian']]] ]; diff --git a/search/functions_6.js b/search/functions_6.js index 1b8f742dd..ac5ea1dd1 100644 --- a/search/functions_6.js +++ b/search/functions_6.js @@ -27,16 +27,19 @@ var searchData= ['get_5flocal_5fidx_5frange_24',['get_local_idx_range',['../classMPITransposeAllToAll.html#a992524cf2f61b2ba1e199d108140aad8',1,'MPITransposeAllToAll']]], ['get_5fmapping_5fon_5flogical_5fdim_25',['get_mapping_on_logical_dim',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a6989dccaab70d5b5974a0d3f5263edff',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >']]], ['get_5fmapping_5fon_5fpatch_26',['get_mapping_on_patch',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a83853bf96978cf43658602ed45fea3cb',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >']]], - ['get_5fmdspan_27',['get_mdspan',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a3515c17c41fab7daaf8842344473acb5',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_mdspan()'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#afb79eb00f2eb1a1b757d190663c085d1',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_mdspan(IdxRange< ODims... > provided_deriv_idx_range)']]], - ['get_5fmesh_5fghosted_28',['get_mesh_ghosted',['../classCollisionsIntra.html#a891b8ddb1bea2745b12408041b7ab9f3',1,'CollisionsIntra']]], - ['get_5fnustar0_29',['get_nustar0',['../classCollisionsInter.html#a0de983fd5f398b17fc7b5c6137f8e8ac',1,'CollisionsInter::get_nustar0()'],['../classCollisionsIntra.html#a6b18fb17a213025672de06d8d6b7cee8',1,'CollisionsIntra::get_nustar0()']]], - ['get_5fpolar_5findex_30',['get_polar_index',['../classPolarBSplines.html#a014f57828a47b6fc65e18c4632eafa5c',1,'PolarBSplines']]], - ['get_5fsampling_31',['get_sampling',['../classddcHelper_1_1NonUniformInterpolationPoints.html#ab89aa8de226681a7ac5f4c0f5009f0a6',1,'ddcHelper::NonUniformInterpolationPoints']]], - ['get_5fsize_32',['get_size',['../classMatrix.html#a15badbcf214a7842a0a654f9210f39a1',1,'Matrix']]], - ['get_5fslicer_5ffor_33',['get_slicer_for',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a868ed39fa484e90af6985b22c78df50c',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_slicer_for(Idx< ODDims... > const &slice_idx, int array_idx) const'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a87810847a0ebdc91930bdb5d861396c9',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_slicer_for(IdxRange< ODDims... > const &slice_idx_range, int array_idx) const']]], - ['get_5fslope_34',['get_slope',['../classDiocotronDensitySolution.html#a59c17bab82ed59b39b68750be2f81b62',1,'DiocotronDensitySolution']]], - ['get_5ftest_5ffunction_35',['get_test_function',['../classAdvectionSimulation.html#ae919baac00384fe092e9e7497371fa4f',1,'AdvectionSimulation::get_test_function()'],['../classAdvectionFieldSimulation.html#ab889ba149adbbc478ca434554391c9f0',1,'AdvectionFieldSimulation::get_test_function()']]], - ['get_5ftuple_36',['get_tuple',['../classMultipatchType.html#a6a44d19ff0704be6f0b4e1d476cefbcc',1,'MultipatchType']]], - ['get_5fvalues_5ffield_37',['get_values_field',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#adffb6410e57ef9d4d3fd8801cbe73a30',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_values_field()'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#acf6b5f3e9791535ee527ffe5fe3ce71b',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_values_field() const']]], - ['gridbuilder_38',['GridBuilder',['../classGridBuilder.html#a070eaf99580a98f094ee4e42f66ea2dd',1,'GridBuilder']]] + ['get_5fmatrix_5fstencil_5felement_27',['get_matrix_stencil_element',['../classPolarSplineFEMPoissonLikeSolver.html#a90ab8ff1603bc0a3f36b5a0c5077de5b',1,'PolarSplineFEMPoissonLikeSolver']]], + ['get_5fmdspan_28',['get_mdspan',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#afb79eb00f2eb1a1b757d190663c085d1',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_mdspan(IdxRange< ODims... > provided_deriv_idx_range)'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a3515c17c41fab7daaf8842344473acb5',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_mdspan()']]], + ['get_5fmesh_5fghosted_29',['get_mesh_ghosted',['../classCollisionsIntra.html#a891b8ddb1bea2745b12408041b7ab9f3',1,'CollisionsIntra']]], + ['get_5fnustar0_30',['get_nustar0',['../classCollisionsIntra.html#a6b18fb17a213025672de06d8d6b7cee8',1,'CollisionsIntra::get_nustar0()'],['../classCollisionsInter.html#a0de983fd5f398b17fc7b5c6137f8e8ac',1,'CollisionsInter::get_nustar0()']]], + ['get_5fpolar_5findex_31',['get_polar_index',['../classPolarBSplines.html#a014f57828a47b6fc65e18c4632eafa5c',1,'PolarBSplines']]], + ['get_5fquadrature_5fpoints_5fin_5fcell_32',['get_quadrature_points_in_cell',['../classPolarSplineFEMPoissonLikeSolver.html#ad28d1360dd316f67bae8ae9a0b866958',1,'PolarSplineFEMPoissonLikeSolver']]], + ['get_5fsampling_33',['get_sampling',['../classddcHelper_1_1NonUniformInterpolationPoints.html#ab89aa8de226681a7ac5f4c0f5009f0a6',1,'ddcHelper::NonUniformInterpolationPoints']]], + ['get_5fsize_34',['get_size',['../classMatrix.html#a15badbcf214a7842a0a654f9210f39a1',1,'Matrix']]], + ['get_5fslicer_5ffor_35',['get_slicer_for',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a868ed39fa484e90af6985b22c78df50c',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_slicer_for(Idx< ODDims... > const &slice_idx, int array_idx) const'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a87810847a0ebdc91930bdb5d861396c9',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_slicer_for(IdxRange< ODDims... > const &slice_idx_range, int array_idx) const']]], + ['get_5fslope_36',['get_slope',['../classDiocotronDensitySolution.html#a59c17bab82ed59b39b68750be2f81b62',1,'DiocotronDensitySolution']]], + ['get_5ftest_5ffunction_37',['get_test_function',['../classAdvectionSimulation.html#ae919baac00384fe092e9e7497371fa4f',1,'AdvectionSimulation::get_test_function()'],['../classAdvectionFieldSimulation.html#ab889ba149adbbc478ca434554391c9f0',1,'AdvectionFieldSimulation::get_test_function()']]], + ['get_5ftuple_38',['get_tuple',['../classMultipatchType.html#a6a44d19ff0704be6f0b4e1d476cefbcc',1,'MultipatchType']]], + ['get_5fvalue_5fand_5fgradient_39',['get_value_and_gradient',['../classPolarSplineFEMPoissonLikeSolver.html#a1365cb08d0b9a262dd4c89545edce0dd',1,'PolarSplineFEMPoissonLikeSolver::get_value_and_gradient(double &value, std::array< double, 2 > &gradient, EvalDeriv1DType const &r_basis, EvalDeriv1DType const &theta_basis)'],['../classPolarSplineFEMPoissonLikeSolver.html#aaa2f5cbc9937fab97a4dcbd0a36dba6c',1,'PolarSplineFEMPoissonLikeSolver::get_value_and_gradient(double &value, std::array< double, 2 > &gradient, EvalDeriv2DType const &basis, EvalDeriv2DType const &)']]], + ['get_5fvalues_5ffield_40',['get_values_field',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#adffb6410e57ef9d4d3fd8801cbe73a30',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_values_field()'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#acf6b5f3e9791535ee527ffe5fe3ce71b',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::get_values_field() const']]], + ['gridbuilder_41',['GridBuilder',['../classGridBuilder.html#a070eaf99580a98f094ee4e42f66ea2dd',1,'GridBuilder']]] ]; diff --git a/search/functions_8.js b/search/functions_8.js index 043976e71..90953cf93 100644 --- a/search/functions_8.js +++ b/search/functions_8.js @@ -8,7 +8,7 @@ var searchData= ['impitranspose_5',['IMPITranspose',['../classIMPITranspose.html#a896a457be3e1f9584122760868b9cbd4',1,'IMPITranspose']]], ['impl_6',['impl',['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#a4a5bf93f1e18841db8b6c010e7a1bcde',1,'TriangularBernsteinPolynomialBasis::Impl::Impl()'],['../classPolarBSplines_1_1Impl.html#a386e9fe73ec0a24b3773353aa4ad1af2',1,'PolarBSplines::Impl::Impl(Impl &&x)=default'],['../classPolarBSplines_1_1Impl.html#af79c5cc9a060916b31c8a41e5f7cd7da',1,'PolarBSplines::Impl::Impl(Impl const &x)=default'],['../classPolarBSplines_1_1Impl.html#aad7f0ed019b40ca8bea9259f53d94a83',1,'PolarBSplines::Impl::Impl(Impl< DDim, OriginMemorySpace > const &impl)'],['../classPolarBSplines_1_1Impl.html#a76ae9aee443a828ec5f62ddabbda37fb',1,'PolarBSplines::Impl::Impl(const DiscreteMapping &curvilinear_to_cartesian)'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#a49ed43bd10c8c5ea683b799a4106e3d2',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(Impl const &x)=default'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#ae33d1d61323db71d5d5a5089473e3b67',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(Impl< DDim, OriginMemorySpace > const &impl)'],['../classTriangularBernsteinPolynomialBasis_1_1Impl.html#ab628a878e7d858a429dd6a2de850447f',1,'TriangularBernsteinPolynomialBasis::Impl::Impl(CartesianToBarycentric< X, Y, Corner1Tag, Corner2Tag, Corner3Tag > const &coord_changer)'],['../classSpeciesInformation_1_1Impl.html#a1f565677d75cf122a50af8043c11d012',1,'SpeciesInformation::Impl::Impl(DFieldMem< index_range_type, MemorySpace > charge, DFieldMem< index_range_type, MemorySpace > mass)'],['../classSpeciesInformation_1_1Impl.html#a9db19ad040ca32c4bcd51b6aedd776c3',1,'SpeciesInformation::Impl::Impl(Impl< Grid1D, OMemorySpace > const &impl)'],['../classMoments_1_1Impl.html#a53ef02b0e60b8aeafdaed641c660ba61',1,'Moments::Impl::Impl()'],['../classMoments_1_1Impl.html#a1d0f28c92509bf1c21a8f930dca915ea',1,'Moments::Impl::Impl(Impl< Grid1D, OMemorySpace > const &impl)']]], ['init_5ffrom_5finput_7',['init_from_input',['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classBumpontailEquilibrium.html#ade9524f9a546fdcb20c3e60f9d788edd',1,'BumpontailEquilibrium::init_from_input()'],['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classSingleModePerturbInitialization.html#a0defeabc2c4c50acb313cc919e0f39fa',1,'SingleModePerturbInitialization::init_from_input()'],['../classMaxwellianEquilibrium.html#af2e28581eaced8f7962064896b42e6b5',1,'MaxwellianEquilibrium::init_from_input()'],['../classSingleModePerturbInitialization.html#a53a65b6a5efe391943ebd71f97be0278',1,'SingleModePerturbInitialization::init_from_input()']]], - ['init_5fnnz_5fper_5fline_8',['init_nnz_per_line',['../classPolarSplineFEMPoissonLikeSolver.html#ad6c2770cd84599b20bc3a9adc5a94c6b',1,'PolarSplineFEMPoissonLikeSolver']]], + ['init_5fnnz_5fper_5fline_8',['init_nnz_per_line',['../classPolarSplineFEMPoissonLikeSolver.html#ad1b92b440d6e5c71e14b09d53beefd84',1,'PolarSplineFEMPoissonLikeSolver']]], ['initialisation_9',['initialisation',['../classDiocotronDensitySolution.html#a87def8e146e4c4104e3a3d3d7d54445d',1,'DiocotronDensitySolution']]], ['integrals_10',['integrals',['../classPolarBSplines_1_1Impl.html#aced2ee11d0967ae40b922adeefbc8a28',1,'PolarBSplines::Impl']]], ['integrate_11',['integrate',['../classMultipatchSplineEvaluator2D.html#a6cea2a836a1df080f509a16ce5802688',1,'MultipatchSplineEvaluator2D::integrate()'],['../classPolarSplineEvaluator.html#a4138c63cadd45444a7d820eda652b64b',1,'PolarSplineEvaluator::integrate()']]], diff --git a/search/functions_e.js b/search/functions_e.js index b6612ba59..56afee8ef 100644 --- a/search/functions_e.js +++ b/search/functions_e.js @@ -1,7 +1,7 @@ var searchData= [ ['onionpatchlocator_0',['OnionPatchLocator',['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a6c548d2343e842859e4164eec8192537',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >']]], - ['operator_28_29_1',['operator()',['../classEdgeTransformation.html#a10c297fdec475ce3b1b6afbbcdedb5cb',1,'EdgeTransformation::operator()()'],['../classPolarSplineFEMPoissonLikeSolver.html#a400425e0ecc5088c1c6427ce8f1e881b',1,'PolarSplineFEMPoissonLikeSolver::operator()()'],['../classEdgeTransformation.html#a953cea3a043308fbce6a55438daf7376',1,'EdgeTransformation::operator()()'],['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a02e7fbec0ed664f9ad20d20d48c85ab4',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >::operator()()'],['../structConstantExtrapolationRuleOnion.html#a2fc1ed58f951dd2d5ae6878853524664',1,'ConstantExtrapolationRuleOnion::operator()()'],['../classMultipatchSplineBuilder.html#a0292da3c87a8bd59c429f1bc076051c3',1,'MultipatchSplineBuilder::operator()()'],['../classMultipatchSplineBuilder2D.html#a08dc1aebc4ea52636be03f3888b03c49',1,'MultipatchSplineBuilder2D::operator()()'],['../classMultipatchSplineEvaluator2D.html#a6d3f057e123cd847109fae5a4e190149',1,'MultipatchSplineEvaluator2D::operator()(Coord const coord_eval, MultipatchSplineCoeff const &patches_splines) const'],['../classMultipatchSplineEvaluator2D.html#aaecde8a4cb5fccb1f10dadf7a09b4300',1,'MultipatchSplineEvaluator2D::operator()(MultipatchValues const &patches_values, MultipatchCoordField const &patches_coords, MultipatchSplineCoeff const &patches_splines) const'],['../structNullExtrapolationRule.html#afff2dfac58dbcfcc760da499bb23b953',1,'NullExtrapolationRule::operator()()'],['../classFEM1DPoissonSolver.html#a74360fade3d3986423b148334d88ea74',1,'FEM1DPoissonSolver::operator()(field_type phi, field_type rho) const override'],['../classFEM1DPoissonSolver.html#a066aa2568bdfd946f04c1d831debd663',1,'FEM1DPoissonSolver::operator()(field_type phi, vector_field_type E, field_type rho) const override'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a4bb7415769d706c9b48d3a66efd76c71',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::operator()(field_type phi, field_type rho) const final'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a852a2a09220eabd3122cec7c741cacb2',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::operator()(field_type phi, vector_field_type E, field_type rho) const final'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#aceeef36c98f8db8338a170049e81d624',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::operator()(field_type phi, field_type rho) const =0'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#ab446c64f8dd8b13fe58964cf7821be05',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::operator()(field_type phi, vector_field_type E, field_type rho) const =0'],['../classPolarSplineFEMPoissonLikeSolver.html#ab96025644e98f8d005f8df7f1c6506e4',1,'PolarSplineFEMPoissonLikeSolver::operator()()'],['../classMaxwellianEquilibrium.html#a883dfc9d838b53deeb47e93f178c7655',1,'MaxwellianEquilibrium::operator()()'],['../classPredCorr.html#afbad5baf6bfcce5c48b0cd47ce1de29d',1,'PredCorr::operator()()'],['../classBslAdvection1D.html#ab6c09fdec0ac2ec060d846a03a775766',1,'BslAdvection1D::operator()()'],['../classSingleModePerturbInitialization.html#abcef02302c35de979ca2d34d5f4b5b8f',1,'SingleModePerturbInitialization::operator()()'],['../classChargeDensityCalculator.html#a7ad6d91143f3e31e3ed8318a9970ef8e',1,'ChargeDensityCalculator::operator()()'],['../classIChargeDensityCalculator.html#a14a845fbe0e835ff765a33611f09bd8b',1,'IChargeDensityCalculator::operator()()'],['../classIQNSolver.html#a4df01b6445f6c8dc356ebce808102115',1,'IQNSolver::operator()()'],['../classNullQNSolver.html#af216cca80bf1989bb5031c640b6e3db1',1,'NullQNSolver::operator()()'],['../classQNSolver.html#a7a295c1742a016b2f154a35a315a608c',1,'QNSolver::operator()()'],['../classITimeSolver.html#a66cc73d3765db94df87fc17cc215c01b',1,'ITimeSolver::operator()()'],['../classMPITransposeAllToAll.html#a0d1c226fe054058b70a1b1d9a228ff1a',1,'MPITransposeAllToAll::operator()()'],['../classIVlasovSolver.html#ae2c2b1a0762d06fe0beba20613003bff',1,'IVlasovSolver::operator()()'],['../classSplitVlasovSolver.html#ad980db982084e40e1777484ddc3312b0',1,'SplitVlasovSolver::operator()()'],['../classLagrangeInterpolator.html#a27441b99d16e977bf606a01442e8a957',1,'LagrangeInterpolator::operator()()'],['../classIInterpolator.html#a83d8113fe207f0d87a240f6ae3f99498',1,'IInterpolator::operator()()'],['../classIPreallocatableInterpolator.html#acf51b8cbb5a54ff83ee67c20f538e7e3',1,'IPreallocatableInterpolator::operator()()'],['../classSplineInterpolator.html#a39f32a67cd5be9f26c7dafdb8e33ecaf',1,'SplineInterpolator::operator()()'],['../classVectorMapper_3_01NDTag_3_01XIn_00_01YIn_01_4_00_01NDTag_3_01XOut_00_01YOut_01_4_00_01Mapping_00_01ExecSpace_01_4.html#a47677a0e696c7f9eb9f254f4a92bde73',1,'VectorMapper< NDTag< XIn, YIn >, NDTag< XOut, YOut >, Mapping, ExecSpace >::operator()()'],['../classPartialDerivative.html#a82c5b7cc236af1bc2df0726e8345fe18',1,'PartialDerivative::operator()()'],['../classRefinedDiscreteToCartesianBuilder.html#ad569e80c83f31dfec64813d24bfb2e25',1,'RefinedDiscreteToCartesianBuilder::operator()()'],['../classBarycentricToCartesian.html#a9bd05c5378d5246a7ad4f18dbb86ab76',1,'BarycentricToCartesian::operator()()'],['../classCartesianToBarycentric.html#a2a067e2af8444be27e98f571604aa939',1,'CartesianToBarycentric::operator()()'],['../classCartesianToCircular.html#a76d65d1853e88176be7ffd71c50f8abb',1,'CartesianToCircular::operator()()'],['../classCartesianToCzarny.html#a2a409a220bb1d0d67b6128e7c6f92347',1,'CartesianToCzarny::operator()()'],['../classCircularToCartesian.html#a6ecdc63bdc19d5f267559d674c48aa9c',1,'CircularToCartesian::operator()()'],['../classCombinedMapping.html#ae6bdf142f7b26378f0dc1326e9045fde',1,'CombinedMapping::operator()()'],['../classCzarnyToCartesian.html#ac792805cabfd26bb39f768845b86388c',1,'CzarnyToCartesian::operator()()'],['../classDiscreteToCartesianBuilder.html#ae85a1541fb4b1695515c7d97526b8d40',1,'DiscreteToCartesianBuilder::operator()()'],['../classManufacturedPoissonTest.html#a88bc41fa060076c0477a808ac4395b79',1,'ManufacturedPoissonTest::operator()()'],['../classDiscreteToCartesian.html#a6b6915fcec41468d6d03ba9fd6cac374',1,'DiscreteToCartesian::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CircularToCartesian_3_01R_00_01Theta_00_01X_00_0179fdb551d5240572466d89e3eb7a8bfc.html#a20a9f506fb02601083c84533d0e6209e',1,'InvJacobianOPoint< CombinedMapping< CircularToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CzarnyToCartesian_3_01R_00_01Theta_00_01X_00_01Y_8f5ea6a67f8bbc15e1b2c45d7660cfb5.html#a5f3ec1e15de5ee544fac4d50bb6a9397',1,'InvJacobianOPoint< CombinedMapping< CzarnyToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01DiscreteToCartesian_3_01X_00_01Y_00_01SplineEvaludfe78b5e2437ea09e09ab68f82896984.html#a7db69865b918559feb0abfef1964973b',1,'InvJacobianOPoint< CombinedMapping< DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classInverseJacobianMatrix.html#ad33e3bab6bf8473ddbb65ca77661b3a2',1,'InverseJacobianMatrix::operator()()'],['../classMetricTensor.html#afa4a1d1ac34eb5fc3a2464d3844151fe',1,'MetricTensor::operator()()'],['../classPolarSplineEvaluator.html#a936ad154152aab8185954b19e6e25b86',1,'PolarSplineEvaluator::operator()(ddc::Coordinate< DimR, DimTheta > coord_eval, PolarSplineView< PolarBSplinesType, MemSpace > const spline_coef) const'],['../classPolarSplineEvaluator.html#a68c59720235b1edcb3cc354a20e33155',1,'PolarSplineEvaluator::operator()(ddc::ChunkSpan< double, Domain, Kokkos::layout_right, MemSpace > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< DimR, DimTheta > const, Domain, Kokkos::layout_right, MemSpace > const coords_eval, PolarSplineView< PolarBSplinesType, MemSpace > const spline_coef) const'],['../classAdvectionField__rotation.html#a4dc539810d2d10aa68104841574802cf',1,'AdvectionField_rotation::operator()()'],['../classQuadrature.html#ad7645c75af6af6bdf3f2d13eaa7cd6ff',1,'Quadrature::operator()()'],['../classGridBuilder.html#a9b022df3951111963099676b1a580dc5',1,'GridBuilder::operator()()'],['../classFunctionToBeAdvected.html#ac469846a7162037505e058f7d248dc4b',1,'FunctionToBeAdvected::operator()()'],['../classFunctionToBeAdvected__cos__4__elipse.html#a2f35b8a7024c4e1e1d0a09e761abf56e',1,'FunctionToBeAdvected_cos_4_elipse::operator()()'],['../classFunctionToBeAdvected__gaussian.html#a5cefc067d3394e546900673571f6e612',1,'FunctionToBeAdvected_gaussian::operator()()'],['../classAdvectionField.html#ad83cd6e152724ab1c8e91be077eb5727',1,'AdvectionField::operator()()'],['../classAdvectionField__decentred__rotation.html#aaabb7b2f3ae0f6aadaa1b5e3a7d1a94f',1,'AdvectionField_decentred_rotation::operator()()'],['../classAdvectionField__translation.html#afd102ec3e9ce04fa1d0a38643525eb8d',1,'AdvectionField_translation::operator()()'],['../classQuadrature.html#acc3a757e91e2d185ee290c409156fd4f',1,'Quadrature::operator()()'],['../classElectrostaticalPotentialSimulation.html#a445037f02ef92015762871398e8fd471',1,'ElectrostaticalPotentialSimulation::operator()()'],['../classElectrostaticalPotentialSimulation__decentred__rotation.html#a0a5322b2df29b69ab4c5438b5b0207af',1,'ElectrostaticalPotentialSimulation_decentred_rotation::operator()()'],['../classElectrostaticalPotentialSimulation__translation.html#ab42dce0f7ac411db86c2dd9871537189',1,'ElectrostaticalPotentialSimulation_translation::operator()()'],['../classElectrostaticalPotentialSimulation__rotation.html#af3f3c3819cbc815aa2a272028ef24fcd',1,'ElectrostaticalPotentialSimulation_rotation::operator()()'],['../classPoissonSolution.html#a88e27ab5b89c3992369e44ca7ecb56de',1,'PoissonSolution::operator()()'],['../classCurvilinearSolution.html#a88ec8a5cb7ec05b1abb9e9347016ea42',1,'CurvilinearSolution::operator()()'],['../classCartesianSolution.html#a0153345ef0de946e25e0bad9a68cc8dd',1,'CartesianSolution::operator()()'],['../classIInterpolatorRTheta.html#aef9cc9d724e5b0191efad905d8bfaeee',1,'IInterpolatorRTheta::operator()()'],['../classIFootFinder.html#abc0cb5c4fada6ea222d9cdee0969fb75',1,'IFootFinder::operator()()'],['../classSplineFootFinder.html#ae557bc9c915b40ddfecad5332dced74c',1,'SplineFootFinder::operator()()'],['../classAdvectionFieldFinder.html#a6c48a3bdb689fb9a270698a6617f2cfb',1,'AdvectionFieldFinder::operator()(host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#a1c94218e7996b38d562fa98ccd29dde5',1,'AdvectionFieldFinder::operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#a266b3868a92f671084142eb26344bad0',1,'AdvectionFieldFinder::operator()(host_t< SplinePolar > &electrostatic_potential_coef, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#ab2f205f106d6c6c784c34f52d9a76de0',1,'AdvectionFieldFinder::operator()(host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classAdvectionFieldFinder.html#af8a043f36e90ea2b67a30978ccbca01b',1,'AdvectionFieldFinder::operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classAdvectionFieldFinder.html#a02551b0e4207225b6f0244a81766c837',1,'AdvectionFieldFinder::operator()(host_t< SplinePolar > &electrostatic_potential_coef, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classIAdvectionRTheta.html#a346eaaf9a5ce416b0f3011efe94458b7',1,'IAdvectionRTheta::operator()()'],['../classIPreallocatableInterpolatorRTheta.html#a2956ac969cedd10e25e86db83effc123',1,'IPreallocatableInterpolatorRTheta::operator()()'],['../classSplineInterpolatorRTheta.html#a9668b330c6f20ffd37b9712668a8b80b',1,'SplineInterpolatorRTheta::operator()()'],['../classIQNSolver.html#a1398a276bd2f959a0a3474c9d10b94c3',1,'IQNSolver::operator()()'],['../classPoissonLikeRHSFunction.html#a87f656365ccc4fe8d8fb650c0264679a',1,'PoissonLikeRHSFunction::operator()()'],['../classBslPredCorrRTheta.html#ad47f1c1d3fb1b113fee4bd955272a5b0',1,'BslPredCorrRTheta::operator()()'],['../classBslExplicitPredCorrRTheta.html#aaeabe916423e28d00c1ab8e0d8a4db54',1,'BslExplicitPredCorrRTheta::operator()()'],['../classBslImplicitPredCorrRTheta.html#a35fb8dc2ae119da7ed06f1f8dc2d439e',1,'BslImplicitPredCorrRTheta::operator()()'],['../classITimeSolverRTheta.html#a5e17feb3b5b1c2cf535b2bf58732e137',1,'ITimeSolverRTheta::operator()()'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#a452e3d080c0cf135f1610348fc469b42',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::operator()()'],['../classBslAdvectionVelocity.html#a9774e52704d997107ddeeb0d4041a0a9',1,'BslAdvectionVelocity::operator()()'],['../classBslAdvectionSpatial.html#ab806340298fc18ebefefe09f205d116f',1,'BslAdvectionSpatial::operator()()'],['../classIAdvectionVelocity.html#a3421d3fb6a659e30d75af3ce8bac861a',1,'IAdvectionVelocity::operator()()'],['../classIAdvectionSpatial.html#a1ca175ba280c8d9f82a96b285a0a56f2',1,'IAdvectionSpatial::operator()()'],['../classNullAdvectionVelocity.html#a006ed56c49d2f95f5b95f78ed574f72e',1,'NullAdvectionVelocity::operator()()'],['../classCollisionSpVparMu.html#a87ae0a4bf2125a89b0f5235d6217b545',1,'CollisionSpVparMu::operator()()'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a11d7a0ef77df2e057a0f56d2555fe582',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::operator()()'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#af060ce1efbb1b8977510596bfda7c7d9',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::operator()()'],['../classIEquilibrium.html#ac3766d5ef01c1e949ec3dd6d55892a75',1,'IEquilibrium::operator()()'],['../classVectorField.html#a660ef0b0f3f4791ab5540f533e148f09',1,'VectorField::operator()(ddc::DiscreteElement< ODDims > const &... delems) const noexcept'],['../classVectorField.html#a081ddf837d169a837141e18446730b1d',1,'VectorField::operator()(Idx< ODDims... > const &delems) const noexcept'],['../classVectorFieldMem.html#ad9369a957b143d0cee28f49fb82d7d88',1,'VectorFieldMem::operator()(ddc::DiscreteElement< ODDims > const &... delems) const noexcept'],['../classVectorFieldMem.html#ab9430bd40d0b0924dc2a5735617483a5',1,'VectorFieldMem::operator()(Idx< ODDims... > const &delems) const noexcept'],['../classBslAdvectionRTheta.html#ad2bf20f8a318faf0575e09a372317c70',1,'BslAdvectionRTheta::operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< X, Y > > advection_field_xy, double dt) const override'],['../classBslAdvectionRTheta.html#affe3f9d4097bf05e95ce8d1c14557ca6',1,'BslAdvectionRTheta::operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY const &advection_field_xy_center, double dt) const override'],['../classIAdvectionRTheta.html#a6b0a226521869e6508886562b32a7cf9',1,'IAdvectionRTheta::operator()()'],['../classFluidMoments.html#a2ae74d24f0db28d93e39b88d885b90cd',1,'FluidMoments::operator()()'],['../classCollisionsInter.html#a1f8104eb5930b71b25856a0640c534bf',1,'CollisionsInter::operator()()'],['../classCollisionsIntra.html#ad066a79f6c0a9dcf3720dbfc5e9056e0',1,'CollisionsIntra::operator()()'],['../classKineticSource.html#a384f4c655ebe246d99964de77ee780d2',1,'KineticSource::operator()()'],['../classKrookSourceAdaptive.html#a1f7a6ce3a4f5f93214352a4787ba7888',1,'KrookSourceAdaptive::operator()()'],['../classKrookSourceConstant.html#a266237a1a58a6f8f000ee4e910353dcc',1,'KrookSourceConstant::operator()()'],['../classITimeSolver.html#abfdecd652433d1ae388a6489da2ed865',1,'ITimeSolver::operator()()'],['../classPredCorr.html#a2a3c70566fbfaef1d04bb540c980e7d1',1,'PredCorr::operator()()'],['../classFluidMoments.html#aeb2a3f97d8a00b2c5eed9df9e1317fd7',1,'FluidMoments::operator()()'],['../classIRightHandSide.html#a00f66ff88f6b0fd17a931a09b1ddb2d3',1,'IRightHandSide::operator()()'],['../classFluidMoments.html#a4ab19d391047e94ce2dcc8e73bf94faa',1,'FluidMoments::operator()(double &mean_velocity, DConstFieldVx fdistribu, double density, MomentVelocity moment_velocity)'],['../classFluidMoments.html#a60e881623a1a0db3245c690b4d7cc27f',1,'FluidMoments::operator()(DFieldSpX mean_velocity, DConstFieldSpXVx allfdistribu, DConstFieldSpX density, MomentVelocity moment_velocity)'],['../classFluidMoments.html#a180dd355d3d536623a0393c243af58d3',1,'FluidMoments::operator()(double &temperature, DConstFieldVx fdistribu, double density, double mean_velocity, MomentTemperature moment_temperature)'],['../classFluidMoments.html#ac15b6dd021fe761a18301a5475035aae',1,'FluidMoments::operator()(DFieldSpX temperature, DConstFieldSpXVx allfdistribu, DConstFieldSpX density, DConstFieldSpX mean_velocity, MomentTemperature moment_temperature)'],['../classKelvinHelmholtzInstabilityInitialization.html#a7e681122586f70b241acc2c647cf2f67',1,'KelvinHelmholtzInstabilityInitialization::operator()()'],['../classPredCorrRK2XY.html#a03ce8460021646ecb76554cbb4f1b088',1,'PredCorrRK2XY::operator()()'],['../classIInitialization.html#a6fd840a3367ef39aed60a036fc196618',1,'IInitialization::operator()()'],['../classIEquilibrium.html#a425f7b104d75900fcc769bdee9c0cdbd',1,'IEquilibrium::operator()()'],['../classBumpontailEquilibrium.html#a4c85a379ea216bb7ac95186cf8af8817',1,'BumpontailEquilibrium::operator()()'],['../classIInitialization.html#abc23a07c3e1a7852b4be401e57526061',1,'IInitialization::operator()()'],['../classMaxwellianEquilibrium.html#a0cc2b9bdb6300dd5661cedbfc27957b3',1,'MaxwellianEquilibrium::operator()()'],['../classNoPerturbInitialization.html#a7debfeb8001108b1fb6d431ecf98a19e',1,'NoPerturbInitialization::operator()()'],['../classIBoltzmannSolver.html#aedf19fb0ae7e0bf80729c9f761ee20ed',1,'IBoltzmannSolver::operator()()'],['../classSplitRightHandSideSolver.html#a350971eed31753861f6e2917b9b6b968',1,'SplitRightHandSideSolver::operator()()'],['../classSplitVlasovSolver.html#a958b142757ef330191c9c25188294f15',1,'SplitVlasovSolver::operator()()'],['../classQNSolver.html#a866ea0a8cd34e7789d8847aaf963fdf2',1,'QNSolver::operator()()'],['../classIEquilibrium.html#a3ea3adf00a9a416a8e3fe54caba902a4',1,'IEquilibrium::operator()()'],['../classIInitialization.html#ac70366059a8d5679ff45c1a3eed5ad6b',1,'IInitialization::operator()()'],['../classMaxwellianEquilibrium.html#af3b41f93de3bb96ae0b44d8f89ee2a0a',1,'MaxwellianEquilibrium::operator()()'],['../classRestartInitialization.html#adb0bfb34f2397f95e8d559e5b04222b8',1,'RestartInitialization::operator()()'],['../classSingleModePerturbInitialization.html#a6fe8be7de3eefd844b3f15e7d50b1707',1,'SingleModePerturbInitialization::operator()()'],['../classChargeDensityCalculator.html#a164ef05aba41f41d7862c1aa216c154e',1,'ChargeDensityCalculator::operator()()'],['../classIChargeDensityCalculator.html#a33642031ef4d350e865b9b3d81f6bc76',1,'IChargeDensityCalculator::operator()()'],['../classIQNSolver.html#a0a2d3c31695c821a43582f1c2cd4e928',1,'IQNSolver::operator()()'],['../classNullQNSolver.html#ac636ac6b797e8bf883a53955f191d4ed',1,'NullQNSolver::operator()()']]], + ['operator_28_29_1',['operator()',['../classEdgeTransformation.html#a10c297fdec475ce3b1b6afbbcdedb5cb',1,'EdgeTransformation::operator()()'],['../classPolarSplineFEMPoissonLikeSolver.html#ac699f74359d1f9160bed57ffcf325861',1,'PolarSplineFEMPoissonLikeSolver::operator()()'],['../classEdgeTransformation.html#a953cea3a043308fbce6a55438daf7376',1,'EdgeTransformation::operator()()'],['../classOnionPatchLocator_3_01MultipatchType_3_01IdxRangeOnPatch_00_01Patches_8_8_8_01_4_00_01Logicff6c45b073183ccdfc0de0e4a415a7fa.html#a02e7fbec0ed664f9ad20d20d48c85ab4',1,'OnionPatchLocator< MultipatchType< IdxRangeOnPatch, Patches... >, LogicalToPhysicalMapping, PhysicalToLogicalMapping, ExecSpace >::operator()()'],['../structConstantExtrapolationRuleOnion.html#a2fc1ed58f951dd2d5ae6878853524664',1,'ConstantExtrapolationRuleOnion::operator()()'],['../classMultipatchSplineBuilder.html#a0292da3c87a8bd59c429f1bc076051c3',1,'MultipatchSplineBuilder::operator()()'],['../classMultipatchSplineBuilder2D.html#a08dc1aebc4ea52636be03f3888b03c49',1,'MultipatchSplineBuilder2D::operator()()'],['../classMultipatchSplineEvaluator2D.html#a6d3f057e123cd847109fae5a4e190149',1,'MultipatchSplineEvaluator2D::operator()(Coord const coord_eval, MultipatchSplineCoeff const &patches_splines) const'],['../classMultipatchSplineEvaluator2D.html#aaecde8a4cb5fccb1f10dadf7a09b4300',1,'MultipatchSplineEvaluator2D::operator()(MultipatchValues const &patches_values, MultipatchCoordField const &patches_coords, MultipatchSplineCoeff const &patches_splines) const'],['../structNullExtrapolationRule.html#afff2dfac58dbcfcc760da499bb23b953',1,'NullExtrapolationRule::operator()()'],['../classFEM1DPoissonSolver.html#a74360fade3d3986423b148334d88ea74',1,'FEM1DPoissonSolver::operator()(field_type phi, field_type rho) const override'],['../classFEM1DPoissonSolver.html#a066aa2568bdfd946f04c1d831debd663',1,'FEM1DPoissonSolver::operator()(field_type phi, vector_field_type E, field_type rho) const override'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a4bb7415769d706c9b48d3a66efd76c71',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::operator()(field_type phi, field_type rho) const final'],['../classFFTPoissonSolver_3_01IdxRange_3_01GridPDEDim1D_8_8_8_01_4_00_01IdxRangeFull_00_01ExecSpace_00_01LayoutSpace_01_4.html#a852a2a09220eabd3122cec7c741cacb2',1,'FFTPoissonSolver< IdxRange< GridPDEDim1D... >, IdxRangeFull, ExecSpace, LayoutSpace >::operator()(field_type phi, vector_field_type E, field_type rho) const final'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#aceeef36c98f8db8338a170049e81d624',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::operator()(field_type phi, field_type rho) const =0'],['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#ab446c64f8dd8b13fe58964cf7821be05',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >::operator()(field_type phi, vector_field_type E, field_type rho) const =0'],['../classPolarSplineFEMPoissonLikeSolver.html#a2ffbf750c185ff40c8a4697b3937bc63',1,'PolarSplineFEMPoissonLikeSolver::operator()()'],['../classMaxwellianEquilibrium.html#a883dfc9d838b53deeb47e93f178c7655',1,'MaxwellianEquilibrium::operator()()'],['../classPredCorr.html#afbad5baf6bfcce5c48b0cd47ce1de29d',1,'PredCorr::operator()()'],['../classBslAdvection1D.html#ab6c09fdec0ac2ec060d846a03a775766',1,'BslAdvection1D::operator()()'],['../classSingleModePerturbInitialization.html#abcef02302c35de979ca2d34d5f4b5b8f',1,'SingleModePerturbInitialization::operator()()'],['../classChargeDensityCalculator.html#a7ad6d91143f3e31e3ed8318a9970ef8e',1,'ChargeDensityCalculator::operator()()'],['../classIChargeDensityCalculator.html#a14a845fbe0e835ff765a33611f09bd8b',1,'IChargeDensityCalculator::operator()()'],['../classIQNSolver.html#a4df01b6445f6c8dc356ebce808102115',1,'IQNSolver::operator()()'],['../classNullQNSolver.html#af216cca80bf1989bb5031c640b6e3db1',1,'NullQNSolver::operator()()'],['../classQNSolver.html#a7a295c1742a016b2f154a35a315a608c',1,'QNSolver::operator()()'],['../classITimeSolver.html#a66cc73d3765db94df87fc17cc215c01b',1,'ITimeSolver::operator()()'],['../classMPITransposeAllToAll.html#a0d1c226fe054058b70a1b1d9a228ff1a',1,'MPITransposeAllToAll::operator()()'],['../classIVlasovSolver.html#ae2c2b1a0762d06fe0beba20613003bff',1,'IVlasovSolver::operator()()'],['../classSplitVlasovSolver.html#ad980db982084e40e1777484ddc3312b0',1,'SplitVlasovSolver::operator()()'],['../classLagrangeInterpolator.html#a27441b99d16e977bf606a01442e8a957',1,'LagrangeInterpolator::operator()()'],['../classIInterpolator.html#a83d8113fe207f0d87a240f6ae3f99498',1,'IInterpolator::operator()()'],['../classIPreallocatableInterpolator.html#acf51b8cbb5a54ff83ee67c20f538e7e3',1,'IPreallocatableInterpolator::operator()()'],['../classSplineInterpolator.html#a39f32a67cd5be9f26c7dafdb8e33ecaf',1,'SplineInterpolator::operator()()'],['../classVectorMapper_3_01NDTag_3_01XIn_00_01YIn_01_4_00_01NDTag_3_01XOut_00_01YOut_01_4_00_01Mapping_00_01ExecSpace_01_4.html#a47677a0e696c7f9eb9f254f4a92bde73',1,'VectorMapper< NDTag< XIn, YIn >, NDTag< XOut, YOut >, Mapping, ExecSpace >::operator()()'],['../classPartialDerivative.html#a82c5b7cc236af1bc2df0726e8345fe18',1,'PartialDerivative::operator()()'],['../classRefinedDiscreteToCartesianBuilder.html#ad569e80c83f31dfec64813d24bfb2e25',1,'RefinedDiscreteToCartesianBuilder::operator()()'],['../classBarycentricToCartesian.html#a9bd05c5378d5246a7ad4f18dbb86ab76',1,'BarycentricToCartesian::operator()()'],['../classCartesianToBarycentric.html#a2a067e2af8444be27e98f571604aa939',1,'CartesianToBarycentric::operator()()'],['../classCartesianToCircular.html#a76d65d1853e88176be7ffd71c50f8abb',1,'CartesianToCircular::operator()()'],['../classCartesianToCzarny.html#a2a409a220bb1d0d67b6128e7c6f92347',1,'CartesianToCzarny::operator()()'],['../classCircularToCartesian.html#a6ecdc63bdc19d5f267559d674c48aa9c',1,'CircularToCartesian::operator()()'],['../classCombinedMapping.html#ae6bdf142f7b26378f0dc1326e9045fde',1,'CombinedMapping::operator()()'],['../classCzarnyToCartesian.html#ac792805cabfd26bb39f768845b86388c',1,'CzarnyToCartesian::operator()()'],['../classDiscreteToCartesianBuilder.html#ae85a1541fb4b1695515c7d97526b8d40',1,'DiscreteToCartesianBuilder::operator()()'],['../classManufacturedPoissonTest.html#a88bc41fa060076c0477a808ac4395b79',1,'ManufacturedPoissonTest::operator()()'],['../classDiscreteToCartesian.html#a6b6915fcec41468d6d03ba9fd6cac374',1,'DiscreteToCartesian::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CircularToCartesian_3_01R_00_01Theta_00_01X_00_0179fdb551d5240572466d89e3eb7a8bfc.html#a20a9f506fb02601083c84533d0e6209e',1,'InvJacobianOPoint< CombinedMapping< CircularToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01CzarnyToCartesian_3_01R_00_01Theta_00_01X_00_01Y_8f5ea6a67f8bbc15e1b2c45d7660cfb5.html#a5f3ec1e15de5ee544fac4d50bb6a9397',1,'InvJacobianOPoint< CombinedMapping< CzarnyToCartesian< R, Theta, X, Y >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classInvJacobianOPoint_3_01CombinedMapping_3_01DiscreteToCartesian_3_01X_00_01Y_00_01SplineEvaludfe78b5e2437ea09e09ab68f82896984.html#a7db69865b918559feb0abfef1964973b',1,'InvJacobianOPoint< CombinedMapping< DiscreteToCartesian< X, Y, SplineEvaluator, R, Theta, MemorySpace >, CartesianToCircular< Xpc, Ypc, R, Theta > >, ddc::Coordinate< R, Theta > >::operator()()'],['../classInverseJacobianMatrix.html#ad33e3bab6bf8473ddbb65ca77661b3a2',1,'InverseJacobianMatrix::operator()()'],['../classMetricTensor.html#afa4a1d1ac34eb5fc3a2464d3844151fe',1,'MetricTensor::operator()()'],['../classPolarSplineEvaluator.html#a936ad154152aab8185954b19e6e25b86',1,'PolarSplineEvaluator::operator()(ddc::Coordinate< DimR, DimTheta > coord_eval, PolarSplineView< PolarBSplinesType, MemSpace > const spline_coef) const'],['../classPolarSplineEvaluator.html#a68c59720235b1edcb3cc354a20e33155',1,'PolarSplineEvaluator::operator()(ddc::ChunkSpan< double, Domain, Kokkos::layout_right, MemSpace > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< DimR, DimTheta > const, Domain, Kokkos::layout_right, MemSpace > const coords_eval, PolarSplineView< PolarBSplinesType, MemSpace > const spline_coef) const'],['../classAdvectionField__rotation.html#a4dc539810d2d10aa68104841574802cf',1,'AdvectionField_rotation::operator()()'],['../classQuadrature.html#ad7645c75af6af6bdf3f2d13eaa7cd6ff',1,'Quadrature::operator()()'],['../classGridBuilder.html#a9b022df3951111963099676b1a580dc5',1,'GridBuilder::operator()()'],['../classFunctionToBeAdvected.html#ac469846a7162037505e058f7d248dc4b',1,'FunctionToBeAdvected::operator()()'],['../classFunctionToBeAdvected__cos__4__elipse.html#a2f35b8a7024c4e1e1d0a09e761abf56e',1,'FunctionToBeAdvected_cos_4_elipse::operator()()'],['../classFunctionToBeAdvected__gaussian.html#a5cefc067d3394e546900673571f6e612',1,'FunctionToBeAdvected_gaussian::operator()()'],['../classAdvectionField.html#ad83cd6e152724ab1c8e91be077eb5727',1,'AdvectionField::operator()()'],['../classAdvectionField__decentred__rotation.html#aaabb7b2f3ae0f6aadaa1b5e3a7d1a94f',1,'AdvectionField_decentred_rotation::operator()()'],['../classAdvectionField__translation.html#afd102ec3e9ce04fa1d0a38643525eb8d',1,'AdvectionField_translation::operator()()'],['../classQuadrature.html#acc3a757e91e2d185ee290c409156fd4f',1,'Quadrature::operator()()'],['../classElectrostaticalPotentialSimulation.html#a445037f02ef92015762871398e8fd471',1,'ElectrostaticalPotentialSimulation::operator()()'],['../classElectrostaticalPotentialSimulation__decentred__rotation.html#a0a5322b2df29b69ab4c5438b5b0207af',1,'ElectrostaticalPotentialSimulation_decentred_rotation::operator()()'],['../classElectrostaticalPotentialSimulation__translation.html#ab42dce0f7ac411db86c2dd9871537189',1,'ElectrostaticalPotentialSimulation_translation::operator()()'],['../classElectrostaticalPotentialSimulation__rotation.html#af3f3c3819cbc815aa2a272028ef24fcd',1,'ElectrostaticalPotentialSimulation_rotation::operator()()'],['../classPoissonSolution.html#a88e27ab5b89c3992369e44ca7ecb56de',1,'PoissonSolution::operator()()'],['../classCurvilinearSolution.html#a88ec8a5cb7ec05b1abb9e9347016ea42',1,'CurvilinearSolution::operator()()'],['../classCartesianSolution.html#a0153345ef0de946e25e0bad9a68cc8dd',1,'CartesianSolution::operator()()'],['../classIInterpolatorRTheta.html#aef9cc9d724e5b0191efad905d8bfaeee',1,'IInterpolatorRTheta::operator()()'],['../classIFootFinder.html#abc0cb5c4fada6ea222d9cdee0969fb75',1,'IFootFinder::operator()()'],['../classSplineFootFinder.html#ae557bc9c915b40ddfecad5332dced74c',1,'SplineFootFinder::operator()()'],['../classAdvectionFieldFinder.html#a6c48a3bdb689fb9a270698a6617f2cfb',1,'AdvectionFieldFinder::operator()(host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#a1c94218e7996b38d562fa98ccd29dde5',1,'AdvectionFieldFinder::operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#a266b3868a92f671084142eb26344bad0',1,'AdvectionFieldFinder::operator()(host_t< SplinePolar > &electrostatic_potential_coef, host_t< DVectorFieldRTheta< X, Y > > advection_field_xy) const'],['../classAdvectionFieldFinder.html#ab2f205f106d6c6c784c34f52d9a76de0',1,'AdvectionFieldFinder::operator()(host_t< DFieldRTheta > electrostatic_potential, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classAdvectionFieldFinder.html#af8a043f36e90ea2b67a30978ccbca01b',1,'AdvectionFieldFinder::operator()(host_t< Spline2D > electrostatic_potential_coef, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classAdvectionFieldFinder.html#a02551b0e4207225b6f0244a81766c837',1,'AdvectionFieldFinder::operator()(host_t< SplinePolar > &electrostatic_potential_coef, host_t< DVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY &advection_field_xy_center) const'],['../classIAdvectionRTheta.html#a346eaaf9a5ce416b0f3011efe94458b7',1,'IAdvectionRTheta::operator()()'],['../classIPreallocatableInterpolatorRTheta.html#a2956ac969cedd10e25e86db83effc123',1,'IPreallocatableInterpolatorRTheta::operator()()'],['../classSplineInterpolatorRTheta.html#a9668b330c6f20ffd37b9712668a8b80b',1,'SplineInterpolatorRTheta::operator()()'],['../classIQNSolver.html#a1398a276bd2f959a0a3474c9d10b94c3',1,'IQNSolver::operator()()'],['../classPoissonLikeRHSFunction.html#a87f656365ccc4fe8d8fb650c0264679a',1,'PoissonLikeRHSFunction::operator()()'],['../classBslPredCorrRTheta.html#ad47f1c1d3fb1b113fee4bd955272a5b0',1,'BslPredCorrRTheta::operator()()'],['../classBslExplicitPredCorrRTheta.html#aaeabe916423e28d00c1ab8e0d8a4db54',1,'BslExplicitPredCorrRTheta::operator()()'],['../classBslImplicitPredCorrRTheta.html#a35fb8dc2ae119da7ed06f1f8dc2d439e',1,'BslImplicitPredCorrRTheta::operator()()'],['../classITimeSolverRTheta.html#a5e17feb3b5b1c2cf535b2bf58732e137',1,'ITimeSolverRTheta::operator()()'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#a452e3d080c0cf135f1610348fc469b42',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::operator()()'],['../classBslAdvectionVelocity.html#a9774e52704d997107ddeeb0d4041a0a9',1,'BslAdvectionVelocity::operator()()'],['../classBslAdvectionSpatial.html#ab806340298fc18ebefefe09f205d116f',1,'BslAdvectionSpatial::operator()()'],['../classIAdvectionVelocity.html#a3421d3fb6a659e30d75af3ce8bac861a',1,'IAdvectionVelocity::operator()()'],['../classIAdvectionSpatial.html#a1ca175ba280c8d9f82a96b285a0a56f2',1,'IAdvectionSpatial::operator()()'],['../classNullAdvectionVelocity.html#a006ed56c49d2f95f5b95f78ed574f72e',1,'NullAdvectionVelocity::operator()()'],['../classCollisionSpVparMu.html#a87ae0a4bf2125a89b0f5235d6217b545',1,'CollisionSpVparMu::operator()()'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a11d7a0ef77df2e057a0f56d2555fe582',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::operator()()'],['../classDerivFieldMem_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01NDerivs_00_01MemSpace_01_4.html#af060ce1efbb1b8977510596bfda7c7d9',1,'DerivFieldMem< ElementType, IdxRange< DDims... >, NDerivs, MemSpace >::operator()()'],['../classIEquilibrium.html#ac3766d5ef01c1e949ec3dd6d55892a75',1,'IEquilibrium::operator()()'],['../classVectorField.html#a660ef0b0f3f4791ab5540f533e148f09',1,'VectorField::operator()(ddc::DiscreteElement< ODDims > const &... delems) const noexcept'],['../classVectorField.html#a081ddf837d169a837141e18446730b1d',1,'VectorField::operator()(Idx< ODDims... > const &delems) const noexcept'],['../classVectorFieldMem.html#ad9369a957b143d0cee28f49fb82d7d88',1,'VectorFieldMem::operator()(ddc::DiscreteElement< ODDims > const &... delems) const noexcept'],['../classVectorFieldMem.html#ab9430bd40d0b0924dc2a5735617483a5',1,'VectorFieldMem::operator()(Idx< ODDims... > const &delems) const noexcept'],['../classBslAdvectionRTheta.html#ad2bf20f8a318faf0575e09a372317c70',1,'BslAdvectionRTheta::operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< X, Y > > advection_field_xy, double dt) const override'],['../classBslAdvectionRTheta.html#affe3f9d4097bf05e95ce8d1c14557ca6',1,'BslAdvectionRTheta::operator()(host_t< DFieldRTheta > allfdistribu, host_t< DConstVectorFieldRTheta< R, Theta > > advection_field_rp, CoordXY const &advection_field_xy_center, double dt) const override'],['../classIAdvectionRTheta.html#a6b0a226521869e6508886562b32a7cf9',1,'IAdvectionRTheta::operator()()'],['../classFluidMoments.html#a2ae74d24f0db28d93e39b88d885b90cd',1,'FluidMoments::operator()()'],['../classCollisionsInter.html#a1f8104eb5930b71b25856a0640c534bf',1,'CollisionsInter::operator()()'],['../classCollisionsIntra.html#ad066a79f6c0a9dcf3720dbfc5e9056e0',1,'CollisionsIntra::operator()()'],['../classKineticSource.html#a384f4c655ebe246d99964de77ee780d2',1,'KineticSource::operator()()'],['../classKrookSourceAdaptive.html#a1f7a6ce3a4f5f93214352a4787ba7888',1,'KrookSourceAdaptive::operator()()'],['../classKrookSourceConstant.html#a266237a1a58a6f8f000ee4e910353dcc',1,'KrookSourceConstant::operator()()'],['../classITimeSolver.html#abfdecd652433d1ae388a6489da2ed865',1,'ITimeSolver::operator()()'],['../classPredCorr.html#a2a3c70566fbfaef1d04bb540c980e7d1',1,'PredCorr::operator()()'],['../classFluidMoments.html#aeb2a3f97d8a00b2c5eed9df9e1317fd7',1,'FluidMoments::operator()()'],['../classIRightHandSide.html#a00f66ff88f6b0fd17a931a09b1ddb2d3',1,'IRightHandSide::operator()()'],['../classFluidMoments.html#a4ab19d391047e94ce2dcc8e73bf94faa',1,'FluidMoments::operator()(double &mean_velocity, DConstFieldVx fdistribu, double density, MomentVelocity moment_velocity)'],['../classFluidMoments.html#a60e881623a1a0db3245c690b4d7cc27f',1,'FluidMoments::operator()(DFieldSpX mean_velocity, DConstFieldSpXVx allfdistribu, DConstFieldSpX density, MomentVelocity moment_velocity)'],['../classFluidMoments.html#a180dd355d3d536623a0393c243af58d3',1,'FluidMoments::operator()(double &temperature, DConstFieldVx fdistribu, double density, double mean_velocity, MomentTemperature moment_temperature)'],['../classFluidMoments.html#ac15b6dd021fe761a18301a5475035aae',1,'FluidMoments::operator()(DFieldSpX temperature, DConstFieldSpXVx allfdistribu, DConstFieldSpX density, DConstFieldSpX mean_velocity, MomentTemperature moment_temperature)'],['../classKelvinHelmholtzInstabilityInitialization.html#a7e681122586f70b241acc2c647cf2f67',1,'KelvinHelmholtzInstabilityInitialization::operator()()'],['../classPredCorrRK2XY.html#a03ce8460021646ecb76554cbb4f1b088',1,'PredCorrRK2XY::operator()()'],['../classIInitialization.html#a6fd840a3367ef39aed60a036fc196618',1,'IInitialization::operator()()'],['../classIEquilibrium.html#a425f7b104d75900fcc769bdee9c0cdbd',1,'IEquilibrium::operator()()'],['../classBumpontailEquilibrium.html#a4c85a379ea216bb7ac95186cf8af8817',1,'BumpontailEquilibrium::operator()()'],['../classIInitialization.html#abc23a07c3e1a7852b4be401e57526061',1,'IInitialization::operator()()'],['../classMaxwellianEquilibrium.html#a0cc2b9bdb6300dd5661cedbfc27957b3',1,'MaxwellianEquilibrium::operator()()'],['../classNoPerturbInitialization.html#a7debfeb8001108b1fb6d431ecf98a19e',1,'NoPerturbInitialization::operator()()'],['../classIBoltzmannSolver.html#aedf19fb0ae7e0bf80729c9f761ee20ed',1,'IBoltzmannSolver::operator()()'],['../classSplitRightHandSideSolver.html#a350971eed31753861f6e2917b9b6b968',1,'SplitRightHandSideSolver::operator()()'],['../classSplitVlasovSolver.html#a958b142757ef330191c9c25188294f15',1,'SplitVlasovSolver::operator()()'],['../classQNSolver.html#a866ea0a8cd34e7789d8847aaf963fdf2',1,'QNSolver::operator()()'],['../classIEquilibrium.html#a3ea3adf00a9a416a8e3fe54caba902a4',1,'IEquilibrium::operator()()'],['../classIInitialization.html#ac70366059a8d5679ff45c1a3eed5ad6b',1,'IInitialization::operator()()'],['../classMaxwellianEquilibrium.html#af3b41f93de3bb96ae0b44d8f89ee2a0a',1,'MaxwellianEquilibrium::operator()()'],['../classRestartInitialization.html#adb0bfb34f2397f95e8d559e5b04222b8',1,'RestartInitialization::operator()()'],['../classSingleModePerturbInitialization.html#a6fe8be7de3eefd844b3f15e7d50b1707',1,'SingleModePerturbInitialization::operator()()'],['../classChargeDensityCalculator.html#a164ef05aba41f41d7862c1aa216c154e',1,'ChargeDensityCalculator::operator()()'],['../classIChargeDensityCalculator.html#a33642031ef4d350e865b9b3d81f6bc76',1,'IChargeDensityCalculator::operator()()'],['../classIQNSolver.html#a0a2d3c31695c821a43582f1c2cd4e928',1,'IQNSolver::operator()()'],['../classNullQNSolver.html#ac636ac6b797e8bf883a53955f191d4ed',1,'NullQNSolver::operator()()']]], ['operator_2a_2',['operator*',['../structIdxRangeSliceIterator.html#aa0e84d0ad195d6b35f0d567da81b8ab8',1,'IdxRangeSliceIterator']]], ['operator_2b_2b_3',['operator++',['../structIdxRangeSliceIterator.html#a428daf3ced0f82c06eb2a2c9eef543c6',1,'IdxRangeSliceIterator::operator++()'],['../structIdxRangeSliceIterator.html#a58387aeb6b23bade952ee6c6f17af075',1,'IdxRangeSliceIterator::operator++(int)']]], ['operator_2b_3d_4',['operator+=',['../structIdxRangeSliceIterator.html#a7f68c5678b29c6091de746305c7c7807',1,'IdxRangeSliceIterator']]], diff --git a/search/functions_f.js b/search/functions_f.js index 83827777a..2e6b646ef 100644 --- a/search/functions_f.js +++ b/search/functions_f.js @@ -6,7 +6,7 @@ var searchData= ['poissonsolution_3',['PoissonSolution',['../classPoissonSolution.html#ab858595c50946f5077ed256c5b01f703',1,'PoissonSolution']]], ['polarspline_4',['polarspline',['../structPolarSpline.html#a34e62893f3710c8798ada29346a5a842',1,'PolarSpline::PolarSpline(ddc::DiscreteDomain< BSplinesR, BSplinesTheta > domain)'],['../structPolarSpline.html#a16899c9b2a639f3e67d3de861a0d2a2f',1,'PolarSpline::PolarSpline(ddc::DiscreteDomain< PolarBSplinesType > singular_domain, ddc::DiscreteDomain< BSplinesR, BSplinesTheta > domain)']]], ['polarsplineevaluator_5',['polarsplineevaluator',['../classPolarSplineEvaluator.html#a8ccb414d5d9022278cc31f19ee3c77f1',1,'PolarSplineEvaluator::PolarSplineEvaluator(OuterExtrapolationRule const &outer_bc)'],['../classPolarSplineEvaluator.html#aff023d9beff16f85fa01f2cf45e6433a',1,'PolarSplineEvaluator::PolarSplineEvaluator(PolarSplineEvaluator const &x)=default'],['../classPolarSplineEvaluator.html#ad09e22ffcc4addf7c2560bf20a3d4d85',1,'PolarSplineEvaluator::PolarSplineEvaluator(PolarSplineEvaluator &&x)=default']]], - ['polarsplinefempoissonlikesolver_6',['PolarSplineFEMPoissonLikeSolver',['../classPolarSplineFEMPoissonLikeSolver.html#a5a09f433677b3358cdb5fe205a003bf8',1,'PolarSplineFEMPoissonLikeSolver']]], + ['polarsplinefempoissonlikesolver_6',['PolarSplineFEMPoissonLikeSolver',['../classPolarSplineFEMPoissonLikeSolver.html#a6e4d95b7b1ce10cf43579ff77b9ea88b',1,'PolarSplineFEMPoissonLikeSolver']]], ['polarsplinespan_7',['PolarSplineSpan',['../structPolarSplineSpan.html#a09f1d7d4e23574060fce940f93bb97fd',1,'PolarSplineSpan']]], ['polarsplineview_8',['polarsplineview',['../structPolarSplineView.html#a46b559e5420ee6cf92251b756fcc63a0',1,'PolarSplineView::PolarSplineView(PolarSpline< PolarBSplinesType, MemSpace > const &spl)'],['../structPolarSplineView.html#af93380b00bf639f5071f99fef5cedac7',1,'PolarSplineView::PolarSplineView(PolarSplineSpan< PolarBSplinesType, MemSpace > const &spl)']]], ['preallocatablelagrangeinterpolator_9',['PreallocatableLagrangeInterpolator',['../classPreallocatableLagrangeInterpolator.html#ab22f8df459fbda09a57c004610f3d9db',1,'PreallocatableLagrangeInterpolator']]], diff --git a/search/searchdata.js b/search/searchdata.js index b0a06a2dc..dcd51a0f3 100644 --- a/search/searchdata.js +++ b/search/searchdata.js @@ -4,7 +4,7 @@ var indexSectionsWithContent = 1: "abcdefghiklmnopqrstvxy", 2: "cgk", 3: "lnpqstv", - 4: "abcdefghijklmnopqrstuv~", + 4: "abcdefghijklmnopqrstuvw~", 5: "abcdefiklmnopqrstu", 6: "abcdefgilmnoprstvxy", 7: "o", diff --git a/search/typedefs_7.js b/search/typedefs_7.js index 3f7f8929d..b19bb6866 100644 --- a/search/typedefs_7.js +++ b/search/typedefs_7.js @@ -7,43 +7,44 @@ var searchData= ['idx_5frange_5ftype1_4',['idx_range_type1',['../classIMPITranspose.html#a280d7345bbf2d4f849a36a49bc4643f9',1,'IMPITranspose::idx_range_type1'],['../classMPITransposeAllToAll.html#aaaab817292b16b7950c336c245618f35',1,'MPITransposeAllToAll::idx_range_type1']]], ['idx_5frange_5ftype2_5',['idx_range_type2',['../classIMPITranspose.html#af0c568eecf467ecb7e913c5b3fc04f99',1,'IMPITranspose::idx_range_type2'],['../classMPITransposeAllToAll.html#af9426bfbb72332bf45cfff384863ce21',1,'MPITransposeAllToAll::idx_range_type2']]], ['idx_5ftype_6',['idx_type',['../classMultipatchField.html#a5a2a447cf52dda49f36c1089372e4e42',1,'MultipatchField']]], - ['idxrange_7',['idxrange',['../classITimeStepper.html#a468e0909ac8b50f109dc810879253134',1,'ITimeStepper::IdxRange'],['../classCrankNicolson.html#a468e0909ac8b50f109dc810879253134',1,'CrankNicolson::IdxRange'],['../classEuler.html#a468e0909ac8b50f109dc810879253134',1,'Euler::IdxRange'],['../classRK2.html#a468e0909ac8b50f109dc810879253134',1,'RK2::IdxRange'],['../classRK3.html#a468e0909ac8b50f109dc810879253134',1,'RK3::IdxRange'],['../classRK4.html#a468e0909ac8b50f109dc810879253134',1,'RK4::IdxRange']]], - ['idxrange1_8',['IdxRange1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ad0a77fd592485eb2c2d931f0db1ac9e8',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrange12_9',['IdxRange12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#abcf91678d4dd96d85521818178d54d66',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrange2_10',['IdxRange2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ae6a2972346b2cd63c07ff4d77a5b5b33',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrangebs1_11',['IdxRangeBS1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ac165e7e0ef0a783518a55c822eeec67f',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrangebs12_12',['IdxRangeBS12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a4753baa1e93d836c5aaeb8ddbf9c58d2',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrangebs2_13',['IdxRangeBS2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a281638bbfde5f496544d54ce87a89461',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxrangefdistribu_14',['idxrangefdistribu',['../classGeometryXVx.html#afca0714427d19b4e591abd6f7b0656e8',1,'GeometryXVx::IdxRangeFdistribu'],['../classGeometryXYVxVy.html#ad164a1e1a7a2d43424dd9e1f88a66c22',1,'GeometryXYVxVy::IdxRangeFdistribu']]], - ['idxrangefieldval_15',['IdxRangeFieldVal',['../classPartialDerivative.html#a45597e48eeae460364f3ddea1d1d05e8',1,'PartialDerivative']]], - ['idxrangemu_16',['IdxRangeMu',['../classCollisionSpVparMu.html#adf88b0d72b030bd51728e9c0b35896cb',1,'CollisionSpVparMu']]], - ['idxranger_17',['IdxRangeR',['../classCollisionSpVparMu.html#a8f98c8f578998f9668cc30f0f141df5f',1,'CollisionSpVparMu']]], - ['idxrangespatial_18',['idxrangespatial',['../classGeometryXVx.html#a0e14480d4976661b66acb462e3beb309',1,'GeometryXVx::IdxRangeSpatial'],['../classGeometryXYVxVy.html#a42ee633bb4e12b94dfccb9207bee2840',1,'GeometryXYVxVy::IdxRangeSpatial']]], - ['idxrangespthetarvpar_19',['IdxRangeSpThetaRVpar',['../classCollisionSpVparMu.html#a37fa025202123c51924d7d3b703499a8',1,'CollisionSpVparMu']]], - ['idxrangespxvx_5fghosted_20',['IdxRangeSpXVx_ghosted',['../classCollisionsIntra.html#a78125fea3147218240c8bb1cfd8b3b4e',1,'CollisionsIntra']]], - ['idxrangespxvx_5fghosted_5fstaggered_21',['IdxRangeSpXVx_ghosted_staggered',['../classCollisionsIntra.html#aa8de0dc7f09923428fa8ef0e30aeef1e',1,'CollisionsIntra']]], - ['idxrangethetar_22',['IdxRangeThetaR',['../classCollisionSpVparMu.html#a96fb7d2f1dab8e1b545564a663ec5680',1,'CollisionSpVparMu']]], - ['idxrangevelocity_23',['idxrangevelocity',['../classGeometryXYVxVy.html#a73bbb5da0780d301493db3c107f8e06b',1,'GeometryXYVxVy::IdxRangeVelocity'],['../classGeometryXVx.html#a8903d9f025308985617b427783801967',1,'GeometryXVx::IdxRangeVelocity']]], - ['idxrangevpar_24',['IdxRangeVpar',['../classCollisionSpVparMu.html#a96078427a19cbe8729130fe3fbb5ed7c',1,'CollisionSpVparMu']]], - ['idxspthetarvpar_25',['IdxSpThetaRVpar',['../classCollisionSpVparMu.html#a1dd423151b30318f4054b31e0b59fd8d',1,'CollisionSpVparMu']]], - ['idxspxvx_5fghosted_26',['IdxSpXVx_ghosted',['../classCollisionsIntra.html#aa075cab1489331085e1473960b074dd3',1,'CollisionsIntra']]], - ['idxspxvx_5fghosted_5fstaggered_27',['IdxSpXVx_ghosted_staggered',['../classCollisionsIntra.html#a8bd3150e39cbad46ac340e07ca315662',1,'CollisionsIntra']]], - ['idxstep1_28',['IdxStep1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af6492b7437a05bffcae91ec488fb3ebc',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxstep12_29',['IdxStep12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a7d0f81f6499b4284768beb4cffff271a',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxstep2_30',['IdxStep2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af4933351800318b415a122d2a2ef07bd',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], - ['idxthetar_31',['IdxThetaR',['../classCollisionSpVparMu.html#a9276a78762d7c4fe256dd5796e6496b2',1,'CollisionSpVparMu']]], - ['idxvx_5fghosted_32',['IdxVx_ghosted',['../classCollisionsIntra.html#af1604f3f73be57180f6ab5e01606b1fd',1,'CollisionsIntra']]], - ['idxvx_5fghosted_5fstaggered_33',['IdxVx_ghosted_staggered',['../classCollisionsIntra.html#a164c6c249095a533900a12e2f1f48e25',1,'CollisionsIntra']]], - ['index_5frange_5ftype_34',['index_range_type',['../classVectorFieldMem.html#ac91e05db87f7dbcbc29c63ef94e900ac',1,'VectorFieldMem::index_range_type'],['../classVectorField.html#afde84cdadf9f031e6cd584f15b0acb3f',1,'VectorField::index_range_type'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a9c9e1edb698734a3cc18c65c16f8cf2e',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::index_range_type'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a8976a7b20051721b99a646045565c0bb',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::index_range_type']]], - ['index_5ftype_35',['index_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a5f7df456b19ca5dbdc9ffcdb4c13a1de',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], - ['inner_5fedges_36',['inner_edges',['../classMultipatchConnectivity.html#a762ff8496d1ec32be37bad6e25f7e926',1,'MultipatchConnectivity']]], - ['inputdfieldspthetarvpar_37',['InputDFieldSpThetaRVpar',['../classCollisionSpVparMu.html#a11cef1817d30d02345e255b3d95c33a2',1,'CollisionSpVparMu']]], - ['interface_5fcollection_38',['interface_collection',['../classMultipatchConnectivity.html#abde3a24c33217daec8074c6ab527f84c',1,'MultipatchConnectivity']]], - ['internal_5fmdspan_5ftype_39',['internal_mdspan_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a4be3e064e85e11603bf67daaebf70dc6',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], - ['internal_5fmdview_5ftype_40',['internal_mdview_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a54599ac7aa42fc2a124115661a0c676b',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], - ['internalconstfieldonpatch_41',['internalconstfieldonpatch',['../classMultipatchField.html#a44a9591797e84d0f116b8d424725fdea',1,'MultipatchField::InternalConstFieldOnPatch'],['../classMultipatchFieldMem.html#a3c244af591bf82d81c2bcbc05d614f7c',1,'MultipatchFieldMem::InternalConstFieldOnPatch']]], - ['internalfieldonpatch_42',['internalfieldonpatch',['../classMultipatchField.html#af03d87daa72042dad5e2f47b11f3fc06',1,'MultipatchField::InternalFieldOnPatch'],['../classMultipatchFieldMem.html#a0619dafdf75c12736c49816b0d928f6a',1,'MultipatchFieldMem::InternalFieldOnPatch']]], - ['internalidxrangeonpatch_43',['internalidxrangeonpatch',['../classMultipatchField.html#a233d6c418d017cdfd11e79694eee50b0',1,'MultipatchField::InternalIdxRangeOnPatch'],['../classMultipatchFieldMem.html#affec2555dc86033cbcb5e80113cd91ac',1,'MultipatchFieldMem::InternalIdxRangeOnPatch']]], - ['interpolation_5fdiscrete_5fdimension_5ftype_44',['interpolation_discrete_dimension_type',['../classddcHelper_1_1NonUniformInterpolationPoints.html#afe391dfd5787f205a4096fef58e7beab',1,'ddcHelper::NonUniformInterpolationPoints']]], - ['iterator_5fcategory_45',['iterator_category',['../structIdxRangeSliceIterator.html#ae433765c9e433256f44fae63b22c8dd3',1,'IdxRangeSliceIterator']]] + ['idxcell_7',['IdxCell',['../classPolarSplineFEMPoissonLikeSolver.html#aea010ac6bec8090ec2686ad2110befd4',1,'PolarSplineFEMPoissonLikeSolver']]], + ['idxrange_8',['idxrange',['../classITimeStepper.html#a468e0909ac8b50f109dc810879253134',1,'ITimeStepper::IdxRange'],['../classCrankNicolson.html#a468e0909ac8b50f109dc810879253134',1,'CrankNicolson::IdxRange'],['../classEuler.html#a468e0909ac8b50f109dc810879253134',1,'Euler::IdxRange'],['../classRK2.html#a468e0909ac8b50f109dc810879253134',1,'RK2::IdxRange'],['../classRK3.html#a468e0909ac8b50f109dc810879253134',1,'RK3::IdxRange'],['../classRK4.html#a468e0909ac8b50f109dc810879253134',1,'RK4::IdxRange']]], + ['idxrange1_9',['IdxRange1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ad0a77fd592485eb2c2d931f0db1ac9e8',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrange12_10',['IdxRange12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#abcf91678d4dd96d85521818178d54d66',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrange2_11',['IdxRange2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ae6a2972346b2cd63c07ff4d77a5b5b33',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrangebs1_12',['IdxRangeBS1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#ac165e7e0ef0a783518a55c822eeec67f',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrangebs12_13',['IdxRangeBS12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a4753baa1e93d836c5aaeb8ddbf9c58d2',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrangebs2_14',['IdxRangeBS2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a281638bbfde5f496544d54ce87a89461',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxrangefdistribu_15',['idxrangefdistribu',['../classGeometryXVx.html#afca0714427d19b4e591abd6f7b0656e8',1,'GeometryXVx::IdxRangeFdistribu'],['../classGeometryXYVxVy.html#ad164a1e1a7a2d43424dd9e1f88a66c22',1,'GeometryXYVxVy::IdxRangeFdistribu']]], + ['idxrangefieldval_16',['IdxRangeFieldVal',['../classPartialDerivative.html#a45597e48eeae460364f3ddea1d1d05e8',1,'PartialDerivative']]], + ['idxrangemu_17',['IdxRangeMu',['../classCollisionSpVparMu.html#adf88b0d72b030bd51728e9c0b35896cb',1,'CollisionSpVparMu']]], + ['idxranger_18',['IdxRangeR',['../classCollisionSpVparMu.html#a8f98c8f578998f9668cc30f0f141df5f',1,'CollisionSpVparMu']]], + ['idxrangespatial_19',['idxrangespatial',['../classGeometryXVx.html#a0e14480d4976661b66acb462e3beb309',1,'GeometryXVx::IdxRangeSpatial'],['../classGeometryXYVxVy.html#a42ee633bb4e12b94dfccb9207bee2840',1,'GeometryXYVxVy::IdxRangeSpatial']]], + ['idxrangespthetarvpar_20',['IdxRangeSpThetaRVpar',['../classCollisionSpVparMu.html#a37fa025202123c51924d7d3b703499a8',1,'CollisionSpVparMu']]], + ['idxrangespxvx_5fghosted_21',['IdxRangeSpXVx_ghosted',['../classCollisionsIntra.html#a78125fea3147218240c8bb1cfd8b3b4e',1,'CollisionsIntra']]], + ['idxrangespxvx_5fghosted_5fstaggered_22',['IdxRangeSpXVx_ghosted_staggered',['../classCollisionsIntra.html#aa8de0dc7f09923428fa8ef0e30aeef1e',1,'CollisionsIntra']]], + ['idxrangethetar_23',['IdxRangeThetaR',['../classCollisionSpVparMu.html#a96fb7d2f1dab8e1b545564a663ec5680',1,'CollisionSpVparMu']]], + ['idxrangevelocity_24',['idxrangevelocity',['../classGeometryXVx.html#a8903d9f025308985617b427783801967',1,'GeometryXVx::IdxRangeVelocity'],['../classGeometryXYVxVy.html#a73bbb5da0780d301493db3c107f8e06b',1,'GeometryXYVxVy::IdxRangeVelocity']]], + ['idxrangevpar_25',['IdxRangeVpar',['../classCollisionSpVparMu.html#a96078427a19cbe8729130fe3fbb5ed7c',1,'CollisionSpVparMu']]], + ['idxspthetarvpar_26',['IdxSpThetaRVpar',['../classCollisionSpVparMu.html#a1dd423151b30318f4054b31e0b59fd8d',1,'CollisionSpVparMu']]], + ['idxspxvx_5fghosted_27',['IdxSpXVx_ghosted',['../classCollisionsIntra.html#aa075cab1489331085e1473960b074dd3',1,'CollisionsIntra']]], + ['idxspxvx_5fghosted_5fstaggered_28',['IdxSpXVx_ghosted_staggered',['../classCollisionsIntra.html#a8bd3150e39cbad46ac340e07ca315662',1,'CollisionsIntra']]], + ['idxstep1_29',['IdxStep1',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af6492b7437a05bffcae91ec488fb3ebc',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxstep12_30',['IdxStep12',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#a7d0f81f6499b4284768beb4cffff271a',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxstep2_31',['IdxStep2',['../structPatch_3_01grid1_00_01grid2_00_01bsplines__dim1_00_01bsplines__dim2_01_4.html#af4933351800318b415a122d2a2ef07bd',1,'Patch< grid1, grid2, bsplines_dim1, bsplines_dim2 >']]], + ['idxthetar_32',['IdxThetaR',['../classCollisionSpVparMu.html#a9276a78762d7c4fe256dd5796e6496b2',1,'CollisionSpVparMu']]], + ['idxvx_5fghosted_33',['IdxVx_ghosted',['../classCollisionsIntra.html#af1604f3f73be57180f6ab5e01606b1fd',1,'CollisionsIntra']]], + ['idxvx_5fghosted_5fstaggered_34',['IdxVx_ghosted_staggered',['../classCollisionsIntra.html#a164c6c249095a533900a12e2f1f48e25',1,'CollisionsIntra']]], + ['index_5frange_5ftype_35',['index_range_type',['../classVectorField.html#afde84cdadf9f031e6cd584f15b0acb3f',1,'VectorField::index_range_type'],['../classVectorFieldMem.html#ac91e05db87f7dbcbc29c63ef94e900ac',1,'VectorFieldMem::index_range_type'],['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a9c9e1edb698734a3cc18c65c16f8cf2e',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >::index_range_type'],['../classDerivField_3_01ElementType_00_01IdxRange_3_01DDims_8_8_8_01_4_00_01MemorySpace_00_01LayoutStridedPolicy_01_4.html#a8976a7b20051721b99a646045565c0bb',1,'DerivField< ElementType, IdxRange< DDims... >, MemorySpace, LayoutStridedPolicy >::index_range_type']]], + ['index_5ftype_36',['index_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a5f7df456b19ca5dbdc9ffcdb4c13a1de',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], + ['inner_5fedges_37',['inner_edges',['../classMultipatchConnectivity.html#a762ff8496d1ec32be37bad6e25f7e926',1,'MultipatchConnectivity']]], + ['inputdfieldspthetarvpar_38',['InputDFieldSpThetaRVpar',['../classCollisionSpVparMu.html#a11cef1817d30d02345e255b3d95c33a2',1,'CollisionSpVparMu']]], + ['interface_5fcollection_39',['interface_collection',['../classMultipatchConnectivity.html#abde3a24c33217daec8074c6ab527f84c',1,'MultipatchConnectivity']]], + ['internal_5fmdspan_5ftype_40',['internal_mdspan_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a4be3e064e85e11603bf67daaebf70dc6',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], + ['internal_5fmdview_5ftype_41',['internal_mdview_type',['../classDerivFieldCommon_3_01FieldType_00_01IdxRange_3_01DDims_8_8_8_01_4_01_4.html#a54599ac7aa42fc2a124115661a0c676b',1,'DerivFieldCommon< FieldType, IdxRange< DDims... > >']]], + ['internalconstfieldonpatch_42',['internalconstfieldonpatch',['../classMultipatchField.html#a44a9591797e84d0f116b8d424725fdea',1,'MultipatchField::InternalConstFieldOnPatch'],['../classMultipatchFieldMem.html#a3c244af591bf82d81c2bcbc05d614f7c',1,'MultipatchFieldMem::InternalConstFieldOnPatch']]], + ['internalfieldonpatch_43',['internalfieldonpatch',['../classMultipatchField.html#af03d87daa72042dad5e2f47b11f3fc06',1,'MultipatchField::InternalFieldOnPatch'],['../classMultipatchFieldMem.html#a0619dafdf75c12736c49816b0d928f6a',1,'MultipatchFieldMem::InternalFieldOnPatch']]], + ['internalidxrangeonpatch_44',['internalidxrangeonpatch',['../classMultipatchField.html#a233d6c418d017cdfd11e79694eee50b0',1,'MultipatchField::InternalIdxRangeOnPatch'],['../classMultipatchFieldMem.html#affec2555dc86033cbcb5e80113cd91ac',1,'MultipatchFieldMem::InternalIdxRangeOnPatch']]], + ['interpolation_5fdiscrete_5fdimension_5ftype_45',['interpolation_discrete_dimension_type',['../classddcHelper_1_1NonUniformInterpolationPoints.html#afe391dfd5787f205a4096fef58e7beab',1,'ddcHelper::NonUniformInterpolationPoints']]], + ['iterator_5fcategory_46',['iterator_category',['../structIdxRangeSliceIterator.html#ae433765c9e433256f44fae63b22c8dd3',1,'IdxRangeSliceIterator']]] ]; diff --git a/search/typedefs_d.js b/search/typedefs_d.js index 73233c950..86dfd1783 100644 --- a/search/typedefs_d.js +++ b/search/typedefs_d.js @@ -1,6 +1,6 @@ var searchData= [ - ['r_0',['R',['../classPolarSplineFEMPoissonLikeSolver.html#a4be4b0150bea8b8972bf3400e52d1bcb',1,'PolarSplineFEMPoissonLikeSolver']]], + ['r_0',['R',['../classPolarSplineFEMPoissonLikeSolver.html#aea7575e5ec7f7e2a776c1677a79137d9',1,'PolarSplineFEMPoissonLikeSolver']]], ['radial_5fchunk_5ftype_1',['radial_chunk_type',['../classCollisionInfo.html#a9fefefe1322ad3e9f9c42636aa0f5e1d',1,'CollisionInfo::radial_chunk_type'],['../classCollisionInfoRadial.html#aa18c43d0ec1aaf78c36c87ad08d85ded',1,'CollisionInfoRadial::radial_chunk_type']]], ['real_5flaplacian_5ftags_2',['real_laplacian_tags',['../classIPoissonSolver_3_01IdxRange_3_01ODims_8_8_8_01_4_00_01IdxRangeFull_00_01MemorySpace_00_01LayoutSpace_01_4.html#aa8332067967bee2e535b4158a0d9bdb8',1,'IPoissonSolver< IdxRange< ODims... >, IdxRangeFull, MemorySpace, LayoutSpace >']]] ]; diff --git a/search/typedefs_f.js b/search/typedefs_f.js index d6e52de73..174461d8c 100644 --- a/search/typedefs_f.js +++ b/search/typedefs_f.js @@ -3,6 +3,6 @@ var searchData= ['tensor_5fproduct_5fidx_5frange_5ftype_0',['tensor_product_idx_range_type',['../classPolarBSplines.html#aa4d0e6fff9aa8d6641fca3cfad60bc0b',1,'PolarBSplines']]], ['tensor_5fproduct_5fidx_5fstep_5ftype_1',['tensor_product_idx_step_type',['../classPolarBSplines.html#a88a1c2cb066c6e86912f15115ee2aa57',1,'PolarBSplines']]], ['tensor_5fproduct_5findex_5ftype_2',['tensor_product_index_type',['../classPolarBSplines.html#aafa27d2710cd09d6713d6dafcb2ae564',1,'PolarBSplines']]], - ['theta_3',['Theta',['../classPolarSplineFEMPoissonLikeSolver.html#a68effe5bc79a8795c6513a38489d6813',1,'PolarSplineFEMPoissonLikeSolver']]], + ['theta_3',['Theta',['../classPolarSplineFEMPoissonLikeSolver.html#a0c880f33d839cedfafdf2b3b32139417',1,'PolarSplineFEMPoissonLikeSolver']]], ['type_4',['type',['../structconnectivity__details_1_1EnforceFirstInterfaceEdge_3_01Interface_3_01Edge2_00_01FirstEdge_221a02b03250a49af1745b2263467420.html#a7b9517e569600da04149fd82a203fdb4',1,'connectivity_details::EnforceFirstInterfaceEdge< Interface< Edge2, FirstEdge, Orientations >, FirstEdge >::type'],['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_01Id3b131c802b30082f4412eb4689d6d53b.html#a236983aa6398032c45d2a998cfeb4306',1,'connectivity_details::FindRelevantIdxRangeType< QueryGrid1D, std::tuple< IdxRangeHead, IdxRangeTypes... > >::type'],['../structconnectivity__details_1_1SwapExtremity_3_01Edge_3_01Patch_00_01Grid1D_00_01FRONT_01_4_01_4.html#a078f35939498a6a06b366f95fce809cd',1,'connectivity_details::SwapExtremity< Edge< Patch, Grid1D, FRONT > >::type'],['../structconnectivity__details_1_1SwapExtremity_3_01Edge_3_01Patch_00_01Grid1D_00_01BACK_01_4_01_4.html#a5838bc2bc6598da043ef9201f68fdc78',1,'connectivity_details::SwapExtremity< Edge< Patch, Grid1D, BACK > >::type'],['../structconnectivity__details_1_1AddToTypeSeq_3_01ToInsert_00_01TypeSeq_00_01FrontInsert_01_4.html#a740fc6cb29bd99877ea578ca4aa911b1',1,'connectivity_details::AddToTypeSeq< ToInsert, TypeSeq, FrontInsert >::type'],['../structconnectivity__details_1_1AddToTypeSeq_3_01ToInsert_00_01TypeSeq_00_01BackInsert_01_4.html#a33b756a17a67e5c3d750f5dbbc2651ab',1,'connectivity_details::AddToTypeSeq< ToInsert, TypeSeq, BackInsert >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_b2108f65f3430e895714f416a2f43701.html#a2636f16ad2713171f31c1e914e5e4ffa',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, MatchingEdge, false >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_36879d7a164b5ac728612e4a981c6d65.html#ad52638706761847365f3eebd80c501d3',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, MatchingEdge, true >::type'],['../structconnectivity__details_1_1CollectInterfacesAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_ebd86d7b2345baf351562d16964c47d9.html#a2086dfaa9ddbdd4eb07271691f38fee5',1,'connectivity_details::CollectInterfacesAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundInterfaces, OutsideEdge, false >::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01insd7a4bdb826ecb568487bbd509c5f008b.html#a61f31127356ceede4092449d8daea05c',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, MatchingEdge, false >::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01ins8ee738c554d8fbbf6bab92ba87dd3b80.html#a48d1d754e28b0c788521f4bbf726c331',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, MatchingEdge, true >::type'],['../structconnectivity__details_1_1CollectGridsAlongDim_3_01StartEdge_00_01InterfaceTypeSeq_00_01ins70deef724c6e45ed62db534c3d9697ec.html#a4daf9ac9c99d43f3cd8facec42acadc9',1,'connectivity_details::CollectGridsAlongDim< StartEdge, InterfaceTypeSeq, insert_pos, FoundGrids, OutsideEdge, false >::type'],['../structconnectivity__details_1_1CollectAllGridsOnDim.html#a5a3778e3b25f878a9876eaf6ba6202d4',1,'connectivity_details::CollectAllGridsOnDim::type'],['../structconnectivity__details_1_1CollectAllInterfacesOnDim.html#a67f0a5013edd67b8677a784ce2788943',1,'connectivity_details::CollectAllInterfacesOnDim::type'],['../structconnectivity__details_1_1SelectRelevantIdxRangeType_3_01QueryGrid1D_00_01IdxRange_3_01IdxRangeGrids_8_8_8_01_4_01_4.html#aaaf7c6c9ace8dd44ff08cd50695cb3ab',1,'connectivity_details::SelectRelevantIdxRangeType< QueryGrid1D, IdxRange< IdxRangeGrids... > >::type'],['../structconnectivity__details_1_1FindRelevantIdxRangeType_3_01QueryGrid1D_00_01std_1_1tuple_3_4_01_4.html#aa9bdbcc7da369ed1f67c16b29380e10f',1,'connectivity_details::FindRelevantIdxRangeType< QueryGrid1D, std::tuple<> >::type'],['../structconnectivity__details_1_1EnforceFirstInterfaceEdge_3_01Interface_3_01FirstEdge_00_01Edge2_788676fcb3310ca4c1ec984ff0b4531b.html#a83a7cb1884c62494474e32842dc2ce9a',1,'connectivity_details::EnforceFirstInterfaceEdge< Interface< FirstEdge, Edge2, Orientations >, FirstEdge >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacee698732bdf35f06db097afe1714904c.html#acc784bd6a6b388cc4ac731bc61ef0385',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface< OEdge, Edge, Orientations >, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfacd1aa547d7cc4bf022e85928246ab2d07.html#ab1aa5cb1d073bb2150df0b723addd5ab',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface< Edge, OEdge, Orientations >, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindInterface_3_01Edge_00_01ddc_1_1detail_1_1TypeSeq_3_01Interfac6d31b188ee73012ad6c98be99219379f.html#aa742d8a5d1a7430567bb022b83f5488e',1,'connectivity_details::FindInterface< Edge, ddc::detail::TypeSeq< Interface1, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01Grid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch1_00_33770856242f7c5cee1ce419b2efaf64.html#a6a17996ac38973f5c589a737d2bdb270',1,'connectivity_details::FindPatch< Grid1D, ddc::detail::TypeSeq< Patch1, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patch5f5acd76cfd59a22ebf513823679a320.html#a491a77c69817438993bb5df49e0c5fc8',1,'connectivity_details::FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< OGrid, QueryGrid1D, BSpl1, BSpl2 >, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1FindPatch_3_01QueryGrid1D_00_01ddc_1_1detail_1_1TypeSeq_3_01Patchd8fc8921dec760f8fe4c90c2a6947228.html#a1208d0ea2590083cdeb5f887b67b78e6',1,'connectivity_details::FindPatch< QueryGrid1D, ddc::detail::TypeSeq< Patch< QueryGrid1D, OGrid, BSpl1, BSpl2 >, RemainingPatchTypes... > >::type'],['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_01EdgeTypes_8_8_8_01_4_01_4.html#a8965f4b521e6227c5d1b785cc8b5fb25',1,'connectivity_details::ExtractPatches< ddc::detail::TypeSeq< EdgeType1, EdgeTypes... > >::type'],['../structconnectivity__details_1_1ExtractPatches_3_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html#aa57353c6b14c5fd23369d18288cabd0f',1,'connectivity_details::ExtractPatches< ddc::detail::TypeSeq<> >::type'],['../structconnectivity__details_1_1ToTuple_3_01ddc_1_1detail_1_1TypeSeq_3_01I_8_8_8_01_4_01_4.html#a0af138539a7a646b5e405614d86b4a97',1,'connectivity_details::ToTuple< ddc::detail::TypeSeq< I... > >::type'],['../structconnectivity__details_1_1StripOutsideEdges_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType1_00_036e9ce7e4506982efa52c09ca049ae90.html#af6fa608673168ba90267d5b0c71676a6',1,'connectivity_details::StripOutsideEdges< ddc::detail::TypeSeq< EdgeType1, RemainingEdgeTypes... > >::type'],['../structconnectivity__details_1_1StripOutsideEdges_3_01ddc_1_1detail_1_1TypeSeq_3_01EdgeType_01_4_01_4.html#a7a3343dbe34154d96b037ecc7f16ea72',1,'connectivity_details::StripOutsideEdges< ddc::detail::TypeSeq< EdgeType > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_01Interd9a0a5e7aafe0b71fe7c76720b7c5da6.html#a85f83871403ebf25a23cba2736268c30',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq< InterfaceType1, RemainingInterfaceTypes... > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_01InterfaceType_01_4_01_4.html#a8f3e514120676d44e357f6ed57700784',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq< InterfaceType > >::type'],['../structconnectivity__details_1_1PatchConnection_3_01Patch_00_01ddc_1_1detail_1_1TypeSeq_3_4_01_4.html#a29d56e6980c8c4f084dbeadd8b217794',1,'connectivity_details::PatchConnection< Patch, ddc::detail::TypeSeq<> >::type'],['../structinterpolator__on__idx__range_3_01Interp_00_01GridInterp_00_01IdxRange_3_01Grid1D_8_8_8_01_4_01_4.html#a3d7bd6ff70bbce6361c363dd77cc76bd',1,'interpolator_on_idx_range< Interp, GridInterp, IdxRange< Grid1D... > >::type']]] ]; diff --git a/structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.html b/structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.html index bed912b20..8e3f14465 100644 --- a/structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.html +++ b/structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.html @@ -5,7 +5,7 @@ -Gyselalib++: PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::QDimRMesh Struct Reference +Gyselalib++: PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::QDimRMesh Struct Reference @@ -103,21 +103,21 @@
    -
    PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::QDimRMesh Struct Reference
    +
    PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::QDimRMesh Struct Reference

    Tag the first dimension for the quadrature mesh. More...

    -Inheritance diagram for PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::QDimRMesh:
    +Inheritance diagram for PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::QDimRMesh:

    Detailed Description

    -
    template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound_host, class IdxRangeFull = IdxRange<GridR, GridTheta>>
    -struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::QDimRMesh

    Tag the first dimension for the quadrature mesh.

    +
    template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
    +struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::QDimRMesh

    Tag the first dimension for the quadrature mesh.


    The documentation for this struct was generated from the following file: diff --git a/structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.png b/structPolarSplineFEMPoissonLikeSolver_1_1QDimRMesh.png index b9021f4ecadfafae392f0480f58fe8fedbc775c3..16f7d775d7cd48411b2252c34ecaf3f1ecc94156 100644 GIT binary patch literal 1911 zcmdT_Yh2P-82)#0R^GzPteIAhO=wF>v(g09z=Syv4VjUbE?VCGwbU4*n>EqAP)b|n zz)4~z3vmhR&s3Ik7I-O*vH)Egkryy^T8ha2>2Le8ec8vI59fK$bKdj3=e*~Z7lc1( zvF?L)003BE1JJ<$unGp+L2Filb^Gn|DG(fj0uNz~Mk8px8lOpJ-o3GR2RvoN_nogK z5(&tM6!%queQVDI<3j+jy;SzBEPVt3rYo^%-$Q3tXxWssVK4L5`96KkM!UhiKSNQ8 z)S=E{yryahT^X=$KctlvjDzu5K{$9hE7%`aYzu`41YfM+!?0+LB zj^@8u-_zruQ7Iy$H~uj-+1H(}Z%{QC-{22}I=#`(7og3ITmEHvZVppX;~z_hZ#bb` zLE#oO`clQ4AaPPHdt71E7v6ftY|>omVW2j9=Qw?-q7k-B7athX%bLKbgMROPQ*wXK zO2~5JZZbNdRPl>3ZSY?ovUOx+`{ctbscZUj-A+M4-OP8>oG3>;A3a_*#Tm`NZXuVl zRl~1uhH6u;kGK&r#RCW4sR>CsGG-+CNl3;up@T5&;k}gISF4<{$xv=UFYRq65f3T) zCGntVCdLN))rSypR9k3eBt$*n@l3&oZ;Q7)8As&iL7VfJqK%rS)($Q@Ty9`qRV9|G zPCPw0VI;eoSL47u?y)8=C)5N~$%dL>53m34#Otj%IPZKgZY_^xje|!6TYv@M1z-)Z zVhd1!w*4Ad54>D>3kd;M?gy?|6PIB6IW}+w=n>_QUIOf{CGcHt{U6|M+uz6156&wH zO4!$*Ce%hLkdSuqxkOV%#CqZ~W%3V#0aMS0sOrNb+v?9nmf0v<`hEDdOpTZxp--DX ziU{0ExEiIbX(ZAvS}D0);A5-y%dyWBX>*PXMk)@bbsrYdBdjo< zj{9uA3FQhb1v7kch6|ffl2{YzW3k<5>u;AC@oA0QzScHrcQ_I*w@Z$n65XGE@~NFn z;$cYLC>b?GhA;ZXa0p>8LTcGd|7M2PL_uW3NI|2Q8Ri)S)iz;1N^cL?3a7{k_@9++IP(qcfCQT9%gc%Dvvm=~k^4v9)XBOT^fy`S4JNAIWIQ`JTIL)thod zT%nk-iu{qm4=6Q+Qx@aEaGs9`cJ;QIp{#j&fmw>;{C8GXbEQdQpC1`cOc@U6dP!T_;G#7u}92C76m6Y385F zhn!Xm4(nop(h-5H5nNXw_2Z<+PfqT6KOXOn!iIf_WGtz2pUes*=^EuRdOPGQ^)}?jmy-rC~_zXBC14M9_f=fnF{lM zQ>zg%FYmHQ9Ok`rl5%iwLqE~=!f6gI-0CWsg20j1mRxV_pGmbGQO1@`2Cz_@WM>L& zyzP0axg#tcjFKCS*!ROnW{{c<9-LO$u1Irb2{5at9i20~N<~GxNUPJcZoup}NBGkR zh(+3`(GA@`jMx?^u68WmT9d?WgtZH5zJ-;{J4u`ETXk9V4zD6^IWO?NqG)-J+64no zqi^TG;HeQOz>|4^Dz`z|s=rw9y_N1>z|By4$-aVcVnw7xL0?79rLYx6>~>eV$X5NB z)*VXg77q@zCQ?p^?+9;8?yip0P4lXoQsa@yha9Txn>JgMND5Sqes)Y8LH?Y+vg^HB zXD5qBOIe>p%U^N%TdsIkICV`Ih)DN{FBZz3#vh3M=YqbwF8=6Wtn(Y&b? zfI(es>Acf0T*>U8tx*qZVPeDBoETU%x`#+7GCJ%rwcw5aMQn6*z5rf%OL6lS?(!>O k_74JuhX3`Af$xR+f@#B#zrT$L<_Z9?U@>^Kz%MHMPaSk}sQ>@~ literal 1958 zcmc&#YgAKL7QO)nC<+y%4`VStD3qy+t%QeI5Fvq}B!FQCtAM(YcR&OZAVlObgP_4S z5FbPyng#;IM6@KzDyC8w2#fyihxIsvBYhcqT>0Mh zFE~4f7siVL+k+U*r?3oXn0w$X31bA@X2^pJ#aUVks+cK7)(RTEA3uARZNw||)itpD zjgU>a1=|sa6C6p(@Q@tC*0gLzorei=O^PcHb$N4r(u~~*q@fS}L#GdzTD)wq5nVpO zOIEj`zeN?A^?TOPU1tcZ;BHd}@+xYik%d)?StP=yb$o4CM!l{;wn2FI-`x={Saw+= zyseq(r3Fpaf&d4HIbuS_7T(9l4Lez+&QmPEh>EH(#+)OZ5Uu=Z0z_n+$u3WoHL|lq z7qQIVAdD++;j^WjrqPpVg|$ePviMP@>rBpa4sPa3>{zw*alncwzs@x=>CP|}yhO!# zw#MYYqc~6bCFP1}Q)1*g^rVG9&{iUEsVfGuEfqQ3_hegXygR;vJuek+OXdcf-Bn!e3d zp#Wk%&_nRDumuo@7-37a^D^ym#qoVKy!c6A6#yUVd)K{=%X4i+BCJjV+c3+4RVn|! zz$b?0+UVULobsh>`g*Ig(n08w;V*wf4cW8=sZ}Y7$^l^+iQq_w?c{4Z_{NfKVD6it z=BR>qL?a0Ve^Qpw)QEKnyhfQ^BNrOeSbHZG}2S~8MeM4Nmp80Y~#MYP2o zCHE~wE#dL&Y6sjWC$~``#A`Eux?k8>9!!N!G;Pgs>8kWAVs59`_5RIWkk|f@yG17aPZ?G>s;ti9#QIZ= zAqn8TaT~ejwfE$?xn^$JzvkL`)o0r9rcwer&6*#)s6e(RxbgqGK)3SNbo-c8_j()( z9#IGPqT*kMv-RCu2UNG?dJ54a+dDrJb+0yN%W^$e%gej{ zO>3D2j>kO@iU#mmmqz_~zcwYhKU{aVRliHUBLCxsj6wT1!`!tl@kg4X+(V`GE>W8Q z&o4*i$^K+EY3i_c!1~j)-0wSgwCfx}@yvdEPir!ZKY8S81z4G0r_QrrWjtyyCmqc! z=gsyU?Nbh!=yaCqMJJZ(ghx+~jq;&0#-~l;?2^+d_y5ma)rwflR zoV(gvX^=crYDAcr<8`|dsZMZBei)&#NdjrNU;FO)(& zEL4qwZ56&y4s(B2Gv_u{{6) diff --git a/structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.html b/structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.html index db88561ea..cbe42bb50 100644 --- a/structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.html +++ b/structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.html @@ -5,7 +5,7 @@ -Gyselalib++: PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::QDimThetaMesh Struct Reference +Gyselalib++: PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::QDimThetaMesh Struct Reference @@ -103,21 +103,21 @@
    -
    PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::QDimThetaMesh Struct Reference
    +
    PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::QDimThetaMesh Struct Reference

    Tag the second dimension for the quadrature mesh. More...

    -Inheritance diagram for PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::QDimThetaMesh:
    +Inheritance diagram for PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::QDimThetaMesh:

    Detailed Description

    -
    template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound_host, class IdxRangeFull = IdxRange<GridR, GridTheta>>
    -struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host, IdxRangeFull >::QDimThetaMesh

    Tag the second dimension for the quadrature mesh.

    +
    template<class GridR, class GridTheta, class PolarBSplinesRTheta, class SplineRThetaEvaluatorNullBound, class IdxRangeFull = IdxRange<GridR, GridTheta>>
    +struct PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound, IdxRangeFull >::QDimThetaMesh

    Tag the second dimension for the quadrature mesh.


    The documentation for this struct was generated from the following file: diff --git a/structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.png b/structPolarSplineFEMPoissonLikeSolver_1_1QDimThetaMesh.png index 125c5847233451a8217aa7f2fc4aa91f8ba772d3..b6c4b38e4383d3ca0ab38dac84e87616f9720205 100644 GIT binary patch literal 1959 zcmc&!eLRzEAHTh%az3o$Jj(IbCmm;$b1Eg&mT*{QD{m1p5n}UFjR;dthn4cAP#mpN zt(uRS+B`VhEYHcK!!tG9v{(mWF{91KUhX|NKIfnF$MgL8Tz_1j>vw&>zx(^Ue&74L zC`YmWW~SDr005X_0(^r2zz7YmkFGI-XMpb&2hZOeJrd%l*X!ZsYW&0?~n@y(wd>1G3O1&h1H$8dZ&}3 zWK2O1qC*-@tx?d@Mad!eoiDdMz8!QB`S_=xLu()3{<86^<0_14nWdv-^PGR#WjLtX z0tE#9{gDIa+&}G?kux_IwqU$rtb0A#QL=yA-F;*7sn_``Ipb`V;>(=ywMM(}tL8p7 zrX6L%_6f#g)SE|29XUm(uZb7WHP`yDN9nSs`S^I#Z5Xt#_U0p1gN^nuIReVbtJ^@x zQtgOAYwl?I1MdcJbLPvU8@h z|M!!}ZBJ>Eexi>JC_ekAG2_Y{IoFoR55$9g9T&Wghr|#9>3cHL9I6vom-6%;UE)?G zdaRGHSva2%Sou(LF zrm(BvXl%(RIS)B`e|uQ=>};)^W^aAbQIZEYDhCm&dTP6%l_kAN>6%Q{Opo+<=ID4= z9nSDR-6^9&p#JF`==e2 zB6GGa!D~S2Gg3-i4F~)EwM;2q#Ail9vt8*)C2m$bSZ(sS6+0$ac&io*(~53!hEszju~e_SV|+sb z2qwMz;{?{koVRgN{#`~XDDKvFOA-&>0MAbeG7NCe`4T~)Db=!{{S7(qSNNwvZa6p6yvpa*zfDqo=zcT2 zAHVhtj1peQS%h=+(+Y(1Ir~Oeyd2eiJ;&_#uh_MoTOcqYDDw>Rlb8k+qB@U)O_xRUw-kZ;LNw}K{ zd>Z6t1U}Fau6H+4=*m}x#(SnN?$HU~d??zN+8O%<@%@EQI8}7zNA~F&RPIx8I#bu2 zHxSqzBHff-bu-~Bd(|c?nFCWu;*txWqlxQV&Not%Gomk%PlRz$y(+?)ty|xRl;KzwCQiyL z=)w|01SimNounXI7QQ>K6UWnt0x<>=t~6S^WwD+bTwQY7{v zm5X&3^e(&nrD5uGK_x`E74uz>-(IymBSkEAl5Cn`KSyRN z6&J^xg^8Oy=x^_$sWr(mP_u7JIxk`~K+V(CLS1LrZ^L3%OQic--H)t-oJR0w5HVAv znLm-w>iRZiK6|(IfTo!x^W5GbZ<+!XWoukA(L#N-B|{v=o9te;+N z+S-6nd|%h4EhCE$Lo7&}rpS&oL}WmD<#(epgd~FI_^e84FM?$9xV2h6;|P*BYwM(2 jx$OF!|9$=c`es5#Tdr!qzEUkN0^ou1!}``A#9#gofuQ4) literal 2005 zcmd5-dpMhC8&91|JIz*G^>V2Br0YK)!`~Li%Kc45lf4}>FuKVy@_fr%a zeAIZG*)|vqW{f)Khlas)0j(TrsH@!te3_&6Fb@qn;jhtXwBnpZjwAlkQCOS9_rqwr>yAJs|47N1}<@e=@ueV5Ro>h@Mcj^VY&*y6Pd5a%k zM(FhxRr`ECuf8L9+;#OpJ#PXXU|Uy)K5W}qfDWkC^Cw+F=%cog4tz7Z7xkr98ARYw z=o<|mqg;ys(uWA!W4xf)igzZZS`(`?D2X*^%3T2xxxXbC|0WDEmn|**OsG$u>gh6I z`G%#UlwOYL)_bhFIe*hxpZQiK5l)Fw-f++(ES65#JX!B~` zjIAHLeiBqdxNE6{;Xb=&ktfZ-@@ImKr9hJRF$t-GxOfp9Nfl8tCqd=wnQ}zV_nVoI zjd5dz%%OYip~ENco_v*wm;3(lH(4k0?64+kuJ7^c`+k8no`@nR*&nZh;#by z!*semV@)@3lQoik_7=U%Fz1rdO+0F5*9NZb@`n8Y0>4R?z9WO)IsIRfdGN-vo&U`r z6`Fi#6yGY1fx@lemB%02gEN_OV|G;oPc?1v8*Obt7KZOeU zfnzoynDnzcEOF8s-gH#3!4B^3F`WGc_UkFmnrXBq_{mZ=W*k@DUGtsh3g9lvL*pUr zXl#uh=c%ykVTw%H2oyh3MH4eR(eY}9YWxv5A;J>08(hI!o_9i<=V-E=`wWMYIOa!nosESFPn^7Ml=iJ)Dy38Paa$z%&sz*Ta@dw>XG2xhUckR=8JuG zvfh4OT%~yU_`o#!sU%SmS<`uY@2ywVb}H@ngX*h*w1D*~%|1ybqs;Yl*7x*c?VcTh z5}!TKzQM>X7od2Q&jt%Zq=^P}UlrSp&JBv{FvTKTE2lWZDcXSeMxVpy18>gcN8oW& zIHQG67G~5U@^r$SFRn0fe&}rvCJ7^;Fq+m95B_f-kuCjEH!ITD8{nAk3q zf_(FRGK=s_q3tG>#HNU>r!sxd?K!Mz1H!rI;Ps1+rQyvU*mWyd01BdN9G7#WRE> zY-!K!Gw#P5uyyL@Q;%N=BPVI*i@EhxU#Qz(=Z7`N5V#aR^nU65TW# zH$&;aU)l{UWnuEzE(~A#H&hc<(15b-y`*$Z$GQl?s8B~my3)?d5=)1zeiaAVfugmJ zjAWAQVuyFeNOE|fPn-Bh2J=_Aq+KfPbQ@)9qH=MzKC5r<=_&HpiFPZ@?aCGO;?TH! z>WP~}exXMm5LX_45h-;S@-z2C>o$L85h_wNx!&d7c^nthpT-q=J>1Fux+CIA2c diff --git a/test__cases__adv__field_8hpp_source.html b/test__cases__adv__field_8hpp_source.html index 68cf9c617..1ff9d524e 100644 --- a/test__cases__adv__field_8hpp_source.html +++ b/test__cases__adv__field_8hpp_source.html @@ -442,8 +442,8 @@
    RotationAdvectionFieldSimulation(Mapping const &mapping, double const rmin, double const rmax)
    Instantiate a RotationSimulation simulation.
    Definition test_cases_adv_field.hpp:427
    Simulation of a translated Gaussian.
    Definition test_cases_adv_field.hpp:351
    TranslationAdvectionFieldSimulation(Mapping const &mapping, double const rmin, double const rmax)
    Instantiate a TranslationSimulation simulation.
    Definition test_cases_adv_field.hpp:363
    -
    Define non periodic real X velocity dimension.
    Definition geometry.hpp:300
    -
    Define non periodic real Y velocity dimension.
    Definition geometry.hpp:311
    +
    Define non periodic real X velocity dimension.
    Definition geometry.hpp:341
    +
    Define non periodic real Y velocity dimension.
    Definition geometry.hpp:352
    diff --git a/vector__mapper_8hpp_source.html b/vector__mapper_8hpp_source.html index 5ff2d17b2..2f01b35f8 100644 --- a/vector__mapper_8hpp_source.html +++ b/vector__mapper_8hpp_source.html @@ -238,8 +238,8 @@
    VectorMapper(Mapping mapping)
    A constructor for the VectorMapper.
    Definition vector_mapper.hpp:54
    The general predeclaration of VectorMapper.
    Definition vector_mapper.hpp:14
    A type describing a vector e.g. (E_x, E_y)
    Definition ddc_aliases.hpp:82
    -
    Define non periodic real X dimension.
    Definition geometry.hpp:277
    -
    Define non periodic real Y dimension.
    Definition geometry.hpp:288
    +
    Define non periodic real X dimension.
    Definition geometry.hpp:318
    +
    Define non periodic real Y dimension.
    Definition geometry.hpp:329
    diff --git a/vortex__merger__equilibrium_8hpp_source.html b/vortex__merger__equilibrium_8hpp_source.html index 17f1e8d7f..a36737f4f 100644 --- a/vortex__merger__equilibrium_8hpp_source.html +++ b/vortex__merger__equilibrium_8hpp_source.html @@ -133,11 +133,11 @@
    31 GridR,
    -
    34 SplineRThetaEvaluatorNullBound_host> const& m_poisson_solver;
    +
    34 SplineRThetaEvaluatorNullBound> const& m_poisson_solver;
    35
    36public:
    - +
    55 Mapping const& mapping,
    56 IdxRangeRTheta const& grid,
    57 SplineRThetaBuilder_host const& builder,
    @@ -146,7 +146,7 @@
    60 GridR,
    -
    63 SplineRThetaEvaluatorNullBound_host> const& poisson_solver)
    +
    63 SplineRThetaEvaluatorNullBound> const& poisson_solver)
    64 : m_mapping(mapping)
    65 , m_grid(grid)
    66 , m_builder(builder)
    @@ -164,7 +164,7 @@
    110 double const tau,
    111 int count_max = 25) const
    112 {
    -
    113 host_t<DFieldMemRTheta> phi_star(m_grid);
    +
    113 DFieldMemRTheta phi_star(m_grid);
    114 host_t<DFieldMemRTheta> ci(m_grid);
    115
    116 IdxRangeBSRTheta idx_range_bsplinesRTheta = get_spline_idx_range(m_builder);
    @@ -185,91 +185,92 @@
    131 m_builder(get_field(rho_coef), get_const_field(rho_eq));
    132 PoissonLikeRHSFunction poisson_rhs(get_const_field(rho_coef), m_evaluator);
    133 m_poisson_solver(poisson_rhs, get_field(phi_star));
    -
    134
    -
    135 // STEP 3: compute c^i
    -
    136 // If phi_max is given:
    -
    137 double norm_Linf_phi_star(0.);
    -
    138 ddc::for_each(m_grid, [&](IdxRTheta const irp) {
    -
    139 double const abs_phi_star = fabs(phi_star(irp));
    -
    140 norm_Linf_phi_star
    -
    141 = norm_Linf_phi_star > abs_phi_star ? norm_Linf_phi_star : abs_phi_star;
    -
    142 });
    -
    143
    -
    144 ddc::for_each(m_grid, [&](IdxRTheta const irp) {
    -
    145 ci(irp) = phi_max / norm_Linf_phi_star;
    -
    146 });
    -
    147
    +
    134 auto phi_star_host = ddc::create_mirror_view_and_copy(get_field(phi_star));
    +
    135
    +
    136 // STEP 3: compute c^i
    +
    137 // If phi_max is given:
    +
    138 double norm_Linf_phi_star(0.);
    +
    139 ddc::for_each(m_grid, [&](IdxRTheta const irp) {
    +
    140 double const abs_phi_star = fabs(phi_star_host(irp));
    +
    141 norm_Linf_phi_star
    +
    142 = norm_Linf_phi_star > abs_phi_star ? norm_Linf_phi_star : abs_phi_star;
    +
    143 });
    +
    144
    +
    145 ddc::for_each(m_grid, [&](IdxRTheta const irp) {
    +
    146 ci(irp) = phi_max / norm_Linf_phi_star;
    +
    147 });
    148
    -
    149 // STEP 4: update sigma and phi
    -
    150 difference_sigma = 0.;
    -
    151 ddc::for_each(m_grid, [&](IdxRTheta const irp) {
    -
    152 double const abs_diff_sigma = fabs(sigma(irp) - ci(irp) * sigma(irp));
    -
    153 difference_sigma
    -
    154 = difference_sigma > abs_diff_sigma ? difference_sigma : abs_diff_sigma;
    -
    155
    -
    156 sigma(irp) = ci(irp) * sigma(irp);
    -
    157 phi_eq(irp) = ci(irp) * phi_star(irp);
    -
    158 });
    -
    159
    -
    160 } while ((difference_sigma > tau) and (count < count_max));
    -
    161
    +
    149
    +
    150 // STEP 4: update sigma and phi
    +
    151 difference_sigma = 0.;
    +
    152 ddc::for_each(m_grid, [&](IdxRTheta const irp) {
    +
    153 double const abs_diff_sigma = fabs(sigma(irp) - ci(irp) * sigma(irp));
    +
    154 difference_sigma
    +
    155 = difference_sigma > abs_diff_sigma ? difference_sigma : abs_diff_sigma;
    +
    156
    +
    157 sigma(irp) = ci(irp) * sigma(irp);
    +
    158 phi_eq(irp) = ci(irp) * phi_star_host(irp);
    +
    159 });
    +
    160
    +
    161 } while ((difference_sigma > tau) and (count < count_max));
    162
    -
    163 // STEP 1: compute rho^i
    -
    164 ddc::for_each(m_grid, [&](IdxRTheta const irp) {
    -
    165 rho_eq(irp) = sigma(irp) * function(phi_eq(irp));
    -
    166 });
    -
    167
    -
    168 // Unify at the center point:
    -
    169 IdxRangeR r_idx_range = get_idx_range<GridR>(rho_eq);
    -
    170 IdxRangeTheta theta_idx_range = get_idx_range<GridTheta>(rho_eq);
    -
    171 if (std::fabs(ddc::coordinate(r_idx_range.front())) < 1e-15) {
    -
    172 ddc::for_each(theta_idx_range, [&](const IdxTheta ip) {
    -
    173 rho_eq(r_idx_range.front(), ip)
    -
    174 = rho_eq(r_idx_range.front(), theta_idx_range.front());
    -
    175 });
    -
    176 }
    -
    177 };
    +
    163
    +
    164 // STEP 1: compute rho^i
    +
    165 ddc::for_each(m_grid, [&](IdxRTheta const irp) {
    +
    166 rho_eq(irp) = sigma(irp) * function(phi_eq(irp));
    +
    167 });
    +
    168
    +
    169 // Unify at the center point:
    +
    170 IdxRangeR r_idx_range = get_idx_range<GridR>(rho_eq);
    +
    171 IdxRangeTheta theta_idx_range = get_idx_range<GridTheta>(rho_eq);
    +
    172 if (std::fabs(ddc::coordinate(r_idx_range.front())) < 1e-15) {
    +
    173 ddc::for_each(theta_idx_range, [&](const IdxTheta ip) {
    +
    174 rho_eq(r_idx_range.front(), ip)
    +
    175 = rho_eq(r_idx_range.front(), theta_idx_range.front());
    +
    176 });
    +
    177 }
    +
    178 };
    -
    178
    179
    -
    - -
    195 host_t<DFieldRTheta> rho_eq,
    -
    196 std::function<double(double const)> function,
    -
    197 double const phi_max,
    -
    198 double const tau)
    -
    199 {
    -
    200 IdxRangeRTheta grid = get_idx_range<GridR, GridTheta>(rho_eq);
    -
    201
    -
    202 // Equilibrium:
    -
    203 host_t<DFieldMemRTheta> sigma_0(grid);
    -
    204 host_t<DFieldMemRTheta> phi_eq(grid);
    -
    205 const double sig = 0.3;
    -
    206 ddc::for_each(grid, [&](IdxRTheta const irp) {
    -
    207 const CoordRTheta coord_rp(ddc::coordinate(irp));
    -
    208 const CoordXY coord_xy(m_mapping(coord_rp));
    -
    209 const double x = ddc::get<X>(coord_xy);
    -
    210 const double y = ddc::get<Y>(coord_xy);
    -
    211 sigma_0(irp) = sig;
    -
    212 phi_eq(irp) = std::exp(-(x * x + y * y) / (2 * sig * sig));
    -
    213 });
    - -
    215 get_field(sigma_0),
    -
    216 get_field(phi_eq),
    -
    217 get_field(rho_eq),
    -
    218 function,
    -
    219 phi_max,
    -
    220 tau);
    -
    221 };
    +
    180
    +
    + +
    196 host_t<DFieldRTheta> rho_eq,
    +
    197 std::function<double(double const)> function,
    +
    198 double const phi_max,
    +
    199 double const tau)
    +
    200 {
    +
    201 IdxRangeRTheta grid = get_idx_range<GridR, GridTheta>(rho_eq);
    +
    202
    +
    203 // Equilibrium:
    +
    204 host_t<DFieldMemRTheta> sigma_0(grid);
    +
    205 host_t<DFieldMemRTheta> phi_eq(grid);
    +
    206 const double sig = 0.3;
    +
    207 ddc::for_each(grid, [&](IdxRTheta const irp) {
    +
    208 const CoordRTheta coord_rp(ddc::coordinate(irp));
    +
    209 const CoordXY coord_xy(m_mapping(coord_rp));
    +
    210 const double x = ddc::get<X>(coord_xy);
    +
    211 const double y = ddc::get<Y>(coord_xy);
    +
    212 sigma_0(irp) = sig;
    +
    213 phi_eq(irp) = std::exp(-(x * x + y * y) / (2 * sig * sig));
    +
    214 });
    + +
    216 get_field(sigma_0),
    +
    217 get_field(phi_eq),
    +
    218 get_field(rho_eq),
    +
    219 function,
    +
    220 phi_max,
    +
    221 tau);
    +
    222 };
    -
    222};
    +
    223};
    Type of right-hand side (rhs) function of the Poisson equation.
    Definition poisson_like_rhs_function.hpp:17
    -
    Define a polar PDE solver for a Poisson-like equation.
    Definition polarpoissonlikesolver.hpp:50
    +
    Define a polar PDE solver for a Poisson-like equation.
    Definition polarpoissonlikesolver.hpp:51
    Equilibrium solution of a Vlasov-Poissson equations system in polar coordinates.
    Definition vortex_merger_equilibrium.hpp:24
    -
    VortexMergerEquilibria(Mapping const &mapping, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver)
    Instantiate a VortexMergerEquilibria.
    Definition vortex_merger_equilibrium.hpp:54
    +
    VortexMergerEquilibria(Mapping const &mapping, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver)
    Instantiate a VortexMergerEquilibria.
    Definition vortex_merger_equilibrium.hpp:54
    void find_equilibrium(host_t< DFieldRTheta > sigma, host_t< DFieldRTheta > phi_eq, host_t< DFieldRTheta > rho_eq, std::function< double(double const)> const &function, double const phi_max, double const tau, int count_max=25) const
    Get an equilibrium.
    Definition vortex_merger_equilibrium.hpp:104
    -
    void set_equilibrium(host_t< DFieldRTheta > rho_eq, std::function< double(double const)> function, double const phi_max, double const tau)
    Set an equilibrium.
    Definition vortex_merger_equilibrium.hpp:194
    +
    void set_equilibrium(host_t< DFieldRTheta > rho_eq, std::function< double(double const)> function, double const phi_max, double const tau)
    Set an equilibrium.
    Definition vortex_merger_equilibrium.hpp:195
    File Describing useful mathematical functions to compute Lnorms.
    Definition geometry.hpp:116
    Definition geometry.hpp:119

Public Member Functions

 VortexMergerEquilibria (Mapping const &mapping, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const &poisson_solver)
 Instantiate a VortexMergerEquilibria.
 
 VortexMergerEquilibria (Mapping const &mapping, IdxRangeRTheta const &grid, SplineRThetaBuilder_host const &builder, SplineRThetaEvaluatorNullBound_host const &evaluator, PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &poisson_solver)
 Instantiate a VortexMergerEquilibria.
 
void find_equilibrium (host_t< DFieldRTheta > sigma, host_t< DFieldRTheta > phi_eq, host_t< DFieldRTheta > rho_eq, std::function< double(double const)> const &function, double const phi_max, double const tau, int count_max=25) const
 Get an equilibrium.
 
PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound_host > const & PolarSplineFEMPoissonLikeSolver< GridR, GridTheta, PolarBSplinesRTheta, SplineRThetaEvaluatorNullBound > const &  poisson_solver