template<class ExecSpace, class MemorySpace, template< typename P > typename BSpline1OnPatch, template< typename P > typename BSpline2OnPatch, template< typename P > typename Grid1OnPatch, template< typename P > typename Grid2OnPatch, ddc::BoundCond BcLower1, ddc::BoundCond BcUpper1, ddc::BoundCond BcLower2, ddc::BoundCond BcUpper2, ddc::BoundCond BcTransition, class Connectivity, ddc::SplineSolver Solver, template< typename P > typename ValuesOnPatch, class... Patches>
class MultipatchSplineBuilder2D< ExecSpace, MemorySpace, BSpline1OnPatch, BSpline2OnPatch, Grid1OnPatch, Grid2OnPatch, BcLower1, BcUpper1, BcLower2, BcUpper2, BcTransition, Connectivity, Solver, ValuesOnPatch, Patches >
A class to call all the builders of all the patches once.
We need to instantiate all the builders for all the pacthes in the main code. We process the same way for the Field containing the spline coefficients and the values of the function on each patch. The Fields are stored in MultipatchField objects. The builders are stored in this class. This class is instantiated with all the builders. The operator() allows to call all the builders stored in the member of this class in one single line.
This function is useful to avoid calling all the builders individually, especially in a multipatch geometry with several patches.
- Template Parameters
-
ExecSpace | The space (CPU/GPU) where the calculations are carried out. |
MemorySpace | The space (CPU/GPU) where the coefficients and values are stored. |
BSpline1OnPatch | A type alias which provides the first BSpline type along which the splines are built. |
BSpline2OnPatch | A type alias which provides the second BSpline type along which the splines are built. |
Grid1OnPatch | A type alias which provides the first Grid type along which the interpolation points of the splines are found. |
Grid2OnPatch | A type alias which provides the second Grid type along which the interpolation points of the splines are found. |
BcLower1 | The lower boundary condition on the first dimension. |
BcUpper1 | The upper boundary condition on the first dimension. |
BcLower2 | The lower boundary condition on the second dimension. |
BcUpper2 | The upper boundary condition on the second dimension. |
BcTransition | The boundary condition used at the interface between 2 patches. |
Connectivity | A MultipatchConnectivity object describing the interfaces between patches. |
Solver | The SplineSolver giving the backend used to perform the spline approximation. See DDC for more details. |
ValuesOnPatch | A type alias which provides the field type which will be used to pass the values of the function at the interpolation points. The index range of this field type should contain any batch dimensions. |
template<class ExecSpace , class MemorySpace , template< typename P > typename BSpline1OnPatch, template< typename P > typename BSpline2OnPatch, template< typename P > typename Grid1OnPatch, template< typename P > typename Grid2OnPatch, ddc::BoundCond BcLower1, ddc::BoundCond BcUpper1, ddc::BoundCond BcLower2, ddc::BoundCond BcUpper2, ddc::BoundCond BcTransition, class Connectivity , ddc::SplineSolver Solver, template< typename P > typename ValuesOnPatch, class... Patches>
MultipatchSplineBuilder2D< ExecSpace, MemorySpace, BSpline1OnPatch, BSpline2OnPatch, Grid1OnPatch, Grid2OnPatch, BcLower1, BcUpper1, BcLower2, BcUpper2, BcTransition, Connectivity, Solver, ValuesOnPatch, Patches >::MultipatchSplineBuilder2D |
( |
BuilderOnPatch< Patches > const &... |
builders | ) |
|
|
inlineexplicit |
Instantiate the MultipatchSplineBuilder from a std::tuple of all the builder on each patch.
- Warning
- The builders have to be sorted in the same order as the patches in the tuple.
- Parameters
-
builders | Spline builders for each patch. |