specfem::point::nonconforming_interface¶
-
template<typename ...Accessors>
struct NonconformingAccessorPack : public specfem::data_access::Accessor<specfem::datatype::AccessorType::point, specfem::data_access::DataClassType::nonconforming_interface, specfem::element::dimension_tag::dim2, false>, public specfem::point::Accessors¶ Packs multiple accessors for non-conforming interfaces.
This struct aggregates multiple accessors (e.g., transfer functions) into a single object that satisfies the accessor interface.
- Template Parameters:
Accessors – Variadic list of accessor types.
Public Functions
-
NonconformingAccessorPack() = default¶
Default constructor.
Public Static Attributes
-
static constexpr auto interface_tag = std::tuple_element_t<0, std::tuple<Accessors...>>::interface_tag¶
Interface type tag derived from the first accessor.
-
static constexpr auto boundary_tag = std::tuple_element_t<0, std::tuple<Accessors...>>::boundary_tag¶
Boundary condition tag derived from the first accessor.
-
static constexpr auto connection_tag = specfem::element_connections::type::nonconforming¶
Connection type tag (nonconforming).
-
static constexpr auto flux_scheme_tag = std::tuple_element_t<0, std::tuple<Accessors...>>::flux_scheme_tag¶
Flux scheme tag derived from the first accessor.
-
static constexpr auto dimension_tag = accessor_base::dimension_tag¶
Dimension tag.
-
static constexpr auto data_class = accessor_base::data_class¶
Data class type.
-
static constexpr auto accessor_type = accessor_base::accessor_type¶
Accessor type.
-
static constexpr bool using_simd = accessor_base::using_simd¶
SIMD usage flag.
Type Aliases¶
-
template<int NQuadIntersection, specfem::element::dimension_tag DimensionTag, specfem::element_coupling::interface_tag InterfaceTag, specfem::element::boundary_tag BoundaryTag, specfem::element_coupling::flux_scheme_tag FluxSchemeTag>
using specfem::point::transfer_function_self = impl::nonconforming_transfer_function<NQuadIntersection, DimensionTag, specfem::data_access::DataClassType::transfer_function_self, InterfaceTag, BoundaryTag, FluxSchemeTag>¶ Type alias for self-side transfer function.
-
template<int NQuadIntersection, specfem::element::dimension_tag DimensionTag, specfem::element_coupling::interface_tag InterfaceTag, specfem::element::boundary_tag BoundaryTag, specfem::element_coupling::flux_scheme_tag FluxSchemeTag>
using specfem::point::transfer_function_coupled = impl::nonconforming_transfer_function<NQuadIntersection, DimensionTag, specfem::data_access::DataClassType::transfer_function_coupled, InterfaceTag, BoundaryTag, FluxSchemeTag>¶ Type alias for coupled-side transfer function.
-
template<int NQuadIntersection, specfem::element::dimension_tag DimensionTag, specfem::element_coupling::interface_tag InterfaceTag, specfem::element::boundary_tag BoundaryTag, specfem::element_coupling::flux_scheme_tag FluxSchemeTag>
using specfem::point::transfer_function_pack = NonconformingAccessorPack<transfer_function_coupled<NQuadIntersection, DimensionTag, InterfaceTag, BoundaryTag, FluxSchemeTag>>¶ Type alias for a pack containing the coupled transfer function.