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

using packed_accessors = std::tuple<Accessors...>

Tuple type containing all packed accessors.

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 size_t n_accessors = sizeof...(Accessors)

Number of packed accessor types.

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.