SPECFEM++ is a complete re-write of SPECFEM suite of packages (SPECFEM2D, SPECFEM3D, SPECFEM3D_GLOBE) using C++. Compared to the earlier version, SPECFEM++ code base provides:
- a robust and flexible code structure,
- modularity that allows for easy addition of new features,
- portability that allows the code to run on a variety of architectures (CPU, NVIDIA GPUs, Intel GPUs, AMD GPUs etc.), and
- a user-friendly build infrastructure that allows the code to be easily compiled and run on a variety of platforms.
The online documentation for SPECFEM++ is located here
Follow the Getting Started Guide to install SPECFEM++ on your system and run the solver.
We recommend starting with the cookbook examples to learn how to customize the solver for your use case.
SPECFEM is a community project that lives by the participation of its members — i.e., including you! It is our goal to build an inclusive and participatory community so we are happy that you are interested in participating! Please see this page for developer documentation.
In particular you should follow the git development workflow and pre-commit style checks when contributing to SPECEFM.
SPECFEM++ is distributed under the GPL v3 license