specfem::medium_container::properties::data_container< dim2, elastic, isotropic >

template<specfem::element::dimension_tag DimensionTag, specfem::element::medium_tag MediumTag>
struct data_container<DimensionTag, MediumTag, specfem::element::property_tag::isotropic, std::enable_if_t<specfem::element::is_elastic<MediumTag>::value>>
#include <domain_properties.hpp>

Elastic isotropic material properties container.

Stores material properties for elastic wave propagation in isotropic solids. Supports both elastic and viscoelastic media types through template specialization with SFINAE (enable_if constraint).

Material parameters:

  • kappa: Bulk modulus (resistance to compression)

  • mu: Shear modulus (resistance to shear deformation)

  • rho: Density (mass per unit volume)

See also

DATA_CONTAINER macro for details on generated members and methods.

Template Parameters:
  • DimensionTag – Spatial dimension (dim2/dim3)

  • MediumTag – Physical medium type (elastic, elastic_sh, elastic_psv)

specfem::medium_container::properties::data_container< dim2, elastic, anisotropic >

template<specfem::element::medium_tag MediumTag>
struct data_container<specfem::element::dimension_tag::dim2, MediumTag, specfem::element::property_tag::anisotropic, std::enable_if_t<specfem::element::is_elastic<MediumTag>::value>>
#include <domain_properties.hpp>

Elastic anisotropic material properties container (2D).

Stores material properties for elastic wave propagation in anisotropic solids. Uses full elastic stiffness tensor representation for 2D anisotropic media with SFINAE constraint for elastic medium types.

Material parameters:

  • c11, c13, c15: Elastic stiffness tensor components (row 1)

  • c33, c35: Elastic stiffness tensor components (row 3)

  • c55: Elastic stiffness tensor component (shear)

  • c12, c23, c25: Additional stiffness tensor components

  • rho: Density (mass per unit volume)

See also

DATA_CONTAINER macro for details on generated members and methods.

Template Parameters:

MediumTag – Physical medium type (elastic, elastic_sh, elastic_psv)

specfem::medium_container::properties::data_container< dim2, elastic, isotropic_cosserat >

template<specfem::element::dimension_tag DimensionTag, specfem::element::medium_tag MediumTag>
struct data_container<DimensionTag, MediumTag, specfem::element::property_tag::isotropic_cosserat, std::enable_if_t<specfem::element::is_elastic<MediumTag>::value>>
#include <domain_properties.hpp>

Data container to hold properties of 2D elastic isotropic Cosserat media at a quadrature point.

Medium Properties for 2D Elastic Isotropic Cosserat Media

Parameters:

  • rho: Density \( \rho \)

  • kappa: Bulk modulus \( \kappa \)

  • mu: Shear modulus \( \mu \)

  • nu: Symmetry breaking coupling modulus \( \nu \)

  • j: Inertia density \( j \)

  • lambda_c: Coupling bulk modulus \( \lambda_c \)

  • mu_c: Coupling shear modulus \( \mu_c \)

  • nu_c: Coupling symmetry breaking modulus \( \nu_c \)

See also

DATA_CONTAINER macro for details on generated members and methods.

Template Parameters:
  • MediumTag – The type of the medium

  • UseSIMD – Boolean indicating whether to use SIMD intrinsics

  • Enable – SFINAE type to enable this specialization only for elastic media

Public Static Attributes

static constexpr auto dimension_tag = DimensionTag

Dimension of the material.

static constexpr auto medium_tag = MediumTag

Medium tag.

static constexpr auto property_tag = specfem::element::property_tag::isotropic_cosserat

Property tag.