DDC 0.0.0

a discrete domain computation library

ddc::SplineEvaluator< ExecSpace, MemorySpace, BSplinesType, InterpolationMesh, LeftExtrapolationRule, RightExtrapolationRule, IDimX > Class Template Reference

Public Types

using exec_space = ExecSpace
 
using memory_space = MemorySpace
 
using bsplines_type = BSplinesType
 
using left_extrapolation_rule_type = LeftExtrapolationRule
 
using right_extrapolation_rule_type = RightExtrapolationRule
 
using interpolation_mesh_type = InterpolationMesh
 
using interpolation_domain_type = ddc::DiscreteDomain<interpolation_mesh_type>
 
using batched_interpolation_domain_type = ddc::DiscreteDomain<IDimX...>
 
using spline_domain_type = ddc::DiscreteDomain<bsplines_type>
 
using batch_domain_type
 
using batched_spline_domain_type
 

Public Member Functions

 SplineEvaluator (LeftExtrapolationRule const &left_extrap_rule, RightExtrapolationRule const &right_extrap_rule)
 
 SplineEvaluator (SplineEvaluator const &x)=default
 
 SplineEvaluator (SplineEvaluator &&x)=default
 
 ~SplineEvaluator ()=default
 
SplineEvaluatoroperator= (SplineEvaluator const &x)=default
 
SplineEvaluatoroperator= (SplineEvaluator &&x)=default
 
left_extrapolation_rule_type left_extrapolation_rule () const
 
right_extrapolation_rule_type right_extrapolation_rule () const
 
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
 
template<class Layout1 , class Layout2 , class Layout3 , class... CoordsDims>
void operator() (ddc::ChunkSpan< double, batched_interpolation_domain_type, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, batched_interpolation_domain_type, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type, Layout3, memory_space > const spline_coef) const
 
template<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
 
template<class Layout1 , class Layout2 , class Layout3 , class... CoordsDims>
void deriv (ddc::ChunkSpan< double, batched_interpolation_domain_type, Layout1, memory_space > const spline_eval, ddc::ChunkSpan< ddc::Coordinate< CoordsDims... > const, batched_interpolation_domain_type, Layout2, memory_space > const coords_eval, ddc::ChunkSpan< double const, batched_spline_domain_type, Layout3, memory_space > const spline_coef) const
 
template<class Layout1 , class Layout2 >
void integrate (ddc::ChunkSpan< double, batch_domain_type, Layout1, memory_space > const integrals, ddc::ChunkSpan< double const, batched_spline_domain_type, Layout2, memory_space > const spline_coef) const
 

Member Typedef Documentation

◆ exec_space

◆ memory_space

◆ bsplines_type

◆ left_extrapolation_rule_type

◆ right_extrapolation_rule_type

◆ interpolation_mesh_type

◆ interpolation_domain_type

◆ batched_interpolation_domain_type

◆ spline_domain_type

◆ batch_domain_type

Initial value:
typename ddc::detail::convert_type_seq_to_discrete_domain<ddc::type_seq_remove_t<
ddc::detail::TypeSeq<IDimX...>,
ddc::detail::TypeSeq<interpolation_mesh_type>>>
constexpr bool enable_chunk
Definition chunk_traits.hpp:16

◆ batched_spline_domain_type

Initial value:
typename ddc::detail::convert_type_seq_to_discrete_domain<ddc::type_seq_replace_t<
ddc::detail::TypeSeq<IDimX...>,
ddc::detail::TypeSeq<interpolation_mesh_type>,
ddc::detail::TypeSeq<bsplines_type>>>

Constructor & Destructor Documentation

◆ SplineEvaluator() [1/3]

◆ SplineEvaluator() [2/3]

◆ SplineEvaluator() [3/3]

◆ ~SplineEvaluator()

Member Function Documentation

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ left_extrapolation_rule()

◆ right_extrapolation_rule()

◆ operator()() [1/2]

◆ operator()() [2/2]

◆ deriv() [1/2]

◆ deriv() [2/2]

◆ integrate()


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