|
FUKA
|
Author(s) : Samuel D. Tootle, L. Jens Papenfort
Maintainer(s): Samuel D. Tootle - tootle@itp.uni-frankfurt.de
License : GPLv3+ for all other code
The FUKAv2 encompasses a rewrite of the original initial data (ID) solvers that were made publicly available in 2021. Although portions of the original codes have been reused, a significant overhaul of the solvers has been done not only to make the interface more accessible to the user, but to also provide a coherent interface between the isolated and binary solvers.
Aside from the abstraction and interface, the key component that makes the v2 binary solvers considerably more reliable and functional is the use of super-imposed boosted isolated objects to construct the "initial guess" for the binary solver. This allows nearly arbitrary configurations to be constructed from scratch without iterative changes to the binary objects as was required in the FUKAv1 binary solvers.
The nearly caveat is a function not only of resolution, but also the domain decomposition near the excision or stellar surfaces due to Gibbs phenomena that occur. In the vast majority of test cases this does not prohibit the construction of ID even at extreme mass ratios q^{-1} > 20. It remains an on-going effort to optimize the domain decomposition to minimize these effects.
G = c = 1 unless otherwise specifically stated [^1]q <= 1chi = S / M^2 whereM is the compact object's gravitational mass. M is the ADM mass as computed from the isolated solution for a given rest mass and spinM is the Christodoulou mass[^1]: There exists a variable in the config file call qpig which is equivalent to 4*PI*G. This was originally designed to allow an arbitrary rescaling of the system of equations, matter, etc; however, this has not been implemented consistently as there was no clear benefit other than confusion when working in different unit systems
The solvers are structured as follows:
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 code for each solverreader.cpp: the reader can provide diagnostics from ID solutions that are computed from the IDsolve.cpp in most cases is simply a frontend with minimal functionality. $HOME_KADATH/include/Solversreader.cpp code is currently shared between v1 and v2 solvers, therefore symbolic links are usedFirst and foremost, see Installation for instructions on how to obtain and build the FUKA library, initial data codes, and related PythonTools.
Once the intended features have been successfully compiled, the Tutorials are a great place to get acquainted with FUKA!
I have been developing FUKAv2 since before the initial public release in an effort to automate ID construction across the space of parameters. To that end, I am very grateful to my original collaborators L. Jens Papenfort and Elias R. Most for their helpful discussions.
Furthermore, I would like to thank Konrad Topolski for being an early adopter of the v2 codes and for his continued feedback and support throughout the many changes since then.
The following are on the list of things to do based on expected level of effort:
PythonTools to make them more accessible