specfem::data_access::DataClassType

enum specfem::data_access::DataClassType

Data type classification for spectral element simulation components.

Categorizes different data types used throughout SPECFEM simulations to enable type-safe data access patterns and proper memory management strategies.

Used by data containers and access policies to determine appropriate handling for mesh indices, physical properties, field variables, and computational kernels.

Each enum value is also associated with a type trait checker to facilitate compile-time type detection and static assertions. Traits are typically evaluated on container/accessor types that expose a data_class member. For example:

struct PropertiesAccessor {
  static constexpr specfem::data_access::DataClassType data_class =
      specfem::data_access::DataClassType::properties;
};

static_assert(
  specfem::data_access::is_properties<PropertiesAccessor>::value,
  "Accessor is not marked as properties"
);

Values:

enumerator index

Element and point indices.

enumerator edge_index

Edge connectivity indices.

enumerator face_index

Face connectivity indices (3D)

enumerator assembly_index

Global assembly indices.

enumerator mapped_index

Mapped/transformed indices.

enumerator properties

Material properties (density, moduli)

enumerator kernels

Computational kernels and sensitivities.

enumerator jacobian_matrix

Geometric transformation matrices.

enumerator field_derivatives

Spatial derivatives of fields.

enumerator displacement

Displacement field components.

enumerator velocity

Velocity field components.

enumerator acceleration

Acceleration field components.

enumerator mass_matrix

Mass matrix coefficients.

enumerator source

Source terms and excitations.

enumerator stress

Stress tensor components.

enumerator stress_integrand

Stress integration quantities.

enumerator boundary

Boundary condition data.

enumerator boundary

Boundary element storage.

enumerator lagrange_derivative

Lagrange derivative operators.

enumerator weights

Quadrature weights.

enumerator transfer_function_self

Self-coupling transfer functions.

enumerator transfer_function_coupled

Cross-coupling transfer functions.

enumerator coupled_coordinates

Cross-coupling nodal coordinates.

enumerator intersection_factor

Interface intersection factors.

enumerator intersection_normal

Interface normal vectors.

enumerator nonconforming_interface

Non-conforming mesh interfaces.

enumerator conforming_interface

Conforming mesh interfaces.

enumerator global_coordinates

Global coordinate data.

enumerator attenuation

Combined attenuation factors + memory variables.