Skip to the content.


The SPECFEM codes use the spectral-element method to simulate seismic wave propagation on different scales. Together with dedicated inversion tools, they constitute an ecosystem in computational seismology to address diverse topics related to seismic tomography and ground-shaking hazard analysis.


SPECFEM2D SPECFEM2D simulates forward and adjoint seismic wave propagation in two-dimensional acoustic, (an)elastic, poroelastic or coupled acoustic-(an)elastic-poroelastic media, with Convolution PML absorbing conditions.
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).
SPECFEM3D_GLOBE SPECFEM3D_GLOBE simulates global and regional (continental-scale) seismic wave propagation.
SPECFEM++ SPECFEM++ unifies the solver capabilities of the suite of SPECFEM packages (SPECFEM2D, SPECFEM3D and SPECFEM3D_GLOBE) under a single interface while trying to provide the performance characteristics of the original packages.

These solvers are all open-source codes and freely available through github. They can be used with various inversion tools to perform seismic adjoint tomography:

Inversion tools  
adjTomo adjTomo a landing page for automated seismic waveform inversion tools


We open-source.

The SPECFEM family of codes are all open-source. We welcome any contributions to the codes that may benefit the community.

Want to contribute?

For more developer informations, please read the main wiki

Stay in contact

Do you have questions, suggestions or new features to discuss related to the SPECFEM project?
Join the discussions