A class for creating a 3D spline approximation of a function. More...
#include <spline_builder_3d.hpp>

Public Types | |
| 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 | builder_type1 = ddc::SplineBuilder< ExecSpace, MemorySpace, BSpline1, DDimI1, BcLower1, BcUpper1, Solver > |
| The type of the SplineBuilder used by this class to spline-approximate along first dimension. | |
| using | builder_type_2_3 = ddc::SplineBuilder2D< ExecSpace, MemorySpace, BSpline2, BSpline3, DDimI2, DDimI3, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver > |
| The type of SplineBuilder used by this class to spline-approximate along the second and third dimensions. | |
| using | continuous_dimension_type1 = builder_type1::continuous_dimension_type |
| The type of the first interpolation continuous dimension. | |
| using | continuous_dimension_type2 = builder_type_2_3::continuous_dimension_type1 |
| The type of the second interpolation continuous dimension. | |
| using | continuous_dimension_type3 = builder_type_2_3::continuous_dimension_type2 |
| The type of the third interpolation continuous dimension. | |
| using | interpolation_discrete_dimension_type1 = builder_type1::interpolation_discrete_dimension_type |
| The type of the first interpolation discrete dimension. | |
| using | interpolation_discrete_dimension_type2 = builder_type_2_3::interpolation_discrete_dimension_type1 |
| The type of the second interpolation discrete dimension. | |
| using | interpolation_discrete_dimension_type3 = builder_type_2_3::interpolation_discrete_dimension_type2 |
| The type of the third interpolation discrete dimension. | |
| using | bsplines_type1 = builder_type1::bsplines_type |
| The type of the B-splines in the first dimension. | |
| using | bsplines_type2 = builder_type_2_3::bsplines_type1 |
| The type of the B-splines in the second dimension. | |
| using | bsplines_type3 = builder_type_2_3::bsplines_type2 |
| The type of the B-splines in the third dimension. | |
| using | deriv_type1 = builder_type1::deriv_type |
| The type of the Deriv domain on boundaries in the first dimension. | |
| using | deriv_type2 = builder_type_2_3::deriv_type1 |
| The type of the Deriv domain on boundaries in the second dimension. | |
| using | deriv_type3 = builder_type_2_3::deriv_type2 |
| The type of the Deriv domain on boundaries in the third dimension. | |
| using | interpolation_domain_type1 = builder_type1::interpolation_discrete_dimension_type |
| The type of the domain for the interpolation mesh in the first dimension. | |
| using | interpolation_domain_type2 = builder_type_2_3::interpolation_discrete_dimension_type1 |
| The type of the domain for the interpolation mesh in the second dimension. | |
| using | interpolation_domain_type3 = builder_type_2_3::interpolation_discrete_dimension_type2 |
| The type of the domain for the interpolation mesh in the third dimension. | |
| using | interpolation_domain_type = ddc::DiscreteDomain< interpolation_discrete_dimension_type1, interpolation_discrete_dimension_type2, interpolation_discrete_dimension_type3 > |
| The type of the domain for the interpolation mesh in the 3D dimension. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_interpolation_domain_type = BatchedInterpolationDDom |
| The type of the whole domain representing interpolation points. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batch_domain_type = ddc::remove_dims_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type1, interpolation_discrete_dimension_type2, interpolation_discrete_dimension_type3 > |
| The type of the batch domain (obtained by removing the dimensions of interest from the whole domain). | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_spline_domain_type = ddc::detail::convert_type_seq_to_discrete_domain_t< ddc::type_seq_replace_t< ddc::to_type_seq_t< BatchedInterpolationDDom >, ddc::detail::TypeSeq< interpolation_discrete_dimension_type1, interpolation_discrete_dimension_type2, interpolation_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 order of dimensions. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_derivs_domain_type1 = ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type1, deriv_type1 > |
| The type of the whole Derivs domain (cartesian product of the 1D Deriv domain and the associated batch domain) in the first dimension, preserving the order of dimensions. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_derivs_domain_type2 = ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type2, deriv_type2 > |
| The type of the whole Derivs domain (cartesian product of the 1D Deriv domain and the associated batch domain) in the second dimension, preserving the order of dimensions. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_derivs_domain_type3 = ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type3, deriv_type3 > |
| The type of the whole Derivs domain (cartesian product of the 1D Deriv domain and the associated batch domain) in the third dimension, preserving the order of dimensions. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_derivs_domain_type1_2 = ddc::replace_dim_of_t< ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type1, deriv_type1 >, interpolation_domain_type2, deriv_type2 > |
| The type of the whole Derivs domain (cartesian product of the 2D Deriv domain and the associated batch domain) in the first and second dimensions, preserving the order of dimensions. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_derivs_domain_type2_3 = ddc::replace_dim_of_t< ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type2, deriv_type2 >, interpolation_domain_type3, deriv_type3 > |
| The type of the whole Derivs domain (cartesian product of the 2D Deriv domain and the associated batch domain) in the second and third dimensions, preserving the order of dimensions. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_derivs_domain_type1_3 = ddc::replace_dim_of_t< ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type1, deriv_type1 >, interpolation_domain_type3, deriv_type3 > |
| The type of the whole Derivs domain (cartesian product of the 2D Deriv domain and the associated batch domain) in the first and third dimensions, preserving the order of dimensions. | |
| template<concepts::discrete_domain BatchedInterpolationDDom> | |
| using | batched_derivs_domain_type = ddc::detail::convert_type_seq_to_discrete_domain_t< ddc::type_seq_replace_t< ddc::to_type_seq_t< BatchedInterpolationDDom >, ddc::detail::TypeSeq< interpolation_discrete_dimension_type1, interpolation_discrete_dimension_type2, interpolation_discrete_dimension_type3 >, ddc::detail::TypeSeq< deriv_type1, deriv_type2, deriv_type3 > > > |
| The type of the whole Derivs domain (cartesian product of the 3D Deriv domain and the batch domain), preserving the order of dimensions. | |
A class for creating a 3D spline approximation of a function.
A class which contains an operator () which can be used to build a 3D spline approximation of a function. A 3D spline approximation uses a cross-product between three 1D SplineBuilder.
Definition at line 45 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::exec_space = ExecSpace |
The type of the Kokkos execution space used by this class.
Definition at line 49 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::memory_space = MemorySpace |
The type of the Kokkos memory space used by this class.
Definition at line 52 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::builder_type1 = ddc:: SplineBuilder<ExecSpace, MemorySpace, BSpline1, DDimI1, BcLower1, BcUpper1, Solver> |
The type of the SplineBuilder used by this class to spline-approximate along first dimension.
Definition at line 55 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::builder_type_2_3 = ddc::SplineBuilder2D< ExecSpace, MemorySpace, BSpline2, BSpline3, DDimI2, DDimI3, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver> |
The type of SplineBuilder used by this class to spline-approximate along the second and third dimensions.
Definition at line 59 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::continuous_dimension_type1 = builder_type1::continuous_dimension_type |
The type of the first interpolation continuous dimension.
Definition at line 73 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::continuous_dimension_type2 = builder_type_2_3::continuous_dimension_type1 |
The type of the second interpolation continuous dimension.
Definition at line 76 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::continuous_dimension_type3 = builder_type_2_3::continuous_dimension_type2 |
The type of the third interpolation continuous dimension.
Definition at line 79 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::interpolation_discrete_dimension_type1 = builder_type1::interpolation_discrete_dimension_type |
The type of the first interpolation discrete dimension.
Definition at line 82 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::interpolation_discrete_dimension_type2 = builder_type_2_3::interpolation_discrete_dimension_type1 |
The type of the second interpolation discrete dimension.
Definition at line 86 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::interpolation_discrete_dimension_type3 = builder_type_2_3::interpolation_discrete_dimension_type2 |
The type of the third interpolation discrete dimension.
Definition at line 90 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::bsplines_type1 = builder_type1::bsplines_type |
The type of the B-splines in the first dimension.
Definition at line 94 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::bsplines_type2 = builder_type_2_3::bsplines_type1 |
The type of the B-splines in the second dimension.
Definition at line 97 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::bsplines_type3 = builder_type_2_3::bsplines_type2 |
The type of the B-splines in the third dimension.
Definition at line 100 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::deriv_type1 = builder_type1::deriv_type |
The type of the Deriv domain on boundaries in the first dimension.
Definition at line 103 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::deriv_type2 = builder_type_2_3::deriv_type1 |
The type of the Deriv domain on boundaries in the second dimension.
Definition at line 106 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::deriv_type3 = builder_type_2_3::deriv_type2 |
The type of the Deriv domain on boundaries in the third dimension.
Definition at line 109 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::interpolation_domain_type1 = builder_type1::interpolation_discrete_dimension_type |
The type of the domain for the interpolation mesh in the first dimension.
Definition at line 112 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::interpolation_domain_type2 = builder_type_2_3::interpolation_discrete_dimension_type1 |
The type of the domain for the interpolation mesh in the second dimension.
Definition at line 115 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::interpolation_domain_type3 = builder_type_2_3::interpolation_discrete_dimension_type2 |
The type of the domain for the interpolation mesh in the third dimension.
Definition at line 118 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::interpolation_domain_type = ddc::DiscreteDomain< interpolation_discrete_dimension_type1, interpolation_discrete_dimension_type2, interpolation_discrete_dimension_type3> |
The type of the domain for the interpolation mesh in the 3D dimension.
Definition at line 121 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_interpolation_domain_type = BatchedInterpolationDDom |
The type of the whole domain representing interpolation points.
| The | batched discrete domain on which the interpolation points are defined. |
Definition at line 132 of file spline_builder_3d.hpp.
The type of the batch domain (obtained by removing the dimensions of interest from the whole domain).
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y and Z, this is DiscreteDomain<T>.
Definition at line 144 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_spline_domain_type = ddc::detail::convert_type_seq_to_discrete_domain_t<ddc::type_seq_replace_t< ddc::to_type_seq_t<BatchedInterpolationDDom>, ddc::detail::TypeSeq< interpolation_discrete_dimension_type1, interpolation_discrete_dimension_type2, interpolation_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 order of dimensions.
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y and Z (associated to B-splines tags BSplinesX, BSplinesY and BSplinesZ), this is DiscreteDomain<BSplinesX, BSplinesY, BSplinesZ, T>
Definition at line 160 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_derivs_domain_type1 = ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type1, deriv_type1> |
The type of the whole Derivs domain (cartesian product of the 1D Deriv domain and the associated batch domain) in the first dimension, preserving the order of dimensions.
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y and Z, this is DiscreteDomain<Deriv<X>, Y, Z, T>.
Definition at line 179 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_derivs_domain_type2 = ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type2, deriv_type2> |
The type of the whole Derivs domain (cartesian product of the 1D Deriv domain and the associated batch domain) in the second dimension, preserving the order of dimensions.
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y, and Z this is DiscreteDomain<X, Deriv<Y>, Z, T>.
Definition at line 194 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_derivs_domain_type3 = ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type3, deriv_type3> |
The type of the whole Derivs domain (cartesian product of the 1D Deriv domain and the associated batch domain) in the third dimension, preserving the order of dimensions.
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y, and Z this is DiscreteDomain<X, Y, Deriv<Z>, T>.
Definition at line 209 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_derivs_domain_type1_2 = ddc::replace_dim_of_t< ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type1, deriv_type1>, interpolation_domain_type2, deriv_type2> |
The type of the whole Derivs domain (cartesian product of the 2D Deriv domain and the associated batch domain) in the first and second dimensions, preserving the order of dimensions.
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y and Z, this is DiscreteDomain<Deriv<X>, Deriv<Y>, Z, T>.
Definition at line 225 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_derivs_domain_type2_3 = ddc::replace_dim_of_t< ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type2, deriv_type2>, interpolation_domain_type3, deriv_type3> |
The type of the whole Derivs domain (cartesian product of the 2D Deriv domain and the associated batch domain) in the second and third dimensions, preserving the order of dimensions.
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y, and Z this is DiscreteDomain<X, Deriv<Y>, Deriv<Z>, T>.
Definition at line 244 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_derivs_domain_type1_3 = ddc::replace_dim_of_t< ddc::replace_dim_of_t< BatchedInterpolationDDom, interpolation_discrete_dimension_type1, deriv_type1>, interpolation_domain_type3, deriv_type3> |
The type of the whole Derivs domain (cartesian product of the 2D Deriv domain and the associated batch domain) in the first and third dimensions, preserving the order of dimensions.
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y, and Z this is DiscreteDomain<Deriv<X>, Y, Deriv<Z>, T>.
Definition at line 263 of file spline_builder_3d.hpp.
| using ddc::SplineBuilder3D< ExecSpace, MemorySpace, BSpline1, BSpline2, BSpline3, DDimI1, DDimI2, DDimI3, BcLower1, BcUpper1, BcLower2, BcUpper2, BcLower3, BcUpper3, Solver >::batched_derivs_domain_type = ddc::detail::convert_type_seq_to_discrete_domain_t<ddc::type_seq_replace_t< ddc::to_type_seq_t<BatchedInterpolationDDom>, ddc::detail::TypeSeq< interpolation_discrete_dimension_type1, interpolation_discrete_dimension_type2, interpolation_discrete_dimension_type3>, ddc::detail::TypeSeq<deriv_type1, deriv_type2, deriv_type3> >> |
The type of the whole Derivs domain (cartesian product of the 3D Deriv domain and the batch domain), preserving the order of dimensions.
| The | batched discrete domain on which the interpolation points are defined. |
Example: For batched_interpolation_domain_type = DiscreteDomain<X,Y,Z,T> and dimensions of interest X, Y and Z, this is DiscreteDomain<Deriv<X>, Deriv<Y>, Deriv<Z>, T>.
Definition at line 281 of file spline_builder_3d.hpp.
|
inlineexplicit |
Build a SplineBuilder3D acting on interpolation_domain.
| label | A label used to tag parallel regions and memory allocations for profiling. |
| interpolation_domain | The domain on which the interpolation points are defined, without the batch dimensions. |
| cols_per_chunk | A parameter used by the slicer (internal to the solver) to define the size of a chunk of right-hand-sides of the linear problem to be computed in parallel (chunks are treated by the linear solver one-after-the-other). This value is optional. If no value is provided then the default value is chosen by the requested solver. |
| preconditioner_max_block_size | A parameter used by the slicer (internal to the solver) to define the size of a block used by the Block-Jacobi preconditioner. This value is optional. If no value is provided then the default value is chosen by the requested solver. |
Definition at line 314 of file spline_builder_3d.hpp.
|
inlineexplicit |
Build a SplineBuilder3D acting on interpolation_domain.
| interpolation_domain | The domain on which the interpolation points are defined, without the batch dimensions. |
| cols_per_chunk | A parameter used by the slicer (internal to the solver) to define the size of a chunk of right-hand-sides of the linear problem to be computed in parallel (chunks are treated by the linear solver one-after-the-other). This value is optional. If no value is provided then the default value is chosen by the requested solver. |
| preconditioner_max_block_size | A parameter used by the slicer (internal to the solver) to define the size of a block used by the Block-Jacobi preconditioner. This value is optional. If no value is provided then the default value is chosen by the requested solver. |
Definition at line 341 of file spline_builder_3d.hpp.
|
inlineexplicit |
Build a SplineBuilder3D acting on the interpolation domain contained in batched_interpolation_domain.
| label | A label used to tag parallel regions and memory allocations for profiling. |
| batched_interpolation_domain | The domain on which the interpolation points are defined. |
| cols_per_chunk | A parameter used by the slicer (internal to the solver) to define the size of a chunk of right-hand-sides of the linear problem to be computed in parallel (chunks are treated by the linear solver one-after-the-other). This value is optional. If no value is provided then the default value is chosen by the requested solver. |
| preconditioner_max_block_size | A parameter used by the slicer (internal to the solver) to define the size of a block used by the Block-Jacobi preconditioner. This value is optional. If no value is provided then the default value is chosen by the requested solver. |
Definition at line 372 of file spline_builder_3d.hpp.
|
inlineexplicit |
Build a SplineBuilder3D acting on the interpolation domain contained in batched_interpolation_domain.
| batched_interpolation_domain | The domain on which the interpolation points are defined. |
| cols_per_chunk | A parameter used by the slicer (internal to the solver) to define the size of a chunk of right-hand-sides of the linear problem to be computed in parallel (chunks are treated by the linear solver one-after-the-other). This value is optional. If no value is provided then the default value is chosen by the requested solver. |
| preconditioner_max_block_size | A parameter used by the slicer (internal to the solver) to define the size of a block used by the Block-Jacobi preconditioner. This value is optional. If no value is provided then the default value is chosen by the requested solver. |
Definition at line 402 of file spline_builder_3d.hpp.
|
delete |
Copy-constructor is deleted.
|
default |
Move-constructs.
| x | An rvalue to another SplineBuilder3D. |
|
default |
Destructs.
|
delete |
Copy-assignment is deleted.
|
default |
|
inlinenoexcept |
Get the domain for the 3D interpolation mesh used by this class.
This is 3D because it is defined along the dimensions of interest.
Definition at line 444 of file spline_builder_3d.hpp.
|
inlinenoexcept |
Get the whole domain representing interpolation points.
Values of the function must be provided on this domain in order to build a spline representation of the function (cartesian product of 3D interpolation_domain and batch_domain).
| batched_interpolation_domain | The whole domain on which the interpolation points are defined. |
Definition at line 465 of file spline_builder_3d.hpp.
|
inlinenoexcept |
Get the batch domain.
Obtained by removing the dimensions of interest from the whole interpolation domain.
| batched_interpolation_domain | The whole domain on which the interpolation points are defined. |
Definition at line 482 of file spline_builder_3d.hpp.
|
inlinenoexcept |
Get the 3D domain on which spline coefficients are defined.
The 3D spline domain corresponding to the dimensions of interest.
Definition at line 496 of file spline_builder_3d.hpp.
|
inlinenoexcept |
Get the whole domain on which spline coefficients are defined.
Spline approximations (spline-transformed functions) are computed on this domain.
| batched_interpolation_domain | The whole domain on which the interpolation points are defined. |
Definition at line 515 of file spline_builder_3d.hpp.
Compute a 3D spline approximation of a function.
Use the values of a function (defined on SplineBuilder3D::batched_interpolation_domain) and the derivatives of the function at the boundaries (in the case of BoundCond::HERMITE only) to calculate a 3D spline approximation of this function.
The spline approximation is stored as a ChunkSpan of coefficients associated with B-splines.
| [out] | spline | The coefficients of the spline computed by this SplineBuilder. |
| [in] | vals | The values of the function at the interpolation mesh. |
| [in] | derivs_min1 | The values of the derivatives at the lower boundary in the first dimension. |
| [in] | derivs_max1 | The values of the derivatives at the upper boundary in the first dimension. |
| [in] | derivs_min2 | The values of the derivatives at the lower boundary in the second dimension. |
| [in] | derivs_max2 | The values of the derivatives at the upper boundary in the second dimension. |
| [in] | derivs_min3 | The values of the derivatives at the lower boundary in the third dimension. |
| [in] | derivs_max3 | The values of the derivatives at the upper boundary in the third dimension. |
| [in] | mixed_derivs_min1_min2 | The values of the the cross-derivatives at the lower boundary in the first dimension and the lower boundary in the second dimension. |
| [in] | mixed_derivs_max1_min2 | The values of the the cross-derivatives at the upper boundary in the first dimension and the lower boundary in the second dimension. |
| [in] | mixed_derivs_min1_max2 | The values of the the cross-derivatives at the lower boundary in the first dimension and the upper boundary in the second dimension. |
| [in] | mixed_derivs_max1_max2 | The values of the the cross-derivatives at the upper boundary in the first dimension and the upper boundary in the second dimension. |
| [in] | mixed_derivs_min2_min3 | The values of the the cross-derivatives at the lower boundary in the second dimension and the lower boundary in the third dimension. |
| [in] | mixed_derivs_max2_min3 | The values of the the cross-derivatives at the upper boundary in the second dimension and the lower boundary in the third dimension. |
| [in] | mixed_derivs_min2_max3 | The values of the the cross-derivatives at the lower boundary in the second dimension and the upper boundary in the third dimension. |
| [in] | mixed_derivs_max2_max3 | The values of the the cross-derivatives at the upper boundary in the second dimension and the upper boundary in the third dimension. |
| [in] | mixed_derivs_min1_min3 | The values of the the cross-derivatives at the lower boundary in the first dimension and the lower boundary in the third dimension. |
| [in] | mixed_derivs_max1_min3 | The values of the the cross-derivatives at the upper boundary in the first dimension and the lower boundary in the third dimension. |
| [in] | mixed_derivs_min1_max3 | The values of the the cross-derivatives at the lower boundary in the first dimension and the upper boundary in the third dimension. |
| [in] | mixed_derivs_max1_max3 | The values of the the cross-derivatives at the upper boundary in the first dimension and the upper boundary in the third dimension. |
| [in] | mixed_derivs_min1_min2_min3 | The values of the the cross-derivatives at the lower boundary in the first dimension, the lower boundary in the second dimension and the lower boundary in the third dimension. |
| [in] | mixed_derivs_max1_min2_min3 | The values of the the cross-derivatives at the upper boundary in the first dimension, the lower boundary in the second dimension and the lower boundary in the third dimension. |
| [in] | mixed_derivs_min1_max2_min3 | The values of the the cross-derivatives at the lower boundary in the first dimension, the upper boundary in the second dimension and the lower boundary in the third dimension. |
| [in] | mixed_derivs_max1_max2_min3 | The values of the the cross-derivatives at the upper boundary in the first dimension, the upper boundary in the second dimension and the lower boundary in the third dimension. |
| [in] | mixed_derivs_min1_min2_max3 | The values of the the cross-derivatives at the lower boundary in the first dimension, the lower boundary in the second dimension and the upper boundary in the third dimension. |
| [in] | mixed_derivs_max1_min2_max3 | The values of the the cross-derivatives at the upper boundary in the first dimension, the lower boundary in the second dimension and the upper boundary in the third dimension. |
| [in] | mixed_derivs_min1_max2_max3 | The values of the the cross-derivatives at the lower boundary in the first dimension, the upper boundary in the second dimension and the upper boundary in the third dimension. |
| [in] | mixed_derivs_max1_max2_max3 | The values of the the cross-derivatives at the upper boundary in the first dimension, the upper boundary in the second dimension and the upper boundary in the third dimension. |
Definition at line 795 of file spline_builder_3d.hpp.