This Thorn implements the Z4c formulation of the Einstein Equations [?]. It also monitors the stability of those equations [?].
The SpacetimeX/Z4c thorn reads (i.e. in Z4c_Initial1) and, if the parameter Z4c::calc_ADM_vars is set (which is true by default), writes (i.e. in Z4c_ADM) the ADM variables (i.e. CarpetX/ADMBaseX) automatically.
Derivatives are hard-coded to fourth order. However, should it be desired, second order is also possible by editing the constant deriv_order in derivs.hxx to the value 2.
This thorn integrates with the CarpetX/ODESolvers thorn.
@articleHilditch:2012fp, author = ”Hilditch, David and Bernuzzi, Sebastiano and Thierfelder, Marcus and Cao, Zhoujian and Tichy, Wolfgang and Bruegmann, Bernd”, title = ”Compact binary evolutions with the Z4c formulation”, journal = ”Phys. Rev.”, volume = ”D88”, year = ”2013”, pages = ”084057”, doi = ”10.1103/PhysRevD.88.084057”, eprint = ”1212.2901”, archivePrefix = ”arXiv”, primaryClass = ”gr-qc”, SLACcitation = ” @articlecao2012numerical, title=Numerical stability of the Z4c formulation of general relativity, author=Cao, Zhoujian and Hilditch, David, journal=Physical Review D, volume=85, number=12, pages=124032, year=2012, publisher=APS
alphag_floor | Scope: private | REAL |
Description: Floor for alphaG
| ||
Range | Default: 1.0e-10 | |
(0:* | ||
boundary_conditions | Scope: private | KEYWORD |
Description: boundary conditions
| ||
Range | Default: CarpetX | |
NewRadX | radiative boundary conditions using NewRadX
| |
CarpetX | use CarpetX default boundary conditions
| |
calc_adm_vars | Scope: private | BOOLEAN |
Description: Calculate ADM variables
| ||
Default: yes | ||
calc_admrhs_vars | Scope: private | BOOLEAN |
Description: Calculate RHS of ADM variables
| ||
Default: yes | ||
calc_constraints | Scope: private | BOOLEAN |
Description: Calculate constraints
| ||
Default: yes | ||
chi_floor | Scope: private | REAL |
Description: Floor for chi
| ||
Range | Default: 1.0e-10 | |
(0:* | ||
epsdiss | Scope: private | REAL |
Description: Dissipation coefficient <arXiv:gr-qc/0610128>
| ||
Range | Default: 0.32 | |
0.0:* | ||
eta | Scope: private | REAL |
Description: eta
| ||
Range | Default: 2.0 | |
*:* | ||
f_mu_l | Scope: private | REAL |
Description: mu_L = f_mu_L / alpha
| ||
Range | Default: 2.0 | |
*:* | ||
f_mu_s | Scope: private | REAL |
Description: mu_S = f_mu_S / alpha
| ||
Range | Default: 1.0 | |
*:* | ||
kappa1 | Scope: private | REAL |
Description: kappa1
| ||
Range | Default: 0.02 | |
*:* | ||
kappa2 | Scope: private | REAL |
Description: kappa2
| ||
Range | Default: 0.0 | |
*:* | ||
n_alphag | Scope: private | INT |
Description: n power of outgoing boundary r fall off rate for alpha
| ||
Range | Default: 1 | |
0:2 | 1 is my guess
| |
n_at | Scope: private | INT |
Description: n power of outgoing boundary r fall off rate for At_ij
| ||
Range | Default: 1 | |
0:2 | Maybe 1?
| |
n_betag | Scope: private | INT |
Description: n power of outgoing boundary r fall off rate for beta
| ||
Range | Default: 1 | |
0:2 | 1 is my guess
| |
n_chi | Scope: private | INT |
Description: n power of outgoing boundary r fall off rate for chi
| ||
Range | Default: 1 | |
0:2 | 1 is reasonable
| |
n_gammat | Scope: private | INT |
Description: n power of outgoing boundary r fall off rate for gammat_ij
| ||
Range | Default: 1 | |
0:2 | 1 is reasonable
| |
n_gamt | Scope: private | INT |
Description: n power of outgoing boundary r fall off rate for Gamtî
| ||
Range | Default: 1 | |
0:2 | Maybe 1?
| |
n_kh | Scope: private | INT |
Description: n power of outgoing boundary r fall off rate for Kh
| ||
Range | Default: 1 | |
0:2 | Maybe 1?
| |
n_theta | Scope: private | INT |
Description: n power of outgoing boundary r fall off rate for Theta
| ||
Range | Default: 1 | |
0:2 | Maybe 1?
| |
set_theta_zero | Scope: private | BOOLEAN |
Description: set Theta to zero, which converts Z4c to BSSN
| ||
Default: no | ||
Implements:
z4c
Inherits:
admbasex
tmunubasex
Group Names | Variable Names | Details | |
chi | chi | compact | 0 |
description | chi | ||
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | rhs=”chi_rhs” dependents=”ADMBaseX::metric” | ||
timelevels | 1 | ||
variable type | REAL | ||
gamma_tilde | compact | 0 | |
gammatxx | description | gamma-tilde | |
gammatxy | dimensions | 3 | |
gammatxz | distribution | DEFAULT | |
gammatyy | group type | GF | |
gammatyz | tags | parities={+1 +1 +1 -1 -1 +1 -1 +1 -1 +1 +1 +1 +1 -1 -1 +1 +1 +1} rhs=”gamma_tilde_rhs” dependents=”ADMBaseX::metric” | |
gammatzz | timelevels | 1 | |
variable type | REAL | ||
k_hat | compact | 0 | |
Kh | description | K-hat | |
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | rhs=”K_hat_rhs” dependents=”ADMBaseX::curv” | ||
timelevels | 1 | ||
variable type | REAL | ||
a_tilde | compact | 0 | |
Atxx | description | A-tilde | |
Atxy | dimensions | 3 | |
Atxz | distribution | DEFAULT | |
Atyy | group type | GF | |
Atyz | tags | parities={+1 +1 +1 -1 -1 +1 -1 +1 -1 +1 +1 +1 +1 -1 -1 +1 +1 +1} rhs=”A_tilde_rhs” dependents=”ADMBaseX::curv” | |
Atzz | timelevels | 1 | |
variable type | REAL | ||
gam_tilde | compact | 0 | |
Gamtx | description | Gamma-tilde | |
Gamty | dimensions | 3 | |
Gamtz | distribution | DEFAULT | |
group type | GF | ||
tags | parities={-1 +1 +1 +1 -1 +1 +1 +1 -1} rhs=”Gam_tilde_rhs” | ||
timelevels | 1 | ||
variable type | REAL | ||
theta | Theta | compact | 0 |
description | Theta | ||
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | rhs=”Theta_rhs” dependents=”ADMBaseX::curv” | ||
timelevels | 1 | ||
variable type | REAL | ||
Group Names | Variable Names | Details | |
alphag | alphaG | compact | 0 |
description | alpha | ||
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | rhs=”alphaG_rhs” dependents=”ADMBaseX::lapse ADMBaseX::dtlapse” | ||
timelevels | 1 | ||
variable type | REAL | ||
betag | compact | 0 | |
betaGx | description | beta | |
betaGy | dimensions | 3 | |
betaGz | distribution | DEFAULT | |
group type | GF | ||
tags | parities={-1 +1 +1 +1 -1 +1 +1 +1 -1} rhs=”betaG_rhs” dependents=”ADMBaseX::shift ADMBaseX::dtshift” | ||
timelevels | 1 | ||
variable type | REAL | ||
ztc | compact | 0 | |
ZtCx | description | Z-tilde | |
ZtCy | dimensions | 3 | |
ZtCz | distribution | DEFAULT | |
group type | GF | ||
tags | parities={-1 +1 +1 +1 -1 +1 +1 +1 -1} checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
hc | HC | compact | 0 |
description | H | ||
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
mtc | compact | 0 | |
MtCx | description | M-tilde | |
MtCy | dimensions | 3 | |
MtCz | distribution | DEFAULT | |
group type | GF | ||
tags | parities={-1 +1 +1 +1 -1 +1 +1 +1 -1} checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
allc | allC | compact | 0 |
description | constraint monitor | ||
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
Group Names | Variable Names | Details | |
chi_rhs | chi_rhs | compact | 0 |
description | chi | ||
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
gamma_tilde_rhs | compact | 0 | |
gammatxx_rhs | description | gamma-tilde | |
gammatxy_rhs | dimensions | 3 | |
gammatxz_rhs | distribution | DEFAULT | |
gammatyy_rhs | group type | GF | |
gammatyz_rhs | tags | parities={+1 +1 +1 -1 -1 +1 -1 +1 -1 +1 +1 +1 +1 -1 -1 +1 +1 +1} checkpoint=”no” | |
gammatzz_rhs | timelevels | 1 | |
variable type | REAL | ||
k_hat_rhs | compact | 0 | |
Kh_rhs | description | K-hat | |
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
a_tilde_rhs | compact | 0 | |
Atxx_rhs | description | A-tilde | |
Atxy_rhs | dimensions | 3 | |
Atxz_rhs | distribution | DEFAULT | |
Atyy_rhs | group type | GF | |
Atyz_rhs | tags | parities={+1 +1 +1 -1 -1 +1 -1 +1 -1 +1 +1 +1 +1 -1 -1 +1 +1 +1} checkpoint=”no” | |
Atzz_rhs | timelevels | 1 | |
variable type | REAL | ||
gam_tilde_rhs | compact | 0 | |
Gamtx_rhs | description | Gamma-tilde | |
Gamty_rhs | dimensions | 3 | |
Gamtz_rhs | distribution | DEFAULT | |
group type | GF | ||
tags | parities={-1 +1 +1 +1 -1 +1 +1 +1 -1} checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
theta_rhs | Theta_rhs | compact | 0 |
description | Theta | ||
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
Group Names | Variable Names | Details | |
alphag_rhs | alphaG_rhs | compact | 0 |
description | alpha | ||
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
tags | checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
betag_rhs | compact | 0 | |
betaGx_rhs | description | beta | |
betaGy_rhs | dimensions | 3 | |
betaGz_rhs | distribution | DEFAULT | |
group type | GF | ||
tags | parities={-1 +1 +1 +1 -1 +1 +1 +1 -1} checkpoint=”no” | ||
timelevels | 1 | ||
variable type | REAL | ||
Uses header:
defs.hxx
div.hxx
dual.hxx
loop_device.hxx
mat.hxx
simd.hxx
sum.hxx
vec.hxx
vect.hxx
newradx.hxx
This section lists all the variables which are assigned storage by thorn SpacetimeX/Z4c. 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.
Always: | |
chi | |
gamma_tilde | |
MtC | |
allC | |
chi_rhs | |
gamma_tilde_rhs | |
K_hat_rhs | |
A_tilde_rhs | |
Gam_tilde_rhs | |
Theta_rhs | |
alphaG_rhs | |
betaG_rhs | |
K_hat | |
A_tilde | |
Gam_tilde | |
Theta | |
alphaG | |
betaG | |
ZtC | |
HC | |
CCTK_INITIAL
z4c_initialgroup
convert adm to z4c variables
After: | admbasex_postinitial | |
Type: | group | |
CCTK_INITIAL (conditional)
z4c_poststepgroup
post-process z4c variables
After: | z4c_initialgroup | |
Before: | admbasex_setadmvars | |
Type: | group | |
Z4c_InitialGroup
z4c_initial1
convert adm to z4c variables, part 1
Language: | c | |
Reads: | admbasex::metric(interior) | |
admbasex::curv(interior) | ||
admbasex::lapse(interior) | ||
admbasex::shift(interior) | ||
Sync: | gamma_tilde | |
Type: | function | |
Writes: | chi(interior) | |
gamma_tilde(interior) | ||
k_hat(interior) | ||
a_tilde(interior) | ||
theta(interior) | ||
alphag(interior) | ||
betag(interior) | ||
Z4c_InitialGroup
z4c_initial2
convert adm to z4c variables, part 2
After: | z4c_initial1 | |
Language: | c | |
Reads: | gamma_tilde(everywhere) | |
Type: | function | |
Writes: | gam_tilde(interior) | |
Z4c_PostStepGroup
z4c_enforce
enforce algebraic z4c constraints
Language: | c | |
Reads: | chi(interior) | |
gamma_tilde(interior) | ||
a_tilde(interior) | ||
alphag(interior) | ||
Sync: | chi | |
gamma_tilde | ||
k_hat | ||
a_tilde | ||
gam_tilde | ||
theta | ||
alphag | ||
betag | ||
Type: | function | |
Writes: | chi(interior) | |
gamma_tilde(interior) | ||
a_tilde(interior) | ||
alphag(interior) | ||
Z4c_PostStepGroup (conditional)
z4c_adm
convert z4c to adm variables
After: | z4c_enforce | |
Language: | c | |
Reads: | chi(everywhere) | |
gamma_tilde(everywhere) | ||
k_hat(everywhere) | ||
a_tilde(everywhere) | ||
gam_tilde(everywhere) | ||
theta(everywhere) | ||
alphag(everywhere) | ||
betag(everywhere) | ||
Type: | function | |
Writes: | admbasex::metric(everywhere) | |
admbasex::curv(everywhere) | ||
admbasex::lapse(everywhere) | ||
admbasex::dtlapse(everywhere) | ||
admbasex::shift(everywhere) | ||
admbasex::dtshift(everywhere) | ||
Z4c_PostStepGroup2 (conditional)
z4c_adm2
calculate second time derivatives of adm variables
Language: | c | |
Reads: | chi(everywhere) | |
gamma_tilde(everywhere) | ||
k_hat(everywhere) | ||
a_tilde(everywhere) | ||
gam_tilde(everywhere) | ||
theta(everywhere) | ||
alphag(everywhere) | ||
betag(everywhere) | ||
tmunubasex::ettt(interior) | ||
tmunubasex::etti(interior) | ||
tmunubasex::etij(interior) | ||
Sync: | admbasex::dtcurv | |
admbasex::dt2lapse | ||
admbasex::dt2shift | ||
Type: | function | |
Writes: | admbasex::dtcurv(interior) | |
admbasex::dt2lapse(interior) | ||
admbasex::dt2shift(interior) | ||
Z4c_AnalysisGroup (conditional)
z4c_constraints
calculate z4c constraints
Language: | c | |
Reads: | chi(everywhere) | |
gamma_tilde(everywhere) | ||
k_hat(everywhere) | ||
a_tilde(everywhere) | ||
gam_tilde(everywhere) | ||
theta(everywhere) | ||
alphag(everywhere) | ||
betag(everywhere) | ||
tmunubasex::ettt(interior) | ||
tmunubasex::etti(interior) | ||
tmunubasex::etij(interior) | ||
Type: | function | |
Writes: | ztc(interior) | |
hc(interior) | ||
mtc(interior) | ||
allc(interior) | ||
Z4c_RHSGroup (conditional)
z4c_rhs
calculate z4c rhs
Language: | c | |
Reads: | chi(everywhere) | |
gamma_tilde(everywhere) | ||
k_hat(everywhere) | ||
a_tilde(everywhere) | ||
gam_tilde(everywhere) | ||
theta(everywhere) | ||
alphag(everywhere) | ||
betag(everywhere) | ||
tmunubasex::ettt(interior) | ||
tmunubasex::etti(interior) | ||
tmunubasex::etij(interior) | ||
Type: | function | |
Writes: | chi_rhs(interior) | |
gamma_tilde_rhs(interior) | ||
k_hat_rhs(interior) | ||
a_tilde_rhs(interior) | ||
gam_tilde_rhs(interior) | ||
theta_rhs(interior) | ||
alphag_rhs(interior) | ||
betag_rhs(interior) | ||
Z4c_RHSGroup (conditional)
z4c_apply_newradx_boundary_conditions
apply radiative boundary conditions to z4c rhs variables using newradx
After: | z4c_rhs | |
Language: | c | |
Reads: | chi(everywhere) | |
gamma_tilde(everywhere) | ||
k_hat(everywhere) | ||
a_tilde(everywhere) | ||
gam_tilde(everywhere) | ||
theta(everywhere) | ||
alphag(everywhere) | ||
betag(everywhere) | ||
chi_rhs(interior) | ||
gamma_tilde_rhs(interior) | ||
k_hat_rhs(interior) | ||
a_tilde_rhs(interior) | ||
gam_tilde_rhs(interior) | ||
theta_rhs(interior) | ||
alphag_rhs(interior) | ||
betag_rhs(interior) | ||
Type: | function | |
Writes: | chi_rhs(interior) | |
gamma_tilde_rhs(interior) | ||
k_hat_rhs(interior) | ||
a_tilde_rhs(interior) | ||
gam_tilde_rhs(interior) | ||
theta_rhs(interior) | ||
alphag_rhs(interior) | ||
betag_rhs(interior) | ||
CCTK_INITIAL
z4c_poststepgroup2
post-process z4c variables, part 2
After: | tmunubasex_settmunuvars | |
z4c_poststepgroup | ||
Before: | admbasex_setadmrhs | |
Type: | group | |
CCTK_POSTREGRID
z4c_poststepgroup
post-process z4c variables
Before: | admbasex_setadmvars | |
Type: | group | |
CCTK_POSTREGRID
z4c_poststepgroup2
post-process z4c variables, part 2
After: | tmunubasex_settmunuvars | |
z4c_poststepgroup | ||
Before: | admbasex_setadmrhs | |
Type: | group | |
CCTK_ANALYSIS
z4c_analysisgroup
analyse z4c variables
Type: | group | |
ODESolvers_PostStep
z4c_poststepgroup
post-process z4c variables
Before: | admbasex_setadmvars | |
Type: | group | |
ODESolvers_PostStep
z4c_poststepgroup2
post-process z4c variables, part 2
After: | tmunubasex_settmunuvars | |
z4c_poststepgroup | ||
Before: | admbasex_setadmrhs | |
Type: | group | |
ODESolvers_RHS
z4c_rhsgroup
calculate z4c rhs
Type: | group | |
CCTK_WRAGH
z4c_test
self-test
Language: | c | |
Options: | meta | |
Type: | function | |