Chapter B1
ADM

Author(s): Gabrielle Allen

Bernd Bruegmann

Gerd Lanfermann

Joan Masso

Mark Miller

Paul Walker

Date: Date



B1.1 Abstract

Spacetime evolver for the ADM variables

B1.2 Comments

This thorn evolves the standard ADM equations, see [1]. The line element is

ds2 = - (α2 - βiβi)dt2 + βidtdxi +γijdxidxj,
(B1.1)

where α is the lapse, βi the shift vector and γij the 3-metric. Defining n to be the normal to the slice, we have the extrinsic curvature Kij given by

      1
Kij = 2Ln γij
(B1.2)

where L is the Lie derivative.

The ADM equations then evolve the spatial three metric γij and the extrinsic curvature Kij using

-dγ    =  - 2αK  ,                                    (B1.3)
dt ij          ij
d-K    =  - D D α + α(R   +KK
dt ij        i j        ij )    ij
          - 2KikKkj - (4)Rij ,                         (B1.4)
with
d-
dt = ∂t - L β
(B1.5)

and where Lβ is the Lie derivative with respect to the shift vector βi. Here Rij is the Ricci tensor and Di the covariant derivative associated with the three-dimensional metric γij. The 4-dimensional Ricci tensor (4)Rij is usually written in terms of the energy density ρ and stress tensor Sij of the matter as seen by the normal (Eulerian) observers:

(4)       [     1       ]
   Rij = 8π Sij - 2 (S - ρ) .
(B1.6)

B1.3 Parameters




cartoon
Scope: private  BOOLEAN



Description: Use cartoon boundary conditions



  Default: no






dissip
Scope: private  REAL



Description: Amount of covariant nablaˆ2  alp added to alp source



Range   Default: 0.0
:






evolution_storage
Scope: private  BOOLEAN



Description: turn on storage for ADM evolution variables as default?



  Default: no






evolveg_boundary
Scope: private  BOOLEAN



Description: Use evolution equation for metric at boundary



  Default: no






excise
Scope: private  BOOLEAN



Description: Use excision



  Default: no






flat_dissip
Scope: private  REAL



Description: Amount of flatspace nablaˆ2  alp added to alp source



Range   Default: 0.0
:






icn_itnum
Scope: private  INT



Description: number of iterations of ICN



Range   Default: 3
:
a negative value hardwires 50 iterations






icn_itnum_min
Scope: private  INT



Description: minimum number of iterations of ICN



Range   Default: 1
0:
positive please






icn_norm_error
Scope: private  BOOLEAN



Description: normalize icn error on a per point basis



  Default: no






icn_stop_at_norm
Scope: private  REAL



Description: ???



Range   Default: 1e-8
:






leapfrog_firststep
Scope: private  KEYWORD



Description: How should we evolve the first DL timestep



Range   Default: ftcs
ftcs
Forward time centered space
predcorr
Predictor Corrector






minimal_communications
Scope: private  BOOLEAN



Description: If yes do not sychronise extrinsic curvature



  Default: no






nabla_k_coeff
Scope: private  REAL



Description: Amount of covariant nablaˆ2  K added to K source



Range   Default: 0.0
:






slicing_flavour
Scope: private  KEYWORD



Description: none or kleing



Range   Default: none
none
The standard
kleing
As implemented in the kleing code






staggered_storage
Scope: private  BOOLEAN



Description: turn on stagleap storage as default?



  Default: no






stagleap_firststep
Scope: private  KEYWORD



Description: How should we evolve the first SL timestep



Range   Default: ts1
ts1
First order time symmetric
predcorr
Predictor Corrector






store_initial_lapse
Scope: private  BOOLEAN



Description: no or yes



  Default: no






verbose
Scope: private  BOOLEAN



Description: Give more detailed information about the evolution step



  Default: no






advection
Scope: restricted  KEYWORD



Description: How to finite difference advection terms on the shift



Range   Default: center
center
Second order centered






bound
Scope: restricted  KEYWORD



Description: Boundary condition to implement



Range   Default: none
flat
Flat boundary condition
none
No boundary condition
static
Boundaries held fixed
zero
Zero boundary condition
radiative
Radiative boundary condition
staticrad
Static radiation boundary condition






harmonic_f
Scope: restricted  REAL



Description: Harmonic speed: d_t alp = - alpˆ
2  harmonic_f trK



Range   Default: 1.0
*:*






method
Scope: restricted  KEYWORD



Description: Numerical method to use for ADM



Range   Default: stagleap
stagleap
Evolve using Staggered Leapfrog
leapfrog
Evolve using Double Leapfrog
ICN
Evolve using Iterative Crank-Nicholson
icn
Evolve using Iterative Crank-Nicholson






timestep_method
Scope: shared from TIME KEYWORD






timestep_outonly
Scope: shared from TIME BOOLEAN



B1.4 Interfaces

General

Implements:

adm

Inherits:

admbase

staticconformal

coordgauge

boundary

admmacros

grid

Grid Variables

PRIVATE GROUPS




  Group Names    Variable Names    Details   




icn_group_index   compact0
icn_iteration   descriptionSpecifies when to stop the ICN iterations
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  stagger typeNONE
  timelevels1
 variable typeINT




admloop   compact0
i1   descriptionVariables determining the behaviour of loops in ADM
i2   dimensions0
ADM_j1   distributionCONSTANT
ADM_j2   group typeSCALAR
k1   stagger typeNONE
k2   timelevels1
 variable typeINT




adm_dtlapse   compact0
ADM_dtalp   descriptionTime derivative of lapse
  dimensions3
  distributionDEFAULT
  group typeGF
  stagger typeNONE
  timelevels1
 variable typeREAL




adm_lapse_prev   compact0
ADM_alp_p   descriptionLapse on previous timestep
  dimensions3
  distributionDEFAULT
  group typeGF
  stagger typeNONE
  timelevels1
 variable typeREAL




adm_metric_prev   compact0
ADM_gxx_p   descriptionMetric variables and lapse on previous timestep
ADM_gxy_p   dimensions3
ADM_gxz_p   distributionDEFAULT
ADM_gyy_p   group typeGF
ADM_gyz_p   stagger typeNONE
ADM_gzz_p   timelevels1
 variable typeREAL




adm_curv_prev   compact0
ADM_kxx_p   descriptionExtrinsic curvature on previous timestep
ADM_kxy_p   dimensions3
ADM_kxz_p   distributionDEFAULT
ADM_kyy_p   group typeGF
ADM_kyz_p   stagger typeNONE
ADM_kzz_p   timelevels1
 variable typeREAL








  Group Names    Variable Names    Details   




adm_curv_stag   compact0
ADM_kxx_stag   descriptionExtrinsic curvature on staggered timestep
ADM_kxy_stag   dimensions3
ADM_kxz_stag   distributionDEFAULT
ADM_kyy_stag   group typeGF
ADM_kyz_stag   stagger typeNONE
ADM_kzz_stag   timelevels1
 variable typeREAL




adm_sources   compact0
adms_kxx   descriptionThe sources for the ADM evolution equations
adms_kxy   dimensions3
adms_kxz   distributionDEFAULT
adms_kyy   group typeGF
adms_kyz   stagger typeNONE
adms_kzz   timelevels1
adms_gxx  variable typeREAL




adm_extrap   compact0
adm_gxx_extrap   descriptionExtrapolated values of the ADM variables
adm_gxy_extrap   dimensions3
adm_gxz_extrap   distributionDEFAULT
adm_gyy_extrap   group typeGF
adm_gyz_extrap   stagger typeNONE
adm_gzz_extrap   timelevels1
adm_alp_extrap  variable typeREAL




adm_gauge   compact0
adm_gauge   descriptionThe lapse gauge coefficient
  dimensions3
  distributionDEFAULT
  group typeGF
  stagger typeNONE
  timelevels1
 variable typeREAL




adm_initlapse   compact0
ADM_alp0   descriptionLapse saved from initial timestep
  dimensions3
  distributionDEFAULT
  group typeGF
  stagger typeNONE
  timelevels1
 variable typeREAL




adm_initial   compact0
ADM_gxx0   descriptionArrays for initial data
ADM_gxy0   dimensions3
ADM_gxz0   distributionDEFAULT
ADM_gyy0   group typeGF
ADM_gyz0   stagger typeNONE
ADM_gzz0   timelevels1
ADM_kxx0  variable typeREAL




Uses header:

Symmetry.h

CalcTmunu_temps.inc

adm_preloop_ADM.inc

adm_icn_inloop.inc

adm_stagleap_pre_1e.inc

adm_stagleap_pre_2e.inc

adm_prepred_ADM.inc

adm_precorr_ADM.inc

adm_icn_bound1.inc

adm_icn_bound2.inc

Slicing.h

B1.5 Schedule

This section lists all the variables which are assigned storage by thorn CactusArchive/ADM. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

Storage

 

 Conditional:
  conformal_state
  ADM_metric_prev
  ADM_lapse_prev
  ADM_curv_prev
  ADM_dtlapse
  ADMloop
  icn_group_index
  ADM_initlapse
  ADM_initlapse
  ADM_initial
  ADM_curv_stag
  ADM_sources
  ADM_extrap
  ADM_gauge
  ADM_sources
  ADM_gauge
  ADM_sources
  ADM_gauge
   

Scheduled Functions

CCTK_PARAMCHECK (conditional)

  adm_paramcheck

  check parameters

 

 Language:c
 Options: global
 Type: function

CCTK_POSTINITIAL (conditional)

  adm_conformalcheck

  set conformal_state to 0 for physical, or check that it is at least 3

 

 Language:c
 Type: function

CCTK_EVOL (conditional)

  adm_doubleleap

  evolve using double leapfrog

 

 Before: externallapse
 Language:fortran
 Type: function

CCTK_EVOL (conditional)

  adm_setup

  flagging if slicing is done externaly

 

 Before: adm_doubleleap
 Language:fortran
 Type: function

CCTK_EVOL (conditional)

  adm_icn_init

  initialize icn

 

 Before: icn_loop
 Language:fortran
 Type: function

ICN_LOOP (conditional)

  adm_iterativecn

  evolve using iterative crank-nicholson

 

 Before: externallapse
 Language:fortran
 Type: function

CCTK_EVOL (conditional)

  adm_setup

  slicing is done externally

 

 Before: icn_loop
 Language:fortran
 Type: function

CCTK_EVOL (conditional)

  icn_loop

  iterative crank-nicholson loop

 

 Type: group
 While:adm::icn_iteration

CCTK_WRAGH (conditional)

  admsetsym

  set grid function symmetries

 

 Language:fortran
 Options: global
 Type: function

CCTK_STARTUP (conditional)

  admregisterslicing

  register slicings

 

 Language:c
 Options: global
 Type: function

CCTK_POSTINITIAL (conditional)

  adm_alp0_init

  save the lapse function at the initial timestep

 

 Language:fortran
 Type: function

CCTK_POSTINITIAL (conditional)

  adm_alp0_init

  save the lapse function at the initial timestep

 

 Language:fortran
 Type: function

CCTK_POSTINITIAL (conditional)

  adm_init

  save initial values of variables

 

 Language:fortran
 Type: function

CCTK_EVOL (conditional)

  adm_setup

  setup coefficients and internal slicing flags

 

 Before: adm_staggeredleapfrog1
 Language:fortran
 Type: function

CCTK_EVOL (conditional)

  adm_staggeredleapfrog1

  evolve using staggered leapfrog (step 1)

 

 Before: externallapse
 Language:fortran
 Type: function

CCTK_EVOL (conditional)

  adm_staggeredleapfrog2

  evolve using staggered leapfrog (step 2)

 

 After: adm_staggeredleapfrog1
   externallapse
 Language:fortran
 Type: function