Gyselalib++
 
Loading...
Searching...
No Matches
DiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator > Class Template Reference

A class to create a DiscreteToCartesian instance from an analytical mapping. More...

Public Types

using MappingType = DiscreteToCartesian< X, Y, SplineEvaluator >
 The type of the mapping that will be created.
 

Public Member Functions

template<class Mapping >
 DiscreteToCartesianBuilder (ExecSpace exec_space, Mapping const &analytical_mapping, SplineBuilder const &builder, SplineEvaluator const &evaluator)
 Create an instance of the class capable of providing a DiscreteToCartesian class instance.
 
DiscreteToCartesian< X, Y, SplineEvaluator > operator() () const
 Get a DiscreteToCartesian class instance.
 
template<class Mapping >
void set_curvilinear_to_cartesian_values (InterpolationField const &curvilinear_to_x_vals, InterpolationField const &curvilinear_to_y_vals, Mapping const &analytical_mapping, IdxRangeInterpolationPoints const &interpolation_idx_range)
 Fill in the curvilinear fields with interpolation points mapped with the given analytical mapping.
 

Detailed Description

template<class X, class Y, class SplineBuilder, class SplineEvaluator>
class DiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator >

A class to create a DiscreteToCartesian instance from an analytical mapping.

This class creates and stores splines memory spaces describing the analytical mapping. The discrete mapping is then created using the splines without copying data.

Template Parameters
XThe first cartesian dimension.
YThe second cartesian dimension.
SplineBuilderAn operator for building spline coefficients.
SplineEvaluatorAn operator for evaluating a spline.

Constructor & Destructor Documentation

◆ DiscreteToCartesianBuilder()

template<class X , class Y , class SplineBuilder , class SplineEvaluator >
template<class Mapping >
DiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator >::DiscreteToCartesianBuilder ( ExecSpace  exec_space,
Mapping const &  analytical_mapping,
SplineBuilder const &  builder,
SplineEvaluator const &  evaluator 
)
inline

Create an instance of the class capable of providing a DiscreteToCartesian class instance.

Parameters
[in]exec_spaceThe execution space where this class runs any for loops.
[in]analytical_mappingThe analytical mapping to be described by this discrete mapping.
[in]builderA spline builder to be used to create a spline approximating the analytical mapping.
[in]evaluatorA spline evaluator to be used to evaluate a spline approximating the analytical mapping.

Member Function Documentation

◆ operator()()

template<class X , class Y , class SplineBuilder , class SplineEvaluator >
DiscreteToCartesian< X, Y, SplineEvaluator > DiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator >::operator() ( ) const
inline

Get a DiscreteToCartesian class instance.

Returns
An instance of the mapping.

◆ set_curvilinear_to_cartesian_values()

template<class X , class Y , class SplineBuilder , class SplineEvaluator >
template<class Mapping >
void DiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator >::set_curvilinear_to_cartesian_values ( InterpolationField const &  curvilinear_to_x_vals,
InterpolationField const &  curvilinear_to_y_vals,
Mapping const &  analytical_mapping,
IdxRangeInterpolationPoints const &  interpolation_idx_range 
)
inline

Fill in the curvilinear fields with interpolation points mapped with the given analytical mapping.

This function should be private. It is not due to the inclusion of a KOKKOS_LAMBDA

Template Parameters
MappingType of the analytical mapping.
Parameters
[out]curvilinear_to_x_valsField of coordinate on X.
[out]curvilinear_to_y_valsField of coordinate on Y.
[in]analytical_mappingAnalytical mapping.
[in]interpolation_idx_rangeIndex range of an interpolation grid.

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