specfem::chunk_element::stress_integrand¶
-
template<int NumberElements, int NGLL, specfem::element::dimension_tag DimensionTag, specfem::element::medium_tag MediumTag, typename MemorySpace, typename MemoryTraits, bool UseSIMD>
struct stress_integrand¶ Struct to hold the stress integrand at every quadrature point within a chunk of elements.
For elastic domains the stress integrand is given by: \( F_{ik} = \sum_{j=1}^{n} T_{ij} \partial_j \xi_{k} \) where \( T \) is the stress tensor. Equation (35) & (36) from Komatitsch and Tromp 2002 I. - Validation
For acoustic domains the stress integrand is given by: \( F_{ik} = \rho^{-1} \partial_i \xi_{k} \partial_k \chi_{k} \). Equation (44) & (45) from Komatitsch and Tromp 2002 I. - Validation
- Template Parameters:
NumberElements – Number of elements in the chunk.
NGLL – Number of Gauss-Lobatto-Legendre points.
DimensionTag – Dimension type for elements within the chunk.
MediumTag – Medium tag for elements within the chunk.
MemorySpace – Memory space for data storage.
MemoryTraits – Memory traits for data storage.
UseSIMD – Flag to indicate if SIMD should be used.
Typedefs
-
using ViewType = specfem::datatype::TensorChunkElementViewType<type_real, DimensionTag, NumberElements, NGLL, components, num_dimensions, UseSIMD, MemorySpace, MemoryTraits>¶
Underlying view used to store data.
Compile-time constants
-
static constexpr int num_elements = NumberElements¶
Number of elements in the chunk.
-
static constexpr auto dimension = DimensionTag¶
Dimension type for elements.
Constructors
-
stress_integrand() = default¶
Default constructor.
-
inline stress_integrand(const ViewType &F)¶
Constructor that initializes the stress integrand with a given view.
- Parameters:
F – Stress integrand view.
-
template<typename MemberType>
inline stress_integrand(const MemberType &team)¶ Constructor that initializes the stress integrand within Scratch Memory.
- Template Parameters:
MemberType – Kokos team member type.
- Parameters:
team – Kokkos team member.
Public Static Functions
-
static inline constexpr int shmem_size()¶
Get the amount memory in bytes required for shared memory.
- Returns:
int Amount of shared memory required
Private Static Attributes
-
static constexpr int num_dimensions = specfem::element::attributes<DimensionTag, MediumTag>::dimension¶
dimensions.
Number of
-
static constexpr int components = specfem::element::attributes<DimensionTag, MediumTag>::components¶
Number of components.