specfem::chunk_edge::Index

template<specfem::element::dimension_tag DimensionTag, typename ViewType, typename TeamMemberType>
class Index : public specfem::execution::ChunkEdgeIndex<DimensionTag, ViewType, TeamMemberType>, public specfem::data_access::Accessor<specfem::datatype::AccessorType::chunk_edge, specfem::data_access::DataClassType::edge_index, DimensionTag, false>

Edge index for chunked edge operations in spectral element simulations.

Combines execution context with data access patterns for processing chunks of edges. Provides efficient indexing for edge-based computations such as interface coupling and boundary conditions.

Template Parameters:
  • DimensionTag – Spatial dimension (2D/3D)

  • ViewType – Kokkos view type for edge index storage

  • TeamMemberType – Kokkos team execution context

Public Types

using iterator_type = typename base_type::iterator_type

Iterator type for traversing elements in the chunk.

Public Functions

inline Index(const base_type &base)

Construct from existing chunk edge index base.

Parameters:

base – Base chunk edge index to wrap with data access layer

inline Index(const ViewType indices, const int &ngllz, const int &ngllx, const TeamMemberType &kokkos_index)

Construct with explicit parameters.

Parameters:
  • indices – Edge indices view

  • ngllz – Number of GLL points in z-dimension

  • ngllx – Number of GLL points in x-dimension

  • kokkos_index – Team member execution context

inline constexpr const TeamMemberType &get_policy_index() const

Get the Kokkos policy index (team member) for this chunk.

Returns:

const KokkosIndexType& Reference to the Kokkos team member that is responsible for processing this chunk

inline const index_type get_index() const

Get the chunk-specific index.

Returns:

const index_type& Reference to the chunk index containing metadata about this specific chunk of edges

inline const iterator_type &get_iterator() const

Get the team-level iterator for processing edges in this chunk.

Returns:

const iterator_type& Reference to the ChunkEdgeIterator that can be used to iterate over individual edge points within this chunk

Private Types

using base_type = specfem::execution::ChunkEdgeIndex<DimensionTag, ViewType, TeamMemberType>

Base execution index type for chunk edge operations.

Private Members

TeamMemberType kokkos_index

Kokkos team member for this chunk.

iterator_type iterator

Team-level iterator for edge processing within chunk

ViewType edges

View of mesh edges in this chunk.