license Standard Build Status Coverage Status codecov

What is SpECTRE?

SpECTRE is an open-source code for multi-scale, multi-physics problems in astrophysics and gravitational physics. In the future, we hope that it can be applied to problems across discipline boundaries in fluid dynamics, geoscience, plasma physics, nuclear physics, and engineering. It runs at petascale and is designed for future exascale computers.

SpECTRE is being developed in support of our collaborative Simulating eXtreme Spacetimes (SXS) research program into the multi-messenger astrophysics of neutron star mergers, core-collapse supernovae, and gamma-ray bursts.

Citing SpECTRE

Please cite SpECTRE in any publications that make use of its code or data. Cite the latest version that you use in your publication. The DOI for this version is:

You can cite this BibTeX entry in your publication:

To aid reproducibility of your scientific results with SpECTRE, we recommend you keep track of the version(s) you used and report this information in your publication. We also recommend you supply the YAML input files and, if appropriate, any additional C++ code you wrote to compile SpECTRE executables as supplemental material to the publication.

Navigating the Documentation

The SpECTRE documentation is organized into tutorials, developer guides, groups of related code, namespaces, and files for easier navigation. These can all be accessed by links in the menu bar at the top.

  • For instructions on installing SpECTRE on personal computers and clusters consult the Installation and Installation on clusters pages, respectively.
  • If you are looking to run simulations with SpECTRE we recommend starting with the User Tutorials. The tutorials are designed to get users up and running with a simulation, as well as analyzing and visualizing the output.
  • For people looking to contribute to SpECTRE there are tutorials on the Dev Guide page. For instance, the dev guide details the code review guidelines, how to write unit tests, how to write documentation, and also provides information about C++ and the philosophy behind SpECTRE development.
  • The Topics section under the Reference menu item contains groups of related code (managed through doxygen groups). For example, there is a group for all the data structures we use, a group for utility functions and classes, as well as groups for coordinate maps, domain creation, and many others. The Topics are designed to help developers discover existing functionality so that things are not re-implemented several times.
  • You can also get an overview of the code base by namespace by visiting the Namespaces section under the Reference menu item.
  • Finally, it is also possible to browse the repository by files under the Files menu item, though it is recommended that in that case you browse the GitHub repository directly.