specfem::medium::material< dim2, 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 property_tag = specfem::element::property_tag::isotropic¶
Property tag.
specfem::medium::material< dim2, elastic, anisotropic >¶
-
template<specfem::element::medium_tag MediumTag>
struct material<specfem::dimension::type::dim2, MediumTag, specfem::element::property_tag::anisotropic> : public specfem::element::is_elastic<MediumTag>¶ - #include <material.hpp>
Template specialization for elastic anisotropic material properties.
This struct holds the properties of an elastic anisotropic material in 2D space. It includes the density, elastic constants, and attenuation factors. The struct also provides constructors, comparison operators, and a method to retrieve the material properties.
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 anisotropic
Enable – The enable_if condition that must be satisfied
Constructors
-
inline material(const type_real &density, const type_real &c11, const type_real &c13, const type_real &c15, const type_real &c33, const type_real &c35, const type_real &c55, const type_real &c12, const type_real &c23, const type_real &c25, const type_real &Qkappa, const type_real &Qmu)¶
Construct a new elastic anisotropic material.
- Parameters:
density – Density of the material
c11 – Elastic constant
c13 – Elastic constant
c15 – Elastic constant
c33 – Elastic constant
c35 – Elastic constant
c55 – Elastic constant
c12 – Elastic constant
c23 – Elastic constant
c25 – Elastic constant
Qkappa – Attenuation factor for bulk modulus
Qmu – Attenuation factor for shear modulus
-
material() = default¶
Default constructor.
Public Functions
-
inline bool operator==(const material<dimension_tag, medium_tag, specfem::element::property_tag::anisotropic> &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::anisotropic> &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 property_tag = specfem::element::property_tag::anisotropic¶
Property tag.
specfem::medium::material< dim2, elastic, isotropic_cosserat >¶
-
template<specfem::dimension::type DimensionTag, specfem::element::medium_tag MediumTag>
class material<DimensionTag, MediumTag, specfem::element::property_tag::isotropic_cosserat, std::enable_if_t<specfem::element::is_elastic<MediumTag>::value>>¶ - #include <material.hpp>
Material specialization for 2D elastic isotropic cosserat media.
properties
This struct holds the properties of an elastic isotropic cosserat material in 2D.
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(type_real rho, type_real kappa, type_real mu, type_real nu, type_real j, type_real lambda_c, type_real mu_c, type_real nu_c)¶
Construct a new elastic spin isotropic material.
- 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 modulus \( \lambda_c \)
mu_c – Coupling shear modulus \( \mu_c \)
nu_c – Coupling symmetry breaking modulus \( \nu_c \)
-
material() = default¶
Default constructor.
Public Functions
-
inline bool operator==(const material<dimension_tag, medium_tag, specfem::element::property_tag::isotropic_cosserat> &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, specfem::element::medium_tag::elastic_psv_t, specfem::element::property_tag::isotropic_cosserat> &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 property_tag = specfem::element::property_tag::isotropic_cosserat¶
Property tag.
Private Members
-
type_real rho¶
Density \( \rho \).
-
type_real kappa¶
Bulk modulus \( \kappa \).
-
type_real mu¶
Shear modulus \( \mu \).
-
type_real nu¶
Symmetry breaking coupling modulus \( \nu \).
-
type_real j¶
Intertia density \( j \).
-
type_real lambda_c¶
Coupling bulk modulus \( \lambda_c \).
-
type_real mu_c¶
Coupling shear modulus \( \mu_c \).
-
type_real nu_c¶
Coupling symmetry breaking modulus \( \nu_c \).