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.
|Provides access to Boost library
|David Radice and Erik Schnetter
|Boost Software License
git clone https://github.com/dradice/Boost.git
|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
git clone https://bitbucket.org/llamacode/ctgamma.git
|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)
git clone email@example.com:fukaws/fuka.git
|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
git clone https://bitbucket.org/mjasiulek/llamawavehyperboloidal.git
|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.).
|BSD 2-Clause "Simplified" License
git clone https://github.com/zachetienne/nrpytutorial
|This thorn can track the location of a neutron star, e.g. to guide mesh refinement.
git clone https://bitbucket.org/knarrff/nstracker
|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
svn co http://svn.einsteintoolkit.org/incoming/Symmetry/ParitySymmetry
|Reflux at mesh refinement interfaces. An example thorn on how to hook it up to GRHydro is provided.
|Erik Schnetter, David Radice
git clone https://bitbucket.org/dradice/refluxing.git
|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.
wget --mirror --no-parent --no-host-directories https://www.brunogiacomazzo.org/ExactSolver/
|Provides infrastructure to interpolate grid functions onto sphere, to compute intergrals as well as IO facilities. SphericalSlice is part of Llama.
git clone https://bitbucket.org/llamacode/llama.git
|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
wget https://zenodo.org/record/3689752/files/SpritzCode_v1.tar Zenodo
|Enables output of Cactus variables for each MoL intermediate step
git clone https://bitbucket.org/ianhinder/substepoutput.git SubstepOutput
|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
git clone https://bitbucket.org/GravityPR/prthorns.git
|Uses tcmalloc to keep track of memory consumption, return memory to OS after regridding.
git clone https://bitbucket.org/ianhinder/tcmalloc.git
|WhiskyTHC: the General-Relativistic Templated Hydrodynamics Code
|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
|Computes time and space derivatives of the ADMBase variables
|In the ET since 2016_11
|Cosmology: a Cactus arrangement for 3D relativistic cosmology.
|In Einstein Toolkit as of 2015_11 (Somerville) release.
|Set up Fishbone-Moncrief disk initial data, this is an example of the NRPy+ code.
|In the Einstien Toolkit as of 2019_10 (Mayer) release.
|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
|In the Einstein Toolkit as of 2022_11 (Kowalevski) release.
|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.
|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
|in the ET since 2016_11
|Computes the flow of rest mass through a SphericalSurface, allows extra variables to be interpolated onto the surface
|Roland Haas, Tanja Bode
|in the ET since 2013_05
|A FileReader like thorn that uses InterolateLocalUniform to interpolate the data read in onto the new grid.
|in the ET since ET_2020_11
|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..
|CC BY-NC-SA 4.0
|in the ET since ET_2021_11
|The RNSID code of Nikolaos Stergioulas
|Nik Stergioulas, Tom Goodale, Roberto De Pietri, Frank Löffler
|in the ET since 2018_02
|Computes boundary data for CCE using SphericalSlice and ADMDerivatives
|in the ET since 2015_11