Thorns we know of
There are more public thorns (as in has an open source license) around than just those in the Einstein Toolkit. This might be because the thorn does not satisfy our quality standards or because it is not yet clear if the thorn would be used by a number of users.
For non-thorn codes, please see: Additional resources
If you have thorn that you would make public and maybe entually see included in the Einstein Toolkit, you are encouraged to list it here, together with a short description of what it does. Our hope is to provide a list of (most of) the available Cactus thorns. Having a thorn listed here also makes it easier for us to estimate how much interest there is in it.
Source code repositories are vastly preferred over just source tarballs since they make it much easier for your users to contribute back changes. If you are not yourself able to host a repository you might consider one of the public source code hosters such as those listed on Wikipedia. Some of us have used GitHub in the past as well as BitBucket (but see ticket #697 for issues with it). For subversion packages the Cactus team is offering to host svn repositories for thorns for various projects, groups, or people on the Cactus subversion server.
|Thorn name||Description||Author(s)||Licence||Download instructions|
|Boost||Provides access to Boost library||David Radice and Erik Schnetter||Boost Software License|
|CTGamma||CTGamma is an evolution code for the Einstein equations in the 3+1 BSSN formulation. It is an alternative to using McLachlan. Some analysis thorns currently rely on functionality provided from within CTGamma.||Denis Pollney Christian Reisswig Erik Schnetter Peter Diener Nils Dorband many others||GPL v2+|
|FUKAv2 (Kadath spectral solver)||The Frankfurt University/Kadath (FUKA) Initial Data solver branch is a collection of ID solvers aimed at delivering consistent initial data (ID) solutions to the eXtended Conformal Thin-Sandwich (XCTS) formulation of Einstein's field
equations for a variety of compact object configurations to include extremely compact, asymmetric, and mixed spin binaries. Please see README for required citations.
|L. Jens Papenfort, Samuel D. Tootle, Philippe Grandclément (README)||GPLv3+|
|LlamaWave (Hyperboloidal)||This thorn allows to evolve the scalar wave equation in 3D in Kerr spacetimes using Kerr-Schild coordinates which are horizon penetrating.||Michael Jasiulek, announcement||GPL v2+|
|NRPy+||Not a thorn but a code generation tool to generate C++ code for tensor expressions. It is used by the SENR code and the Numerical Relativity in Spherical Coordinates project. There is an online tutorial (this can take a while to load and show a 404 error while loading. Just wait for it to finish.).||Zach Etienne||BSD 2-Clause "Simplified" License|
|NSTracker||This thorn can track the location of a neutron star, e.g. to guide mesh refinement.||Frank Löffler||GPLv2+|
|ParitySymmetry||Provides parity symmetry boundary condition. That is, there is a symmetry (only) under simultaneous reflections about all coordinate directions: (x,y,z) -> (-x, -y, -z).||Yosef Zlochower, Erik Schnetter||GPL|
|Refluxing||Reflux at mesh refinement interfaces. An example thorn on how to hook it up to GRHydro is provided.||Erik Schnetter, David Radice||none|
|Riemann solver||This exact solver can provide exact solutions for Riemann problems in relativistic MHD using both an ideal fluid EOS and a Synge-type EOS.||Bruno Giacomazzo, Luciano Rezzolla||Please cite: J. Fluid Mech. 562(2006), 223-259.|
|SphericalSlice||Provides infrastructure to interpolate grid functions onto sphere, to compute intergrals as well as IO facilities. SphericalSlice is part of Llama.||Christian Reisswig||GPLv2+|
|Spritz||The Spritz code is a fully general relativistic magnetohydrodynamic code based on the Einstein Toolkit. To use it please refer to its Zenodo page and then follow the instructions in the README file.||Giacomazzo, Bruno; Cipolletta, Federico; Kalinany, Jay; Ciolfi, Riccardo||Creative Commons Attribution 4.0 International|
|SubstepOutput||Enables output of Cactus variables for each MoL intermediate step||Ian Hinder||GPL|
|TempPool||Creates a Pool of temporary grid variable to be used and shared by various thorn to be used as scratch for doing local computation. This thorn is part of the Parma thorns arrangement.||Roberto De Pietri, Frank Loeffler||GPLv2+|
|tcmalloc||Uses tcmalloc to keep track of memory consumption, return memory to OS after regridding.||Ian Hinder||unknown|
|WhiskyTHC||WhiskyTHC: the General-Relativistic Templated Hydrodynamics Code||David Radice||GPLv3||Follow the instructions in tutorial.html in the tarball.|
A large number of additional "ExternalLibraries" are available at CactusCode's subversion repository.
Thorns that have migrated into the ET
|Thorn name||Description||Author(s)||Licence||Download instructions|
|ADMDerivatives||Computes time and space derivatives of the ADMBase variables||Christian Reisswig||GNU||In the ET since 2016_11|
|CT_Multilevel||Cosmology: a Cactus arrangement for 3D relativistic cosmology.||Eloisa Bentivegna||gpl v3+||In Einstein Toolkit as of 2015_11 (Somerville) release.|
|FishboneMoncriefID||Set up Fishbone-Moncrief disk initial data, this is an example of the NRPy+ code.||Zach Etienne||BSD 2-Clause||In the Einstien Toolkit as of 2019_10 (Mayer) release.|
|FLRWSolver_public||Provides cosmological initial conditions for the ET. Please see (https://github.com/hayleyjm/FLRWSolver_public README) file for documentation and required citations.||Paul Lasky, Hayley Macpherson, Daniel Price||GPL v2+||In the Einstein Toolkit as of 2022_11 (Kowalevski) release.|
|IllinoisGRMHD||IllinoisGRMHD employs a conservative, high-resolution shock capturing scheme to evolve the general relativistic magnetohydrodynamics (GRMHD)
equations in a dynamical spacetime context. It is based on the original code of the Illinois numerical relativity group, but has been rewritten for the benefit of beginners, with complete documentation and code comments, as well as a new, highly modular interface.
|Zachariah B. Etienne||GPLv2 for HARM con2prim solver, GPLv2+ for all other code||In Einstein Toolkit as of 2015_11 (Somerville) release.|
|Llama||The Llama code is a 3-dimensional multiblock infrastructure with adaptive mesh-refinement for Cactus based on Carpet. It provides different patch systems that cover the simulation domain by a set of overlapping patches. Each of these patches has local cooordinates with a well-defined relation to global Cartesian coordinates. However, all computations are carried out using a global Cartesian tensor basis such that complicated tensor transformations between patch systems can be avoided. Information between the different patches is communicated via interpolation in the overlap zones.||Denis Pollney, Christian Reisswig, Erik Schnetter, Peter Diener||GPL v2+||in the ET since 2016_11|
|Outflow||Computes the flow of rest mass through a SphericalSurface, allows extra variables to be interpolated onto the surface||Roland Haas, Tanja Bode||GPL v2+||in the ET since 2013_05|
|ReadInterpolate||A FileReader like thorn that uses InterolateLocalUniform to interpolate the data read in onto the new grid.||Roland Haas||GPL||in the ET since ET_2020_11|
|RePrimAnd||RePrimAnd is a support library for numerical simulations of general relativistic magnetohydrodynamics. If provides methods for recovering primitive variables like pressure and velocity from the variables evolved in quasi-conservative formulations. Further, it provides a general framework for handling matter equations of state..||Wolfgang Kastaun||CC BY-NC-SA 4.0||in the ET since ET_2021_11|
|RNSID||The RNSID code of Nikolaos Stergioulas||Nik Stergioulas, Tom Goodale, Roberto De Pietri, Frank Löffler||GPLv2+||in the ET since 2018_02|
|SphericalHarmonicReconGen||Computes boundary data for CCE using SphericalSlice and ADMDerivatives||Christian Reisswig||LGPL||in the ET since 2015_11|