|
Peano
|
-black-hole More...
-black-hole
Single black hole benchmark for the ExaGRyPE Python API
A single Schwarzschild black hole at the origin of the domain [-243,243]^3, as described in README.dox. The initial data stems from TwoPunctures, the boundaries are Sommerfeld boundaries. The script uses exagrype.api, i.e. the CCZ4 solver of the new Python API. Everything that matters for the benchmark is configurable on the command line:
The build variants are
Each variant fixes the defaults of –domain-size, –volume-size and –end-time. Pass them explicitly to override them.
Adaptive mesh refinement respects the constraints of README.dox: the maximum volume size (–volume-size) is a hard bound, i.e. the mesh is never coarser than the regular mesh of this size. The refinement only ever subdivides cells around the black hole further, by –amr-levels levels of factor three each within –amr-radius of the puncture. It is available for both schemes. The fd4 scheme starts on the regular mesh and refines it while it time steps; it cannot combine AMR with the Kreiss-Oliger dissipation yet.
It requires a Peano build with
--enable-exahype --enable-blockstructured --enable-loadbalancing --enable-exagrype --with-gsl
A run of the fourth-order Finite Differences with lopsided advection and the Kreiss-Oliger dissipation looks like
python3 single-black-hole.py --scheme fd4 --rk-order 4 --lopsided --ko-sigma 8.0 \ --compiler fusion --variant profile
and Finite Volumes with two additional levels of adaptive mesh refinement around the black hole are
python3 single-black-hole.py --scheme fv --amr-levels 2 --variant profile
The script writes two kinds of output into the output directory: binary checkpoints (–checkpoint-interval, every 10 time units by default) holding the whole solver state, and visualisation snapshots in Peano's patch file format (–plot-interval, every 1 time unit by default), i.e. solution-CCZ4.peano-patch-file and its companion files. The snapshots contain all unknowns. probe-single-black-hole.py extracts profiles from them. Pass 0 to switch either kind off.