DDC 0.5.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< const ElementType, Kokkos::dextents< std::size_t, SupportType::rank()>, LayoutStridedPolicy >
 
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

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 308 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 314 of file chunk_common.hpp.

◆ const_allocation_mdspan_type

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

Definition at line 319 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 324 of file chunk_common.hpp.

◆ extents_type

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

Definition at line 326 of file chunk_common.hpp.

◆ layout_type

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

Definition at line 328 of file chunk_common.hpp.

◆ accessor_type

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

Definition at line 330 of file chunk_common.hpp.

◆ mapping_type

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

Definition at line 332 of file chunk_common.hpp.

◆ element_type

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

Definition at line 334 of file chunk_common.hpp.

◆ value_type

Definition at line 336 of file chunk_common.hpp.

◆ size_type

Definition at line 338 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 340 of file chunk_common.hpp.

◆ reference

Definition at line 342 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 476 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 491 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 369 of file chunk_common.hpp.

◆ static_extent()

Definition at line 374 of file chunk_common.hpp.

◆ is_always_unique()

Definition at line 379 of file chunk_common.hpp.

◆ is_always_exhaustive()

Definition at line 384 of file chunk_common.hpp.

◆ is_always_strided()

Definition at line 389 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 409 of file chunk_common.hpp.

◆ extent()

◆ size()

◆ mapping()

◆ is_unique()

Definition at line 430 of file chunk_common.hpp.

◆ is_exhaustive()

Definition at line 435 of file chunk_common.hpp.

◆ is_strided()

Definition at line 440 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 454 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 463 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 527 of file chunk_common.hpp.

◆ allocation_mdspan()

Provide a modifiable view of the data.

Returns
a modifiable view of the data

Definition at line 535 of file chunk_common.hpp.

Friends And Related Symbol Documentation

◆ ChunkCommon

Definition at line 346 of file chunk_common.hpp.

◆ ChunkSpan

Definition at line 349 of file chunk_common.hpp.

◆ Chunk

Definition at line 352 of file chunk_common.hpp.

Member Data Documentation

◆ m_allocation_mdspan

The raw view of the data.

Definition at line 358 of file chunk_common.hpp.

◆ m_domain

The mesh on which this chunk is defined.

Definition at line 361 of file chunk_common.hpp.


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