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

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.