13#include <Kokkos_Core.hpp>
15#include "bsplines_uniform.hpp"
16#include "knot_discrete_dimension_type.hpp"
17#include "spline_boundary_conditions.hpp"
36template <
class BSplines, ddc::BoundCond BcLower, ddc::BoundCond BcUpper>
42 using continuous_dimension_type =
typename BSplines::continuous_dimension_type;
50 template <
typename Sampling,
typename U = BSplines>
53 if constexpr (U::is_uniform()) {
84 template <
typename Sampling>
KOKKOS_FUNCTION constexpr discrete_element_type front() const noexcept
A DiscreteElement identifies an element of the discrete dimension.
A DiscreteVector is a vector in the discrete dimension.
Helper class for the initialisation of the mesh of interpolation points.
std::conditional_t< is_uniform_bsplines_v< BSplines >, ddc::UniformPointSampling< continuous_dimension_type >, ddc::NonUniformPointSampling< continuous_dimension_type > > interpolation_discrete_dimension_type
The DDC type of the sampling for the interpolation points.
static auto get_sampling()
Get the sampling of interpolation points.
static ddc::DiscreteDomain< Sampling > get_domain()
Get the domain which can be used to access the interpolation points in the sampling.
The top-level namespace of DDC.
constexpr bool enable_chunk
KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > rmax(DiscreteDomain< DDim > const &d)
@ GREVILLE
Use Greville points instead of conditions on derivative for B-Spline interpolation.
KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type... > coordinate(DiscreteElement< DDim... > const &c)
void host_for_each(Support const &domain, Functor &&f) noexcept
iterates over a nD domain in serial
typename KnotDiscreteDimension< DDim >::type knot_discrete_dimension_t
Helper type to easily access KnotDiscreteDimension<DDim>::type
KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > rmin(DiscreteDomain< DDim > const &d)