specfem::medium::material< dim2, electromagnetic, isotropic >

template<specfem::dimension::type DimensionTag, specfem::element::medium_tag MediumTag>
class material<DimensionTag, MediumTag, specfem::element::property_tag::isotropic, std::enable_if_t<specfem::element::is_electromagnetic<MediumTag>::value>>
#include <material.hpp>

Template specialization for electromagnetic isotropic (TE) material properties.

Constructors

inline material(type_real mu0, type_real e0, type_real e11_e0, type_real e33_e0, type_real sig11, type_real sig33, type_real Qe11, type_real Qe33, type_real Qs11, type_real Qs33)

Construct a new elastic isotropic material.

Parameters:
  • mu0 – Magnetic permeability in henry per meter

  • e0\( \epsilon_{0} \) Effective permittivity in farad per meter

  • e11_e0\( \epsilon_{11}/\epsilon_{0} \) component of the permittivity tensor

  • e33_e0\( \epsilon_{33}/\epsilon_{0} \) component of the permittivity tensor

  • sig11\( \sigma_{11} \) component of the conductivity tensor

  • sig33\( \sigma_{33} \) component of the conductivity tensor

  • Qe11 – Quality factor of \( \epsilon_{11}/\epsilon_{0} \) for attenuation

  • Qe33 – Quality factor of \( \epsilon_{33}/\epsilon_{0} \) for attenuation

  • Qs11 – Quality factor of \( \sigma_{11} \) for attenuation

  • Qs33 – Quality factor of \( \sigma_{33} \) for attenuation

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, specfem::element::medium_tag::electromagnetic_te, 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.

Private Members

type_real mu0

\( \mu_{0} \) Magnetic permeability in henry per meter

type_real e0

\( \epsilon_{0} \) Effective permittivity in farad per meter

type_real e11_e0

\( \epsilon_{11}/\epsilon_{0} \) component of the permittivity tensor

type_real e33_e0

\( \epsilon_{33}/\epsilon_{0} \) component of the permittivity tensor

type_real sig11

\( \sigma_{11} \) component of the conductivity tensor

type_real sig33

\( \sigma_{33} \) component of the conductivity tensor

type_real Qe11

Quality factor of \( \epsilon_{11}/\epsilon_{0} \) for attenuation

type_real Qe33

Quality factor of \( \epsilon_{33}/\epsilon_{0} \) for attenuation

type_real Qs11

Quality factor of \( \sigma_{11} \) for attenuation.

type_real Qs33

Quality factor of \( \sigma_{33} \) for attenuation.