5template <
class PolarBSplinesType,
class MemSpace = Kokkos::DefaultExecutionSpace::memory_space>
8template <
class PolarBSplinesType,
class MemSpace = Kokkos::DefaultExecutionSpace::memory_space>
18template <
class PolarBSplinesType,
class MemSpace = Kokkos::DefaultExecutionSpace::memory_space>
23 using BSplinesR =
typename PolarBSplinesType::BSplinesR_tag;
34 ddc::DiscreteDomain<BSplinesR, BSplinesTheta>,
35 ddc::KokkosAllocator<double, MemSpace>>
44 ddc::DiscreteDomain<PolarBSplinesType>,
45 ddc::KokkosAllocator<double, MemSpace>>
60 ddc::select<
BSplinesR>(domain).remove_first(
61 ddc::DiscreteVector<
BSplinesR>(PolarBSplinesType::continuity + 1)),
64 ddc::DiscreteElement<PolarBSplinesType>(0),
65 ddc::DiscreteVector<PolarBSplinesType>(PolarBSplinesType::n_singular_basis())))
79 ddc::DiscreteDomain<PolarBSplinesType> singular_domain,
80 ddc::DiscreteDomain<BSplinesR, BSplinesTheta> domain)
83 ddc::DiscreteVector<PolarBSplinesType>(PolarBSplinesType::n_singular_basis())))
114template <
class PolarBSplinesType,
class MemSpace>
119 using BSplinesR =
typename PolarBSplinesType::BSplinesR_tag;
130 ddc::DiscreteDomain<BSplinesR, BSplinesTheta>,
131 Kokkos::layout_right,
139 ddc::ChunkSpan<double, ddc::DiscreteDomain<PolarBSplinesType>, Kokkos::layout_right, MemSpace>
181template <
class PolarBSplinesType,
class MemSpace>
186 using BSplinesR =
typename PolarBSplinesType::BSplinesR_tag;
197 ddc::DiscreteDomain<BSplinesR, BSplinesTheta>,
198 Kokkos::layout_right,
207 ddc::DiscreteDomain<PolarBSplinesType>,
208 Kokkos::layout_right,
258inline constexpr bool is_polar_spline_v =
false;
260template <
class PolarBSplinesType,
class MemSpace>
261inline constexpr bool is_polar_spline_v<PolarSpline<PolarBSplinesType, MemSpace>> =
true;
263template <
class PolarBSplinesType,
class MemSpace>
264inline constexpr bool is_polar_spline_v<PolarSplineSpan<PolarBSplinesType, MemSpace>> =
true;
266template <
class PolarBSplinesType,
class MemSpace>
267inline constexpr bool is_polar_spline_v<PolarSplineView<PolarBSplinesType, MemSpace>> =
true;
276template <
class ExecSpace,
class PolarBSplinesType,
class MemSpace>
278 ExecSpace
const& exec_space,
291template <
class PolarBSplinesType,
class MemSpace>
295 return create_mirror(Kokkos::DefaultHostExecutionSpace(), src);
305template <
class ExecSpace,
class PolarBSplinesType,
class MemSpace>
307 ExecSpace
const& exec_space,
311 = create_mirror(exec_space, src);
323template <
class PolarBSplinesType,
class MemSpace>
327 return create_mirror_and_copy(Kokkos::DefaultHostExecutionSpace(), src);
336template <
class ExecSpace,
class PolarBSplinesType,
class MemSpace>
337auto create_mirror_view(
338 ExecSpace
const& exec_space,
341 if constexpr (std::is_same_v<MemSpace, typename ExecSpace::memory_space>) {
355template <
class PolarBSplinesType,
class MemSpace>
358 return create_mirror_view(Kokkos::DefaultHostExecutionSpace(), src);
369template <
class ExecSpace,
class PolarBSplinesType,
class MemSpace>
370auto create_mirror_view_and_copy(
371 ExecSpace
const& exec_space,
374 auto dst = create_mirror_view(exec_space, src);
375 ddc::parallel_deepcopy(dst.spline_coef, src.
spline_coef);
386template <
class PolarBSplinesType,
class MemSpace>
389 return create_mirror_view_and_copy(Kokkos::DefaultHostExecutionSpace(), src);
Definition geometry.hpp:93
Definition geometry.hpp:100
A structure containing the two ChunkSpans necessary to define a reference to a spline on a set of pol...
Definition polar_spline.hpp:116
ddc::ChunkSpan< double, ddc::DiscreteDomain< BSplinesR, BSplinesTheta >, Kokkos::layout_right, MemSpace > spline_coef
A ChunkSpan containing the coefficients in front of the b-spline elements which can be expressed as a...
Definition polar_spline.hpp:133
PolarSplineSpan< PolarBSplinesType, MemSpace > span_view()
Get a modifiable reference to the polar spline referenced by this polar spline view.
Definition polar_spline.hpp:159
PolarSplineView< PolarBSplinesType, MemSpace > span_cview() const
Get a constant reference to the polar spline referenced by this polar spline view.
Definition polar_spline.hpp:169
ddc::ChunkSpan< double, ddc::DiscreteDomain< PolarBSplinesType >, Kokkos::layout_right, MemSpace > singular_spline_coef
A ChunkSpan containing the coefficients in front of the b-spline elements near the singular point whi...
Definition polar_spline.hpp:140
A structure containing the two ChunkViews necessary to define a constant reference to a spline on a s...
Definition polar_spline.hpp:183
PolarSplineView< PolarBSplinesType, MemSpace > span_cview() const
Get a constant reference to the polar spline referenced by this polar spline view.
Definition polar_spline.hpp:251
PolarSplineSpan< PolarBSplinesType, MemSpace > span_view() const
Get a reference to the polar spline referenced by this polar spline view.
Definition polar_spline.hpp:241
ddc::ChunkSpan< double const, ddc::DiscreteDomain< PolarBSplinesType >, Kokkos::layout_right, MemSpace > const singular_spline_coef
A ChunkView containing the coefficients in front of the b-spline elements near the singular point whi...
Definition polar_spline.hpp:209
ddc::ChunkSpan< double const, ddc::DiscreteDomain< BSplinesR, BSplinesTheta >, Kokkos::layout_right, MemSpace > const spline_coef
A ChunkView containing the coefficients in front of the b-spline elements which can be expressed as a...
Definition polar_spline.hpp:199
A structure containing the two Chunks necessary to define a spline on a set of polar basis splines.
Definition polar_spline.hpp:20
PolarSplineSpan< PolarBSplinesType, MemSpace > span_view()
Get a modifiable reference to this polar spline.
Definition polar_spline.hpp:92
PolarSplineView< PolarBSplinesType, MemSpace > span_cview() const
Get a constant reference to this polar spline view.
Definition polar_spline.hpp:102
ddc::Chunk< double, ddc::DiscreteDomain< PolarBSplinesType >, ddc::KokkosAllocator< double, MemSpace > > singular_spline_coef
A Chunk containing the coefficients in front of the b-spline elements near the singular point which c...
Definition polar_spline.hpp:46
ddc::Chunk< double, ddc::DiscreteDomain< BSplinesR, BSplinesTheta >, ddc::KokkosAllocator< double, MemSpace > > spline_coef
A Chunk containing the coefficients in front of the b-spline elements which can be expressed as a ten...
Definition polar_spline.hpp:36