specfem::point::edge_index

template<specfem::dimension::type DimensionTag>
struct edge_index

Primary template for edge index in spectral element meshes.

Template Parameters:

DimensionTag – Spatial dimension (dim2 or dim3)

Dimension-specific Specializations

template<>
struct edge_index<specfem::dimension::type::dim2> : public specfem::data_access::Accessor<specfem::data_access::AccessorType::point, specfem::data_access::DataClassType::edge_index, specfem::dimension::type::dim2, false>

2D edge index for spectral element edge access

Provides indexing information to locate and access data at specific points along edges in 2D spectral element meshes. Contains both element-level indices (element, edge) and local coordinate indices within the edge.

Public Functions

edge_index() = default

Default constructor.

inline edge_index(const int ispec_, const int iedge_, const int ipoint_, const int iz_, const int ix_, const specfem::mesh_entity::dim2::type edge_type_)

Constructs edge index with all indices.

Parameters:
  • ispec_ – Element index.

  • iedge_ – Edge index (0-3 for 2D quad elements).

  • ipoint_ – Point index along edge.

  • iz_ – Local z-coordinate index.

  • ix_ – Local x-coordinate index.

  • edge_type_ – Mesh entity type for the edge.

Public Members

int ispec

Spectral element index.

int iedge

Local edge index within the iterator.

int ipoint

Point index along the edge.

int iz

Local z-coordinate index within element.

int ix

Local x-coordinate index within element.

specfem::mesh_entity::dim2::type edge_type

Mesh entity type for the edge.

Public Static Attributes

static constexpr auto dimension_tag = specfem::dimension::type::dim2

Dimension tag for 2D specialization.

template<>
struct edge_index<specfem::dimension::type::dim3> : public specfem::data_access::Accessor<specfem::data_access::AccessorType::point, specfem::data_access::DataClassType::edge_index, specfem::dimension::type::dim3, false>

3D edge index for spectral element edge access

Provides indexing information to locate and access data at specific points along edges in 3D spectral element meshes. Contains both element-level indices (element, edge) and local coordinate indices within the edge.

Public Functions

edge_index() = default

Default constructor.

inline edge_index(const int ispec_, const int iedge_, const int ipoint_, const int iz_, const int iy_, const int ix_, const specfem::mesh_entity::dim3::type edge_type_)

Constructs edge index with all indices.

Parameters:
  • ispec_ – Element index.

  • iedge_ – Edge index (0-11 for 3D hexahedral elements).

  • ipoint_ – Point index along edge.

  • iz_ – Local z-coordinate index.

  • iy_ – Local y-coordinate index.

  • ix_ – Local x-coordinate index.

  • edge_type_ – Mesh entity type for the edge.

Public Members

int ispec

Spectral element index.

int iedge

Local edge index within the iterator.

int ipoint

Point index along the edge.

int iz

Local z-coordinate index within element.

int iy

Local y-coordinate index within element.

int ix

Local x-coordinate index within element.

specfem::mesh_entity::dim3::type edge_type

Mesh entity type for the edge.

Public Static Attributes

static constexpr auto dimension_tag = specfem::dimension::type::dim3

Dimension tag for 3D specialization.