FUKA
|
The isolated BH code was created to test many aspects of the initial data creation such as formalism implementation, initial guess generation, and import into an evolution framework. It has now become a critical piece in generating binary ID that include a BH companion. The codes included here are simply the means for a user to generate an isolated BH and analyze it.
This is an excellent way for a new user to get acquainted with how the FUKAv2 solvers work since the interface is similar amongst the v2 solvers by design.
CMakeLists.txt
is the file needed by CMake to compile the codescompile
is a symbolic link to the script stored in $HOME_KADATH/build_release
to ease compilingsrc
directory contains the relevant source files:solve.cpp
: the one and done solve codereader.cpp
: the reader can provide diagonstics from ID solutions that are computed from the IDsolve
for the first timempirun ./bin/Release/solve initial_bh.info
solve
for the first timempirun ./bin/Release/solve initial_bh.info
BH_TOTAL_BC.0.5.0.09.<info/dat>
We can deconstruct the name to make it understandable:
BH_TOTAL_BC.
denotes a converged BH solution after the TOTAL_BC
stage. This is meant to distinguish the solution from other stages suched as the boosted BH stage. This also distinquishes it from checkpoints that can be turned on which are saved to file during each iteration of the solver0.5.0.
: In this case, we have a 0.5M BH with a dimensionless spin of zero0.09.
: No additional spherical shells have been added and the global resolution is nine collocation points in the radial and theta direction with 8 points in the phi directioninfo
: The info file contains all the steering parameters, values used in creating the domain decomposition, stored fields, stages, settings, and controlsdat
: The dat file is a binary file that contains the numerical space and the variable fieldsThe default configuration for an isolated BH has a mass of 0.5M and non-spinning. Aside from the diagnostics observed during the solver stage, we can use the reader to verify the ID. This can be done by running:
./bin/Release/reader BH_TOTAL_BC.0.5.0.0.09.info
Which results in the following:
The first block contains information related to the numerical space specifically the
[r,theta,phi]
The second block includes the
[min, max]
of the lapse and conformal factor on the horizon.The third block contains the
Finally, the fourth block contains the
Note:
Diff
noted by the ADM mass is the symmetric difference between the ADM and Komar mass.
Using your favorite text editor, you can open up the initial_bh.info
. We will go through the file, but we'll discuss only the details relevant to the BH case. For details on all the parameters you can see more in Configurator README.
Notes:
initial_bh.info
. Using old initial data unless for very small changes in chi
is inefficient.solve fullto obtain the full Config file. Although useful for development, there is little advantage to using the full Config.
The above includes parameters that can be fixed by the user as well as parameters that are automated in the background and should not be changed. Those most relevant to generating ID of interest are
chi
: the dimensionless spin parameter [-0.84, 0.84]
mch
: the Christodoulou massres
: the final global resolution of interest (this will be discussed more below)Within the full Config or the output solutions, Fields
document the fields that are used in the solver and stored in the dat
file. Changing this has no impact.
For the isolated BH, only the TOTAL_BC
is relevant. Old stages available in the original v1 solver are since deprecated.
checkpoint
: this will result in checkpoints being saved to file during each solving iteration - mainly helpful for high resolution binary IDfixed_lapse
: toggling this control enables a fixed lapse on the horizon - not recommendedsolver_max_iterations
: set the number of iterations not to exceedsolver_precision
: Determines what is the maximum precision allowed by the solver that determines whether or not the solution has convergedinitial_resolution
: by default all solutions are ran at at a default resolution of [9,9,8]
prior to regridding to a higher resolution. In the event one wants to increase the default initial_resolution
, it can be done hereNow that you've generated the simplest case and we have a better understanding of the config file, we can try something more interesting
mch 1
chi 0.84
res 11
mpirun ./bin/Release/solve initial_bh.info
Many things will run differently this time! Most noteably are the following:
res 11
, the initial solution is always constructed using initial_resolution
value first. Currently the default initial resolution is [9,9,8]
.chi
used is close to the maximum possible with the maximally sliced, flat background XCTS, an interative procedure is done automatically to avoid the solution diverging. This is done in three steps to ensure convergence 1. `chi = 0.5` 2. `chi = 0.8` 3. `chi = 0.84`
chi
is achieved, the solution is regridded to a new grid with the desired final resolutionBH_TOTAL_BC.1.0.84.0.11.info/dat
, however, the other implicit solutions have been saved as well.We can of course verify that the ID matches our expectation using
./bin/Release/reader BH_TOTAL_BC.1.0.84.0.11.info
In initial data generation, the initial setup is the most crucial. When starting the BH solver from scratch we need to determine an initial guess for the input mass and aspin - mch
, chi
. For this a crude estimate is generated based on a fixed value of the conformal factor of conf = 1.55
to determine the domain decomposition and initial guess of the excision radius of
`rmid = 2 * mch / conf^2`
In the domain near the excision region, conf = 1.55
and conf = 1
everywhere else. lapse = 1
and shift = 0
.
With the initial guess generated, a rotating solution is now found based on the input mass mch
and dimensionless spin chi
fixing parameters.
For highly spinning BH configurations using a conformally flat background, it has been found to be necessary to obtain lower spinning solutions prior to a highly spinning one. Therefore, an initial spin of chi = 0.5
is used before attempting spins up to chi = 0.8
. For spins near the XCTS spin limit of approximately chi = 0.84
, an intermediate solution is obtained at chi = 0.8
before attempting chi > 0.8
.
Once the above procedures are completed for the last stage and the input res
is higher than the initial_resolution
, the low resolution solution is interpolated onto the higher resolution numerical grid and is used as the initial guess before running the last stage again. No additional iterative procedures are required at this point.