BaikalVacuum solves Einstein’s equations of general relativity in the BSSN formalism, for the case of vacuum (e.g., black hole) spacetimes. In such spacetimes Einstein’s equations reduce to \(G^{\mu \nu }=0\). Given that the complications and super-short-lengthscale variations usually associated with the stress-energy tensor \(T^{\mu \nu }\) in strongly curved spacetimes do not exist in vacuum spacetimes, this thorn implements very high order finite-difference derivatives up to and including 8th order. All codes within this thorn were generated using the Python-based NRPy+ infrastructure, which may be found at http://nrpyplus.net/ (alt link: https://github.com/zachetienne/nrpytutorial).
Both BaikalVacuum and its sister thorn Baikal are fully documented in Jupyter notebooks within NRPy+, and the latest documentation for BaikalETK (the name of the combined Baikal / BaikalVacuum project) may be found in the Tutorial-ETK_thorn-BaikalETK.ipynb Jupyter notebook here:
https://github.com/zachetienne/nrpytutorial
Also the NRPy+ Jupyter documentation can be navigated via the following link:
Currently Baikal / BaikalVacuum do not officially support numerical grids containing symmetry assumptions, but appropriate symmetries should be registered. Users are encouraged to proceed with caution when using symmetries. Future work will include adding official support for symmetries.
Baikal / BaikalVacuum do not yet support an extensive variety of gauge conditions, instead defaulting to the tried-and-true standard moving puncture gauge conditions (\(1+\log \) lapse combined with the “Gamma”-driving shift [though note that Baikal / BaikalVacuum refer to the “Gamma” variable as the “Lambda” variable]). Additional gauge condition options will eventually be added.
Baikal / BaikalVacuum do not support Llama-based multiblock (e.g., cubed sphere) grids, and adding this support is currently not a high priority.
diss_strength | Scope: restricted | REAL |
Description: (see NRPy+ for parameter definition)
| ||
Range | Default: 0.1 | |
*:* | All values accepted. NRPy+ does not restrict the allowed ranges of
parameters yet.
| |
eta | Scope: restricted | REAL |
Description: (see NRPy+ for parameter definition)
| ||
Range | Default: 2.0 | |
*:* | All values accepted. NRPy+ does not restrict the allowed ranges of
parameters yet.
| |
fd_order | Scope: restricted | INT |
Description: (see NRPy+ for parameter definition)
| ||
Range | Default: 4 | |
*:* | All values accepted. NRPy+ does not restrict the allowed ranges of
parameters yet.
| |
lapse_floor | Scope: restricted | REAL |
Description: (see NRPy+ for parameter definition)
| ||
Range | Default: 1e-15 | |
*:* | All values accepted. NRPy+ does not restrict the allowed ranges of
parameters yet.
| |
dtlapse_evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
BaikalVacuum | ||
dtshift_evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
BaikalVacuum | ||
evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
BaikalVacuum | ||
lapse_evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
BaikalVacuum | ||
shift_evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
BaikalVacuum | ||
Implements:
baikalvacuum
Inherits:
admbase
boundary
grid
Group Names | Variable Names | Details | |
evol_variables | compact | 0 | |
aDD00GF | description | Evolved gridfunctions. | |
aDD01GF | dimensions | 3 | |
aDD02GF | distribution | DEFAULT | |
aDD11GF | group type | GF | |
aDD12GF | timelevels | 3 | |
aDD22GF | variable type | REAL | |
evol_variables_rhs | compact | 0 | |
aDD00_rhsGF | description | Right-hand-side gridfunctions. | |
aDD01_rhsGF | dimensions | 3 | |
aDD02_rhsGF | distribution | DEFAULT | |
aDD11_rhsGF | group type | GF | |
aDD12_rhsGF | tags | InterpNumTimelevels=1 prolongation=”none” checkpoint=”no” | |
aDD22_rhsGF | timelevels | 1 | |
alpha_rhsGF | variable type | REAL | |
auxevol_variables | compact | 0 | |
RbarDD00GF | description | Auxiliary gridfunctions needed for evaluating the RHSs. | |
RbarDD01GF | dimensions | 3 | |
RbarDD02GF | distribution | DEFAULT | |
RbarDD11GF | group type | GF | |
RbarDD12GF | tags | InterpNumTimelevels=1 prolongation=”none” checkpoint=”no” | |
RbarDD22GF | timelevels | 1 | |
variable type | REAL | ||
aux_variables | compact | 0 | |
HGF | description | Auxiliary gridfunctions for e.g. | |
description | diagnostics. | ||
MSQUAREDGF | dimensions | 3 | |
MU0GF | distribution | DEFAULT | |
MU1GF | group type | GF | |
MU2GF | timelevels | 3 | |
variable type | REAL | ||
Uses header:
Symmetry.h
Boundary.h
Slicing.h
This section lists all the variables which are assigned storage by thorn WVUThorns/BaikalVacuum. 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: | |
evol_variables[3] | |
evol_variables_rhs[1] | |
auxevol_variables[1] | |
aux_variables[3] | |
CCTK_STARTUP
baikalvacuum_registerslicing
register 3+1 slicing condition
Language: | c | |
Options: | meta | |
Type: | function | |
Driver_BoundarySelect (conditional)
baikalvacuum_specify_driver_boundaryconditions
register boundary conditions in presync bin driver_boundaryselect.
Language: | c | |
Options: | meta | |
Type: | function | |
MoL_CalcRHS (conditional)
baikalvacuum_ricci_eval_order_8
compute ricci tensor, needed for bssn rhss, at finite-differencing order 8
Before: | baikalvacuum_rhs | |
Language: | c | |
Reads: | hdd00gf | |
hdd01gf | ||
hdd02gf | ||
hdd11gf | ||
hdd12gf | ||
hdd22gf | ||
lambdau0gf | ||
lambdau1gf | ||
lambdau2gf | ||
Type: | function | |
Writes: | rbardd00gf | |
rbardd01gf | ||
rbardd02gf | ||
rbardd11gf | ||
rbardd12gf | ||
rbardd22gf | ||
MoL_CalcRHS (conditional)
baikalvacuum_rhs_eval_order_4
evaluate bssn rhss, at finite-differencing order 4
After: | baikalvacuum_ricci | |
Language: | c | |
Reads: | evol_variables(everywhere) | |
auxevol_variables(interior) | ||
Type: | function | |
Writes: | evol_variables_rhs(interior) | |
MoL_CalcRHS (conditional)
baikalvacuum_rhs_eval_order_6
evaluate bssn rhss, at finite-differencing order 6
After: | baikalvacuum_ricci | |
Language: | c | |
Reads: | evol_variables(everywhere) | |
auxevol_variables(interior) | ||
Type: | function | |
Writes: | evol_variables_rhs(interior) | |
MoL_CalcRHS (conditional)
baikalvacuum_rhs_eval_order_8
evaluate bssn rhss, at finite-differencing order 8
After: | baikalvacuum_ricci | |
Language: | c | |
Reads: | evol_variables(everywhere) | |
auxevol_variables(interior) | ||
Type: | function | |
Writes: | evol_variables_rhs(interior) | |
MoL_CalcRHS (conditional)
baikalvacuum_specify_newrad_boundaryconditions_parameters
newrad boundary conditions, scheduled right after rhs eval.
After: | baikalvacuum_rhs | |
Language: | c | |
Reads: | evol_variables(everywhere) | |
Type: | function | |
Writes: | evol_variables_rhs(boundary) | |
MoL_PostStep (conditional)
baikalvacuum_bssn_to_adm
perform bssn-to-adm conversion. useful for diagnostics.
After: | baikalvacuum_evol_applybcs | |
Before: | admbase_setadmvars | |
Language: | c | |
Reads: | add00gf | |
add01gf | ||
add02gf | ||
add11gf | ||
add12gf | ||
add22gf | ||
hdd00gf | ||
hdd01gf | ||
hdd02gf | ||
hdd11gf | ||
hdd12gf | ||
hdd22gf | ||
vetu0gf | ||
vetu1gf | ||
vetu2gf | ||
betu0gf | ||
betu1gf | ||
betu2gf | ||
cfgf | ||
trkgf | ||
alphagf | ||
Type: | function | |
Writes: | admbase::metric(everywhere) | |
admbase::shift(everywhere) | ||
admbase::curv(everywhere) | ||
admbase::dtshift(everywhere) | ||
admbase::lapse(everywhere) | ||
MoL_PostStep (conditional)
baikalvacuum_enforce_detgammahat_constraint
enforce detgammabar = detgammahat (= 1 in cartesian)
Language: | c | |
Reads: | hdd00gf | |
hdd01gf | ||
hdd02gf | ||
hdd11gf | ||
hdd12gf | ||
hdd22gf | ||
Type: | function | |
Writes: | hdd00gf(everywhere) | |
hdd01gf(everywhere) | ||
hdd02gf(everywhere) | ||
hdd11gf(everywhere) | ||
hdd12gf(everywhere) | ||
hdd22gf(everywhere) | ||
MoL_PostStep (conditional)
baikalvacuum_floor_the_lapse
set lapse = max(lapse_floor, lapse)
Before: | baikalvacuum_enforce_detgammahat_constraint | |
Language: | c | |
Reads: | alphagf(everywhere) | |
Type: | function | |
Writes: | alphagf(everywhere) | |
MoL_PostStep (conditional)
baikalvacuum_specify_evol_boundaryconditions
register boundary conditions and perform amr+interprocessor synchronization
Language: | c | |
Options: | level | |
Sync: | evol_variables | |
Type: | function | |
MoL_PostStep (conditional)
applybcs
apply registered boundary conditions
After: | baikalvacuum_specify_evol_boundaryconditions | |
Type: | group | |
CCTK_BASEGRID (conditional)
baikalvacuum_symmetry_registration_oldcartgrid3d
register symmetries, the cartgrid3d way.
Language: | c | |
Options: | global | |
Type: | function | |
MoL_PseudoEvolution (conditional)
baikalvacuum_bssn_constraints_order_4
compute bssn (hamiltonian and momentum) constraints, at finite-differencing order 4
Language: | c | |
Reads: | add00gf | |
add01gf | ||
add02gf | ||
add11gf | ||
add12gf | ||
add22gf | ||
hdd00gf | ||
hdd01gf | ||
hdd02gf | ||
hdd11gf | ||
hdd12gf | ||
hdd22gf | ||
trkgf | ||
cfgf | ||
lambdau0gf | ||
lambdau1gf | ||
lambdau2gf | ||
Type: | function | |
Writes: | aux_variables | |
MoL_PseudoEvolution (conditional)
baikalvacuum_bssn_constraints_order_6
compute bssn (hamiltonian and momentum) constraints, at finite-differencing order 6
Language: | c | |
Reads: | add00gf | |
add01gf | ||
add02gf | ||
add11gf | ||
add12gf | ||
add22gf | ||
hdd00gf | ||
hdd01gf | ||
hdd02gf | ||
hdd11gf | ||
hdd12gf | ||
hdd22gf | ||
trkgf | ||
cfgf | ||
lambdau0gf | ||
lambdau1gf | ||
lambdau2gf | ||
Type: | function | |
Writes: | aux_variables | |
MoL_PseudoEvolution (conditional)
baikalvacuum_bssn_constraints_order_8
compute bssn (hamiltonian and momentum) constraints, at finite-differencing order 8
Language: | c | |
Reads: | add00gf | |
add01gf | ||
add02gf | ||
add11gf | ||
add12gf | ||
add22gf | ||
hdd00gf | ||
hdd01gf | ||
hdd02gf | ||
hdd11gf | ||
hdd12gf | ||
hdd22gf | ||
trkgf | ||
cfgf | ||
lambdau0gf | ||
lambdau1gf | ||
lambdau2gf | ||
Type: | function | |
Writes: | aux_variables | |
MoL_PseudoEvolution
baikalvacuum_specify_aux_boundaryconditions
register boundary conditions and perform amr+interprocessor synchronization
After: | baikalvacuum_bssn_constraints | |
Language: | c | |
Options: | level | |
Sync: | aux_variables | |
Type: | function | |
MoL_PseudoEvolution
applybcs
apply registered boundary conditions
After: | baikalvacuum_specify_aux_boundaryconditions | |
Type: | group | |
CCTK_BASEGRID
baikalvacuum_zero_rhss
idea from lean: set all rhs functions to zero to prevent spurious nans
After: | symmetry_registration | |
Language: | c | |
Type: | function | |
Writes: | evol_variables_rhs(everywhere) | |
CCTK_INITIAL (conditional)
baikalvacuum_adm_to_bssn_order_4
convert initial data into bssn variables
After: | admbase_postinitial | |
Language: | c | |
Reads: | admbase::metric | |
admbase::shift | ||
admbase::curv | ||
admbase::dtshift | ||
admbase::lapse | ||
Sync: | evol_variables | |
Type: | function | |
Writes: | evol_variables | |
CCTK_INITIAL (conditional)
baikalvacuum_adm_to_bssn_order_6
convert initial data into bssn variables
After: | admbase_postinitial | |
Language: | c | |
Reads: | admbase::metric | |
admbase::shift | ||
admbase::curv | ||
admbase::dtshift | ||
admbase::lapse | ||
Sync: | evol_variables | |
Type: | function | |
Writes: | evol_variables | |
CCTK_INITIAL (conditional)
baikalvacuum_adm_to_bssn_order_8
convert initial data into bssn variables
After: | admbase_postinitial | |
Language: | c | |
Reads: | admbase::metric | |
admbase::shift | ||
admbase::curv | ||
admbase::dtshift | ||
admbase::lapse | ||
Sync: | evol_variables | |
Type: | function | |
Writes: | evol_variables | |
MoL_Register (conditional)
baikalvacuum_mol_registration
register variables for mol
Language: | c | |
Options: | meta | |
Type: | function | |
MoL_CalcRHS (conditional)
baikalvacuum_ricci_eval_order_4
compute ricci tensor, needed for bssn rhss, at finite-differencing order 4
Before: | baikalvacuum_rhs | |
Language: | c | |
Reads: | hdd00gf | |
hdd01gf | ||
hdd02gf | ||
hdd11gf | ||
hdd12gf | ||
hdd22gf | ||
lambdau0gf | ||
lambdau1gf | ||
lambdau2gf | ||
Type: | function | |
Writes: | rbardd00gf | |
rbardd01gf | ||
rbardd02gf | ||
rbardd11gf | ||
rbardd12gf | ||
rbardd22gf | ||
MoL_CalcRHS (conditional)
baikalvacuum_ricci_eval_order_6
compute ricci tensor, needed for bssn rhss, at finite-differencing order 6
Before: | baikalvacuum_rhs | |
Language: | c | |
Reads: | hdd00gf | |
hdd01gf | ||
hdd02gf | ||
hdd11gf | ||
hdd12gf | ||
hdd22gf | ||
lambdau0gf | ||
lambdau1gf | ||
lambdau2gf | ||
Type: | function | |
Writes: | rbardd00gf | |
rbardd01gf | ||
rbardd02gf | ||
rbardd11gf | ||
rbardd12gf | ||
rbardd22gf | ||
Alias Name: | Function Name: |
ApplyBCs | BaikalVacuum_aux_ApplyBCs |
BaikalVacuum_BSSN_constraints_order_4 | BaikalVacuum_BSSN_constraints |
BaikalVacuum_BSSN_constraints_order_6 | BaikalVacuum_BSSN_constraints |
BaikalVacuum_BSSN_constraints_order_8 | BaikalVacuum_BSSN_constraints |
BaikalVacuum_Ricci_eval_order_4 | BaikalVacuum_Ricci |
BaikalVacuum_Ricci_eval_order_6 | BaikalVacuum_Ricci |
BaikalVacuum_Ricci_eval_order_8 | BaikalVacuum_Ricci |
BaikalVacuum_Symmetry_registration_oldCartGrid3D | Symmetry_registration |
BaikalVacuum_rhs_eval_order_4 | BaikalVacuum_RHS |
BaikalVacuum_rhs_eval_order_6 | BaikalVacuum_RHS |
BaikalVacuum_rhs_eval_order_8 | BaikalVacuum_RHS |