Baikal solves Einstein’s equations of general relativity in the BSSN formalism. Given that the complications and super-short-lengthscale variations usually associated with the stress-energy tensor in strongly curved spacetimes, this thorn implements finite-difference derivatives up to and including 4th order, but no higher. 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 Baikal and its sister thorn BaikalVacuum 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-BaikalETK.ipynb Jupyter notebook here:
https://github.com/zachetienne/nrpytutorial
Also the NRPy+ Jupyter documentation can be navigated via the following link:
https://nbviewer.jupyter.org/github/zachetienne/nrpytutorial/blob/master/Tutorial-BaikalETK.ipynb
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 ( 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: diss_strength (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: eta (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: Finite-differencing order
| ||
Range | Default: 4 | |
2:2 | ”finite-differencing order = 2”
| |
4:4 | ”finite-differencing order = 4”
| |
lapse_floor | Scope: restricted | REAL |
Description: lapse_floor (see NRPy+ for parameter definition)
| ||
Range | Default: 1e-15 | |
*:* | All values accepted. NRPy+ does not restrict the allowed ranges of
parameters yet.
| |
pi | Scope: restricted | REAL |
Description: PI (see NRPy+ for parameter definition)
| ||
Range | Default: 3.14159265358979323846264338327950288 | |
*:* | All values accepted. NRPy+ does not restrict the allowed ranges of
parameters yet.
| |
dtlapse_evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
Baikal | ||
dtshift_evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
Baikal | ||
evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
Baikal | ||
lapse_evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
Baikal | ||
shift_evolution_method | Scope: shared from ADMBASE | KEYWORD |
Extends ranges:
| ||
Baikal | ||
Implements:
baikal
Inherits:
admbase
boundary
grid
methodoflines
tmunubase
Group Names | Variable Names | Details | |
evol_variables | compact | 0 | |
aDD00GF | description | BSSN 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 storage for BSSN evolved gridfunctions | |
aDD01_rhsGF | dimensions | 3 | |
aDD02_rhsGF | distribution | DEFAULT | |
aDD11_rhsGF | group type | GF | |
aDD12_rhsGF | tags | InterpNumTimelevels=1 prolongation=”none” | |
aDD22_rhsGF | timelevels | 1 | |
alpha_rhsGF | variable type | REAL | |
aux_variables | compact | 0 | |
HGF | description | Auxiliary gridfunctions for BSSN diagnostics | |
MU0GF | dimensions | 3 | |
MU1GF | distribution | DEFAULT | |
MU2GF | group type | GF | |
timelevels | 3 | ||
variable type | REAL | ||
auxevol_variables | compact | 0 | |
RbarDD00GF | description | Auxiliary gridfunctions needed for evaluating the BSSN RHSs | |
RbarDD01GF | dimensions | 3 | |
RbarDD02GF | distribution | DEFAULT | |
RbarDD11GF | group type | GF | |
RbarDD12GF | tags | InterpNumTimelevels=1 prolongation=”none” | |
RbarDD22GF | timelevels | 1 | |
T4UU00GF | variable type | REAL | |
Uses header:
Symmetry.h
Boundary.h
This section lists all the variables which are assigned storage by thorn WVUThorns/Baikal. 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: | |
ADMBase::metric[1] ADMBase::curv[1] ADMBase::lapse[1] ADMBase::shift[1] | |
evol_variables[3] | |
evol_variables_rhs[1] | |
aux_variables[3] | |
auxevol_variables[1] | |
CCTK_STARTUP
baikal_banner
output ascii art banner
Language: | c | |
Options: | meta | |
Type: | function | |
CCTK_STARTUP
baikal_registerslicing
register 3+1 slicing condition
After: | baikal_banner | |
Language: | c | |
Options: | meta | |
Type: | function | |
MoL_CalcRHS
baikal_newrad
newrad boundary conditions, scheduled right after rhs eval.
After: | baikal_rhs | |
Language: | c | |
Type: | function | |
MoL_PostStep
baikal_floor_the_lapse
set lapse = max(lapse_floor, lapse)
Before: | baikal_enforce_detgammabar_constraint | |
bc_update | ||
Language: | c | |
Type: | function | |
MoL_PostStep
baikal_enforce_detgammabar_constraint
enforce detgammabar = detgammahat (= 1 in cartesian)
Before: | bc_update | |
Language: | c | |
Type: | function | |
MoL_PostStep
baikal_boundaryconditions_evolved_gfs
apply boundary conditions and perform amr+interprocessor synchronization
Language: | c | |
Options: | level | |
Sync: | evol_variables | |
Type: | function | |
MoL_PostStep
applybcs
group for applying boundary conditions
After: | baikal_boundaryconditions_evolved_gfs | |
Type: | group | |
MoL_PostStep
baikal_bssn_to_adm
perform bssn-to-adm conversion. useful for diagnostics.
After: | baikal_applybcs | |
Before: | admbase_setadmvars | |
Language: | c | |
Options: | local | |
Type: | function | |
MoL_PseudoEvolution
baikal_driver_bssn_t4uu
mol_pseudoevolution: compute t4uu, needed for bssn constraints
Before: | baikal_bssn_constraints | |
Language: | c | |
Options: | local | |
Type: | function | |
MoL_PseudoEvolution
baikal_bssn_constraints
compute bssn (hamiltonian and momentum) constraints
Language: | c | |
Options: | local | |
Type: | function | |
MoL_PseudoEvolution
baikal_boundaryconditions_aux_gfs
enforce symmetry bcs in constraint computation
After: | baikal_bssn_constraints | |
Language: | c | |
Options: | level | |
Sync: | aux_variables | |
Type: | function | |
MoL_PseudoEvolution
baikal_bssn_to_adm
perform bssn-to-adm conversion in mol_pseudoevolution. needed for proper hydrobase integration.
After: | baikal_boundaryconditions_aux_gfs | |
Language: | c | |
Options: | local | |
Type: | function | |
CCTK_BASEGRID
baikal_symmetry_registration
register symmetries, the cartgrid3d way.
Language: | c | |
Options: | global | |
Type: | function | |
MoL_PseudoEvolution
applybcs
apply boundary conditions
After: | baikal_boundaryconditions_aux_gfs | |
Type: | group | |
CCTK_BASEGRID
baikal_zero_rhss
idea from lean: set all rhs functions to zero to prevent spurious nans
After: | baikal_symmetry_registration | |
Language: | c | |
Type: | function | |
CCTK_INITIAL
baikal_adm_to_bssn
convert initial data into bssn variables
After: | admbase_postinitial | |
Language: | c | |
Options: | local | |
Sync: | evol_variables | |
Type: | function | |
CCTK_INITIAL
applybcs
apply boundary conditions
After: | baikal_adm_to_bssn | |
Type: | group | |
MoL_Register
baikal_mol_registration
register variables for mol
Language: | c | |
Options: | meta | |
Type: | function | |
MoL_CalcRHS
baikal_driver_bssn_t4uu
mol: compute t4uu, needed for bssn rhss.
Before: | baikal_bssn_to_adm | |
Language: | c | |
Type: | function | |
MoL_CalcRHS
baikal_driver_pt1_bssn_ricci
mol: compute ricci tensor
Before: | baikal_rhs | |
Language: | c | |
Type: | function | |
MoL_CalcRHS
baikal_driver_pt2_bssn_rhss
mol: evaluate bssn rhss
After: | baikal_ricci | |
Language: | c | |
Type: | function | |
Alias Name: | Function Name: |
ApplyBCs | Baikal_ApplyBCs |
Baikal_driver_BSSN_T4UU | Baikal_T4UU |
Baikal_driver_pt1_BSSN_Ricci | Baikal_Ricci |
Baikal_driver_pt2_BSSN_RHSs | Baikal_RHS |