specfem::interface::interface_tag¶
-
enum class specfem::interface::interface_tag¶
Interface coupling direction types.
Directional coupling: elastic_acoustic (elastic→acoustic), acoustic_elastic (acoustic→elastic).
Values:
-
enumerator elastic_acoustic¶
Elastic to acoustic interface - elastic field couples to acoustic
-
enumerator acoustic_elastic¶
Acoustic to elastic interface - acoustic field couples to elastic
-
enumerator elastic_acoustic¶
specfem::interface::attributes¶
-
template<specfem::dimension::type DimensionTag, specfem::interface::interface_tag InterfaceTag>
class attributes¶ Compile-time interface field type determination.
using attrs = attributes<dim2, interface_tag::elastic_acoustic>; static_assert(attrs::self_medium() == medium_tag::elastic_psv);
- Template Parameters:
DimensionTag – Spatial dimension (2D or 3D)
InterfaceTag – Interface coupling type
Attribute Specializations¶
-
template<>
class attributes<specfem::dimension::type::dim2, specfem::interface::interface_tag::elastic_acoustic>¶ 2D elastic→acoustic coupling attributes.
Self: elastic_psv (vector acceleration), Coupled: acoustic (scalar acceleration).
Public Types
-
template<specfem::connections::type ConnectionTag>
using self_field_t = typename self_field<ConnectionTag>::type¶ Type alias for self field.
-
template<specfem::connections::type ConnectionTag>
using coupled_field_t = typename coupled_field<ConnectionTag>::type¶ Type alias for coupled field.
Public Static Functions
-
static inline constexpr specfem::element::medium_tag self_medium()¶
Self medium (receives coupling).
- Returns:
elastic_psv medium tag
-
static inline constexpr specfem::element::medium_tag coupled_medium()¶
Coupled medium (provides coupling).
- Returns:
acoustic medium tag
-
template<>
struct coupled_field¶ Coupled field type for connection types.
- Template Parameters:
ConnectionTag – Connection type (weakly_conforming, etc.)
-
template<>
template<>
struct coupled_field<specfem::connections::type::weakly_conforming>¶ 2D weakly conforming elastic→acoustic coupled field type.
Public Types
-
using type = specfem::point::acceleration<specfem::dimension::type::dim2, specfem::element::medium_tag::acoustic, false>¶
scalar acceleration
-
using type = specfem::point::acceleration<specfem::dimension::type::dim2, specfem::element::medium_tag::acoustic, false>¶
-
template<>
struct self_field¶ Self field type for connection types.
- Template Parameters:
ConnectionTag – Connection type (weakly_conforming, etc.)
-
template<>
template<>
struct self_field<specfem::connections::type::weakly_conforming>¶ 2D weakly conforming elastic→acoustic self field type.
Public Types
-
using type = specfem::point::acceleration<specfem::dimension::type::dim2, specfem::element::medium_tag::elastic_psv, false>¶
vector acceleration
-
using type = specfem::point::acceleration<specfem::dimension::type::dim2, specfem::element::medium_tag::elastic_psv, false>¶
-
template<specfem::connections::type ConnectionTag>
-
template<>
class attributes<specfem::dimension::type::dim2, specfem::interface::interface_tag::acoustic_elastic>¶ 2D acoustic→elastic coupling attributes.
Self: acoustic (scalar acceleration), Coupled: elastic_psv (vector displacement).
Public Types
-
template<specfem::connections::type ConnectionTag>
using self_field_t = typename self_field<ConnectionTag>::type¶ Type alias for self field.
-
template<specfem::connections::type ConnectionTag>
using coupled_field_t = typename coupled_field<ConnectionTag>::type¶ Type alias for coupled field.
Public Static Functions
-
static inline constexpr specfem::element::medium_tag self_medium()¶
Self medium (receives coupling).
- Returns:
acoustic medium tag
-
static inline constexpr specfem::element::medium_tag coupled_medium()¶
Coupled medium (provides coupling).
- Returns:
elastic_psv medium tag
-
template<>
struct coupled_field¶ Coupled field type for connection types.
- Template Parameters:
ConnectionTag – Connection type (weakly_conforming, etc.)
-
template<>
template<>
struct coupled_field<specfem::connections::type::weakly_conforming>¶ 2D weakly conforming acoustic→elastic coupled field type.
Public Types
-
using type = specfem::point::displacement<specfem::dimension::type::dim2, specfem::element::medium_tag::elastic_psv, false>¶
vector displacement
-
using type = specfem::point::displacement<specfem::dimension::type::dim2, specfem::element::medium_tag::elastic_psv, false>¶
-
template<>
struct self_field¶ Self field type for connection types.
- Template Parameters:
ConnectionTag – Connection type (weakly_conforming, etc.)
-
template<>
template<>
struct self_field<specfem::connections::type::weakly_conforming>¶ 2D weakly conforming acoustic→elastic self field type.
Public Types
-
using type = specfem::point::acceleration<specfem::dimension::type::dim2, specfem::element::medium_tag::acoustic, false>¶
scalar acceleration
-
using type = specfem::point::acceleration<specfem::dimension::type::dim2, specfem::element::medium_tag::acoustic, false>¶
-
template<specfem::connections::type ConnectionTag>