Peano
Loading...
Searching...
No Matches
single Namespace Reference

-black-hole More...

Detailed Description

-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 numerical scheme (–scheme, –rk-order, –ko-sigma, –lopsided),
  • the adaptive mesh refinement (–amr-levels, –amr-radius),
  • the task graph compiler (–compiler),
  • the build variant (–variant), which picks the compile mode and the size of the setup, and
  • the final time (–end-time).

The build variants are

  • debug: Peano's debug build with a tiny setup to check that the code works,
  • profile: Peano's build with statistics counters and a reduced setup (domain 54, volumes of size 1) which is small enough to profile on one node, and
  • production: the release build with the setup of README.dox (domain 486, volumes of size 0.4, t=100). This one is far too big for a workstation.

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.