Skip to content

SPECFEM++ is a complete re-write of SPECFEM suite of packages (SPECFEM2D, SPECFEM3D, SPECFEM3D_GLOBE) using C++

License

Notifications You must be signed in to change notification settings

PrincetonUniversity/SPECFEMPP

Repository files navigation

SPECFEM++

Documentation Status License: GPL v3 NVIDIA Build GCC Build IntelLLVM Build

About

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:

  1. a robust and flexible code structure,
  2. modularity that allows for easy addition of new features,
  3. portability that allows the code to run on a variety of architectures (CPU, NVIDIA GPUs, Intel GPUs, AMD GPUs etc.), and
  4. a user-friendly build infrastructure that allows the code to be easily compiled and run on a variety of platforms.

Documentation

The online documentation for SPECFEM++ is located here

Getting Started with SPECFEM++

Follow the Getting Started Guide to install SPECFEM++ on your system and run the solver.

Examples

We recommend starting with the cookbook examples to learn how to customize the solver for your use case.

Contributing to SPECFEM++

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.

License

SPECFEM++ is distributed under the GPL v3 license