| Author(s): | Gabrielle Allen |
| Bernd Bruegmann |
| Gerd Lanfermann |
| Joan Masso |
| Mark Miller |
| Paul Walker |
| Date: | Date |
Spacetime evolver for the ADM variables
This thorn evolves the standard ADM equations, see [1]. The line element is
![]() | (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
![]() | (B1.2) |
where
is the Lie derivative.
The ADM equations then evolve the spatial three metric γij and the extrinsic curvature Kij using
with
![]() | (B1.5) |
and where
β 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:
![]() | (B1.6) |
cartoon | Scope: private | BOOLEAN |
Description: Use cartoon boundary conditions
| ||
| Default: no | ||
dissip | Scope: private | REAL |
Description: Amount of covariant nabla
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
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
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
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 |
Implements:
adm
Inherits:
admbase
staticconformal
coordgauge
boundary
admmacros
grid
| Group Names | Variable Names | Details | |
| icn_group_index | compact | 0 | |
| icn_iteration | description | Specifies when to stop the ICN iterations | |
| dimensions | 0 | ||
| distribution | CONSTANT | ||
| group type | SCALAR | ||
| stagger type | NONE | ||
| timelevels | 1 | ||
| variable type | INT | ||
| admloop | compact | 0 | |
| i1 | description | Variables determining the behaviour of loops in ADM | |
| i2 | dimensions | 0 | |
| ADM_j1 | distribution | CONSTANT | |
| ADM_j2 | group type | SCALAR | |
| k1 | stagger type | NONE | |
| k2 | timelevels | 1 | |
| variable type | INT | ||
| adm_dtlapse | compact | 0 | |
| ADM_dtalp | description | Time derivative of lapse | |
| dimensions | 3 | ||
| distribution | DEFAULT | ||
| group type | GF | ||
| stagger type | NONE | ||
| timelevels | 1 | ||
| variable type | REAL | ||
| adm_lapse_prev | compact | 0 | |
| ADM_alp_p | description | Lapse on previous timestep | |
| dimensions | 3 | ||
| distribution | DEFAULT | ||
| group type | GF | ||
| stagger type | NONE | ||
| timelevels | 1 | ||
| variable type | REAL | ||
| adm_metric_prev | compact | 0 | |
| ADM_gxx_p | description | Metric variables and lapse on previous timestep | |
| ADM_gxy_p | dimensions | 3 | |
| ADM_gxz_p | distribution | DEFAULT | |
| ADM_gyy_p | group type | GF | |
| ADM_gyz_p | stagger type | NONE | |
| ADM_gzz_p | timelevels | 1 | |
| variable type | REAL | ||
| adm_curv_prev | compact | 0 | |
| ADM_kxx_p | description | Extrinsic curvature on previous timestep | |
| ADM_kxy_p | dimensions | 3 | |
| ADM_kxz_p | distribution | DEFAULT | |
| ADM_kyy_p | group type | GF | |
| ADM_kyz_p | stagger type | NONE | |
| ADM_kzz_p | timelevels | 1 | |
| variable type | REAL | ||
| Group Names | Variable Names | Details | |
| adm_curv_stag | compact | 0 | |
| ADM_kxx_stag | description | Extrinsic curvature on staggered timestep | |
| ADM_kxy_stag | dimensions | 3 | |
| ADM_kxz_stag | distribution | DEFAULT | |
| ADM_kyy_stag | group type | GF | |
| ADM_kyz_stag | stagger type | NONE | |
| ADM_kzz_stag | timelevels | 1 | |
| variable type | REAL | ||
| adm_sources | compact | 0 | |
| adms_kxx | description | The sources for the ADM evolution equations | |
| adms_kxy | dimensions | 3 | |
| adms_kxz | distribution | DEFAULT | |
| adms_kyy | group type | GF | |
| adms_kyz | stagger type | NONE | |
| adms_kzz | timelevels | 1 | |
| adms_gxx | variable type | REAL | |
| adm_extrap | compact | 0 | |
| adm_gxx_extrap | description | Extrapolated values of the ADM variables | |
| adm_gxy_extrap | dimensions | 3 | |
| adm_gxz_extrap | distribution | DEFAULT | |
| adm_gyy_extrap | group type | GF | |
| adm_gyz_extrap | stagger type | NONE | |
| adm_gzz_extrap | timelevels | 1 | |
| adm_alp_extrap | variable type | REAL | |
| adm_gauge | compact | 0 | |
| adm_gauge | description | The lapse gauge coefficient | |
| dimensions | 3 | ||
| distribution | DEFAULT | ||
| group type | GF | ||
| stagger type | NONE | ||
| timelevels | 1 | ||
| variable type | REAL | ||
| adm_initlapse | compact | 0 | |
| ADM_alp0 | description | Lapse saved from initial timestep | |
| dimensions | 3 | ||
| distribution | DEFAULT | ||
| group type | GF | ||
| stagger type | NONE | ||
| timelevels | 1 | ||
| variable type | REAL | ||
| adm_initial | compact | 0 | |
| ADM_gxx0 | description | Arrays for initial data | |
| ADM_gxy0 | dimensions | 3 | |
| ADM_gxz0 | distribution | DEFAULT | |
| ADM_gyy0 | group type | GF | |
| ADM_gyz0 | stagger type | NONE | |
| ADM_gzz0 | timelevels | 1 | |
| ADM_kxx0 | variable type | REAL | |
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
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.
| 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 | |
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 | |