DDC 0.8.0
Loading...
Searching...
No Matches
ddc::SplineEvaluator3D< ExecSpace, MemorySpace, BSplines1, BSplines2, BSplines3, EvaluationDDim1, EvaluationDDim2, EvaluationDDim3, LowerExtrapolationRule1, UpperExtrapolationRule1, LowerExtrapolationRule2, UpperExtrapolationRule2, LowerExtrapolationRule3, UpperExtrapolationRule3 > Class Template Reference

A class to evaluate, differentiate or integrate a 3D spline function. More...

#include <spline_evaluator_3d.hpp>

Collaboration diagram for ddc::SplineEvaluator3D< ExecSpace, MemorySpace, BSplines1, BSplines2, BSplines3, EvaluationDDim1, EvaluationDDim2, EvaluationDDim3, LowerExtrapolationRule1, UpperExtrapolationRule1, LowerExtrapolationRule2, UpperExtrapolationRule2, LowerExtrapolationRule3, UpperExtrapolationRule3 >:
Collaboration graph

Public Types

using continuous_dimension_type1 = typename BSplines1::continuous_dimension_type
 The type of the first evaluation continuous dimension used by this class.
 
using continuous_dimension_type2 = typename BSplines2::continuous_dimension_type
 The type of the second evaluation continuous dimension used by this class.
 
using continuous_dimension_type3 = typename BSplines3::continuous_dimension_type
 The type of the third evaluation continuous dimension used by this class.
 
using exec_space = ExecSpace
 The type of the Kokkos execution space used by this class.
 
using memory_space = MemorySpace
 The type of the Kokkos memory space used by this class.
 
using evaluation_discrete_dimension_type1 = EvaluationDDim1
 The type of the first discrete dimension of interest used by this class.
 
using evaluation_discrete_dimension_type2 = EvaluationDDim2
 The type of the second discrete dimension of interest used by this class.
 
using evaluation_discrete_dimension_type3 = EvaluationDDim3
 The type of the third discrete dimension of interest used by this class.
 
using bsplines_type1 = BSplines1
 The discrete dimension representing the B-splines along first dimension.
 
using bsplines_type2 = BSplines2
 The discrete dimension representing the B-splines along second dimension.
 
using bsplines_type3 = BSplines3
 The discrete dimension representing the B-splines along third dimension.
 
using evaluation_domain_type1 = ddc::DiscreteDomain< evaluation_discrete_dimension_type1 >
 The type of the domain for the 1D evaluation mesh along first dimension used by this class.
 
using evaluation_domain_type2 = ddc::DiscreteDomain< evaluation_discrete_dimension_type2 >
 The type of the domain for the 1D evaluation mesh along second dimension used by this class.
 
using evaluation_domain_type3 = ddc::DiscreteDomain< evaluation_discrete_dimension_type3 >
 The type of the domain for the 1D evaluation mesh along third dimension used by this class.
 
using evaluation_domain_type = ddc::DiscreteDomain< evaluation_discrete_dimension_type1, evaluation_discrete_dimension_type2, evaluation_discrete_dimension_type3 >
 The type of the domain for the 3D evaluation mesh used by this class.
 
template<class BatchedInterpolationDDom , class = std::enable_if_t<ddc::is_discrete_domain_v<BatchedInterpolationDDom>>>
using batched_evaluation_domain_type = BatchedInterpolationDDom
 The type of the whole domain representing evaluation points.
 
using spline_domain_type1 = ddc::DiscreteDomain< bsplines_type1 >
 The type of the 1D spline domain corresponding to the first dimension of interest.
 
using spline_domain_type2 = ddc::DiscreteDomain< bsplines_type2 >
 The type of the 1D spline domain corresponding to the second dimension of interest.
 
using spline_domain_type3 = ddc::DiscreteDomain< bsplines_type3 >
 The type of the 1D spline domain corresponding to the third dimension of interest.
 
using spline_domain_type = ddc::DiscreteDomain< bsplines_type1, bsplines_type2, bsplines_type3 >
 The type of the 3D spline domain corresponding to the dimensions of interest.
 
template<class BatchedInterpolationDDom , class = std::enable_if_t<ddc::is_discrete_domain_v<BatchedInterpolationDDom>>>
using batch_domain_type = typename ddc::remove_dims_of_t< BatchedInterpolationDDom, evaluation_discrete_dimension_type1, evaluation_discrete_dimension_type2, evaluation_discrete_dimension_type3 >
 The type of the batch domain (obtained by removing the dimensions of interest from the whole domain).
 
template<class BatchedInterpolationDDom , class = std::enable_if_t<ddc::is_discrete_domain_v<BatchedInterpolationDDom>>>
using batched_spline_domain_type = typename ddc::detail::convert_type_seq_to_discrete_domain_t< ddc::type_seq_replace_t< ddc::to_type_seq_t< BatchedInterpolationDDom >, ddc::detail::TypeSeq< evaluation_discrete_dimension_type1, evaluation_discrete_dimension_type2, evaluation_discrete_dimension_type3 >, ddc::detail::TypeSeq< bsplines_type1, bsplines_type2, bsplines_type3 > > >
 The type of the whole spline domain (cartesian product of 3D spline domain and batch domain) preserving the underlying memory layout (order of dimensions).
 
using lower_extrapolation_rule_1_type = LowerExtrapolationRule1
 The type of the extrapolation rule at the lower boundary along the first dimension.
 
using upper_extrapolation_rule_1_type = UpperExtrapolationRule1
 The type of the extrapolation rule at the upper boundary along the first dimension.
 
using lower_extrapolation_rule_2_type = LowerExtrapolationRule2
 The type of the extrapolation rule at the lower boundary along the second dimension.
 
using upper_extrapolation_rule_2_type = UpperExtrapolationRule2
 The type of the extrapolation rule at the upper boundary along the second dimension.
 
using lower_extrapolation_rule_3_type = LowerExtrapolationRule3
 The type of the extrapolation rule at the lower boundary along the third dimension.
 
using upper_extrapolation_rule_3_type = UpperExtrapolationRule3
 The type of the extrapolation rule at the upper boundary along the third dimension.
 

Public Member Functions

 SplineEvaluator3D (LowerExtrapolationRule1 const &lower_extrap_rule1, UpperExtrapolationRule1 const &upper_extrap_rule1, LowerExtrapolationRule2 const &lower_extrap_rule2, UpperExtrapolationRule2 const &upper_extrap_rule2, LowerExtrapolationRule3 const &lower_extrap_rule3, UpperExtrapolationRule3 const &upper_extrap_rule3)
 Build a SplineEvaluator3D acting on batched_spline_domain.
 
 SplineEvaluator3D (SplineEvaluator3D const &x)=default
 Copy-constructs.
 
 SplineEvaluator3D (SplineEvaluator3D &&x)=default
 Move-constructs.
 
 ~SplineEvaluator3D ()=default
 Destructs.
 
SplineEvaluator3Doperator= (SplineEvaluator3D const &x)=default
 Copy-assigns.
 
SplineEvaluator3Doperator= (SplineEvaluator3D &&x)=default
 Move-assigns.
 
lower_extrapolation_rule_1_type lower_extrapolation_rule_dim_1 () const
 Get the lower extrapolation rule along the first dimension.
 
upper_extrapolation_rule_1_type upper_extrapolation_rule_dim_1 () const
 Get the upper extrapolation rule along the first dimension.
 
lower_extrapolation_rule_2_type lower_extrapolation_rule_dim_2 () const
 Get the lower extrapolation rule along the second dimension.
 
upper_extrapolation_rule_2_type upper_extrapolation_rule_dim_2 () const
 Get the upper extrapolation rule along the second dimension.
 
lower_extrapolation_rule_3_type lower_extrapolation_rule_dim_3 () const
 Get the lower extrapolation rule along the third dimension.
 
upper_extrapolation_rule_3_type upper_extrapolation_rule_dim_3 () const
 Get the upper extrapolation rule along the third dimension.
 
template<class Layout , class... CoordsDims>
KOKKOS_FUNCTION double operator() (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Evaluate 3D spline function (described by its spline coefficients) at a given coordinate.
 
template<class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void operator() (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Evaluate 3D spline function (described by its spline coefficients) on a mesh.
 
template<class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void operator() (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Evaluate 3D spline function (described by its spline coefficients) on a mesh.
 
template<class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv_dim_1 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) at a given coordinate along first dimension of interest.
 
template<class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv_dim_2 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) at a given coordinate along second dimension of interest.
 
template<class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv_dim_3 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) at a given coordinate along third dimension of interest.
 
template<class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv_1_and_2 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along the first and second dimensions.
 
template<class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv_2_and_3 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along the second and third dimensions.
 
template<class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv_1_and_3 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along the first and third dimensions.
 
template<class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv_1_2_3 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along the dimensions of interest.
 
template<class InterestDim , class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) at a given coordinate along a specified dimension of interest.
 
template<class InterestDim1 , class InterestDim2 , class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv2 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Double-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along specified dimensions of interest.
 
template<class InterestDim1 , class InterestDim2 , class InterestDim3 , class Layout , class... CoordsDims>
KOKKOS_FUNCTION double deriv3 (ddc::Coordinate< CoordsDims... > const &coord_eval, ddc::ChunkSpan< double const, spline_domain_type, Layout, memory_space > const spline_coef) const
 Triple-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along specified dimensions of interest.
 
template<class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv_dim_1 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) on a mesh along first dimension of interest.
 
template<class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv_dim_1 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) on a mesh along first dimension of interest.
 
template<class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv_dim_2 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) on a mesh along second dimension of interest.
 
template<class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv_dim_2 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) on a mesh along second dimension of interest.
 
template<class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv_dim_3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) on a mesh along third dimension of interest.
 
template<class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv_dim_3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Differentiate 3D spline function (described by its spline coefficients) on a mesh along third dimension of interest.
 
template<class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv_1_and_2 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the first and second dimensions of interest.
 
template<class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv_1_and_2 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the first and second dimensions of interest.
 
template<class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv_2_and_3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the second and third dimensions of interest.
 
template<class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv_2_and_3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the second and third dimensions of interest.
 
template<class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv_1_and_3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the first and third dimensions of interest.
 
template<class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv_1_and_3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the first and third dimensions of interest.
 
template<class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv_1_2_3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the dimensions of interest.
 
template<class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv_1_2_3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the dimensions of interest.
 
template<class InterestDim , class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Differentiate spline function (described by its spline coefficients) on a mesh along a specified dimension of interest.
 
template<class InterestDim , class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Differentiate spline function (described by its spline coefficients) on a mesh along a specified dimension of interest.
 
template<class InterestDim1 , class InterestDim2 , class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv2 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Double-differentiate 3D spline function (described by its spline coefficients) on a mesh along specified dimensions of interest.
 
template<class InterestDim1 , class InterestDim2 , class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv2 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Double-differentiate 3D spline function (described by its spline coefficients) on a mesh along specified dimensions of interest.
 
template<class InterestDim1 , class InterestDim2 , class InterestDim3 , class Layout1 , class Layout2 , class Layout3 , class BatchedInterpolationDDom , class... CoordsDims>
void deriv3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, BatchedInterpolationDDom, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout3, memory_space > const spline_coef) const
 Differentiate spline function (described by its spline coefficients) on a mesh along a specified dimensions of interest.
 
template<class InterestDim1 , class InterestDim2 , class InterestDim3 , class Layout1 , class Layout2 , class BatchedInterpolationDDom >
void deriv3 (ddc::ChunkSpan< double, BatchedInterpolationDDom, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< double const, batched_spline_domain_type< BatchedInterpolationDDom >, Layout2, memory_space > const spline_coef) const
 Differentiate spline function (described by its spline coefficients) on a mesh along specified dimensions of interest.
 
template<class Layout1 , class Layout2 , class BatchedDDom , class BatchedSplineDDom >
void integrate (ddc::ChunkSpan< double, BatchedDDom, Layout1, memory_space > const integrals, ddc::ChunkSpan< double const, BatchedSplineDDom, Layout2, memory_space > const spline_coef) const
 Perform batched 3D integrations of a spline function (described by its spline coefficients) along the dimensions of interest and store results on a subdomain of batch_domain.
 

Detailed Description

template<class ExecSpace, class MemorySpace, class BSplines1, class BSplines2, class BSplines3, class EvaluationDDim1, class EvaluationDDim2, class EvaluationDDim3, class LowerExtrapolationRule1, class UpperExtrapolationRule1, class LowerExtrapolationRule2, class UpperExtrapolationRule2, class LowerExtrapolationRule3, class UpperExtrapolationRule3>
class ddc::SplineEvaluator3D< ExecSpace, MemorySpace, BSplines1, BSplines2, BSplines3, EvaluationDDim1, EvaluationDDim2, EvaluationDDim3, LowerExtrapolationRule1, UpperExtrapolationRule1, LowerExtrapolationRule2, UpperExtrapolationRule2, LowerExtrapolationRule3, UpperExtrapolationRule3 >

A class to evaluate, differentiate or integrate a 3D spline function.

A class which contains an operator () which can be used to evaluate, differentiate or integrate a 3D spline function.

Template Parameters
ExecSpaceThe Kokkos execution space on which the spline evaluation is performed.
MemorySpaceThe Kokkos memory space on which the data (spline coefficients and evaluation) is stored.
BSplines1The discrete dimension representing the B-splines along the first dimension of interest.
BSplines2The discrete dimension representing the B-splines along the second dimension of interest.
BSplines3The discrete dimension representing the B-splines along the third dimension of interest.
EvaluationDDim1The first discrete dimension on which evaluation points are defined.
EvaluationDDim2The second discrete dimension on which evaluation points are defined.
EvaluationDDim3The third discrete dimension on which evaluation points are defined.
LowerExtrapolationRule1The lower extrapolation rule type along first dimension of interest.
UpperExtrapolationRule1The upper extrapolation rule type along first dimension of interest.
LowerExtrapolationRule2The lower extrapolation rule type along second dimension of interest.
UpperExtrapolationRule2The upper extrapolation rule type along second dimension of interest.
LowerExtrapolationRule3The lower extrapolation rule type along third dimension of interest.
UpperExtrapolationRule3The upper extrapolation rule type along third dimension of interest.

Definition at line 55 of file spline_evaluator_3d.hpp.

Member Typedef Documentation

◆ continuous_dimension_type1

◆ continuous_dimension_type2

◆ continuous_dimension_type3

◆ exec_space

◆ memory_space

◆ evaluation_discrete_dimension_type1

◆ evaluation_discrete_dimension_type2

◆ evaluation_discrete_dimension_type3

◆ bsplines_type1

◆ bsplines_type2

◆ bsplines_type3

◆ evaluation_domain_type1

◆ evaluation_domain_type2

◆ evaluation_domain_type3

◆ evaluation_domain_type

◆ batched_evaluation_domain_type

◆ spline_domain_type1

◆ spline_domain_type2

◆ spline_domain_type3

◆ spline_domain_type

◆ batch_domain_type

◆ batched_spline_domain_type

The type of the whole spline domain (cartesian product of 3D spline domain and batch domain) preserving the underlying memory layout (order of dimensions).

Template Parameters
Thebatched discrete domain on which the interpolation points are defined.

Definition at line 167 of file spline_evaluator_3d.hpp.

◆ lower_extrapolation_rule_1_type

◆ upper_extrapolation_rule_1_type

◆ lower_extrapolation_rule_2_type

◆ upper_extrapolation_rule_2_type

◆ lower_extrapolation_rule_3_type

◆ upper_extrapolation_rule_3_type

Constructor & Destructor Documentation

◆ SplineEvaluator3D() [1/3]

Build a SplineEvaluator3D acting on batched_spline_domain.

Parameters
lower_extrap_rule1The extrapolation rule at the lower boundary along the first dimension.
upper_extrap_rule1The extrapolation rule at the upper boundary along the first dimension.
lower_extrap_rule2The extrapolation rule at the lower boundary along the second dimension.
upper_extrap_rule2The extrapolation rule at the upper boundary along the second dimension.
lower_extrap_rule3The extrapolation rule at the lower boundary along the third dimension.
upper_extrap_rule3The extrapolation rule at the upper boundary along the third dimension.
See also
NullExtrapolationRule ConstantExtrapolationRule PeriodicExtrapolationRule

Definition at line 318 of file spline_evaluator_3d.hpp.

◆ SplineEvaluator3D() [2/3]

◆ SplineEvaluator3D() [3/3]

◆ ~SplineEvaluator3D()

Member Function Documentation

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ lower_extrapolation_rule_dim_1()

◆ upper_extrapolation_rule_dim_1()

◆ lower_extrapolation_rule_dim_2()

◆ upper_extrapolation_rule_dim_2()

◆ lower_extrapolation_rule_dim_3()

◆ upper_extrapolation_rule_dim_3()

◆ operator()() [1/3]

Evaluate 3D spline function (described by its spline coefficients) at a given coordinate.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Remark: calling SplineBuilder3D then SplineEvaluator3D corresponds to a 3D spline interpolation.

Parameters
coord_evalThe coordinate where the spline is evaluated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The value of the spline function at the desired coordinate.

Definition at line 464 of file spline_evaluator_3d.hpp.

◆ operator()() [2/3]

Evaluate 3D spline function (described by its spline coefficients) on a mesh.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD evaluation. This is a batched 3D evaluation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Remark: calling SplineBuilder3D then SplineEvaluator3D corresponds to a 3D spline interpolation.

Parameters
[out]spline_evalThe values of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is evaluated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 498 of file spline_evaluator_3d.hpp.

◆ operator()() [3/3]

Evaluate 3D spline function (described by its spline coefficients) on a mesh.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Remark: calling SplineBuilder3D then SplineEvaluator3D corresponds to a 3D spline interpolation.

Parameters
[out]spline_evalThe values of the 3D spline function at their coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 553 of file spline_evaluator_3d.hpp.

◆ deriv_dim_1() [1/3]

Differentiate 3D spline function (described by its spline coefficients) at a given coordinate along first dimension of interest.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Parameters
coord_evalThe coordinate where the spline is differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 606 of file spline_evaluator_3d.hpp.

◆ deriv_dim_2() [1/3]

Differentiate 3D spline function (described by its spline coefficients) at a given coordinate along second dimension of interest.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Parameters
coord_evalThe coordinate where the spline is differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 626 of file spline_evaluator_3d.hpp.

◆ deriv_dim_3() [1/3]

Differentiate 3D spline function (described by its spline coefficients) at a given coordinate along third dimension of interest.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Parameters
coord_evalThe coordinate where the spline is differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 646 of file spline_evaluator_3d.hpp.

◆ deriv_1_and_2() [1/3]

Cross-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along the first and second dimensions.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Parameters
coord_evalThe coordinate where the spline is differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 666 of file spline_evaluator_3d.hpp.

◆ deriv_2_and_3() [1/3]

Cross-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along the second and third dimensions.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Parameters
coord_evalThe coordinate where the spline is differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 686 of file spline_evaluator_3d.hpp.

◆ deriv_1_and_3() [1/3]

Cross-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along the first and third dimensions.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Parameters
coord_evalThe coordinate where the spline is differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 706 of file spline_evaluator_3d.hpp.

◆ deriv_1_2_3() [1/3]

Cross-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along the dimensions of interest.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Parameters
coord_evalThe coordinate where the spline is differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 726 of file spline_evaluator_3d.hpp.

◆ deriv() [1/3]

Differentiate 3D spline function (described by its spline coefficients) at a given coordinate along a specified dimension of interest.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Template Parameters
InterestDimDimension along which differentiation is performed.
Parameters
coord_evalThe coordinate where the spline is differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 751 of file spline_evaluator_3d.hpp.

◆ deriv2() [1/3]

Double-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along specified dimensions of interest.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Note: double-differentiation other than cross-differentiation is not supported atm. See #440

Template Parameters
InterestDim1First dimension along which differentiation is performed.
InterestDim2Second dimension along which differentiation is performed.
Parameters
coord_evalThe coordinate where the spline is double-differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 795 of file spline_evaluator_3d.hpp.

◆ deriv3() [1/3]

Triple-differentiate 3D spline function (described by its spline coefficients) at a given coordinate along specified dimensions of interest.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

Note: triple-differentiation other than cross-differentiation is not supported atm. See #440

Template Parameters
InterestDim1First dimension along which differentiation is performed.
InterestDim2Second dimension along which differentiation is performed.
InterestDim3Third dimension along which differentiation is performed.
Parameters
coord_evalThe coordinate where the spline is triple-differentiated. Note that only the components along the dimensions of interest are used.
spline_coefA ChunkSpan storing the 3D spline coefficients.
Returns
The derivative of the spline function at the desired coordinate.

Definition at line 882 of file spline_evaluator_3d.hpp.

◆ deriv_dim_1() [2/3]

Differentiate 3D spline function (described by its spline coefficients) on a mesh along first dimension of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD evaluation. This is a batched 3D differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 933 of file spline_evaluator_3d.hpp.

◆ deriv_dim_1() [3/3]

Differentiate 3D spline function (described by its spline coefficients) on a mesh along first dimension of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 988 of file spline_evaluator_3d.hpp.

◆ deriv_dim_2() [2/3]

Differentiate 3D spline function (described by its spline coefficients) on a mesh along second dimension of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD differentiation. This is a batched 3D differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1055 of file spline_evaluator_3d.hpp.

◆ deriv_dim_2() [3/3]

Differentiate 3D spline function (described by its spline coefficients) on a mesh along second dimension of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1110 of file spline_evaluator_3d.hpp.

◆ deriv_dim_3() [2/3]

Differentiate 3D spline function (described by its spline coefficients) on a mesh along third dimension of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD differentiation. This is a batched 3D differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1177 of file spline_evaluator_3d.hpp.

◆ deriv_dim_3() [3/3]

Differentiate 3D spline function (described by its spline coefficients) on a mesh along third dimension of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1232 of file spline_evaluator_3d.hpp.

◆ deriv_1_and_2() [2/3]

Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the first and second dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD cross-differentiation. This is a batched 3D cross-differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the cross-differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe cross-derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1299 of file spline_evaluator_3d.hpp.

◆ deriv_1_and_2() [3/3]

Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the first and second dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe cross-derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1354 of file spline_evaluator_3d.hpp.

◆ deriv_2_and_3() [2/3]

Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the second and third dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD cross-differentiation. This is a batched 3D cross-differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the cross-differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe cross-derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1421 of file spline_evaluator_3d.hpp.

◆ deriv_2_and_3() [3/3]

Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the second and third dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe cross-derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1476 of file spline_evaluator_3d.hpp.

◆ deriv_1_and_3() [2/3]

Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the first and third dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD cross-differentiation. This is a batched 3D cross-differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the cross-differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe cross-derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1543 of file spline_evaluator_3d.hpp.

◆ deriv_1_and_3() [3/3]

Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the first and third dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe cross-derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1598 of file spline_evaluator_3d.hpp.

◆ deriv_1_2_3() [2/3]

Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD cross-differentiation. This is a batched 3D cross-differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the cross-differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe cross-derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1665 of file spline_evaluator_3d.hpp.

◆ deriv_1_2_3() [3/3]

Cross-differentiate 3D spline function (described by its spline coefficients) on a mesh along the dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Parameters
[out]spline_evalThe cross-derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1722 of file spline_evaluator_3d.hpp.

◆ deriv() [2/3]

Differentiate spline function (described by its spline coefficients) on a mesh along a specified dimension of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD evaluation. This is a batched 3D differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Template Parameters
InterestDimDimension along which differentiation is performed.
Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1791 of file spline_evaluator_3d.hpp.

◆ deriv() [3/3]

Differentiate spline function (described by its spline coefficients) on a mesh along a specified dimension of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Template Parameters
InterestDimDimension along which differentiation is performed.
Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1844 of file spline_evaluator_3d.hpp.

◆ deriv2() [2/3]

Double-differentiate 3D spline function (described by its spline coefficients) on a mesh along specified dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD evaluation. This is a batched 3D differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Note: double-differentiation other than cross-differentiation is not supported atm. See #440

Template Parameters
InterestDim1First dimension along which differentiation is performed.
InterestDim2Second dimension along which differentiation is performed.
Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 1908 of file spline_evaluator_3d.hpp.

◆ deriv2() [3/3]

Double-differentiate 3D spline function (described by its spline coefficients) on a mesh along specified dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Note: double-differentiation other than cross-differentiation is not supported atm. See #440

Template Parameters
InterestDim1First dimension along which differentiation is performed.
InterestDim2Second dimension along which differentiation is performed.
Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 2005 of file spline_evaluator_3d.hpp.

◆ deriv3() [2/3]

Differentiate spline function (described by its spline coefficients) on a mesh along a specified dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD evaluation. This is a batched 3D differentiation. This means that for each slice of coordinates identified by a batch_domain_type::discrete_element_type, the differentiation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Note: triple-differentiation other than cross-differentiation is not supported atm. See #440

Template Parameters
InterestDim1First dimension along which differentiation is performed.
InterestDim2Second dimension along which differentiation is performed.
InterestDim3Third dimension along which differentiation is performed.
Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates. For practical reasons those are stored in a ChunkSpan defined on a batched_evaluation_domain_type.
[in]coords_evalThe coordinates where the spline is differentiated. Those are stored in a ChunkSpan defined on a batched_evaluation_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant (but the points themselves (DiscreteElement) are used to select the set of 3D spline coefficients retained to perform the evaluation).
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 2106 of file spline_evaluator_3d.hpp.

◆ deriv3() [3/3]

Differentiate spline function (described by its spline coefficients) on a mesh along specified dimensions of interest.

The spline coefficients represent a 3D spline function defined on a cartesian product of batch_domain and B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a multidimensional evaluation. This is a batched 3D evaluation. This means that for each slice of spline_eval the evaluation is performed with the 3D set of spline coefficients identified by the same batch_domain_type::discrete_element_type.

Note: triple-differentiation other than cross-differentiation is not supported atm. See #440

Template Parameters
InterestDim1First dimension along which differentiation is performed.
InterestDim2Second dimension along which differentiation is performed.
InterestDim3Third dimension along which differentiation is performed.
Parameters
[out]spline_evalThe derivatives of the 3D spline function at the desired coordinates.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 2166 of file spline_evaluator_3d.hpp.

◆ integrate()

Perform batched 3D integrations of a spline function (described by its spline coefficients) along the dimensions of interest and store results on a subdomain of batch_domain.

The spline coefficients represent a 3D spline function defined on a B-splines (basis splines). They can be obtained via various methods, such as using a SplineBuilder3D.

This is not a nD integration. This is a batched 3D integration. This means that for each element of integrals, the integration is performed with the 3D set of spline coefficients identified by the same DiscreteElement.

Parameters
[out]integralsThe integrals of the 3D spline function on the subdomain of batch_domain. For practical reasons those are stored in a ChunkSpan defined on a batch_domain_type. Note that the coordinates of the points represented by this domain are unused and irrelevant.
[in]spline_coefA ChunkSpan storing the 3D spline coefficients.

Definition at line 2209 of file spline_evaluator_3d.hpp.


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