SeisFlows is an open source seismic inversion package that provides
A customizable waveform inversion workflow
A framework for research in regional, global, and exploration seismology
SeisFlows differs from previous open-source software in emphasizing both flexibility and HPC portability. Examples and usage information are available at readthedocs.org. Probably the easiest way to learn more is to follow these checkerboard example instructions.
With SeisFlows, the inversion task is abstracted into six components:
workflow. This design is informed by hands-on experience with different HPC environments and research applications. The source code is structured in a modular way based on these six categories, and users are offered various choices in each one. To see the choices available for each category, simply browse the source code. The inversion itself is executed by
seisflows/workflow/inversion.py, which may be good place to start looking.
Wave simulations are performed by calling an external solver. The ability to interface with outside packages provides flexibility, and the choice of SPECFEM2D/3D/3D_GLOBE as default options gives optional GPU acceleration and other useful capabilities. Setting up your own inversions, however, can be quite time consuming because it requires familiarity with SPECFEM2D/3D/3D_GLOBES's idiosyncratic meshing procedure and binary file formats. Alternatively, some users have interfaced with yet other solver packages, but this can also be time consuming.
If you find this package useful, please cite:
Ryan Modrak, Dmitry Borisov, Matthieu Lefebvre, JeroenTrompa; SeisFlows—Flexible waveform inversion software, Computers & Geosciences, Volume 115, June 2018, Pages 88-95, https://doi.org/10.1016/j.cageo.2018.02.004
Ryan Modrak, Jeroen Tromp; Seismic waveform inversion best practices: regional, global and exploration test cases, Geophysical Journal International, Volume 206, Issue 3, 1 September 2016, Pages 1864–1889, https://doi.org/10.1093/gji/ggw202
The following extension packages are not currently documented, but may still give a sense for the type of research possible within the framework: