5 template <
class PolarBSplinesType,
class MemSpace = Kokkos::DefaultExecutionSpace::memory_space>
8 template <
class PolarBSplinesType,
class MemSpace = Kokkos::DefaultExecutionSpace::memory_space>
18 template <
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())))
114 template <
class PolarBSplinesType,
class MemSpace>
119 using BSplinesR =
typename PolarBSplinesType::BSplinesR_tag;
130 ddc::DiscreteDomain<BSplinesR, BSplinesTheta>,
131 std::experimental::layout_right,
141 ddc::DiscreteDomain<PolarBSplinesType>,
142 std::experimental::layout_right,
185 template <
class PolarBSplinesType,
class MemSpace>
190 using BSplinesR =
typename PolarBSplinesType::BSplinesR_tag;
201 ddc::DiscreteDomain<BSplinesR, BSplinesTheta>,
202 std::experimental::layout_right,
211 ddc::DiscreteDomain<PolarBSplinesType>,
212 std::experimental::layout_right,
262 inline constexpr
bool is_polar_spline_v =
false;
264 template <
class PolarBSplinesType,
class MemSpace>
265 inline constexpr
bool is_polar_spline_v<PolarSpline<PolarBSplinesType, MemSpace>> =
true;
267 template <
class PolarBSplinesType,
class MemSpace>
268 inline constexpr
bool is_polar_spline_v<PolarSplineSpan<PolarBSplinesType, MemSpace>> =
true;
270 template <
class PolarBSplinesType,
class MemSpace>
271 inline constexpr
bool is_polar_spline_v<PolarSplineView<PolarBSplinesType, MemSpace>> =
true;
280 template <
class ExecSpace,
class PolarBSplinesType,
class MemSpace>
282 ExecSpace
const& exec_space,
295 template <
class PolarBSplinesType,
class MemSpace>
299 return create_mirror(Kokkos::DefaultHostExecutionSpace(), src);
309 template <
class ExecSpace,
class PolarBSplinesType,
class MemSpace>
311 ExecSpace
const& exec_space,
315 = create_mirror(exec_space, src);
327 template <
class PolarBSplinesType,
class MemSpace>
331 return create_mirror_and_copy(Kokkos::DefaultHostExecutionSpace(), src);
340 template <
class ExecSpace,
class PolarBSplinesType,
class MemSpace>
341 auto create_mirror_view(
342 ExecSpace
const& exec_space,
345 if constexpr (std::is_same_v<MemSpace, typename ExecSpace::memory_space>) {
359 template <
class PolarBSplinesType,
class MemSpace>
362 return create_mirror_view(Kokkos::DefaultHostExecutionSpace(), src);
373 template <
class ExecSpace,
class PolarBSplinesType,
class MemSpace>
374 auto create_mirror_view_and_copy(
375 ExecSpace
const& exec_space,
378 auto dst = create_mirror_view(exec_space, src);
379 ddc::parallel_deepcopy(dst.spline_coef, src.
spline_coef);
390 template <
class PolarBSplinesType,
class MemSpace>
393 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
PolarSplineView< PolarBSplinesType, MemSpace > span_cview() const
Get a constant reference to the polar spline referenced by this polar spline view.
Definition: polar_spline.hpp:173
PolarSplineSpan< PolarBSplinesType, MemSpace > span_view()
Get a modifiable reference to the polar spline referenced by this polar spline view.
Definition: polar_spline.hpp:163
ddc::ChunkSpan< double, ddc::DiscreteDomain< PolarBSplinesType >, std::experimental::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:144
ddc::ChunkSpan< double, ddc::DiscreteDomain< BSplinesR, BSplinesTheta >, std::experimental::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
A structure containing the two ChunkViews necessary to define a constant reference to a spline on a s...
Definition: polar_spline.hpp:187
ddc::ChunkSpan< double const, ddc::DiscreteDomain< BSplinesR, BSplinesTheta >, std::experimental::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:203
ddc::ChunkSpan< double const, ddc::DiscreteDomain< PolarBSplinesType >, std::experimental::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:213
PolarSplineView< PolarBSplinesType, MemSpace > span_cview() const
Get a constant reference to the polar spline referenced by this polar spline view.
Definition: polar_spline.hpp:255
PolarSplineSpan< PolarBSplinesType, MemSpace > span_view() const
Get a reference to the polar spline referenced by this polar spline view.
Definition: polar_spline.hpp:245
A structure containing the two Chunks necessary to define a spline on a set of polar basis splines.
Definition: polar_spline.hpp:20
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
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< 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