SeismicWaves.jl
SeismicWaves.jl is a Julia package for acoustic and elastic wave propagation simulations designed to be used in a Full-Waveform Inversion framework. It solves different flavours of the wave equation using the finite difference method.
The main features of SeismicWaves.jl are:
- forward wave simulations with multiple pairs of sources and receivers (shots)
- 1D, 2D, and 3D acoustic wave simulations (constant density and variable density)
- 2D P-SV elastic wave similations (isotropic)
- free surface and C-PML absorbing boundary conditions supported
- gradients of misfit functions with respect to model parameters using the adjoint method
- checkpointing of forward simulations for the adjoint method
- device agnostic backends (CPUs or GPUs) thanks to
ParallelStencil.jl, including Threads, CUDA, AMDGPU and Metal.
This package additionally provides some functions to solve inverse problems using the Hamiltonian Monte Carlo (HMC) method, as part of the HMCLab framework.
More information and an extensive list of features can be found in the documentation, which you can either find online or build locally by running the docs/make.jl file.
Warning: Documentation is currently minimal and work in progress!
See the Examples for how to use this package!
See the API for detailed information about the functionalities of this package!