specfem::dimension::type

enum class specfem::dimension::type

Spatial dimension types for finite element simulations.

Used as template parameters throughout the codebase to distinguish between 2D and 3D implementations.

Values:

enumerator dim2

2D spatial dimension

enumerator dim3

3D spatial dimension

specfem::dimension::dimension

template<specfem::dimension::type DimensionTag>
class dimension

Compile-time dimension traits and utilities.

Provides dimension-specific constants and string conversion. Template specializations define dimension-dependent behavior.

// Get dimension info at compile time
using dim_2d = specfem::dimension::dimension<specfem::dimension::type::dim2>;
static_assert(dim_2d::dim == 2);
std::string name = dim_2d::to_string(); // "2D"

Template Parameters:

DimensionTag – Spatial dimension (dim2 or dim3)

Dimension-Specific Implementations

template<>
class dimension<specfem::dimension::type::dim2>

2D dimension specialization.

Provides compile-time constants for 2D finite element computations.

Public Static Functions

static inline std::string to_string()

Get dimension as string.

Returns:

“2D” string representation

Public Static Attributes

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

Dimension type tag.

static constexpr int dim = 2

Spatial dimension count.

template<>
class dimension<specfem::dimension::type::dim3>

3D dimension specialization.

Provides compile-time constants for 3D finite element computations.

Public Static Functions

static inline std::string to_string()

Get dimension as string.

Returns:

“3D” string representation

Public Static Attributes

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

Dimension type tag.

static constexpr int dim = 3

Spatial dimension count.