These tutorials were origianlly created for a 1.5-2 day introduction to Salvus in the course of the MESS workshop. Thus everything can be run on a laptop which means mostly two dimensional problems. Note that everything works almost exactly the same in 3D but the required computational resources are of course greater.
The Salvus tutorials require the installation of the full Salvus suite (follow the installations instructions). Additionally they require:
We will soon offer a VirtualBox or Docker image to make getting started easier.
The repository for the notebooks can be found
here - the
following shows nicely rendered previews. Please adjust the paths (mainly
SALVUS_BIN) to point to the correct binaries on
your system. Also make sure to report all encountered problems and
inconsistencies on the notebooks' Gitlab page.
Getting a proper mesh is the crucial first step in running a numerical waveform simulation. This part introduces the capabilities of the Salvus mesher. The first four exercises introduce the internal API of the mesher and its capabilities, the last one the high-level interface that most people will want use.
Introduction to Salvus Slides¶
Salvus from Scratch¶
This tutorial teaches using Salvus directly from the command line with step-by-step instructions. While most users will end up using higher-level interfaces demonstrated in later tutorials it is pivotal to understand how to directly call Salvus should the need arise. More complicated problems might require this in any case.
This more advanced tutorial teaches the usage of the mesher and Salvus' wave propagation facilities to run simulations through acoustic, elastic, and coupled media emulating a simple oceanic seismic survey.
Global Wave Propagation in 2D¶
salvus_seismo offers a convenient high-level interface to use Salvus for
waveform simulations on Earth, other planets, and small sections thereof. It
performs the required transformations from spherical coordinates to Salvus'
internal cartesian system, generates its command line call, places receivers
and sources relative to the used mesh's surface, and has a direct bridge to
ObsPy to construct receivers and sources from various data sources like QuakeML
or StationXML, or from web services.
Regional Wave Propagation in 3D¶
Very similar to the global 2D example but this time with an actual 3D simulation of a "real" earthquake recorded at existing stations. If you have access to a big cluster you can also run this at much higer frequencies.
Slides for the Wavefield I/O and Sensitivity Kernel Exercises¶
Running simulations is only so much fun without making use of the results. We believe Salvus to be particularly flexible and powerful in that regard and this tutorial lectures how to store and visualize wavefield data (translational and gradients) for points, surfaces and full volumes.
Solving the inverse problem demands the calculation of gradients of seismic material models with respect to a chosen measurement. This tutorial demonstrates the calculation of gradients for a simplistic minimum energy misfit functional including visualization and the calculation of adjoint sources and their storage in HDF5/ASDF files.