specfem::wavefield::simulation_field¶
-
enum class specfem::wavefield::simulation_field¶
Simulation field types for wave propagation algorithms.
Used in time-stepping schemes and inversion methods.
Values:
-
enumerator forward¶
Forward time propagation.
-
enumerator adjoint¶
Adjoint field (backward from receivers)
-
enumerator backward¶
Backward field (for gradient computation)
-
enumerator buffer¶
Temporary buffer field.
-
enumerator forward¶
specfem::wavefield::type¶
-
enum class specfem::wavefield::type¶
Wavefield component types for different physical quantities.
Supports elastic (displacement/velocity/acceleration) and acoustic (pressure) fields.
Values:
-
enumerator displacement¶
Displacement field (elastic media)
-
enumerator velocity¶
Velocity field (time derivative of displacement)
-
enumerator acceleration¶
Acceleration field (second time derivative)
-
enumerator pressure¶
Pressure field (acoustic media)
-
enumerator rotation¶
Rotation field (Cosserat media)
-
enumerator intrinsic_rotation¶
Intrinsic rotation (micropolar)
-
enumerator curl¶
Curl of displacement field.
-
enumerator displacement¶
specfem::wavefield::wavefield¶
-
template<specfem::dimension::type DimensionTag, specfem::wavefield::type Component>
class wavefield¶ Compile-time wavefield component traits.
Provides dimension-specific component counts and type information.
using disp_2d = wavefield<dim2, type::displacement>; static_assert(disp_2d::num_components() == 2); // u_x, u_z
- Template Parameters:
DimensionTag – Spatial dimension (2D or 3D)
Component – Wavefield component type
specfem::wavefield::to_string¶
-
const std::string specfem::wavefield::to_string(const specfem::wavefield::type &wavefield_component)¶
Convert wavefield component to string.
- Parameters:
wavefield_component – Wavefield component type
- Returns:
String representation (“displacement”, “velocity”, etc.)
Wavefield Specializations¶
-
template<>
class wavefield<specfem::dimension::type::dim2, specfem::wavefield::type::displacement>¶ 2D displacement wavefield (u_x, u_z).
-
template<>
class wavefield<specfem::dimension::type::dim2, specfem::wavefield::type::velocity>¶ 2D velocity wavefield (v_x, v_z).