specfem::chunk_face::coupled_coordinates¶
-
template<specfem::element::dimension_tag DimensionTag, int NumberElements, int NQuadElement, specfem::element_coupling::interface_tag InterfaceTag, specfem::element::boundary_tag BoundaryTag, specfem::element_coupling::flux_scheme_tag FluxSchemeTag, typename ...KokkosViewArguments>
struct coupled_coordinates¶ Template accessor for face node location in coupled local coordinates.
- Template Parameters:
DimensionTag –
NumberElements – Chunk size
NQuadElement – assembly NGLL
InterfaceTag –
BoundaryTag –
FluxSchemeTag –
MemorySpace –
MemoryTraits –
specfem::chunk_face::intersection_normal¶
-
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, typename ...KokkosViewArguments>
struct intersection_normal¶ Template accessor for intersection normal vectors.
Provides chunk-based access to unit normal vectors at intersection quadrature points in nonconforming interfaces.
- Template Parameters:
DimensionTag – Spatial dimension
InterfaceTag – Interface medium type
BoundaryTag – Boundary condition tag
NumberElements – Number of edges in chunk
NQuadIntersection – Quadrature points on intersection
MemorySpace – Kokkos memory space
MemoryTraits – Kokkos memory traits
specfem::chunk_face::NonconformingAccessorPack¶
-
template<typename ...Accessors>
struct NonconformingAccessorPack : public specfem::data_access::Accessor<specfem::datatype::AccessorType::chunk_face, specfem::data_access::DataClassType::nonconforming_interface, specfem::element::dimension_tag::dim2, false>, public specfem::chunk_face::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.
-
template<typename ...AcessorInitializers>
inline NonconformingAccessorPack(const AcessorInitializers&... 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.