The top-level namespace of DDC. More...
Namespaces | |
| namespace | concepts |
| namespace | experimental |
| namespace | reducer |
Typedefs | |
| template<class ElementType , class SupportType , class LayoutStridedPolicy = Kokkos::layout_right, class MemorySpace = Kokkos::HostSpace> | |
| using | ChunkView = ChunkSpan< ElementType const, SupportType, LayoutStridedPolicy, MemorySpace > |
| template<class T > | |
| using | chunk_value_t = chunk_traits< T >::value_type |
| template<class T > | |
| using | chunk_pointer_t = chunk_traits< T >::pointer_type |
| template<class T > | |
| using | chunk_reference_t = chunk_traits< T >::reference_type |
| using | CoordinateElement = Real |
| A CoordinateElement the type of the scalar used to represent elements of coordinates in the continuous space. | |
| template<class... CDims> | |
| using | Coordinate = detail::TaggedVector< CoordinateElement, CDims... > |
| A Coordinate represents a coordinate in the continuous space. | |
| template<class T > | |
| using | coordinate_of_t = coordinate_of< T >::type |
| Helper type of ddc::coordinate_of. | |
| template<typename DDom , concepts::discrete_dimension... DDims> | |
| using | remove_dims_of_t = decltype(remove_dims_of< DDims... >(std::declval< DDom >())) |
| Type alias for the discrete domain obtained by removing dimensions DDims from DDom. | |
| template<typename DDom , concepts::discrete_dimension DDim1, concepts::discrete_dimension DDim2> | |
| using | replace_dim_of_t = decltype(replace_dim_of< DDim1, DDim2 >(std::declval< DDom >(), std::declval< typename detail::Rebind< DDom, TypeSeq< DDim2 > >::type >())) |
| using | DiscreteElementType = std::size_t |
| A DiscreteCoordElement is a scalar that identifies an element of the discrete dimension. | |
| using | DiscreteVectorElement = std::ptrdiff_t |
| A DiscreteVectorElement is a scalar that represents the difference between two coordinates. | |
| template<class T > | |
| using | DeviceAllocator = KokkosAllocator< T, Kokkos::DefaultExecutionSpace::memory_space > |
| template<class T > | |
| using | HostAllocator = KokkosAllocator< T, Kokkos::HostSpace > |
| using | Real = float |
| template<class... TaggedTypes> | |
| using | combine_t = detail::Combine< TaggedTypes... >::type |
| A helper structure to determine the type when combining tags across containers. | |
| template<std::size_t I, class TagSeq > | |
| using | type_seq_element_t = detail::TypeSeqElement< I, TagSeq >::type |
| template<class TagSeqA , class TagSeqB > | |
| using | type_seq_remove_t = detail::TypeSeqRemove< TagSeqA, TagSeqB, TypeSeq<> >::type |
| template<class TagSeqA , class TagSeqB > | |
| using | type_seq_merge_t = detail::TypeSeqMerge< TagSeqA, TagSeqB, TagSeqA >::type |
| template<class TagSeqA , class TagSeqB > | |
| using | type_seq_cat_t = detail::TypeSeqCat< TagSeqA, TagSeqB >::type |
| template<class TagSeqA , class TagSeqB , class TagSeqC > | |
| using | type_seq_replace_t = detail::TypeSeqReplace< TagSeqA, TagSeqB, TagSeqC, TypeSeq<> >::type |
| template<class T > | |
| using | to_type_seq_t = detail::ToTypeSeq< T >::type |
| template<concepts::bsplines DDim> | |
| using | knot_discrete_dimension_t = KnotDiscreteDimension< DDim >::type |
Helper type to easily access KnotDiscreteDimension<DDim>::type | |
Enumerations | |
| enum class | FFT_Direction { FORWARD , BACKWARD } |
| A named argument to choose the direction of the FFT. More... | |
| enum class | FFT_Normalization { OFF , FORWARD , BACKWARD , ORTHO , FULL } |
| A named argument to choose the type of normalization of the FFT. More... | |
| enum class | SplineSolver { GINKGO , LAPACK } |
| An enum determining the backend solver of a SplineBuilder or SplineBuilder2d. More... | |
| enum class | SplineBuilderClosure { PERIODIC , HERMITE , HOMOGENEOUS_HERMITE , GREVILLE } |
| An enum representing a spline closure relation. More... | |
Functions | |
| template<class T , std::size_t NT, class U , std::size_t NU> | |
| constexpr bool | operator== (AlignedAllocator< T, NT > const &, AlignedAllocator< U, NU > const &) noexcept |
| template<class T , std::size_t NT, class U , std::size_t NU> | |
| constexpr bool | operator!= (AlignedAllocator< T, NT > const &, AlignedAllocator< U, NU > const &) noexcept |
| template<class SupportType , class Allocator > | |
| Chunk (std::string const &, SupportType const &, Allocator) -> Chunk< typename Allocator::value_type, SupportType, Allocator > | |
| template<class SupportType , class Allocator > | |
| Chunk (SupportType const &, Allocator) -> Chunk< typename Allocator::value_type, SupportType, Allocator > | |
| template<concepts::discrete_dimension... QueryDDims, class ChunkType > | |
| KOKKOS_FUNCTION auto | get_domain (ChunkType const &chunk) noexcept |
| Access the domain (or subdomain) of a view. | |
| template<class DataType , class... Properties, class SupportType > | |
| KOKKOS_DEDUCTION_GUIDE | ChunkSpan (Kokkos::View< DataType, Properties... > const &view, SupportType domain) -> ChunkSpan< detail::kokkos_to_mdspan_element_t< typename Kokkos::View< DataType, Properties... >::data_type >, SupportType, detail::kokkos_to_mdspan_layout_t< typename Kokkos::View< DataType, Properties... >::array_layout >, typename Kokkos::View< DataType, Properties... >::memory_space > |
| template<class ElementType , class SupportType , class Allocator > | |
| ChunkSpan (Chunk< ElementType, SupportType, Allocator > &other) -> ChunkSpan< ElementType, SupportType, Kokkos::layout_right, typename Allocator::memory_space > | |
| template<class ElementType , class SupportType , class Allocator > | |
| ChunkSpan (Chunk< ElementType, SupportType, Allocator > const &other) -> ChunkSpan< ElementType const, SupportType, Kokkos::layout_right, typename Allocator::memory_space > | |
| template<concepts::discrete_dimension... DDims> requires (sizeof...(DDims) > 1) | |
| KOKKOS_FUNCTION Coordinate< typename DDims::continuous_dimension_type... > | coordinate (DiscreteElement< DDims... > const &c) |
| template<class Space , class ElementType , class Support , class Layout , class MemorySpace > | |
| auto | create_mirror (Space const &space, ChunkSpan< ElementType, Support, Layout, MemorySpace > const &src) |
| template<class ElementType , class Support , class Layout , class MemorySpace > | |
| auto | create_mirror (ChunkSpan< ElementType, Support, Layout, MemorySpace > const &src) |
Equivalent to create_mirror(Kokkos::HostSpace(), src). | |
| template<class Space , class ElementType , class Support , class Layout , class MemorySpace > | |
| auto | create_mirror_and_copy (Space const &space, ChunkSpan< ElementType, Support, Layout, MemorySpace > const &src) |
| template<class ElementType , class Support , class Layout , class MemorySpace > | |
| auto | create_mirror_and_copy (ChunkSpan< ElementType, Support, Layout, MemorySpace > const &src) |
Equivalent to create_mirror_and_copy(Kokkos::HostSpace(), src). | |
| template<class Space , class ElementType , class Support , class Layout , class MemorySpace > | |
| auto | create_mirror_view (Space const &space, ChunkSpan< ElementType, Support, Layout, MemorySpace > const &src) |
| template<class ElementType , class Support , class Layout , class MemorySpace > | |
| auto | create_mirror_view (ChunkSpan< ElementType, Support, Layout, MemorySpace > const &src) |
Equivalent to create_mirror_view(Kokkos::HostSpace(), src). | |
| template<class Space , class ElementType , class Support , class Layout , class MemorySpace > | |
| auto | create_mirror_view_and_copy (Space const &space, ChunkSpan< ElementType, Support, Layout, MemorySpace > const &src) |
| template<class ElementType , class Support , class Layout , class MemorySpace > | |
| auto | create_mirror_view_and_copy (ChunkSpan< ElementType, Support, Layout, MemorySpace > const &src) |
Equivalent to create_mirror_view_and_copy(Kokkos::HostSpace(), src). | |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteDomain< QueryDDims... > | select (DiscreteDomain< DDims... > const &domain) |
| template<concepts::discrete_dimension... DDimsA, concepts::discrete_dimension... DDimsB> | |
| KOKKOS_FUNCTION constexpr auto | remove_dims_of (DiscreteDomain< DDimsA... > const &DDom_a, DiscreteDomain< DDimsB... > const &) noexcept |
| template<concepts::discrete_dimension... DDimsB, concepts::discrete_dimension... DDimsA> | |
| KOKKOS_FUNCTION constexpr auto | remove_dims_of (DiscreteDomain< DDimsA... > const &DDom_a) noexcept |
| Remove the dimensions DDimsB from DDom_a. | |
| template<concepts::discrete_dimension DDim1, concepts::discrete_dimension DDim2, concepts::discrete_dimension... DDimsA, concepts::discrete_dimension... DDimsB> | |
| KOKKOS_FUNCTION constexpr auto | replace_dim_of (DiscreteDomain< DDimsA... > const &DDom_a, DiscreteDomain< DDimsB... > const &DDom_b) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< QueryDDims... > | extents (DiscreteDomain< DDims... > const &domain) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryDDims... > | front (DiscreteDomain< DDims... > const &domain) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryDDims... > | back (DiscreteDomain< DDims... > const &domain) noexcept |
| template<concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr DiscreteElementType const & | uid (DiscreteElement< Tag > const &tuple) noexcept |
| template<concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr DiscreteElementType & | uid (DiscreteElement< Tag > &tuple) noexcept |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteElementType const & | uid (DiscreteElement< Tags... > const &tuple) noexcept |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteElementType & | uid (DiscreteElement< Tags... > &tuple) noexcept |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryTag > | select_or (DiscreteElement< Tags... > const &arr, DiscreteElement< QueryTag > const &default_value) noexcept |
| template<concepts::discrete_dimension... QueryTags, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryTags... > | select (DiscreteElement< Tags... > const &arr) noexcept |
| template<concepts::discrete_dimension... QueryTags, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryTags... > | select (DiscreteElement< Tags... > &&arr) noexcept |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_element HeadDElem, concepts::discrete_element... TailDElems> | |
| KOKKOS_FUNCTION constexpr auto const & | take (HeadDElem const &head, TailDElems const &... tail) |
| Returns a reference towards the DiscreteElement that contains the QueryTag. | |
| template<concepts::discrete_dimension DDim> | |
| constexpr DiscreteElement< DDim > | create_reference_discrete_element () noexcept |
| template<concepts::discrete_dimension... Tags> | |
| std::ostream & | operator<< (std::ostream &os, DiscreteElement< Tags... > const &arr) |
| template<concepts::discrete_dimension... Tags, concepts::discrete_dimension... OTags> | |
| KOKKOS_FUNCTION constexpr bool | operator== (DiscreteElement< Tags... > const &lhs, DiscreteElement< OTags... > const &rhs) noexcept |
| template<concepts::discrete_dimension... Tags, concepts::discrete_dimension... OTags> | |
| KOKKOS_FUNCTION constexpr bool | operator!= (DiscreteElement< Tags... > const &lhs, DiscreteElement< OTags... > const &rhs) noexcept |
| template<concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr bool | operator< (DiscreteElement< Tag > const &lhs, DiscreteElement< Tag > const &rhs) |
| template<concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr bool | operator<= (DiscreteElement< Tag > const &lhs, DiscreteElement< Tag > const &rhs) |
| template<concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr bool | operator> (DiscreteElement< Tag > const &lhs, DiscreteElement< Tag > const &rhs) |
| template<concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr bool | operator>= (DiscreteElement< Tag > const &lhs, DiscreteElement< Tag > const &rhs) |
| template<concepts::discrete_dimension... Tags, concepts::discrete_dimension... OTags> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< Tags... > | operator+ (DiscreteElement< Tags... > const &lhs, DiscreteVector< OTags... > const &rhs) |
| right external binary operators: +, - | |
| template<concepts::discrete_dimension Tag, std::integral IntegralType> requires (!is_discrete_vector_v<IntegralType>) | |
| KOKKOS_FUNCTION constexpr DiscreteElement< Tag > | operator+ (DiscreteElement< Tag > const &lhs, IntegralType const &rhs) |
| template<concepts::discrete_dimension... Tags, concepts::discrete_dimension... OTags> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< Tags... > | operator- (DiscreteElement< Tags... > const &lhs, DiscreteVector< OTags... > const &rhs) |
| template<concepts::discrete_dimension Tag, std::integral IntegralType> requires (!is_discrete_vector_v<IntegralType>) | |
| KOKKOS_FUNCTION constexpr DiscreteElement< Tag > | operator- (DiscreteElement< Tag > const &lhs, IntegralType const &rhs) |
| template<concepts::discrete_dimension... Tags, concepts::discrete_dimension... OTags> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< Tags... > | operator- (DiscreteElement< Tags... > const &lhs, DiscreteElement< OTags... > const &rhs) |
| binary operator: - | |
| template<concepts::discrete_dimension DDim, class... Args> | |
| void | init_discrete_space (Args &&... args) |
| Initialize (emplace) a global singleton discrete space. | |
| template<concepts::discrete_dimension DDim, class DDimImpl , class Arg0 > | |
| Arg0 | init_discrete_space (std::tuple< DDimImpl, Arg0 > &&a) |
| Move construct a global singleton discrete space and pass through the other argument. | |
| template<concepts::discrete_dimension DDim, class DDimImpl , class Arg0 , class Arg1 , class... Args> | |
| std::tuple< Arg0, Arg1, Args... > | init_discrete_space (std::tuple< DDimImpl, Arg0, Arg1, Args... > &&a) |
| Move construct a global singleton discrete space and pass through remaining arguments. | |
| template<concepts::discrete_dimension DDim> | |
| bool | is_discrete_space_initialized () noexcept |
| template<concepts::discrete_dimension DDim, class MemorySpace = DDC_CURRENT_KOKKOS_SPACE> | |
| KOKKOS_FUNCTION detail::ddim_impl_t< DDim, MemorySpace > const & | discrete_space () |
| template<concepts::discrete_dimension DDim> | |
| detail::ddim_impl_t< DDim, Kokkos::HostSpace > const & | host_discrete_space () |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteVectorElement const & | get (DiscreteVector< Tags... > const &tuple) noexcept |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteVectorElement & | get (DiscreteVector< Tags... > &tuple) noexcept |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteVectorElement const & | get_or (DiscreteVector< Tags... > const &tuple, DiscreteVectorElement const &default_value) noexcept |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< QueryTag > | select_or (DiscreteVector< Tags... > const &arr, DiscreteVector< QueryTag > const &default_value) noexcept |
| template<concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< Tags... > | operator+ (DiscreteVector< Tags... > const &x) |
| Unary operators: +, -. | |
| template<concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< Tags... > | operator- (DiscreteVector< Tags... > const &x) |
| template<concepts::discrete_dimension... Tags, concepts::discrete_dimension... OTags> | |
| KOKKOS_FUNCTION constexpr auto | operator+ (DiscreteVector< Tags... > const &lhs, DiscreteVector< OTags... > const &rhs) |
| Internal binary operators: +, -. | |
| template<concepts::discrete_dimension... Tags, concepts::discrete_dimension... OTags> | |
| KOKKOS_FUNCTION constexpr auto | operator- (DiscreteVector< Tags... > const &lhs, DiscreteVector< OTags... > const &rhs) |
| template<concepts::discrete_dimension Tag, std::integral IntegralType> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< Tag > | operator+ (DiscreteVector< Tag > const &lhs, IntegralType const &rhs) |
| template<std::integral IntegralType, concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< Tag > | operator+ (IntegralType const &lhs, DiscreteVector< Tag > const &rhs) |
| template<concepts::discrete_dimension Tag, std::integral IntegralType> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< Tag > | operator- (DiscreteVector< Tag > const &lhs, IntegralType const &rhs) |
| template<std::integral IntegralType, concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< Tag > | operator- (IntegralType const &lhs, DiscreteVector< Tag > const &rhs) |
| template<std::integral IntegralType, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr auto | operator* (IntegralType const &lhs, DiscreteVector< Tags... > const &rhs) |
| external left binary operator: * | |
| template<concepts::discrete_dimension... QueryTags, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< QueryTags... > | select (DiscreteVector< Tags... > const &arr) noexcept |
| template<concepts::discrete_dimension... QueryTags, concepts::discrete_dimension... Tags> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< QueryTags... > | select (DiscreteVector< Tags... > &&arr) noexcept |
| template<concepts::discrete_dimension QueryTag, concepts::discrete_vector HeadDVect, concepts::discrete_vector... TailDVects> | |
| KOKKOS_FUNCTION constexpr auto const & | take (HeadDVect const &head, TailDVects const &... tail) |
| Returns a reference towards the DiscreteVector that contains the QueryTag. | |
| template<concepts::discrete_dimension Tag> | |
| KOKKOS_FUNCTION constexpr bool | operator< (DiscreteVector< Tag > const &lhs, DiscreteVector< Tag > const &rhs) |
| template<concepts::discrete_dimension Tag, class IntegralType > | |
| KOKKOS_FUNCTION constexpr bool | operator< (DiscreteVector< Tag > const &lhs, IntegralType const &rhs) |
| template<concepts::discrete_dimension... Tags> | |
| std::ostream & | operator<< (std::ostream &os, DiscreteVector< Tags... > const &arr) |
| template<class Support , class Functor > | |
| void | host_for_each (Support const &domain, Functor &&f) noexcept |
| iterates over a nD domain in serial | |
| template<class Support , class Functor > | |
| KOKKOS_FUNCTION void | device_for_each (Support const &domain, Functor &&f) noexcept |
| iterates over a nD domain in serial | |
| template<class Support , class Functor > | |
| void | host_for_each_block (Support const &domain, typename Support::discrete_vector_type nb_blocks_per_dim, Functor const &f) noexcept |
| Iterate over blocks of a domain using a per-dimension block specification. | |
| template<class Support , class Functor > | |
| void | host_for_each_block (Support const &domain, std::size_t nb_blocks, Functor const &f) noexcept |
| Iterate over blocks of a domain using a total number of blocks. | |
| template<class T , class MST , class U , class MSU > | |
| constexpr bool | operator== (KokkosAllocator< T, MST > const &, KokkosAllocator< U, MSU > const &) noexcept |
| template<class T , class MST , class U , class MSU > | |
| constexpr bool | operator!= (KokkosAllocator< T, MST > const &, KokkosAllocator< U, MSU > const &) noexcept |
| template<class DDimImpl > requires (concepts::non_uniform_point_sampling<typename DDimImpl::discrete_dimension_type>) | |
| std::ostream & | operator<< (std::ostream &os, DDimImpl const &mesh) |
| template<concepts::non_uniform_point_sampling DDim> | |
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > | coordinate (DiscreteElement< DDim > const &c) |
| template<concepts::non_uniform_point_sampling DDim> | |
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > | distance_at_left (DiscreteElement< DDim > i) |
| template<concepts::non_uniform_point_sampling DDim> | |
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > | distance_at_right (DiscreteElement< DDim > i) |
| template<concepts::non_uniform_point_sampling DDim> | |
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > | rmin (DiscreteDomain< DDim > const &d) |
| template<concepts::non_uniform_point_sampling DDim> | |
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > | rmax (DiscreteDomain< DDim > const &d) |
| template<concepts::non_uniform_point_sampling DDim> | |
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > | rlength (DiscreteDomain< DDim > const &d) |
| template<class ExecSpace , concepts::borrowed_chunk ChunkDst, concepts::borrowed_chunk ChunkSrc> | |
| auto | parallel_copy (ExecSpace const &execution_space, ChunkDst &&dst, ChunkSrc &&src) |
| Copy the content of a borrowed chunk into another. | |
| template<concepts::borrowed_chunk ChunkDst, concepts::borrowed_chunk ChunkSrc> | |
| auto | parallel_deepcopy (ChunkDst &&dst, ChunkSrc &&src) |
| Copy the content of a borrowed chunk into another. | |
| template<class ExecSpace , concepts::borrowed_chunk ChunkDst, concepts::borrowed_chunk ChunkSrc> | |
| auto | parallel_deepcopy (ExecSpace const &execution_space, ChunkDst &&dst, ChunkSrc &&src) |
| Copy the content of a borrowed chunk into another. | |
| template<concepts::borrowed_chunk ChunkDst, class T > | |
| auto | parallel_fill (ChunkDst &&dst, T const &value) |
| Fill a borrowed chunk with a given value. | |
| template<class ExecSpace , concepts::borrowed_chunk ChunkDst, class T > | |
| auto | parallel_fill (ExecSpace const &execution_space, ChunkDst &&dst, T const &value) |
| Fill a borrowed chunk with a given value. | |
| template<class ExecSpace , class Support , class Functor > | |
| void | parallel_for_each (std::string const &label, ExecSpace const &execution_space, Support const &domain, Functor &&f) noexcept |
iterates over a nD domain using a given Kokkos execution space | |
| template<class ExecSpace , class Support , class Functor > requires (Kokkos::is_execution_space_v<ExecSpace>) | |
| void | parallel_for_each (ExecSpace const &execution_space, Support const &domain, Functor &&f) noexcept |
iterates over a nD domain using a given Kokkos execution space | |
| template<class Support , class Functor > | |
| void | parallel_for_each (std::string const &label, Support const &domain, Functor &&f) noexcept |
iterates over a nD domain using the Kokkos default execution space | |
| template<class Support , class Functor > | |
| void | parallel_for_each (Support const &domain, Functor &&f) noexcept |
iterates over a nD domain using the Kokkos default execution space | |
| template<concepts::borrowed_chunk ChunkDst, class UnaryTransformOp > | |
| auto | parallel_transform (std::string const &label, ChunkDst &&dst, UnaryTransformOp &&transform) |
| Transform a borrowed chunk with a given transform functor. | |
| template<class ChunkDst , class UnaryTransformOp > | |
| auto | parallel_transform (ChunkDst &&dst, UnaryTransformOp &&transform) |
| Transform a borrowed chunk with a given transform functor. | |
| template<class ExecSpace , concepts::borrowed_chunk ChunkDst, class UnaryTransformOp > | |
| auto | parallel_transform (std::string const &label, ExecSpace const &execution_space, ChunkDst &&dst, UnaryTransformOp &&transform) |
| Transform a borrowed chunk with a given transform functor. | |
| template<class ExecSpace , class ChunkDst , class UnaryTransformOp > requires (Kokkos::is_execution_space_v<ExecSpace>) | |
| auto | parallel_transform (ExecSpace const &execution_space, ChunkDst &&dst, UnaryTransformOp &&transform) |
| Transform a borrowed chunk with a given transform functor. | |
| template<class ExecSpace , class Support , class T , class BinaryReductionOp , class UnaryTransformOp > | |
| T | parallel_transform_reduce (std::string const &label, ExecSpace const &execution_space, Support const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
A reduction over a nD domain using a given Kokkos execution space. | |
| template<class ExecSpace , class Support , class T , class BinaryReductionOp , class UnaryTransformOp > requires (Kokkos::is_execution_space_v<ExecSpace>) | |
| T | parallel_transform_reduce (ExecSpace const &execution_space, Support const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
A reduction over a nD domain using a given Kokkos execution space. | |
| template<class Support , class T , class BinaryReductionOp , class UnaryTransformOp > | |
| T | parallel_transform_reduce (std::string const &label, Support const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
A reduction over a nD domain using the Kokkos default execution space. | |
| template<class Support , class T , class BinaryReductionOp , class UnaryTransformOp > | |
| T | parallel_transform_reduce (Support const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
A reduction over a nD domain using the Kokkos default execution space. | |
| template<class DDimImpl > requires (concepts::periodic_sampling<typename DDimImpl::discrete_dimension_type>) | |
| std::ostream & | operator<< (std::ostream &os, DDimImpl const &mesh) |
| template<concepts::periodic_sampling DDim> | |
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > | origin () noexcept |
| Lower bound index of the mesh. | |
| template<concepts::periodic_sampling DDim> | |
| KOKKOS_FUNCTION DiscreteElement< DDim > | front () noexcept |
| Lower bound index of the mesh. | |
| template<concepts::periodic_sampling DDim> | |
| KOKKOS_FUNCTION Real | step () noexcept |
| Spacing step of the mesh. | |
| PrinterOptions | set_print_options (PrinterOptions options=PrinterOptions()) |
| Try to set the options for the printer, returns the old format (or the current format if the option passed are invalid). | |
| PrinterOptions | get_print_options () |
| Return the currently used format options. | |
| template<class ElementType , class SupportType , class LayoutStridedPolicy , class MemorySpace > | |
| std::ostream & | print_content (std::ostream &os, ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const &chunk_span) |
| Print the content of a ChunkSpan. | |
| template<class ElementType , class SupportType , class LayoutStridedPolicy , class MemorySpace > | |
| std::ostream & | print_type_info (std::ostream &os, ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const &chunk_span) |
| Print the metadata of a ChunkSpan (size, dimension name, ...) | |
| template<class ElementType , class SupportType , class LayoutStridedPolicy , class MemorySpace > | |
| std::ostream & | print (std::ostream &os, ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const &chunk_span) |
| Print metadata and content of a ChunkSpan. | |
| template<class ElementType , class SupportType , class LayoutStridedPolicy , class MemorySpace > | |
| std::ostream & | print_full (std::ostream &os, ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const &chunk_span) |
| Print metadata and content of a ChunkSpan Always print without elision, regardless of options set. | |
| template<class ElementType , class SupportType , class LayoutStridedPolicy , class MemorySpace > | |
| std::ostream & | operator<< (std::ostream &os, ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const &chunk_span) |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr SparseDiscreteDomain< QueryDDims... > | select (SparseDiscreteDomain< DDims... > const &domain) |
| template<concepts::discrete_dimension... DDimsA, concepts::discrete_dimension... DDimsB> | |
| KOKKOS_FUNCTION constexpr auto | remove_dims_of (SparseDiscreteDomain< DDimsA... > const &DDom_a, SparseDiscreteDomain< DDimsB... > const &) noexcept |
| template<concepts::discrete_dimension... DDimsB, concepts::discrete_dimension... DDimsA> | |
| KOKKOS_FUNCTION constexpr auto | remove_dims_of (SparseDiscreteDomain< DDimsA... > const &DDom_a) noexcept |
| Remove the dimensions DDimsB from DDom_a. | |
| template<concepts::discrete_dimension DDim1, concepts::discrete_dimension DDim2, concepts::discrete_dimension... DDimsA, concepts::discrete_dimension... DDimsB> | |
| KOKKOS_FUNCTION constexpr auto | replace_dim_of (SparseDiscreteDomain< DDimsA... > const &DDom_a, SparseDiscreteDomain< DDimsB... > const &DDom_b) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< QueryDDims... > | extents (SparseDiscreteDomain< DDims... > const &domain) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryDDims... > | front (SparseDiscreteDomain< DDims... > const &domain) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryDDims... > | back (SparseDiscreteDomain< DDims... > const &domain) noexcept |
| template<concepts::discrete_dimension... ODDims> | |
| KOKKOS_FUNCTION DiscreteVector< ODDims... > | prod (DiscreteVector< ODDims... > const &lhs, DiscreteVector< ODDims... > const &rhs) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr StridedDiscreteDomain< QueryDDims... > | select (StridedDiscreteDomain< DDims... > const &domain) |
| template<concepts::discrete_dimension... DDimsA, concepts::discrete_dimension... DDimsB> | |
| KOKKOS_FUNCTION constexpr auto | remove_dims_of (StridedDiscreteDomain< DDimsA... > const &DDom_a, StridedDiscreteDomain< DDimsB... > const &) noexcept |
| template<concepts::discrete_dimension... DDimsB, concepts::discrete_dimension... DDimsA> | |
| KOKKOS_FUNCTION constexpr auto | remove_dims_of (StridedDiscreteDomain< DDimsA... > const &DDom_a) noexcept |
| Remove the dimensions DDimsB from DDom_a. | |
| template<typename DDim1 , typename DDim2 , typename... DDimsA, typename... DDimsB> | |
| KOKKOS_FUNCTION constexpr auto | replace_dim_of (StridedDiscreteDomain< DDimsA... > const &DDom_a, StridedDiscreteDomain< DDimsB... > const &DDom_b) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteVector< QueryDDims... > | extents (StridedDiscreteDomain< DDims... > const &domain) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryDDims... > | front (StridedDiscreteDomain< DDims... > const &domain) noexcept |
| template<concepts::discrete_dimension... QueryDDims, concepts::discrete_dimension... DDims> | |
| KOKKOS_FUNCTION constexpr DiscreteElement< QueryDDims... > | back (StridedDiscreteDomain< DDims... > const &domain) noexcept |
| template<class Support , class T , class BinaryReductionOp , class UnaryTransformOp > | |
| T | host_transform_reduce (Support const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
| A reduction over a nD domain in serial. | |
| template<class Support , class T , class BinaryReductionOp , class UnaryTransformOp > | |
| KOKKOS_FUNCTION T | device_transform_reduce (Support const &domain, T neutral, BinaryReductionOp &&reduce, UnaryTransformOp &&transform) noexcept |
| A reduction over a nD domain in serial. | |
| template<concepts::discrete_dimension DDim> | |
| constexpr DiscreteDomain< DDim > | init_trivial_bounded_space (DiscreteVector< DDim > const n) noexcept |
| Construct a bounded dimension without attributes. | |
| template<concepts::discrete_dimension DDim> | |
| constexpr DiscreteElement< DDim > | init_trivial_half_bounded_space () noexcept |
| Construct a half bounded dimension without attributes. | |
| template<class DDimImpl > requires (concepts::uniform_point_sampling<typename DDimImpl::discrete_dimension_type>) | |
| std::ostream & | operator<< (std::ostream &os, DDimImpl const &mesh) |
| template<concepts::uniform_point_sampling DDim> | |
| KOKKOS_FUNCTION constexpr Coordinate< typename DDim::continuous_dimension_type > | coordinate (DiscreteElement< DDim > const &c) |
| template<typename DDimFx , typename DDimX > | |
| DDimFx::template Impl< DDimFx, Kokkos::HostSpace > | init_fourier_space (ddc::DiscreteDomain< DDimX > x_mesh) |
| Initialize a Fourier discrete dimension. | |
| template<typename... DDimFx, typename... DDimX> | |
| ddc::DiscreteDomain< DDimFx... > | fourier_mesh (ddc::DiscreteDomain< DDimX... > x_mesh, bool C2C) |
| Get the Fourier mesh. | |
| template<typename Tin , typename Tout , typename... DDimFx, typename... DDimX, typename ExecSpace , typename MemorySpace , typename LayoutIn , typename LayoutOut > | |
| void | fft (ExecSpace const &exec_space, ddc::ChunkSpan< Tout, ddc::DiscreteDomain< DDimFx... >, LayoutOut, MemorySpace > out, ddc::ChunkSpan< Tin, ddc::DiscreteDomain< DDimX... >, LayoutIn, MemorySpace > in, ddc::kwArgs_fft kwargs={ddc::FFT_Normalization::OFF}) |
| Perform a direct Fast Fourier Transform. | |
| template<typename Tin , typename Tout , typename... DDimX, typename... DDimFx, typename ExecSpace , typename MemorySpace , typename LayoutIn , typename LayoutOut > | |
| void | ifft (ExecSpace const &exec_space, ddc::ChunkSpan< Tout, ddc::DiscreteDomain< DDimX... >, LayoutOut, MemorySpace > out, ddc::ChunkSpan< Tin, ddc::DiscreteDomain< DDimFx... >, LayoutIn, MemorySpace > in, ddc::kwArgs_fft kwargs={ddc::FFT_Normalization::OFF}) |
| Perform an inverse Fast Fourier Transform. | |
| template<PDI_inout_t Access, class DataType > | |
| void | expose_to_pdi (std::string const &name, DataType &&data) |
| template<class DataType > | |
| void | expose_to_pdi (std::string const &name, DataType &&data) |
| template<class ExecSpace , concepts::bsplines DDim, class Layout , class MemorySpace > | |
| ddc::ChunkSpan< Real, ddc::DiscreteDomain< DDim >, Layout, MemorySpace > | integrals (ExecSpace const &execution_space, ddc::ChunkSpan< Real, ddc::DiscreteDomain< DDim >, Layout, MemorySpace > int_vals) |
| Compute the integrals of the B-splines. | |
| std::ostream & | operator<< (std::ostream &os, ddc::SplineBuilderClosure sbc) |
| Prints a closure relation in a std::ostream. | |
| constexpr int | n_boundary_equations (ddc::SplineBuilderClosure const sbc, std::size_t const degree) |
| Return the number of equations needed to describe a given closure relation. | |
The top-level namespace of DDC.
All DDC symbols are defined either in this namespace or in a nested namespace.
| struct ddc::chunk_traits |
Definition at line 35 of file chunk_traits.hpp.

| Class Members | ||
|---|---|---|
| typedef remove_cv_t< remove_pointer_t< decltype(declval< T >().data_handle())> > | value_type | |
| typedef decltype(declval< T >().data_handle()) | pointer_type | |
| typedef decltype(*declval< T >().data_handle()) | reference_type | |
| struct ddc::coordinate_of |
Definition at line 44 of file coordinate.hpp.

| Class Members | ||
|---|---|---|
| typedef decltype(coordinate(declval< T >())) | type | |
| struct ddc::Fourier |
A templated tag representing a continuous dimension in the Fourier space associated to the original continuous dimension.
| The | tag representing the original dimension. |

| struct ddc::KnotDiscreteDimension |
If the type DDim is a B-spline, defines type to the discrete dimension of the associated knots.
Definition at line 17 of file knot_discrete_dimension_type.hpp.

| Class Members | ||
|---|---|---|
| typedef conditional_t< is_uniform_bsplines_v< DDim >, UniformBsplinesKnots< DDim >, NonUniformBsplinesKnots< DDim > > | type | The type representing the discrete dimension of the knots. |
| struct ddc::kwArgs_fft |
A structure embedding the configuration of the exposed FFT function with the type of normalization.

| Class Members | ||
|---|---|---|
| FFT_Normalization | normalization | Enum member to identify the type of normalization performed. |
| class ddc::SplineEvaluatorND |
A class to evaluate, differentiate or integrate a spline function of arbitrary dimension.
A class which contains an operator () which can be used to evaluate, differentiate or integrate a spline function of arbitrary dimension.
| Args... | The template parameters of the evaluator:
|
Definition at line 39 of file spline_evaluator_nd.hpp.

| struct ddc::TypeSeq |
A compile-time sequence of types.
TypeSeq is used to represent an ordered collection of types at compile time. It is primarily intended for manipulating lists of tags or types in generic programming code.
The order of the types is significant for operations such as type_seq_rank_v, type_seq_element_t, and the sequence manipulation utilities.
| Tags | The types contained in the sequence. |
Definition at line 29 of file type_seq.hpp.

| using ddc::ChunkView = typedef ChunkSpan<ElementType const, SupportType, LayoutStridedPolicy, MemorySpace> |
Definition at line 470 of file chunk_span.hpp.
| using ddc::chunk_value_t = typedef chunk_traits<T>::value_type |
Definition at line 45 of file chunk_traits.hpp.
| using ddc::chunk_pointer_t = typedef chunk_traits<T>::pointer_type |
Definition at line 48 of file chunk_traits.hpp.
| using ddc::chunk_reference_t = typedef chunk_traits<T>::reference_type |
Definition at line 51 of file chunk_traits.hpp.
A CoordinateElement the type of the scalar used to represent elements of coordinates in the continuous space.
Definition at line 22 of file coordinate.hpp.
| using ddc::Coordinate = typedef detail::TaggedVector<CoordinateElement, CDims...> |
A Coordinate represents a coordinate in the continuous space.
It is tagged by its dimensions.
Definition at line 30 of file coordinate.hpp.
| using ddc::coordinate_of_t = typedef coordinate_of<T>::type |
Helper type of ddc::coordinate_of.
Definition at line 52 of file coordinate.hpp.
| using ddc::remove_dims_of_t = typedef decltype(remove_dims_of<DDims...>(std::declval<DDom>())) |
Type alias for the discrete domain obtained by removing dimensions DDims from DDom.
| DDom | The discrete domain type from which to remove dimensions. |
| DDims | The discrete dimensions to remove. |
Definition at line 505 of file discrete_domain.hpp.
| using ddc::replace_dim_of_t = typedef decltype(replace_dim_of<DDim1, DDim2>( std::declval<DDom>(), std::declval<typename detail::Rebind<DDom, TypeSeq<DDim2> >::type>())) |
Definition at line 558 of file discrete_domain.hpp.
| using ddc::DiscreteElementType = typedef std::size_t |
A DiscreteCoordElement is a scalar that identifies an element of the discrete dimension.
Definition at line 61 of file discrete_element.hpp.
| using ddc::DiscreteVectorElement = typedef std::ptrdiff_t |
A DiscreteVectorElement is a scalar that represents the difference between two coordinates.
Definition at line 60 of file discrete_vector.hpp.
| using ddc::DeviceAllocator = typedef KokkosAllocator<T, Kokkos::DefaultExecutionSpace::memory_space> |
Definition at line 90 of file kokkos_allocator.hpp.
| using ddc::HostAllocator = typedef KokkosAllocator<T, Kokkos::HostSpace> |
Definition at line 93 of file kokkos_allocator.hpp.
| using ddc::combine_t = typedef detail::Combine<TaggedTypes...>::type |
A helper structure to determine the type when combining tags across containers.
E.g. combine_t<DiscreteElement<Tag1>, DiscreteElement<Tag2>> == DiscreteElement<Tag1, Tag2>
| Containers | The Types that should be combined. They should differ only in the tags. |
Definition at line 42 of file tagged_type_traits.hpp.
| using ddc::type_seq_element_t = typedef detail::TypeSeqElement<I, TagSeq>::type |
Definition at line 278 of file type_seq.hpp.
Definition at line 281 of file type_seq.hpp.
Definition at line 284 of file type_seq.hpp.
| using ddc::type_seq_cat_t = typedef detail::TypeSeqCat<TagSeqA, TagSeqB>::type |
Definition at line 287 of file type_seq.hpp.
| using ddc::type_seq_replace_t = typedef detail::TypeSeqReplace<TagSeqA, TagSeqB, TagSeqC, TypeSeq<> >::type |
Definition at line 290 of file type_seq.hpp.
| using ddc::to_type_seq_t = typedef detail::ToTypeSeq<T>::type |
Definition at line 299 of file type_seq.hpp.
| using ddc::knot_discrete_dimension_t = typedef KnotDiscreteDimension<DDim>::type |
Helper type to easily access KnotDiscreteDimension<DDim>::type
Definition at line 28 of file knot_discrete_dimension_type.hpp.
|
strong |
A named argument to choose the direction of the FFT.
| Enumerator | |
|---|---|
| FORWARD | Forward, corresponds to direct FFT up to normalization. |
| BACKWARD | Backward, corresponds to inverse FFT up to normalization. |
|
strong |
A named argument to choose the type of normalization of the FFT.
| Enumerator | |
|---|---|
| OFF | No normalization. Un-normalized FFT is sum_j f(x_j)*e^-ikx_j. |
| FORWARD | Multiply by 1/N for forward FFT, no normalization for backward FFT. |
| BACKWARD | No normalization for forward FFT, multiply by 1/N for backward FFT. |
| ORTHO | Multiply by 1/sqrt(N) |
| FULL | Multiply by dx/sqrt(2*pi) for forward FFT and dk/sqrt(2*pi) for backward FFT. It is aligned with the usual definition of the (continuous) Fourier transform 1/sqrt(2*pi)*int f(x)*e^-ikx*dx, and thus may be relevant for spectral analysis applications. |
|
strong |
An enum determining the backend solver of a SplineBuilder or SplineBuilder2d.
An enum determining the backend solver of a SplineBuilder or SplineBuilder2d.
| Enumerator | |
|---|---|
| GINKGO | Enum member to identify the Ginkgo-based solver (iterative method) |
| LAPACK | Enum member to identify the LAPACK-based solver (direct method) |
Definition at line 35 of file spline_builder.hpp.
|
strong |
An enum representing a spline closure relation.
Please refer to Emily Bourne's thesis (https://theses.fr/2022AIXM0412.pdf)
Definition at line 16 of file spline_builder_closures.hpp.
|
constexprnoexcept |
Definition at line 59 of file aligned_allocator.hpp.
|
constexprnoexcept |
Definition at line 67 of file aligned_allocator.hpp.
| ddc::Chunk | ( | std::string const & | , |
| SupportType const & | , | ||
| Allocator | |||
| ) | -> Chunk< typename Allocator::value_type, SupportType, Allocator > |
| ddc::Chunk | ( | SupportType const & | , |
| Allocator | |||
| ) | -> Chunk< typename Allocator::value_type, SupportType, Allocator > |
|
noexcept |
Access the domain (or subdomain) of a view.
| [in] | chunk | the view whose domain to access |
Definition at line 26 of file chunk_common.hpp.
| KOKKOS_DEDUCTION_GUIDE ddc::ChunkSpan | ( | Kokkos::View< DataType, Properties... > const & | view, |
| SupportType | domain | ||
| ) | -> ChunkSpan< detail::kokkos_to_mdspan_element_t< typename Kokkos::View< DataType, Properties... >::data_type >, SupportType, detail::kokkos_to_mdspan_layout_t< typename Kokkos::View< DataType, Properties... >::array_layout >, typename Kokkos::View< DataType, Properties... >::memory_space > |
| ddc::ChunkSpan | ( | Chunk< ElementType, SupportType, Allocator > & | other | ) | -> ChunkSpan< ElementType, SupportType, Kokkos::layout_right, typename Allocator::memory_space > |
| ddc::ChunkSpan | ( | Chunk< ElementType, SupportType, Allocator > const & | other | ) | -> ChunkSpan< ElementType const, SupportType, Kokkos::layout_right, typename Allocator::memory_space > |
| KOKKOS_FUNCTION Coordinate< typename DDims::continuous_dimension_type... > ddc::coordinate | ( | DiscreteElement< DDims... > const & | c | ) |
Definition at line 33 of file coordinate.hpp.
| auto ddc::create_mirror | ( | Space const & | space, |
| ChunkSpan< ElementType, Support, Layout, MemorySpace > const & | src | ||
| ) |
| [in] | space | A Kokkos memory space or execution space. |
| [in] | src | A layout right ChunkSpan. |
Chunk with the same support and layout as src allocated on the Space::memory_space memory space. Definition at line 47 of file create_mirror.hpp.
| auto ddc::create_mirror | ( | ChunkSpan< ElementType, Support, Layout, MemorySpace > const & | src | ) |
Equivalent to create_mirror(Kokkos::HostSpace(), src).
| [in] | src | A layout right ChunkSpan. |
Chunk with the same support and layout as src allocated on the Kokkos::HostSpace memory space. Definition at line 67 of file create_mirror.hpp.
| auto ddc::create_mirror_and_copy | ( | Space const & | space, |
| ChunkSpan< ElementType, Support, Layout, MemorySpace > const & | src | ||
| ) |
| [in] | space | A Kokkos memory space or execution space. |
| [in] | src | A layout right ChunkSpan. |
Chunk with the same support and layout as src allocated on the Space::memory_space memory space and operates a deep copy between the two. Definition at line 76 of file create_mirror.hpp.
| auto ddc::create_mirror_and_copy | ( | ChunkSpan< ElementType, Support, Layout, MemorySpace > const & | src | ) |
Equivalent to create_mirror_and_copy(Kokkos::HostSpace(), src).
| [in] | src | A layout right ChunkSpan. |
Chunk with the same support and layout as src allocated on the Kokkos::HostSpace memory space and operates a deep copy between the two. Definition at line 95 of file create_mirror.hpp.
| auto ddc::create_mirror_view | ( | Space const & | space, |
| ChunkSpan< ElementType, Support, Layout, MemorySpace > const & | src | ||
| ) |
| [in] | space | A Kokkos memory space or execution space. |
| [in] | src | A non-const, layout right ChunkSpan. |
MemorySpace is accessible from Space then returns a copy of src, otherwise returns a Chunk with the same support and layout as src allocated on the Space::memory_space memory space. Definition at line 104 of file create_mirror.hpp.
| auto ddc::create_mirror_view | ( | ChunkSpan< ElementType, Support, Layout, MemorySpace > const & | src | ) |
Equivalent to create_mirror_view(Kokkos::HostSpace(), src).
| [in] | src | A non-const, layout right ChunkSpan. |
Kokkos::HostSpace is accessible from Space then returns a copy of src, otherwise returns a Chunk with the same support and layout as src allocated on the Kokkos::HostSpace memory space. Definition at line 128 of file create_mirror.hpp.
| auto ddc::create_mirror_view_and_copy | ( | Space const & | space, |
| ChunkSpan< ElementType, Support, Layout, MemorySpace > const & | src | ||
| ) |
| [in] | space | A Kokkos memory space or execution space. |
| [in] | src | A layout right ChunkSpan. |
MemorySpace is accessible from Space then returns a copy of src, otherwise returns a Chunk with the same support and layout as src allocated on the Space::memory_space memory space and operates a deep copy between the two. Definition at line 137 of file create_mirror.hpp.
| auto ddc::create_mirror_view_and_copy | ( | ChunkSpan< ElementType, Support, Layout, MemorySpace > const & | src | ) |
Equivalent to create_mirror_view_and_copy(Kokkos::HostSpace(), src).
| [in] | src | A layout right ChunkSpan. |
Kokkos::HostSpace is accessible from Space then returns a copy of src, otherwise returns a Chunk with the same support and layout as src allocated on the Kokkos::HostSpace memory space and operates a deep copy between the two. Definition at line 158 of file create_mirror.hpp.
|
constexpr |
Definition at line 450 of file discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 476 of file discrete_domain.hpp.
|
constexprnoexcept |
Remove the dimensions DDimsB from DDom_a.
| [in] | DDom_a | The discrete domain on which to remove dimensions |
Definition at line 491 of file discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 538 of file discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 564 of file discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 571 of file discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 578 of file discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 64 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 70 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 76 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 83 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 89 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 101 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 108 of file discrete_element.hpp.
|
constexpr |
Returns a reference towards the DiscreteElement that contains the QueryTag.
Definition at line 119 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 155 of file discrete_element.hpp.
| std::ostream & ddc::operator<< | ( | std::ostream & | os, |
| DiscreteElement< Tags... > const & | arr | ||
| ) |
Definition at line 321 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 329 of file discrete_element.hpp.
|
constexprnoexcept |
Definition at line 339 of file discrete_element.hpp.
|
constexpr |
Definition at line 348 of file discrete_element.hpp.
|
constexpr |
Definition at line 356 of file discrete_element.hpp.
|
constexpr |
Definition at line 364 of file discrete_element.hpp.
|
constexpr |
Definition at line 372 of file discrete_element.hpp.
|
constexpr |
right external binary operators: +, -
Definition at line 382 of file discrete_element.hpp.
|
constexpr |
Definition at line 393 of file discrete_element.hpp.
|
constexpr |
Definition at line 404 of file discrete_element.hpp.
|
constexpr |
Definition at line 415 of file discrete_element.hpp.
|
constexpr |
binary operator: -
Definition at line 428 of file discrete_element.hpp.
| void ddc::init_discrete_space | ( | Args &&... | args | ) |
Initialize (emplace) a global singleton discrete space.
| args | the constructor arguments |
Definition at line 134 of file discrete_space.hpp.
| Arg0 ddc::init_discrete_space | ( | std::tuple< DDimImpl, Arg0 > && | a | ) |
Move construct a global singleton discrete space and pass through the other argument.
| a | - the discrete space to move at index 0
|
Definition at line 171 of file discrete_space.hpp.
| std::tuple< Arg0, Arg1, Args... > ddc::init_discrete_space | ( | std::tuple< DDimImpl, Arg0, Arg1, Args... > && | a | ) |
Move construct a global singleton discrete space and pass through remaining arguments.
| a | - the discrete space to move at index 0
|
Definition at line 183 of file discrete_space.hpp.
|
noexcept |
| DDim | a discrete dimension |
Definition at line 195 of file discrete_space.hpp.
| KOKKOS_FUNCTION detail::ddim_impl_t< DDim, MemorySpace > const & ddc::discrete_space | ( | ) |
| DDim | a discrete dimension |
DDim. This function must be called from a KOKKOS_FUNCTION. Call ddc::host_discrete_space for a host-only function instead. Definition at line 207 of file discrete_space.hpp.
| detail::ddim_impl_t< DDim, Kokkos::HostSpace > const & ddc::host_discrete_space | ( | ) |
Definition at line 229 of file discrete_space.hpp.
|
constexprnoexcept |
Definition at line 63 of file discrete_vector.hpp.
|
constexprnoexcept |
Definition at line 70 of file discrete_vector.hpp.
|
constexprnoexcept |
Definition at line 76 of file discrete_vector.hpp.
|
constexprnoexcept |
Definition at line 84 of file discrete_vector.hpp.
|
constexpr |
Unary operators: +, -.
Definition at line 98 of file discrete_vector.hpp.
|
constexpr |
Definition at line 104 of file discrete_vector.hpp.
|
constexpr |
Internal binary operators: +, -.
Definition at line 112 of file discrete_vector.hpp.
|
constexpr |
Definition at line 130 of file discrete_vector.hpp.
|
constexpr |
Definition at line 148 of file discrete_vector.hpp.
|
constexpr |
Definition at line 156 of file discrete_vector.hpp.
|
constexpr |
Definition at line 164 of file discrete_vector.hpp.
|
constexpr |
Definition at line 172 of file discrete_vector.hpp.
|
constexpr |
external left binary operator: *
Definition at line 182 of file discrete_vector.hpp.
|
constexprnoexcept |
Definition at line 190 of file discrete_vector.hpp.
|
constexprnoexcept |
Definition at line 197 of file discrete_vector.hpp.
|
constexpr |
Returns a reference towards the DiscreteVector that contains the QueryTag.
Definition at line 208 of file discrete_vector.hpp.
|
constexpr |
Definition at line 453 of file discrete_vector.hpp.
|
constexpr |
Definition at line 461 of file discrete_vector.hpp.
| std::ostream & ddc::operator<< | ( | std::ostream & | os, |
| DiscreteVector< Tags... > const & | arr | ||
| ) |
Definition at line 473 of file discrete_vector.hpp.
iterates over a nD domain in serial
| [in] | domain | the domain over which to iterate |
| [in] | f | a functor taking an index as parameter |
Definition at line 60 of file for_each.hpp.
|
noexcept |
iterates over a nD domain in serial
| [in] | domain | the domain over which to iterate |
| [in] | f | a functor taking an index as parameter |
Definition at line 70 of file for_each.hpp.
|
noexcept |
Iterate over blocks of a domain using a per-dimension block specification.
| [in] | domain | The domain to split. |
| [in] | nb_blocks_per_dim | Number of blocks in each dimension. |
| [in] | f | Functor applied to each block. |
Definition at line 72 of file for_each_block.hpp.
|
noexcept |
Iterate over blocks of a domain using a total number of blocks.
The total number of blocks is automatically distributed across dimensions.
| [in] | domain | The domain to split. |
| [in] | nb_blocks | Total number of blocks. |
| [in] | f | Functor applied to each block. |
Definition at line 92 of file for_each_block.hpp.
|
constexprnoexcept |
Definition at line 75 of file kokkos_allocator.hpp.
|
constexprnoexcept |
Definition at line 83 of file kokkos_allocator.hpp.
| std::ostream & ddc::operator<< | ( | std::ostream & | os, |
| DDimImpl const & | mesh | ||
| ) |
Definition at line 214 of file non_uniform_point_sampling.hpp.
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > ddc::coordinate | ( | DiscreteElement< DDim > const & | c | ) |
Definition at line 222 of file non_uniform_point_sampling.hpp.
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > ddc::distance_at_left | ( | DiscreteElement< DDim > | i | ) |
Definition at line 229 of file non_uniform_point_sampling.hpp.
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > ddc::distance_at_right | ( | DiscreteElement< DDim > | i | ) |
Definition at line 236 of file non_uniform_point_sampling.hpp.
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > ddc::rmin | ( | DiscreteDomain< DDim > const & | d | ) |
Definition at line 243 of file non_uniform_point_sampling.hpp.
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > ddc::rmax | ( | DiscreteDomain< DDim > const & | d | ) |
Definition at line 250 of file non_uniform_point_sampling.hpp.
| KOKKOS_FUNCTION Coordinate< typename DDim::continuous_dimension_type > ddc::rlength | ( | DiscreteDomain< DDim > const & | d | ) |
Definition at line 257 of file non_uniform_point_sampling.hpp.
Copy the content of a borrowed chunk into another.
It supports transposition and broadcasting at the same time. The two arrays must be accessible from execution_space.
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [out] | dst | the borrowed chunk in which to copy |
| [in] | src | the borrowed chunk from which to copy |
Definition at line 77 of file parallel_copy.hpp.
| auto ddc::parallel_deepcopy | ( | ChunkDst && | dst, |
| ChunkSrc && | src | ||
| ) |
Copy the content of a borrowed chunk into another.
| [out] | dst | the borrowed chunk in which to copy |
| [in] | src | the borrowed chunk from which to copy |
Definition at line 22 of file parallel_deepcopy.hpp.
Copy the content of a borrowed chunk into another.
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [out] | dst | the borrowed chunk in which to copy |
| [in] | src | the borrowed chunk from which to copy |
Definition at line 40 of file parallel_deepcopy.hpp.
| auto ddc::parallel_fill | ( | ChunkDst && | dst, |
| T const & | value | ||
| ) |
Fill a borrowed chunk with a given value.
| [out] | dst | the borrowed chunk in which to copy |
| [in] | value | the value to fill dst |
Definition at line 21 of file parallel_fill.hpp.
Fill a borrowed chunk with a given value.
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [out] | dst | the borrowed chunk in which to copy |
| [in] | value | the value to fill dst |
Definition at line 35 of file parallel_fill.hpp.
|
noexcept |
iterates over a nD domain using a given Kokkos execution space
| [in] | label | name for easy identification of the parallel_for_each algorithm |
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [in] | domain | the domain over which to iterate |
| [in] | f | a functor taking an index as parameter |
Definition at line 81 of file parallel_for_each.hpp.
|
noexcept |
iterates over a nD domain using a given Kokkos execution space
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [in] | domain | the domain over which to iterate |
| [in] | f | a functor taking an index as parameter |
Definition at line 96 of file parallel_for_each.hpp.
|
noexcept |
iterates over a nD domain using the Kokkos default execution space
| [in] | label | name for easy identification of the parallel_for_each algorithm |
| [in] | domain | the domain over which to iterate |
| [in] | f | a functor taking an index as parameter |
Definition at line 115 of file parallel_for_each.hpp.
iterates over a nD domain using the Kokkos default execution space
| [in] | domain | the domain over which to iterate |
| [in] | f | a functor taking an index as parameter |
Definition at line 125 of file parallel_for_each.hpp.
| auto ddc::parallel_transform | ( | std::string const & | label, |
| ChunkDst && | dst, | ||
| UnaryTransformOp && | transform | ||
| ) |
Transform a borrowed chunk with a given transform functor.
| [in] | label | A label used to tag parallel regions and memory allocations for profiling |
| [out] | dst | the borrowed chunk in which to copy |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be assignable to dst |
Definition at line 58 of file parallel_transform.hpp.
| auto ddc::parallel_transform | ( | ChunkDst && | dst, |
| UnaryTransformOp && | transform | ||
| ) |
Transform a borrowed chunk with a given transform functor.
| [out] | dst | the borrowed chunk in which to copy |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be assignable to dst |
Definition at line 76 of file parallel_transform.hpp.
| auto ddc::parallel_transform | ( | std::string const & | label, |
| ExecSpace const & | execution_space, | ||
| ChunkDst && | dst, | ||
| UnaryTransformOp && | transform | ||
| ) |
Transform a borrowed chunk with a given transform functor.
| [in] | label | A label used to tag parallel regions and memory allocations for profiling |
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [out] | dst | the borrowed chunk in which to copy |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be acceptable as input to reduce |
Definition at line 90 of file parallel_transform.hpp.
| auto ddc::parallel_transform | ( | ExecSpace const & | execution_space, |
| ChunkDst && | dst, | ||
| UnaryTransformOp && | transform | ||
| ) |
Transform a borrowed chunk with a given transform functor.
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [out] | dst | the borrowed chunk in which to copyW |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be acceptable as input to reduce |
Definition at line 113 of file parallel_transform.hpp.
|
noexcept |
A reduction over a nD domain using a given Kokkos execution space.
| [in] | label | name for easy identification of the parallel_for_each algorithm |
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [in] | domain | the range over which to apply the algorithm |
| [in] | neutral | the neutral element of the reduction operation |
| [in] | reduce | a binary FunctionObject that will be applied in unspecified order to the results of transform, the results of other reduce and neutral. |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be acceptable as input to reduce |
Definition at line 180 of file parallel_transform_reduce.hpp.
|
noexcept |
A reduction over a nD domain using a given Kokkos execution space.
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [in] | domain | the range over which to apply the algorithm |
| [in] | neutral | the neutral element of the reduction operation |
| [in] | reduce | a binary FunctionObject that will be applied in unspecified order to the results of transform, the results of other reduce and neutral. |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be acceptable as input to reduce |
Definition at line 207 of file parallel_transform_reduce.hpp.
|
noexcept |
A reduction over a nD domain using the Kokkos default execution space.
| [in] | label | name for easy identification of the parallel_for_each algorithm |
| [in] | domain | the range over which to apply the algorithm |
| [in] | neutral | the neutral element of the reduction operation |
| [in] | reduce | a binary FunctionObject that will be applied in unspecified order to the results of transform, the results of other reduce and neutral. |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be acceptable as input to reduce |
Definition at line 234 of file parallel_transform_reduce.hpp.
|
noexcept |
A reduction over a nD domain using the Kokkos default execution space.
| [in] | domain | the range over which to apply the algorithm |
| [in] | neutral | the neutral element of the reduction operation |
| [in] | reduce | a binary FunctionObject that will be applied in unspecified order to the results of transform, the results of other reduce and neutral. |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be acceptable as input to reduce |
Definition at line 259 of file parallel_transform_reduce.hpp.
| std::ostream & ddc::operator<< | ( | std::ostream & | os, |
| DDimImpl const & | mesh | ||
| ) |
Definition at line 270 of file periodic_sampling.hpp.
|
noexcept |
Lower bound index of the mesh.
Definition at line 279 of file periodic_sampling.hpp.
|
noexcept |
Lower bound index of the mesh.
Definition at line 286 of file periodic_sampling.hpp.
|
noexcept |
Spacing step of the mesh.
Definition at line 293 of file periodic_sampling.hpp.
| PrinterOptions ddc::set_print_options | ( | PrinterOptions | options = PrinterOptions() | ) |
| PrinterOptions ddc::get_print_options | ( | ) |
| std::ostream & ddc::print_content | ( | std::ostream & | os, |
| ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const & | chunk_span | ||
| ) |
| std::ostream & ddc::print_type_info | ( | std::ostream & | os, |
| ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const & | chunk_span | ||
| ) |
| std::ostream & ddc::print | ( | std::ostream & | os, |
| ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const & | chunk_span | ||
| ) |
| std::ostream & ddc::print_full | ( | std::ostream & | os, |
| ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const & | chunk_span | ||
| ) |
| std::ostream & ddc::operator<< | ( | std::ostream & | os, |
| ChunkSpan< ElementType, SupportType, LayoutStridedPolicy, MemorySpace > const & | chunk_span | ||
| ) |
|
constexpr |
Definition at line 496 of file sparse_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 522 of file sparse_discrete_domain.hpp.
|
constexprnoexcept |
Remove the dimensions DDimsB from DDom_a.
| [in] | DDom_a | The discrete domain on which to remove dimensions |
Definition at line 537 of file sparse_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 578 of file sparse_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 597 of file sparse_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 604 of file sparse_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 611 of file sparse_discrete_domain.hpp.
|
noexcept |
Definition at line 65 of file strided_discrete_domain.hpp.
|
constexpr |
Definition at line 463 of file strided_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 490 of file strided_discrete_domain.hpp.
|
constexprnoexcept |
Remove the dimensions DDimsB from DDom_a.
| [in] | DDom_a | The discrete domain on which to remove dimensions |
Definition at line 505 of file strided_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 538 of file strided_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 557 of file strided_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 564 of file strided_discrete_domain.hpp.
|
constexprnoexcept |
Definition at line 571 of file strided_discrete_domain.hpp.
|
noexcept |
A reduction over a nD domain in serial.
| [in] | domain | the range over which to apply the algorithm |
| [in] | neutral | the neutral element of the reduction operation |
| [in] | reduce | a binary FunctionObject that will be applied in unspecified order to the results of transform, the results of other reduce and neutral. |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be acceptable as input to reduce |
Definition at line 126 of file transform_reduce.hpp.
|
noexcept |
A reduction over a nD domain in serial.
Can be called from a device kernel.
| [in] | domain | the range over which to apply the algorithm |
| [in] | neutral | the neutral element of the reduction operation |
| [in] | reduce | a binary FunctionObject that will be applied in unspecified order to the results of transform, the results of other reduce and neutral. |
| [in] | transform | a unary FunctionObject that will be applied to each element of the input range. The return type must be acceptable as input to reduce |
Definition at line 149 of file transform_reduce.hpp.
|
constexprnoexcept |
Construct a bounded dimension without attributes.
| n | number of elements |
n Definition at line 20 of file trivial_space.hpp.
|
constexprnoexcept |
Construct a half bounded dimension without attributes.
Definition at line 30 of file trivial_space.hpp.
| std::ostream & ddc::operator<< | ( | std::ostream & | os, |
| DDimImpl const & | mesh | ||
| ) |
Definition at line 240 of file uniform_point_sampling.hpp.
|
constexpr |
Definition at line 248 of file uniform_point_sampling.hpp.
| DDimFx::template Impl< DDimFx, Kokkos::HostSpace > ddc::init_fourier_space | ( | ddc::DiscreteDomain< DDimX > | x_mesh | ) |
Initialize a Fourier discrete dimension.
Initialize the (1D) discrete space representing the Fourier discrete dimension associated to the (1D) mesh passed as argument. It is a N-periodic PeriodicSampling with a periodic window of width 2*pi/dx.
This value comes from the Nyquist-Shannon theorem: the period of the spectral domain is N*dk = 2*pi/dx. Adding to this the relations dx = (xmax-xmin)/(N-1), and dk = (kmax-kmin)/(N-1), we get kmax-kmin = 2*pi*(N-1)^2/N/(xmax-xmin), which is used in the implementation (xmax, xmin, kmin and kmax are the centers of lower and upper cells inside a single period of the meshes).
| DDimFx | A PeriodicSampling representing the Fourier discrete dimension. |
| DDimX | The type of the original discrete dimension. |
| x_mesh | The DiscreteDomain representing the (1D) original mesh. |
| ddc::DiscreteDomain< DDimFx... > ddc::fourier_mesh | ( | ddc::DiscreteDomain< DDimX... > | x_mesh, |
| bool | C2C | ||
| ) |
Get the Fourier mesh.
Compute the Fourier (or spectral) mesh on which the Discrete Fourier Transform of a discrete function is defined.
| x_mesh | The DiscreteDomain representing the original mesh. |
| C2C | A flag indicating if a complex-to-complex DFT is going to be performed. Indeed, in this case the two meshes have same number of points, whereas for real-to-complex or complex-to-real DFT, each complex value of the Fourier-transformed function contains twice more information, and thus only half (actually Nx*Ny*(Nz/2+1) for 3D R2C FFT to take in account mode 0) values are needed (cf. DFT conjugate symmetry property for more information about this). |
| void ddc::fft | ( | ExecSpace const & | exec_space, |
| ddc::ChunkSpan< Tout, ddc::DiscreteDomain< DDimFx... >, LayoutOut, MemorySpace > | out, | ||
| ddc::ChunkSpan< Tin, ddc::DiscreteDomain< DDimX... >, LayoutIn, MemorySpace > | in, | ||
| ddc::kwArgs_fft | kwargs = {ddc::FFT_Normalization::OFF} |
||
| ) |
Perform a direct Fast Fourier Transform.
Compute the discrete Fourier transform of a function using the specialized implementation for the Kokkos::ExecutionSpace of the FFT algorithm.
| Tin | The type of the input elements (float, Kokkos::complex<float>, double or Kokkos::complex<double>). |
| Tout | The type of the output elements (Kokkos::complex<float> or Kokkos::complex<double>). |
| DDimFx... | The parameter pack of the Fourier discrete dimensions. |
| DDimX... | The parameter pack of the original discrete dimensions. |
| ExecSpace | The type of the Kokkos::ExecutionSpace on which the FFT is performed. It determines which specialized backend is used (ie. fftw, cuFFT...). |
| MemorySpace | The type of the Kokkos::MemorySpace on which are stored the input and output discrete functions. |
| LayoutIn | The layout of the Chunkspan representing the input discrete function. |
| LayoutOut | The layout of the Chunkspan representing the output discrete function. |
| exec_space | The Kokkos::ExecutionSpace on which the FFT is performed. |
| out | The output discrete function, represented as a ChunkSpan storing values on a spectral mesh. |
| in | The input discrete function, represented as a ChunkSpan storing values on a mesh. |
| kwargs | The kwArgs_fft configuring the FFT. |
| void ddc::ifft | ( | ExecSpace const & | exec_space, |
| ddc::ChunkSpan< Tout, ddc::DiscreteDomain< DDimX... >, LayoutOut, MemorySpace > | out, | ||
| ddc::ChunkSpan< Tin, ddc::DiscreteDomain< DDimFx... >, LayoutIn, MemorySpace > | in, | ||
| ddc::kwArgs_fft | kwargs = {ddc::FFT_Normalization::OFF} |
||
| ) |
Perform an inverse Fast Fourier Transform.
Compute the inverse discrete Fourier transform of a spectral function using the specialized implementation for the Kokkos::ExecutionSpace of the iFFT algorithm.
| Tin | The type of the input elements (Kokkos::complex<float> or Kokkos::complex<double>). |
| Tout | The type of the output elements (float, Kokkos::complex<float>, double or Kokkos::complex<double>). |
| DDimX... | The parameter pack of the original discrete dimensions. |
| DDimFx... | The parameter pack of the Fourier discrete dimensions. |
| ExecSpace | The type of the Kokkos::ExecutionSpace on which the iFFT is performed. It determines which specialized backend is used (ie. fftw, cuFFT...). |
| MemorySpace | The type of the Kokkos::MemorySpace on which are stored the input and output discrete functions. |
| LayoutIn | The layout of the Chunkspan representing the input discrete function. |
| LayoutOut | The layout of the Chunkspan representing the output discrete function. |
| exec_space | The Kokkos::ExecutionSpace on which the iFFT is performed. |
| out | The output discrete function, represented as a ChunkSpan storing values on a mesh. |
| in | The input discrete function, represented as a ChunkSpan storing values on a spectral mesh. |
| kwargs | The kwArgs_fft configuring the iFFT. |
| ddc::ChunkSpan< Real, ddc::DiscreteDomain< DDim >, Layout, MemorySpace > ddc::integrals | ( | ExecSpace const & | execution_space, |
| ddc::ChunkSpan< Real, ddc::DiscreteDomain< DDim >, Layout, MemorySpace > | int_vals | ||
| ) |
Compute the integrals of the B-splines.
The integral of each of the B-splines over their support within the domain on which this basis was defined.
| [in] | execution_space | a Kokkos execution space where the loop will be executed on |
| [out] | int_vals | The values of the integrals. It has to be a 1D Chunkspan of size (nbasis). |
Definition at line 167 of file integrals.hpp.
| std::ostream & ddc::operator<< | ( | std::ostream & | os, |
| ddc::SplineBuilderClosure | sbc | ||
| ) |
Prints a closure relation in a std::ostream.
| os | The stream in which the closure relation is printed. |
| sbc | The closure relation. |
Definition at line 12 of file spline_builder_closures.cpp.
|
constexpr |
Return the number of equations needed to describe a given closure relation.
| sbc | The closure relation. |
| degree | The degree of the spline. |
Definition at line 41 of file spline_builder_closures.hpp.
|
inlineconstexpr |
|
inlineconstexpr |
Definition at line 38 of file chunk_span.hpp.
|
inlineconstexpr |
Definition at line 43 of file chunk_span.hpp.
Definition at line 13 of file chunk_traits.hpp.
Definition at line 16 of file chunk_traits.hpp.
|
inlineconstexpr |
Definition at line 19 of file chunk_traits.hpp.
Definition at line 22 of file chunk_traits.hpp.
|
inlineconstexpr |
Definition at line 54 of file chunk_traits.hpp.
|
inlineconstexpr |
Definition at line 40 of file discrete_domain.hpp.
|
inlineconstexpr |
Definition at line 40 of file discrete_element.hpp.
|
inlineconstexpr |
Definition at line 39 of file discrete_vector.hpp.
|
constexpr |
Definition at line 204 of file non_uniform_point_sampling.hpp.
|
constexpr |
Definition at line 260 of file periodic_sampling.hpp.
|
inlineconstexpr |
Definition at line 39 of file sparse_discrete_domain.hpp.
|
inlineconstexpr |
Definition at line 39 of file strided_discrete_domain.hpp.
|
constexpr |
Definition at line 244 of file type_seq.hpp.
|
constexpr |
Returns the number of types in a TypeSeq.
Definition at line 248 of file type_seq.hpp.
|
constexpr |
Definition at line 251 of file type_seq.hpp.
Definition at line 254 of file type_seq.hpp.
Definition at line 257 of file type_seq.hpp.
Definition at line 260 of file type_seq.hpp.
|
constexpr |
Definition at line 263 of file type_seq.hpp.
|
constexpr |
Definition at line 266 of file type_seq.hpp.
|
constexpr |
Definition at line 270 of file type_seq.hpp.
|
constexpr |
Definition at line 274 of file type_seq.hpp.
|
constexpr |
Definition at line 293 of file type_seq.hpp.
|
constexpr |
Definition at line 230 of file uniform_point_sampling.hpp.
|
constexpr |
Indicates if a tag corresponds to non-uniform B-splines or not.
| The | presumed non-uniform B-splines. |
Definition at line 410 of file bsplines_non_uniform.hpp.
|
constexpr |
Indicates if a tag corresponds to uniform B-splines or not.
| The | presumed uniform B-splines. |
Definition at line 390 of file bsplines_uniform.hpp.
|
inlineconstexpr |
A helper to check if T is a SplineBuilder.
| T | The type to be checked if is a SplineBuilder |
Definition at line 49 of file spline_traits.hpp.
|
inlineconstexpr |
A helper to check if T is a SplineBuilder2D.
| T | The type to be checked if is a SplineBuilder2D |
Definition at line 88 of file spline_traits.hpp.
|
inlineconstexpr |
A helper to check if T is a SplineBuilder3D.
| T | The type to be checked if is a SplineBuilder3D |
Definition at line 135 of file spline_traits.hpp.
|
inlineconstexpr |
A helper to check if T is a SplineEvaluator.
| T | The type to be checked if is a SplineEvaluator |
Definition at line 180 of file spline_traits.hpp.
|
inlineconstexpr |
A helper to check if T is a SplineEvaluator2D.
| T | The type to be checked if is a SplineEvaluator2D |
Definition at line 241 of file spline_traits.hpp.
|
inlineconstexpr |
A helper to check if T is a SplineEvaluator3D.
| T | The type to be checked if is a SplineEvaluator3D |
Definition at line 316 of file spline_traits.hpp.
|
inlineconstexpr |
A helper to check if T is a SplineEvaluatorND.
| T | The type to be checked if is a SplineEvaluatorND |
Definition at line 340 of file spline_traits.hpp.
|
inlineconstexpr |
A helper to check if SplineEvaluator is admissible for SplineBuilder.
| Builder | The builder type to be checked if it is admissible for Evaluator |
| Evaluator | The evaluator type to be checked if it is admissible for Builder |
Definition at line 590 of file spline_traits.hpp.