ADMBase

Tom Goodale

Date

Abstract

Provides the basic ADM variables used in the 3 + 1 formalism

1 Purpose

Thorn ADMBase provides core infrastructure for thorns implementing general relativity on a 3D grid in the 3 + 1 formalism. It provides the basic variables (3-metric, extrinsic curvature, lapse and shift vector) for the 3 + 1 formalism, in addition to a set of parameters to regulate the methods used for their evolution. These variables are used to communicate between thorns providing initial data, evolution methods and analysis routines for the 3 + 1 formalism. In addition, the variables can be used as a mechanism to interact with alternative formalisms, as long as routines can be written to transform alternative variables into these 3 + 1 variables.

2 Using ADMBase

2.1 3+1 Variables

The variables provided by ADMBase are:

By default the metric and extrinsic curvature tensors are assumed to be physical, however these semantics can be changed by use of the metric_type parameter. ADMBase provides the default value of physical, however another thorn can extend this parameter, for example to specify that the variables gxx etc actually refer to the conformal 3-metric.

2.2 Initial Data

Initial data for the 3 + 1 variables is specified by the initial_data (3-metric and extrinsic curvature), initial_lapse (lapse), and initial_shift (shift) parameters. By default, ADMBase initialises the 3-metric and extrinsic curvature to Minkowski and the lapse to one. Initial data thorns override these defaults by extending the parameters. To see which initial data sets are available in your executable run for example

./cactus_<config> -o admbase::initial_data | grep Range

The CactusEinstein arrangement includes thorns providing initial data for various black hole combinations, perturbed black holes and linear gravitational waves.

2.3 Evolution Methods

Analogous to specifying initial data, evolution methods are chosen by the evolution_method (3-metric and extrinsic curvature), lapse_evolution_method (lapse), and shift_evolution_method (shift) parameters. By default, ADMBase does not evolve the 3-metric or extrinsic curvature, and holds the lapse and shift static.

3 Programming With ADMBase

3.1 3+1 Variables

It is highly recommended that all thorns which inherit from ADMBase check the value of the metric_type parameter in a routine scheduled at CCTK_PARAMCHECK and signal an error if the metric type is not recognised. (See the source file ParamCheck.c in any of the thorns in the CactusEinstein arrangement for examples of this, and note that the PARAMCHECK time bin is a good place to check for illegal/bad combinations of parameters, and also to inform the user of any relevent details of the parameters she has chosen).

ADMBase allocates one timelevel of memory for all variables, except the shift, which is only allocated if the initial_shift parameter is set to a value other than ‘none’. (‘none’ is the default.) The state of the shift storage is indicated by the shift_state grid scalar. This is 1 if there is storage for the shift, and 0 otherwise.

The thorn provides, on request, initial data to set the metric and extrinsic curvature to flat space in cartesian coordinates, to set the initial lapse to one and the initial shift to zero.

3.2 Initial Data

To include your initial data sets for the 3-metric, extrinsic curvature, lapse and shift in the ADMBase infrastructure, extend the keyword parameters initial_data, initial_lapse and initial_shift. For example, in the param.ccl file of CactusEinstein/IDAnalyticBH,

shares: ADMBase  
 
EXTENDS KEYWORD initial_data  
{  
  "schwarzschild"      :: "One Schwarzshild black hole"  
  "bl_bh"              :: "Brill Lindquist black holes"  
  "misner_bh"          :: "Misner black holes"  
  "multiple_misner_bh" :: "Multiple Misner black holes"  
  "kerr"        :: "One Kerr black hole"  
}

ADMBase also schedules two groups ADMBase_InitialData and ADMBase_InitialGauge in this order at CCTK_INITIAL. Initial data and initial gauge thorns should schedule their routines to run in this group, for example