SAVA

Overview

SAVA: 3D seismic finite-difference modeling, Full Waveform Inversion (FWI) and Reverse Time Migration (RTM) code for wave propagation in isotropic (visco)-acoustic/elastic and anisotropic orthorhombic/triclinic elastic media, which I developed together with Olaf Hellwig and Denise De Nil. The forward modeling code is based on fd3d by Olaf Hellwig.

Using

Use the module name sava to discover versions available and to load the application.

The module provides the following six apps:

  1. sava_AC

  2. sava_ISO

  3. sava_ORTHO

  4. sava_TRICL

  5. snapmerge

  6. snapmergep


Testing
Based on Chapters 5/6 in the Manual This assumes you have:

  • Cloned the SAVA and have a copy of the par subfolder.

The documentation talks about using mpirun to run a simulation. You need to use the following method:

  • Create a batch file that you'll submit using sbatch or use salloc to create an interactive session.

  • Use srun to start your simulation.

  • Tests sava_TRICL only.

  • Allocation values are based on the jobs/SAVA_NEC.job file within the cloned SAVA repository.

Notes

  • The value of nodes * ntasks-per-node must match the srun -n value.

  • This value, in turn, must match NPROCX * NPROCY * NPROCZ as defined in the SAVA_tricl.inp file:

  • It appears that you need a minimum of 100G defined for each node, so batch files use the --mem=100G option.

Example 1: Single Node

#!/bin/bash #SBATCH --account=type-your-project-name #SBATCH --time=01:00:00 #SBATCH --nodes=1 #SBATCH --ntasks-per-node=8 #SBATCH --cpus-per-task=1 #SBATCH --output=sava_%A.out #SBATCH --mem=100G module load sava/1.0 srun -n 8 sava_TRICL SAVA_tricl.inp #-------------- Domain Decomposition ----------------------------- number_of_processors_in_x-direction_(NPROCX) = 2 number_of_processors_in_y-direction_(NPROCY) = 2 number_of_processors_in_z-direction_(NPROCZ) = 2

Example 2: Multiple Nodes

#!/bin/bash #SBATCH --account=type-your-project-name #SBATCH --time=02:00:00 #SBATCH --nodes=2 #SBATCH --ntasks-per-node=32 #SBATCH --cpus-per-task=1 #SBATCH --output=sava_%A.out #SBATCH --mem=100G module load sava/1.0 srun -n 64 sava_TRICL SAVA_tricl.inp #-------------- Domain Decomposition ----------------------------- number_of_processors_in_x-direction_(NPROCX) = 4 number_of_processors_in_y-direction_(NPROCY) = 4 number_of_processors_in_z-direction_(NPROCZ) = 4