specfem::medium::material< dim3, elastic, isotropic >¶
-
template<specfem::dimension::type DimensionTag, specfem::element::medium_tag MediumTag>
struct material<DimensionTag, MediumTag, specfem::element::property_tag::isotropic, std::enable_if_t<specfem::element::is_elastic<MediumTag>::value>> - #include <material.hpp>
Material specialization for 2D elastic isotropic media.
This struct holds the properties of an elastic isotropic material in 2D space. It includes the density, shear wave speed, compressional wave speed, attenuation factors, and compaction gradient. The struct also provides
See also
See also
See also
- Template Parameters:
MediumTag – The medium tag that must satisfy elastic medium properties
PropertyTag – The property tag that must be isotropic
Enable – The enable_if condition that must be satisfied
Constructors
-
inline material(const type_real &density, const type_real &cs, const type_real &cp, const type_real &Qkappa, const type_real &Qmu, const type_real &compaction_grad)
Construct a new elastic isotropic material.
- Parameters:
density – Density of the material
cs – Shear wave speed
cp – Compressional wave speed
Qkappa – Attenuation factor for bulk modulus
Qmu – Attenuation factor for shear modulus
compaction_grad – Compaction gradient
-
material() = default
Default constructor.
Public Functions
-
inline bool operator==(const material<dimension_tag, medium_tag, specfem::element::property_tag::isotropic> &other) const
Check if 2 materials have the same properties.
- Parameters:
other – Material to compare with
- Returns:
true If the materials have the same properties
-
inline bool operator!=(const material<dimension_tag, medium_tag, specfem::element::property_tag::isotropic> &other) const
Check if 2 materials have different properties.
- Parameters:
other – Material to compare with
- Returns:
true If the materials have different properties
-
inline specfem::point::properties<dimension_tag, medium_tag, property_tag, false> get_properties() const
Get the material properties.
- Returns:
specfem::point::properties Material properties
-
inline std::string print() const
Print the material properties.
- Returns:
std::string Formatted material properties
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
Property tag.