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

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

Classes

struct  BSplinesRRefined
 The type of the radial bsplines on which the new mapping will be defined. More...
 
struct  BSplinesThetaRefined
 The type of the poloidal bsplines on which the new mapping will be defined. More...
 
struct  GridRRefined
 The type of the grid of radial points on which the new mapping will be defined. More...
 
struct  GridThetaRefined
 The type of the grid of poloidal points on which the new mapping will be defined. More...
 

Public Types

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

Public Member Functions

template<class Mapping >
 RefinedDiscreteToCartesianBuilder (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, RefinedSplineEvaluator > operator() () const
 Get a DiscreteToCartesian class instance.
 
template<class Mapping >
void set_curvilinear_to_cartesian_values (InterpolationField curvilinear_to_x_vals, InterpolationField 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, int ncells_r, int ncells_theta>
class RefinedDiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator, ncells_r, ncells_theta >

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

This class creates an instance which uses more refined splines than the provided builder and evaluator. 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.
ncells_rThe number of cells in the refined spline in the radial direction.
ncells_thetaThe number of cells in the refined spline in the radial direction.

Constructor & Destructor Documentation

◆ RefinedDiscreteToCartesianBuilder()

template<class X , class Y , class SplineBuilder , class SplineEvaluator , int ncells_r, int ncells_theta>
template<class Mapping >
RefinedDiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator, ncells_r, ncells_theta >::RefinedDiscreteToCartesianBuilder ( 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 , int ncells_r, int ncells_theta>
DiscreteToCartesian< X, Y, RefinedSplineEvaluator > RefinedDiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator, ncells_r, ncells_theta >::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 , int ncells_r, int ncells_theta>
template<class Mapping >
void RefinedDiscreteToCartesianBuilder< X, Y, SplineBuilder, SplineEvaluator, ncells_r, ncells_theta >::set_curvilinear_to_cartesian_values ( InterpolationField  curvilinear_to_x_vals,
InterpolationField  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: