Gyselalib++
 
Loading...
Searching...
No Matches
MultipatchSplineBuilder< ExecSpace, MemorySpace, BSplineOnPatch, GridOnPatch, BcLower, BcUpper, BcTransition, Connectivity, Solver, ValuesOnPatch, Patches > Class Template Reference

A class to call all the builders of all the patches once. More...

Public Member Functions

 MultipatchSplineBuilder (BuilderOnPatch< Patches > const &... builders)
 Instantiate the MultipatchSplineBuilder from a std::tuple of all the builder on each patch.
 
void operator() (MultipatchSplineCoeffs splines, MultipatchValues const &values, std::optional< MultipatchDerivs > derivs_xmin=std::nullopt, std::optional< MultipatchDerivs > derivs_xmax=std::nullopt) const
 Build the spline representation of each given function.
 

Detailed Description

template<class ExecSpace, class MemorySpace, template< typename P > typename BSplineOnPatch, template< typename P > typename GridOnPatch, ddc::BoundCond BcLower, ddc::BoundCond BcUpper, ddc::BoundCond BcTransition, class Connectivity, ddc::SplineSolver Solver, template< typename P > typename ValuesOnPatch, class... Patches>
class MultipatchSplineBuilder< ExecSpace, MemorySpace, BSplineOnPatch, GridOnPatch, BcLower, BcUpper, 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 patches in the main code. We process the same way for the Fields 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
ExecSpaceThe space (CPU/GPU) where the calculations are carried out.
MemorySpaceThe space (CPU/GPU) where the coefficients and values are stored.
BSplineOnPatchA type alias which provides the BSpline type along which the splines are built.
GridOnPatchA type alias which provides the Grid type along which the interpolation points of the splines are found.
BcLowerThe lower boundary condition.
BcUpperThe upper boundary condition.
BcTransitionThe boundary condition used at the interface between 2 patches.
ConnectivityA MultipatchConnectivity object describing the interfaces between patches.
SolverThe SplineSolver giving the backend used to perform the spline approximation. See DDC for more details.
ValuesOnPatchA 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.

Constructor & Destructor Documentation

◆ MultipatchSplineBuilder()

template<class ExecSpace , class MemorySpace , template< typename P > typename BSplineOnPatch, template< typename P > typename GridOnPatch, ddc::BoundCond BcLower, ddc::BoundCond BcUpper, ddc::BoundCond BcTransition, class Connectivity , ddc::SplineSolver Solver, template< typename P > typename ValuesOnPatch, class... Patches>
MultipatchSplineBuilder< ExecSpace, MemorySpace, BSplineOnPatch, GridOnPatch, BcLower, BcUpper, BcTransition, Connectivity, Solver, ValuesOnPatch, Patches >::MultipatchSplineBuilder ( 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
buildersSpline builders for each patch.

Member Function Documentation

◆ operator()()

template<class ExecSpace , class MemorySpace , template< typename P > typename BSplineOnPatch, template< typename P > typename GridOnPatch, ddc::BoundCond BcLower, ddc::BoundCond BcUpper, ddc::BoundCond BcTransition, class Connectivity , ddc::SplineSolver Solver, template< typename P > typename ValuesOnPatch, class... Patches>
void MultipatchSplineBuilder< ExecSpace, MemorySpace, BSplineOnPatch, GridOnPatch, BcLower, BcUpper, BcTransition, Connectivity, Solver, ValuesOnPatch, Patches >::operator() ( MultipatchSplineCoeffs  splines,
MultipatchValues const &  values,
std::optional< MultipatchDerivs derivs_xmin = std::nullopt,
std::optional< MultipatchDerivs derivs_xmax = std::nullopt 
) const
inline

Build the spline representation of each given function.

Parameters
splinesMultipatchField of all the Fields pointing to the spline representations.
valuesMultipatchField of all the Fields pointing to the function values.
derivs_xminMultipatchField of all the ConstFields describing the function derivatives at the lower bound.
derivs_xmaxMultipatchField of all the ConstFields describing the function derivatives at the upper bound.

The documentation for this class was generated from the following file: