DDC 0.6.0
Loading...
Searching...
No Matches
ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy > Class Template Reference

#include <chunk_common.hpp>

Inheritance diagram for ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >:
Inheritance graph
Collaboration diagram for ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >:
Collaboration graph

Public Types

using discrete_domain_type = SupportType
 
using allocation_mdspan_type = Kokkos::mdspan< ElementType, Kokkos::dextents< std::size_t, SupportType::rank()>, LayoutStridedPolicy >
 The dereferenceable part of the co-domain but with a different domain, starting at 0.
 
using const_allocation_mdspan_type = Kokkos::mdspan< ElementType const, Kokkos::dextents< std::size_t, SupportType::rank()>, LayoutStridedPolicy >
 
using discrete_element_type = typename discrete_domain_type::discrete_element_type
 
using discrete_vector_type = typename discrete_domain_type::discrete_vector_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

KOKKOS_FUNCTION constexpr accessor_type accessor () const
 
KOKKOS_FUNCTION constexpr SupportType::discrete_vector_type extents () const noexcept
 
template<class QueryDDim >
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
 
template<class QueryDDim >
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.
 
template<class... QueryDDims>
KOKKOS_FUNCTION constexpr DiscreteDomain< QueryDDims... > domain () const noexcept
 Provide access to the domain on which this chunk is defined.
 

Static Public Member Functions

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
 

Protected Member Functions

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.
 
template<class Mapping = mapping_type, std::enable_if_t< std::is_constructible_v< Mapping, extents_type >, int > = 0>
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 ChunkCommonoperator= (ChunkCommon const &other)=default
 Copy-assigns a new value to this ChunkCommon, yields a new view to the same data.
 
KOKKOS_DEFAULTED_FUNCTION constexpr ChunkCommonoperator= (ChunkCommon &&other) noexcept=default
 Move-assigns a new value to this ChunkCommon.
 
KOKKOS_FUNCTION constexpr ElementTypedata_handle () const
 Access to the underlying allocation pointer.
 
KOKKOS_FUNCTION constexpr allocation_mdspan_type allocation_mdspan () const
 Provide a modifiable view of the data.
 

Protected Attributes

allocation_mdspan_type m_allocation_mdspan
 The raw view of the data.
 
SupportType m_domain
 The mesh on which this chunk is defined.
 

Friends

template<class , class , class >
class ChunkCommon
 
template<class , class , class , class >
class ChunkSpan
 
template<class , class , class >
class Chunk
 

Detailed Description

template<class ElementType, class SupportType, class LayoutStridedPolicy>
class ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >

Definition at line 310 of file chunk_common.hpp.

Member Typedef Documentation

◆ discrete_domain_type

◆ allocation_mdspan_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::allocation_mdspan_type = Kokkos::mdspan< ElementType, Kokkos::dextents<std::size_t, SupportType::rank()>, LayoutStridedPolicy>

The dereferenceable part of the co-domain but with a different domain, starting at 0.

Definition at line 316 of file chunk_common.hpp.

◆ const_allocation_mdspan_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::const_allocation_mdspan_type = Kokkos::mdspan< ElementType const, Kokkos::dextents<std::size_t, SupportType::rank()>, LayoutStridedPolicy>

Definition at line 321 of file chunk_common.hpp.

◆ discrete_element_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::discrete_element_type = typename discrete_domain_type::discrete_element_type

Definition at line 326 of file chunk_common.hpp.

◆ discrete_vector_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::discrete_vector_type = typename discrete_domain_type::discrete_vector_type

Definition at line 328 of file chunk_common.hpp.

◆ extents_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::extents_type = typename allocation_mdspan_type::extents_type

Definition at line 330 of file chunk_common.hpp.

◆ layout_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::layout_type = typename allocation_mdspan_type::layout_type

Definition at line 332 of file chunk_common.hpp.

◆ accessor_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::accessor_type = typename allocation_mdspan_type::accessor_type

Definition at line 334 of file chunk_common.hpp.

◆ mapping_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::mapping_type = typename allocation_mdspan_type::mapping_type

Definition at line 336 of file chunk_common.hpp.

◆ element_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::element_type = typename allocation_mdspan_type::element_type

Definition at line 338 of file chunk_common.hpp.

◆ value_type

Definition at line 340 of file chunk_common.hpp.

◆ size_type

Definition at line 342 of file chunk_common.hpp.

◆ data_handle_type

using ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::data_handle_type = typename allocation_mdspan_type::data_handle_type

Definition at line 344 of file chunk_common.hpp.

◆ reference

Definition at line 346 of file chunk_common.hpp.

Constructor & Destructor Documentation

◆ ChunkCommon() [1/5]

◆ ChunkCommon() [2/5]

KOKKOS_FUNCTION constexpr ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::ChunkCommon ( allocation_mdspan_type  allocation_mdspan,
SupportType const domain 
)
inlineconstexprprotectednoexcept

Constructs a new ChunkCommon from scratch.

Parameters
allocation_mdspan
domain

Definition at line 480 of file chunk_common.hpp.

◆ ChunkCommon() [3/5]

template<class Mapping = mapping_type, std::enable_if_t< std::is_constructible_v< Mapping, extents_type >, int > = 0>
KOKKOS_FUNCTION constexpr ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::ChunkCommon ( ElementType ptr,
SupportType const domain 
)
inlineconstexprprotected

Constructs a new ChunkCommon from scratch.

Parameters
ptrthe allocation pointer to the data
domainthe domain that sustains the view

Definition at line 495 of file chunk_common.hpp.

◆ ChunkCommon() [4/5]

Constructs a new ChunkCommon by copy, yields a new view to the same data.

Parameters
otherthe ChunkCommon to copy

◆ ChunkCommon() [5/5]

Constructs a new ChunkCommon by move.

Parameters
otherthe ChunkCommon to move

◆ ~ChunkCommon()

Member Function Documentation

◆ rank()

◆ rank_dynamic()

Definition at line 373 of file chunk_common.hpp.

◆ static_extent()

Definition at line 378 of file chunk_common.hpp.

◆ is_always_unique()

Definition at line 383 of file chunk_common.hpp.

◆ is_always_exhaustive()

Definition at line 388 of file chunk_common.hpp.

◆ is_always_strided()

Definition at line 393 of file chunk_common.hpp.

◆ accessor()

◆ extents()

KOKKOS_FUNCTION constexpr SupportType::discrete_vector_type ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::extents ( ) const
inlineconstexprnoexcept

Definition at line 413 of file chunk_common.hpp.

◆ extent()

◆ size()

◆ mapping()

◆ is_unique()

Definition at line 434 of file chunk_common.hpp.

◆ is_exhaustive()

Definition at line 439 of file chunk_common.hpp.

◆ is_strided()

Definition at line 444 of file chunk_common.hpp.

◆ stride()

◆ domain() [1/2]

Provide access to the domain on which this chunk is defined.

Returns
the domain on which this chunk is defined

Definition at line 458 of file chunk_common.hpp.

◆ domain() [2/2]

template<class... QueryDDims>
KOKKOS_FUNCTION constexpr DiscreteDomain< QueryDDims... > ddc::ChunkCommon< ElementType, SupportType, LayoutStridedPolicy >::domain ( ) const
inlineconstexprnoexcept

Provide access to the domain on which this chunk is defined.

Returns
the domain on which this chunk is defined

Definition at line 467 of file chunk_common.hpp.

◆ operator=() [1/2]

Copy-assigns a new value to this ChunkCommon, yields a new view to the same data.

Parameters
otherthe ChunkCommon to copy
Returns
*this

◆ operator=() [2/2]

Move-assigns a new value to this ChunkCommon.

Parameters
otherthe ChunkCommon to move
Returns
*this

◆ data_handle()

Access to the underlying allocation pointer.

Returns
allocation pointer

Definition at line 531 of file chunk_common.hpp.

◆ allocation_mdspan()

Provide a modifiable view of the data.

Returns
a modifiable view of the data

Definition at line 539 of file chunk_common.hpp.

Friends And Related Symbol Documentation

◆ ChunkCommon

Definition at line 350 of file chunk_common.hpp.

◆ ChunkSpan

Definition at line 353 of file chunk_common.hpp.

◆ Chunk

Definition at line 356 of file chunk_common.hpp.

Member Data Documentation

◆ m_allocation_mdspan

The raw view of the data.

Definition at line 362 of file chunk_common.hpp.

◆ m_domain

The mesh on which this chunk is defined.

Definition at line 365 of file chunk_common.hpp.


The documentation for this class was generated from the following file: