Useful Packages


Seismic Waveform Modeling

  • FDFDMATRIX3D: Solution of the 3D time-harmonic visco-acoustic VTI wave equation with the 27-point finite-difference stencil.
  • SEMLAB: Spectral Element Method for wave propagation and rupture dynamics in Matlab.
  • SEISMIC_CPML: a set of sixteen open-source Fortran90 programs to solve the two-dimensional or three-dimensional isotropic or anisotropic elastic, viscoelastic or poroelastic wave equation using a finite-difference method with Convolutional or Auxiliary Perfectly Matched Layer (C-PML or ADE-PML) conditions
  • SPECFEM2D: SPECFEM2D allows users to perform 2D and 2.5D (i.e., axisymmetric) simulations of acoustic, elastic, viscoelastic, and poroelastic seismic wave propagation. The package can also be used for full waveform imaging (FWI) or adjoint tomography.
  • SPECFEM3D_Cartesian: SPECFEM3D_Cartesian simulates acoustic (fluid), elastic (solid), coupled acoustic/elastic, poroelastic or seismic wave propagation in any type of conforming mesh of hexahedra (structured or not.)
  • SW4: SW4 (Seismic Waves, 4th order) implements substantial capabilities for 3-D seismic modeling, with a free surface condition on the top boundary, absorbing super-grid conditions on the far-field boundaries, and an arbitrary number of point force and/or point moment tensor source terms.
  • SALVUS: Salvus is a suite of software for performing full waveform modelling and inversion provided by Mondaic.
  • Devito: Code generation framework for automated finite difference computation
  • FDwave3D: A Matlab solver for the 3D anisotropic wave equation using the finite-difference (FD) method.
  • AxiSEM: A parallel spectral-element method to solve 3D wave propagation in a sphere with axisymmetric or spherically symmetric visco-elastic, acoustic, anisotropic structures.

Seismic Imaging & Inversion

  • FWI.jl: A Julia package for solving the Full Waveform Inversion on a regular rectangular mesh
  • PySIT: PySIT is an open source toolbox for seismic inversion and seismic imaging developed by Russell J. Hewett and Laurent Demanet in the Imaging and Computing Group in the Department of Mathematics at MIT.
  • SAVA: 3D seismic modelling, FWI and RTM code for wave propagation in isotropic (visco)-acoustic/elastic and anisotropic orthorhombic/triclinic elastic media.
  • SeisFlows: An automated workflow tool for full waveform inversion and adjoint tomography.
  • SeisElastic2D: An open-source package for multiparameter FWI in isotropic-, anisotropic- and visco-elastic media.
  • TOOLBOX_OPTIMIZATION: The SEISCOPE OPTIMIZATION TOOLBOX is a set of FORTRAN 90 optimization routines dedicated to the resolution of unconstrained and bound constrained nonlinear minimization problems.
  • JUDI.jl: JUDI is a framework for large-scale seismic modeling and inversion and is designed to enable rapid translations of algorithms to fast and efficient code that scales to industry-size 3D problems.
  • LASIF: An End-to-end Workflow for Adjoint Full Seismic Waveform Inversions, specifically designed for SALVUS.
  • IFOS2D: IFOS2D (Inversion of Full Observed Seismograms) is a 2-D elastic full waveform inversion code.
  • RAJZEL: 2D parallel first-arrival traveltime modelling and inversion code using an Eikonal solver and the adjoint state method.
  • TOY2DAC: a 2D Acoustic frequency-domain Full Waveform modeling and inversion code.

Seismic Signal Processing

  • MathGeo2022: Seismic data denoising, regularization and so on.
  • BIRGIT: Pre- and Postprocessing tools for full waveform inversion (FWI) field data applications written in Matlab, Python and shell scripts.
  • CurveLab: CurveLab is a toolbox implementing the Fast Discrete Curvelet Transform, both in Matlab and C++.
  • PyCurvelab: Python interface to Curvelab
  • SeismicPro: a framework for accelerating processing of pre-stack seismic data with deep learning models.

High Performance Computing

  • Slurm: SLURM example scripts.


  • GMT
  • Gmsh
  • PyGmsh: Gmsh for Python
  • SeismiGraphix
  • SegDSee
  • iFEM: a MATLAB software package containing robust, efficient, and easy-following codes for the main building blocks of adaptive finite element methods on unstructured simplicial grids in both two and three dimensions.
  • MUMPS: MUltifrontal Massively Parallel sparse direct Solve
  • pardiso: a thread-safe, high-performance, robust, memory efficient and easy to use software for solving large sparse symmetric and unsymmetric linear systems of equations on shared-memory and distributed-memory multiprocessors.
  • sparseinv: Computation of the Sparse Inverse Subset
  • sparsekit: a FORTRAN90 library which carries out a number of operations on sparse matrices, particularly conversion between various sparse formats.

Learning Resources