specfem::execution::MappedChunkedDomainIterator

template<specfem::element::dimension_tag DimensionTag, typename ParallelConfig, typename ViewType, typename G = specfem::mesh_entity::Grid<>>
class MappedChunkedDomainIterator : public specfem::execution::ChunkedDomainIterator<DimensionTag, ParallelConfig, ViewType, specfem::mesh_entity::Grid<>>

Public Types

using execution_space = typename base_type::execution_space

Execution space type.

Public Functions

inline const index_type operator()(const policy_index_type &team) const

Compute the index for a given policy index.

The operator assigns a range of elements to each team.

Parameters:

team – The policy index for which to compute the chunked domain index.

Returns:

index_type The computed index type.

Public Static Functions

static inline int scratch_size_max(int level)

Get the maximum scratch size for the given level.

This method returns the maximum scratch size for the given level by calling the base policy’s scratch_size_max method.

Parameters:

level – The level for which to get the maximum scratch size.

Returns:

int The maximum scratch size for the given level.

Public Static Attributes

static constexpr PolicyType policy_type = PolicyType::KokkosPolicy

Indicates this is a Kokkos policy.

static constexpr bool is_top_level_policy = true

Indicates this is a top-level policy.

specfem::execution::MappedChunkElementIndex

template<specfem::element::dimension_tag DimensionTag, typename SIMD, typename ViewType, typename TeamMemberType, typename G = specfem::mesh_entity::Grid<>, int ChunkSize = 1>
class MappedChunkElementIndex : public specfem::execution::ChunkElementIndex<DimensionTag, SIMD, ViewType, TeamMemberType, specfem::mesh_entity::Grid<>, 1>

Public Functions

inline constexpr const TeamMemberType get_policy_index() const

Get the policy index that defined this chunk element index.

Returns:

const TeamMemberType The policy index that defined this chunk element index.

inline Kokkos::pair<typename ViewType::value_type, typename ViewType::value_type> get_range() const

Get a pair representing the range of indices in this chunk.

Returns:

Kokkos::pair<typename ViewType::value_type, typename ViewType::value_type> A pair containing the first and last index in the chunk.

specfem::execution::MappedChunkElementIterator

template<specfem::element::dimension_tag DimensionTag, typename SIMD, typename ViewType, typename TeamMemberType, typename G = specfem::mesh_entity::Grid<>, int ChunkSize = 1>
class MappedChunkElementIterator : public specfem::execution::ChunkElementIterator<DimensionTag, SIMD, ViewType, TeamMemberType, specfem::mesh_entity::Grid<>, 1>

Public Types

using execution_space = typename base_type::execution_space

Execution space type.

Public Functions

inline const index_type operator()(const policy_index_type &i) const

Operator to get the index for a given policy index.

Parameters:

i – The policy index to convert to an index.

Returns:

const index_type The index corresponding to the policy index.

Public Static Attributes

static constexpr PolicyType policy_type

Indicates this is a Kokkos policy.

static constexpr bool is_top_level_policy

Indicates this is not a top-level policy.

specfem::execution::MappedPointIndex

template<specfem::element::dimension_tag DimensionTag, typename KokkosIndexType, bool UseSIMD, typename ExecutionSpace>
class MappedPointIndex

Public Types

using iterator_type = VoidIterator<ExecutionSpace>

Iterator type for this index.

Public Static Functions

static inline MappedPointIndex end()

Construct an “end” sentinel index — tail-skip marker for the chunked iterator.