SpECTRE  v2024.09.29
Introduction

license Standard Build Status codecov

What is SpECTRE?

SpECTRE is an open-source code for multi-scale, multi-physics problems in astrophysics and gravitational physics. It is based on high-order spectral finite element methods and massive parallelism. 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 black hole neutron star mergers, core-collapse supernovae, and gamma-ray bursts.

Gallery

For an overview of some of SpECTRE's features and some simulations performed with SpECTRE, visit the gallery:

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:

@software{spectrecode,
author = "Deppe, Nils and Throwe, William and Kidder, Lawrence E. and Vu,
Nils L. and Nelli, Kyle C. and Armaza, Crist\'obal and Bonilla, Marceline S. and
H\'ebert, Fran\c{c}ois and Kim, Yoonsoo and Kumar, Prayush and Lovelace,
Geoffrey and Macedo, Alexandra and Moxon, Jordan and O'Shea, Eamonn and
Pfeiffer, Harald P. and Scheel, Mark A. and Teukolsky, Saul A. and Wittek,
Nikolas A. and others",
title = "\texttt{SpECTRE v2024.09.29}",
version = "2024.09.29",
publisher = "Zenodo",
doi = "10.5281/zenodo.13858965",
url = "https://spectre-code.org",
howpublished =
"\href{https://doi.org/10.5281/zenodo.13858965}{10.5281/zenodo.13858965}",
license = "MIT",
year = "2024",
month = "9"
}

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.

See our publication policy for more information.

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. See the build system page for how to configure SpECTRE.
  • 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 Code modules section 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 Code modules 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.
  • To browse all files in the repository you can visit the GitHub repository directly.

Logos and visuals

You can find logos and other visuals (e.g. to put on slides) in various formats, colors, and sizes here: