#include <chunk.hpp>
Public Types | |
using | span_type = ChunkSpan< ElementType, SupportType, Kokkos::layout_right, typename Allocator::memory_space > |
type of a span of this full chunk | |
using | view_type = ChunkSpan< ElementType const, SupportType, Kokkos::layout_right, typename Allocator::memory_space > |
type of a view of this full chunk | |
using | allocation_mdspan_type = typename base_type::allocation_mdspan_type |
The dereferenceable part of the co-domain but with indexing starting at 0. | |
using | const_allocation_mdspan_type = typename base_type::const_allocation_mdspan_type |
using | discrete_domain_type = typename base_type::discrete_domain_type |
using | memory_space = typename Allocator::memory_space |
using | discrete_element_type = typename base_type::discrete_element_type |
using | extents_type = typename base_type::extents_type |
using | layout_type = typename base_type::layout_type |
using | mapping_type = typename base_type::mapping_type |
using | element_type = typename base_type::element_type |
using | value_type = typename base_type::value_type |
using | size_type = typename base_type::size_type |
using | data_handle_type = typename base_type::data_handle_type |
using | reference = typename base_type::reference |
![]() | |
using | discrete_domain_type = SupportType |
using | allocation_mdspan_type = Kokkos::mdspan< ElementType, Kokkos::dextents< std::size_t, SupportType::rank()>, Kokkos::layout_right > |
The dereferenceable part of the co-domain but with a different domain, starting at 0. | |
using | const_allocation_mdspan_type = Kokkos::mdspan< const ElementType, Kokkos::dextents< std::size_t, SupportType::rank()>, Kokkos::layout_right > |
using | discrete_element_type = typename discrete_domain_type::discrete_element_type |
using | extents_type = typename allocation_mdspan_type::extents_type |
using | layout_type = typename allocation_mdspan_type::layout_type |
using | accessor_type = typename allocation_mdspan_type::accessor_type |
using | mapping_type = typename allocation_mdspan_type::mapping_type |
using | element_type = typename allocation_mdspan_type::element_type |
using | value_type = typename allocation_mdspan_type::value_type |
using | size_type = typename allocation_mdspan_type::size_type |
using | data_handle_type = typename allocation_mdspan_type::data_handle_type |
using | reference = typename allocation_mdspan_type::reference |
Public Member Functions | |
Chunk ()=default | |
Empty Chunk. | |
Chunk (std::string const &label, SupportType const &domain, Allocator allocator=Allocator()) | |
Construct a labeled Chunk on a domain with uninitialized values. | |
Chunk (SupportType const &domain, Allocator allocator=Allocator()) | |
Construct a Chunk on a domain with uninitialized values. | |
Chunk (Chunk const &other)=delete | |
Deleted: use deepcopy instead. | |
Chunk (Chunk &&other) noexcept | |
Constructs a new Chunk by move. | |
~Chunk () noexcept | |
Chunk & | operator= (Chunk const &other)=delete |
Deleted: use deepcopy instead. | |
Chunk & | operator= (Chunk &&other) noexcept |
Move-assigns a new value to this field. | |
template<class... QueryDDims> | |
auto | operator[] (DiscreteElement< QueryDDims... > const &slice_spec) const |
Slice out some dimensions. | |
template<class... QueryDDims> | |
auto | operator[] (DiscreteElement< QueryDDims... > const &slice_spec) |
Slice out some dimensions. | |
template<class... DElems> | |
element_type const & | operator() (DElems const &... delems) const noexcept |
Element access using a list of DiscreteElement. | |
template<class... DElems> | |
element_type & | operator() (DElems const &... delems) noexcept |
Element access using a list of DiscreteElement. | |
char const * | label () const |
Returns the label of the Chunk. | |
ElementType const * | data_handle () const |
Access to the underlying allocation pointer. | |
ElementType * | data_handle () |
Access to the underlying allocation pointer. | |
const_allocation_mdspan_type | allocation_mdspan () const |
Provide a mdspan on the memory allocation. | |
allocation_mdspan_type | allocation_mdspan () |
Provide a mdspan on the memory allocation. | |
auto | allocation_kokkos_view () |
Provide an unmanaged Kokkos::View on the memory allocation. | |
auto | allocation_kokkos_view () const |
Provide an unmanaged Kokkos::View on the memory allocation. | |
view_type | span_cview () const |
view_type | span_view () const |
span_type | span_view () |
![]() | |
KOKKOS_FUNCTION constexpr accessor_type | accessor () const |
KOKKOS_FUNCTION constexpr SupportType::discrete_vector_type | extents () const noexcept |
KOKKOS_FUNCTION constexpr size_type | extent () const noexcept |
KOKKOS_FUNCTION constexpr size_type | size () const noexcept |
KOKKOS_FUNCTION constexpr mapping_type | mapping () const noexcept |
KOKKOS_FUNCTION constexpr bool | is_unique () const noexcept |
KOKKOS_FUNCTION constexpr bool | is_exhaustive () const noexcept |
KOKKOS_FUNCTION constexpr bool | is_strided () const noexcept |
KOKKOS_FUNCTION constexpr size_type | stride () const |
KOKKOS_FUNCTION constexpr SupportType | domain () const noexcept |
Provide access to the domain on which this chunk is defined. | |
KOKKOS_FUNCTION constexpr DiscreteDomain< QueryDDims... > | domain () const noexcept |
Provide access to the domain on which this chunk is defined. | |
Protected Types | |
using | base_type = ChunkCommon< ElementType, SupportType, Kokkos::layout_right > |
Friends | |
template<class , class , class > | |
class | Chunk |
Additional Inherited Members | |
![]() | |
static KOKKOS_FUNCTION constexpr int | rank () noexcept |
static KOKKOS_FUNCTION constexpr int | rank_dynamic () noexcept |
static KOKKOS_FUNCTION constexpr size_type | static_extent (std::size_t r) noexcept |
static KOKKOS_FUNCTION constexpr bool | is_always_unique () noexcept |
static KOKKOS_FUNCTION constexpr bool | is_always_exhaustive () noexcept |
static KOKKOS_FUNCTION constexpr bool | is_always_strided () noexcept |
![]() | |
KOKKOS_DEFAULTED_FUNCTION constexpr | ChunkCommon ()=default |
Empty ChunkCommon. | |
KOKKOS_FUNCTION constexpr | ChunkCommon (allocation_mdspan_type allocation_mdspan, SupportType const &domain) noexcept |
Constructs a new ChunkCommon from scratch. | |
KOKKOS_FUNCTION constexpr | ChunkCommon (ElementType *ptr, SupportType const &domain) |
Constructs a new ChunkCommon from scratch. | |
KOKKOS_DEFAULTED_FUNCTION constexpr | ChunkCommon (ChunkCommon const &other)=default |
Constructs a new ChunkCommon by copy, yields a new view to the same data. | |
KOKKOS_DEFAULTED_FUNCTION constexpr | ChunkCommon (ChunkCommon &&other) noexcept=default |
Constructs a new ChunkCommon by move. | |
KOKKOS_DEFAULTED_FUNCTION | ~ChunkCommon () noexcept=default |
KOKKOS_DEFAULTED_FUNCTION constexpr ChunkCommon & | operator= (ChunkCommon const &other)=default |
Copy-assigns a new value to this ChunkCommon, yields a new view to the same data. | |
KOKKOS_DEFAULTED_FUNCTION constexpr ChunkCommon & | operator= (ChunkCommon &&other) noexcept=default |
Move-assigns a new value to this ChunkCommon. | |
KOKKOS_FUNCTION constexpr ElementType * | data_handle () const |
Access to the underlying allocation pointer. | |
KOKKOS_FUNCTION constexpr allocation_mdspan_type | allocation_mdspan () const |
Provide a modifiable view of the data. | |
![]() | |
allocation_mdspan_type | m_allocation_mdspan |
The raw view of the data. | |
SupportType | m_domain |
The mesh on which this chunk is defined. | |
|
protected |
using ddc::Chunk< ElementType, SupportType, Allocator >::span_type = ChunkSpan< ElementType, SupportType, Kokkos::layout_right, typename Allocator::memory_space> |
using ddc::Chunk< ElementType, SupportType, Allocator >::view_type = ChunkSpan< ElementType const, SupportType, Kokkos::layout_right, typename Allocator::memory_space> |
using ddc::Chunk< ElementType, SupportType, Allocator >::allocation_mdspan_type = typename base_type::allocation_mdspan_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::const_allocation_mdspan_type = typename base_type::const_allocation_mdspan_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::discrete_domain_type = typename base_type::discrete_domain_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::memory_space = typename Allocator::memory_space |
using ddc::Chunk< ElementType, SupportType, Allocator >::discrete_element_type = typename base_type::discrete_element_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::extents_type = typename base_type::extents_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::layout_type = typename base_type::layout_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::mapping_type = typename base_type::mapping_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::element_type = typename base_type::element_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::value_type = typename base_type::value_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::size_type = typename base_type::size_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::data_handle_type = typename base_type::data_handle_type |
using ddc::Chunk< ElementType, SupportType, Allocator >::reference = typename base_type::reference |
|
default |
Empty Chunk.
|
inlineexplicit |
|
inlineexplicit |
|
delete |
Deleted: use deepcopy instead.
|
inlinenoexcept |
|
inlinenoexcept |
|
delete |
Deleted: use deepcopy instead.
|
inlinenoexcept |
|
inline |
|
inline |
|
inlinenoexcept |
Element access using a list of DiscreteElement.
delems | discrete coordinates |
|
inlinenoexcept |
Element access using a list of DiscreteElement.
delems | discrete coordinates |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |