Overview of Thorn README files

Note: The maintainer of all thorns is the Cactus team and the licence of all thorns is LGPL.

BetaThorns

ThornAuthor(s)Purpose
Cartoon2DSai Iyer
Denis Pollney
Thomas Radke
David Rideout
Implements a "cartoon" axisymmetric evolution according to the method described in gr-qc/9908012. The original idea for 'Cartoon2D' was due to Steve Brandt.
HTTPDTom Goodale
This is a prototype C version of a web server thorn.
HTTPDExtraunknown
not documented
IOASCIIStreamunknown
not documented

CactusBase

ThornAuthor(s)Purpose
BoundaryGabrielle Allen
Gerd Lanfermann
Miguel Alcubierre
David Rideout
This thorn defines a generic interface for boundary conditions, which allows, among other things, symmetry boundary conditions associated with the grid to be applied without other thorns having knowledge of them.
CartGrid3DGabrielle Allen
Gerd Lanfermann
Joan Masso
This thorn sets up a Cartesian grid, for a given domain. It also provides a method for registering symmetries of Grid Functions across the grid axes, and a call for applying symmetry boundary conditions.
CoordBaseCactus team
Provides generic handling of coordinates for grid variables.
IOASCIIGabrielle Allen
Tom Goodale
Thomas Radke
This thorn does 1D, 2D, and 3D output of 3D variables in ASCII format.
IOBasicGabrielle Allen
Thomas Radke
This thorn provides two I/O methods "Info" and "Scalar" which output grid variables as scalars as a function on time.
IOUtilGabrielle Allen
Tom Goodale
Thomas Radke
This thorn is the flesh for IO - it always needs to be activated if you want to do some IO in Cactus.
InitBaseErik Schnetter
Thorn InitBase specifis how initial data are to be set up. It does not set up any initial data by itself, nor does it contain any routines which are to be called. It is merely a convenient repository remembering how initial data are to be set up, so that other thorns can check their actions against this thorn.
LocalInterpThomas Radke
Jonathan Thornburg
Erik Schnetter
This thorn does processor-local interpolation of N-dimensional data arrays. In general there may be many input arrays (all defined on the same uniform Cartesian grid) all being interpolated to the same set of interpolation points.
LocalReduceRavi Paruchuri
Tom Goodale
Yaakoub El Khamra
Local array reduction implementation, using the new local reduction API. New features added, please refer to the thorn documentation for details and to TestLocalReduce thorn for examples of usage.
MoLIan Hawke
This thorn provides generic time integrators. This allows clean coupling when multiple thorns wish to integrate at the same time. It also means a physics thorn doesn't have to rewrite its own time integrator. This version is designed to work with Mesh Refinement codes as well as unigrid.
SymBaseErik Schnetter
Provide generic handling of symmetries for grids and grid arrays.
TimeGabrielle Allen
Thorn Time sets the timestep for the simulation by either

CactusBench

ThornAuthor(s)Purpose
BenchADMGabrielle Allen
Authors of CactusEinstein/ADM
This thorn provides one of the key evolution methods of the Einstein Equations, to be used and optimised for benchmarking.
BenchIOCactus team
This thorn provides a number of benchmarking parameter files for some of the standard IO methods which the Cactus Computation Toolkit provides.

CactusConnect

ThornAuthor(s)Purpose
HTTPDGabrielle Allen
Tom Goodale
Thomas Radke
This is a prototype C version of a web server thorn.
HTTPDExtraGabrielle Allen
Tom Goodale
Thomas Radke
This thorn registers additional HTML pages with the web server provided by thorn HTTPD.
SocketTom Goodale
Thomas Radke
John Shalf
This thorn provides platform-independent socket calls.

CactusEinstein

ThornAuthor(s)Purpose
ADMGabrielle Allen
Bernd Bruegmann
Gerd Lanfermann
Joan Masso
Mark Miller
Paul Walker
This thorn evolves the standard 3+1 variables using the ADM Evolution equations.
ADMAnalysisTom Goodale
This thorn does basic analysis of the metric and extrinsic curvature tensors.
ADMBaseTom Goodale
This thorn provides the basic variables used to communicate between thorns doing General Relativity in the 3+1 formalism.
ADMConstraintsGabrielle Allen
Mark Miller
This analysis thorn calculates the violation in the ADM constraints using the standard Einstein variables.
ADMCouplingIan Hawke
The "friend of a friend" thorn to help matter / spacetime coupling. Does nothing itself.
ADMMacrosTom Goodale
This thorn provides nothing but a load of macros for other thorns to use
AHFinderMiguel Alcubierre
This thorn looks for apparent horizons (AH) in 3D. An AH is defined as a surface where the expansion of outgoing null geodesics is zero.
CoordGaugeTom Goodale
Base thorn to provide the infrastructure for dynamic gauge selection.
EinsteinCactus team
Thorn Einstein is now defunct and has been replaced with ADMBase plus other thorns: CactusEinstein/ADMAnalysis CactusEinstein/ADMBase CactusEinstein/ADMMacros CactusEinstein/CoordGauge CactusEinstein/IDSimple CactusEinstein/SpaceMask CactusEinstein/StaticConformal
EvolSimpleunknown
Simplistic evolver for the ADM equations, demonstrating the use of the CactusEinstein arrangement.
ExtractGabrielle Allen
Calculate gauge invariant waveforms, using the Moncrief formalism, for cases when the spacetime approximates spherical symmetry.
IDAnalyticBHSteve Brandt
Carsten Gundlach
Joan Masso
Ed Seidel
Paul Walker
This thorn calculates analytic initial data for the Einstein grid functions (lapse, shift, metric, curv) for various black hole spacetimes:
IDAxiBrillBHSteve Brandt
Paul Walker
Ryoji Takahashi
This thorn calculates initial data for a black hole distorted by an even parity perturbation.
IDBrillDataCarsten Gundlach
Miguel Alcubierre
Initializes Brill wave data.
IDLinearWavesMalcolm Tobias
Joan Masso
Provides analytic data for linear gravitational waves.
IDSimpleCactus team
Simple initial data sets for 3-metric and extrinsic curvature.
Maximalunknown
This thorn setus up the maximal slicing equation (dtrK/dt=0):
PsiKadeliaSteve Brandt
John Baker
Hisaaki Shinkai
Paul Walker
This thorn provides a somewhat invariant means of measuring "waves" and other geometrical content in a numerically generated spacetime.
SpaceMaskDenis Pollney
Provides utilities for assigning states to individual grid points using a mask grid function.
StaticConformalTom Goodale
This thorn provides the variables defining a static conformal factor which is used to transform the physical metric. If this thorn is active and the ADMBase::metric_type parameter is set to `static conformal' then the ADMBase::g... variables are the conformal values as opposed to the physical values.
TimeGeodesicMiguel Alcubierre
Florian Siebel
This thorn integrates timelike geodesics. The integration is done `on the fly', that is, at the same time as the evolution of the spacetime is being calculated. The thorn can calculate geodesics either on the numerical spacetime, or on an exact spacetime (given by thorn Exact).

CactusElliptic

ThornAuthor(s)Purpose
EllBaseunknown
This thorn does ...
EllPETScCactus team
This thorn shows how PETSc can be used with the EllBase Elliptic solver interface.
EllSORCactus team
This thorn provides basic elliptic solvers for different equation types using SOR iterative methods. The thorn is written to be robust and pedagogical rather that a viable fast solver.

CactusExamples

ThornAuthor(s)Purpose
DemoInterpThomas Radke
This thorn demonstrates the use of the Cactus interpolation API.
FleshInfoCactus team
Demonstrates obtaining information about computational infrastructure from the flesh.
HelloWorldCactus team
Hello World example for Cactus, possibly the simplest thorn ever.
IDWaveMoLIan Hawke
Provides initial data for the WaveMoL thorn.
SampleBoundaryCarsten Gundlach
David Rideout
This thorn provides a simple example of how to create and register a physical boundary condition. It implements a linear extrapolation boundary condition in three dimensions.
SampleIOThomas Radke
This thorn provides a very simple I/O method which prints the values of three-dimensional Cactus grid functions and arrays at a chosen location (selected by parameters) to screen.
TimerInfoCactus team
At the moment just prints out the value of all timers at chosen iteration intervals. Will be worked into a more useful thorn to report of different kinds of timing information in different ways
WaveMoLIan Hawke
This implements the wave equation in FOSH form for use with the Method of Lines thorn. Intended as a basic test.
WaveToy1DF77Gabrielle Allen
This thorn illustrates the solution of the scalar wave equation in 1D using centered explicit finite differencing. Included are routines to
WaveToy2DF77Gabrielle Allen
This thorn illustrates the solution of the scalar wave equation in 2D using centered explicit finite differencing. Included are routines to NOTE: This thorn isn't working properly yet for multiple processors, it will be fixed very soon in the development version.

CactusExternal

ThornAuthor(s)Purpose
BLASYaakoub Y El-Khamra
Erik Schnetter
This thorn enables a configuration to access the BLAS library.
FFTWlibErik Schnetter
This thorn enables a configuration to access the FFTW library.
FlexIOJohn Shalf
Thorn FlexIO provides a library for writing multidimensional data from Cactus using the IEEEIO data format. The advantage of using this library is that it is distributed with Cactus and needs no additional libraries to be installed on a machine.
GSLErik Schnetter
Make the GSL (GNU Scientific Library) available to Cactus thorns. See http://www.gnu.org/software/gsl.
HDF5Yaakoub Y El-Khamra
This thorn provides a capability 'HDF5' and some utility programs to manipulate HDF5 files (independently of any Carpet or PUGH specifics).
LAPACKYaakoub Y El-Khamra
Erik Schnetter
This thorn enables a configuration to access the LAPACK library.
LORENEYaakoub Y El-Khamra
Erik Schnetter
This thorn enables a configuration to access the LORENE library.
PETScYaakoub Y El-Khamra
Erik Schnetter
This thorn adds PETSc capability to a configuration.
SDFThomas Radke
This thorns checks for an external SDF installation and, if one was found, provides the capability SDF.
jpeg6bThe Independent JPEG Group
This thorn contains a copy of the Independent JPEG Group's JPEG software of release 6b of 27-Mar-1998. See further details in the file src/README.

CactusIO

ThornAuthor(s)Purpose
IOJpegJohn Shalf
Gabrielle Allen
Tom Goodale
Gerd Lanfermann
Thomas Radke
This thorn does output of 2D slices from Cactus grid functions and arrays in jpeg image format.
IOSDFThomas Radke
This thorn does 1D, 2D, and 3D output of grid variables in SDF file format.

CactusPUGH

ThornAuthor(s)Purpose
PUGHGabrielle Allen
Tom Goodale
Thomas Radke
Matei Ripeanu
Paul Walker
This thorn provides a unigrid parallel driver with MPI.
PUGHInterpPaul Walker
Thomas Radke
This thorn implements the Cactus flesh interpolation API routine CCTK_InterpGridArrays() which provides interpolation of CCTK grid arrays at arbitrary points.
PUGHReduceGabrielle Allen
Tom Goodale
Thomas Radke
Standard reduction operators which use PUGH for communications
PUGHSlabGabrielle Allen
Tom Goodale
Thomas Radke
This thorn implements the following parts of the CCTK hyperslab API:

CactusPUGHIO

ThornAuthor(s)Purpose
IOFlexIOJohn Shalf
Thomas Radke
This thorn does output of arbitrary Cactus variables in IEEEIO file format.
IOHDF5Thomas Radke
This thorn does output of arbitrary Cactus variables in HDF5 file format.
IOHDF5UtilThomas Radke
This thorn serves as a utility thorn for other HDF5 I/O thorns such as IOStreamedHDF5 and IOHDF5.
IOPandaThomas Radke
This thorn does output of 3D variables in IEEEIO format. It uses the I/O library Panda for writing files in parallel.
IOStreamedHDF5Thomas Radke
This thorn uses the HDF5 Stream Virtual File Driver to stream HDF5 data and checkpoint files via live sockets to any connected clients.
IsoSurfacerJohn Shalf
This thorn extracts isosurfaces of grid functions.

CactusTest

ThornAuthor(s)Purpose
TestAllTypesErik Schnetter
Test all the variable types.
TestArraysunknown
not documented
TestComplexunknown
not documented
TestCoordinatesGabrielle Allen
Test the Cactus coordinate infrastructure.
TestFortranDependencies1Erik Schnetter
Test Fortran intra-thorn and inter-thorn make dependencies. This thorn contains the intra-thorn dependencies, and depends on the thorn TestFortranDependencies2.
TestFortranDependencies2Erik Schnetter
Test Fortran intra-thorn and inter-thorn make dependencies. Thorn TestFortranDependencies1 depends on this thorn.
TestFpointerNULLThomas Radke
This thorn tests whether a Fortran routine accepts a NULL pointer reference as a function argument when called from a C function. The code should not crash as long as the NULL pointer argument isn't dereferenced.
TestFreeF90Erik Schnetter
Test automatic line breaks in free-form Fortran 90 code.
TestGlobalReduceYaakoub Y El Khamra
not documented
TestInclude1unknown
not documented
TestInclude2unknown
not documented
TestLocalReduceunknown
not documented
TestReduceunknown
not documented
TestScheduleRion Dooley
This thorn is used to test that all schedule bins are executed.
TestStringsCactus team
Test use of strings in Cactus. At the moment:
TestTableJonathan Thornburg
This thorn contains a test driver for the Cactus key/value tables API, Util_Table*().
TestTimersCactus team
This thorn demonstrates and tests the use of Timers in thorns.
TestTypesErik Schnetter
Test most of the variable types.

CactusUtils

ThornAuthor(s)Purpose
NaNCheckerThomas Radke
This thorn can be used to analyze CCTK variables of real or complex data type for NaN (Not-a-Number) and (on availability of finite(3)) infinite values.
TimerReportCactus team
Simplistic additional timer information. This thorn provides timer details to screen at different iterations and before checkpoints depending on parameter settings.

CactusWave

ThornAuthor(s)Purpose
IDScalarWaveTom Goodale
Gabrielle Allen
This thorns sets initial data for the scalar wave equation evolver
IDScalarWaveCTom Goodale
Gabrielle Allen
Werner Benger
This thorn sets initial data for the scalar wave equation evolver.
IDScalarWaveCXXTom Goodale
Gabrielle Allen
Werner Benger
This thorns sets initial data for the scalar wave equation evolver
IDScalarWaveEllipticunknown
not documented
WaveBinarySourceGerd Lanfermann
Provides a source term to the scalar field evolution for two rotating binary charges.
WaveToyCGabrielle Allen
Tom Goodale
This thorn solves the linear wave equation.
WaveToyCXXunknown
not documented
WaveToyExtraCactus team
Additional functionality for the WaveToy example
WaveToyF77Tom Goodale
This thorn solves the linear wave equation
WaveToyF90Tom Goodale
This thorn solves the linear wave equation
WaveToyFreeF90Tom Goodale
Erik Schnetter
This thorn solves the linear wave equation, using free form (as opposed to fixed form) Fortran 90.