specfem::chunk_edge::intersection_factor¶
-
template<specfem::dimension::type DimensionTag, specfem::interface::interface_tag InterfaceTag, specfem::element::boundary_tag BoundaryTag, int NumberElements, int NQuadIntersection, typename MemorySpace = Kokkos::DefaultExecutionSpace::scratch_memory_space, typename MemoryTraits = Kokkos::MemoryTraits<Kokkos::Unmanaged>>
struct intersection_factor¶ Template accessor for intersection scaling factors.
Provides chunk-based access to geometric scaling factors applied 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
Dimension-Specific Specializations¶
2D Specialization¶
-
template<specfem::interface::interface_tag InterfaceTag, specfem::element::boundary_tag BoundaryTag, int NumberElements, int NQuadIntersection, typename MemorySpace, typename MemoryTraits>
struct intersection_factor<specfem::dimension::type::dim2, InterfaceTag, BoundaryTag, NumberElements, NQuadIntersection, MemorySpace, MemoryTraits> : public specfem::data_access::Accessor<specfem::data_access::AccessorType::chunk_edge, specfem::data_access::DataClassType::intersection_factor, specfem::dimension::type::dim2, false>¶ 2D specialization of intersection factor accessor
Stores geometric scaling factors for intersection quadrature points.
Public Types
-
using IntersectionFactorViewType = Kokkos::View<type_real[NumberElements][NQuadIntersection], MemorySpace, MemoryTraits>¶
View type for storing intersection scaling factors.
Public Functions
-
template<typename U = IntersectionFactorViewType, typename std::enable_if_t<std::is_convertible<IntersectionFactorViewType, U>::value, int> = 0>
inline intersection_factor(const U &intersection_factor)¶ Construct from compatible view type.
- Template Parameters:
U – Compatible view type
- Parameters:
intersection_factor – View containing intersection factor data
-
intersection_factor() = default¶
Default constructor.
-
template<typename MemberType, typename U = IntersectionFactorViewType, typename std::enable_if_t<U::memory_traits::is_unmanaged == true, int> = 0>
inline intersection_factor(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 shared memory size requirement.
- Returns:
Size in bytes needed for scratch memory
Public Static Attributes
-
static constexpr auto dimension_tag = specfem::dimension::type::dim2¶
Spatial dimension (2D for this specialization)
-
static constexpr auto interface_tag = InterfaceTag¶
Interface medium type tag.
-
static constexpr auto boundary_tag = BoundaryTag¶
Boundary condition tag.
-
static constexpr auto connection_tag = specfem::connections::type::nonconforming¶
Connection type for nonconforming interfaces.
-
static constexpr int chunk_size = NumberElements¶
Number of edges in chunk.
-
static constexpr int n_quad_intersection = NQuadIntersection¶
Number of quadrature points on intersection.
Private Members
-
IntersectionFactorViewType data_¶
Underlying view storing intersection factor data.
-
using IntersectionFactorViewType = Kokkos::View<type_real[NumberElements][NQuadIntersection], MemorySpace, MemoryTraits>¶