specfem::chunk_edge::NonconformingAccessorPack¶
-
template<typename ...Accessors>
struct NonconformingAccessorPack : public specfem::data_access::Accessor<specfem::datatype::AccessorType::chunk_edge, specfem::data_access::DataClassType::nonconforming_interface, specfem::element::dimension_tag::dim2, false>, public specfem::chunk_edge::Accessors¶ Variadic template for packing multiple nonconforming interface accessors.
Combines multiple accessor types (transfer functions, intersection factors, normals) into a single accessor for coordinated access to nonconforming interface data.
- Template Parameters:
Accessors – Variadic list of accessor types to pack together
Public Types
Public Functions
-
NonconformingAccessorPack() = default¶
Default constructor.
-
inline NonconformingAccessorPack(const Accessors&... accessors)¶
Construct from accessor instances.
- Parameters:
accessors – Individual accessor instances to pack
-
template<typename ...Indices>
type_real operator()(Indices... indices) const = delete¶ Deleted function call operator (use accessor-specific access)
-
template<typename MemberType>
inline NonconformingAccessorPack(const MemberType &team)¶ Construct from team scratch memory.
- Template Parameters:
MemberType – Team member type
- Parameters:
team – Team member for scratch allocation
Public Static Functions
-
static inline constexpr int shmem_size()¶
Get total shared memory size requirement.
- Returns:
Sum of memory requirements for all packed accessors
Public Static Attributes
-
static constexpr auto dimension_tag = std::tuple_element_t<0, std::tuple<Accessors...>>::dimension_tag¶
Spatial dimension inherited from first accessor.
-
static constexpr auto interface_tag = std::tuple_element_t<0, std::tuple<Accessors...>>::interface_tag¶
Interface medium type inherited from first accessor.
-
static constexpr auto boundary_tag = std::tuple_element_t<0, std::tuple<Accessors...>>::boundary_tag¶
Boundary condition tag inherited from first accessor.
-
static constexpr auto flux_scheme_tag = std::tuple_element_t<0, std::tuple<Accessors...>>::flux_scheme_tag¶
Flux scheme tag inherited from first accessor.
-
static constexpr auto connection_tag = specfem::element_connections::type::nonconforming¶
Connection type for nonconforming interfaces.
-
static constexpr auto data_class = specfem::data_access::DataClassType::nonconforming_interface¶
Data class type for nonconforming interface data.
specfem::chunk_edge::coupling_terms_pack¶
-
template<specfem::element::dimension_tag DimensionTag, specfem::element_coupling::interface_tag InterfaceTag, specfem::element::boundary_tag BoundaryTag, specfem::element_coupling::flux_scheme_tag FluxSchemeTag, int NumberElements, int NQuadIntersection, int NQuadElement>
using specfem::chunk_edge::coupling_terms_pack = NonconformingAccessorPack<transfer_function_coupled<DimensionTag, InterfaceTag, BoundaryTag, FluxSchemeTag, NumberElements, NQuadIntersection, NQuadElement>, intersection_normal<DimensionTag, InterfaceTag, BoundaryTag, FluxSchemeTag, NumberElements, NQuadIntersection>>¶ Type alias for coupling terms accessor pack.
Combines transfer function and intersection normal accessors for computing coupling terms in nonconforming interface methods.
specfem::chunk_edge::integral_data_pack¶
-
template<specfem::element::dimension_tag DimensionTag, specfem::element_coupling::interface_tag InterfaceTag, specfem::element::boundary_tag BoundaryTag, specfem::element_coupling::flux_scheme_tag FluxSchemeTag, int NumberElements, int NQuadIntersection>
using specfem::chunk_edge::integral_data_pack = NonconformingAccessorPack<intersection_factor<DimensionTag, InterfaceTag, BoundaryTag, FluxSchemeTag, NumberElements, NQuadIntersection>>¶ Type alias for integral data accessor pack.
Provides access to intersection scaling factors for numerical integration at nonconforming interfaces.