SHAW

Short Description
This code simulates the generation and propagation of elastic seismic shear waves in an axisymmetric domain. The implementation is in C++ and leverages the Kokkos ecosystem to enable performance portability. The name "SHAW" is an acronym built from "SHeAr Waves".
Institution
Sandia National Laboratories
Sponsors
ASC, LDRD
Parent Application/Code
NA
Keywords
seismic modeling, shear waves, geophysics, wave dynamics, C++, performance portability, Kokkos, HPC, shared-memory (on-node) parallelism, sparse and dense linear algebra
Programming Languages/Paradigms
C++ using Kokkos-core and Kokkos-kernels (for main code), Python (for helper meshing script and visualization)
Git/SVN Repository URL
Release/Version Number
0.1.0
Spack Package Name
Not available yet
Detailed description
Seismic modeling and simulation is an active field of research because of its critical importance to understand the generation, propagation and effects of seismic events (aka earthquakes on Earth, moonquakes on the moon, etc), and artificial explosions. Modeling and simulating these systems is challenging because (a) physical models contain a large number of parameters (e.g., anisotropic material properties, signal forms and parametrizations); and (b) simulating at global scale with high-accuracy requires a large computational cost. This code aims to contribute to this field by providing an open-source C++ code using the Kokkos programming model to simulate the generation and propagation of elastic shear waves in an axi-symmetric domain. The code implements what we refer to as “rank-1” and “rank-2” formulations: - rank-1: the discrete state and forcing term are stored as 1D arrays. This is used to simulate the wave dynamics due to a *single* forcing term; - rank-2: the discrete state and forcing term are stored using rank-2 tensors (i.e. matrices). This is useful to simultaneously solve the dynamics for multiple forcing realizations (e.g. multiple source locations and/or periods). This rank-2 formulation has an advantage from a computational standpoint because it has higher computational intensity, thus benefiting efficient ensemble propagation.