-
Notifications
You must be signed in to change notification settings - Fork 1
Capabilities
GRBoondi is a code tailored to the numerical evolution of generalized Proca theories on arbitrary fixed backgrounds. Given any background and some initial data, it will numerically compute the evolution of the generalized Proca field. Specifically, the code is used to numerically solve lagrangians of the form
GRBoondi relies heavily on the publicly available GRChombo. Due to this reliance, GRBoondi takes full advantage of modern parallel computing techniques and hardware. It also leverages the adaptive mesh-refinement partial differential equation solver Chombo. Hence, the grid that GRBoondi solves the equations on is a fully adaptive mesh refinement (AMR) grid with block structured Berger-Rigoutsos grid generation which supports non-trivial "many-boxes-in-many-boxes" meshing hierarchies. This large collection of boxes is then split between the Message Passing Interface (MPI), allowing for extremely massive parallelism.
-
Ease of Use. The main idea of GRBoondi is it's ease of use, relative to GRChombo and other fixed-background codes. Many of the basic boiler-plate code and complexities are kept within the source code, allowing the user to have only a basic understanding of the code in order to start researching their problem. This is show-cased by the number of individual code files in each example folder. In order to simulate standard Proca, one only needs to write 6 separate files, including the parameter file. For non-linear proca, one only needs 8 files!
-
Arbitrary choice of background spacetime. The main classes used in GRBoondi are templated over the background class, allowing for massive versatility. The main requirement for a background class is that it contains a
compute
method, which computes the background variables and its derivatives and stores them to the grid. In principle, even a numerically computed background could be used! -
Arbitrary modifications to the base Proca equations of motion. GRBoondi uses the CRTP idiom to add arbitrary modifications to the Proca equations of motion and energy momentum tensor. This allows for numerically simulating any generalized Proca theory, as long as one is able to write the equations of motion in the form
$\dot{Q} = F(\phi, X_a, E^b, \gamma_{ij} K_{kl},\alpha, \beta^m)$ where$Q$ is one the matter variables,$(\phi, X_a, E^b)$ are the Proca variables, and$(\gamma, K, \alpha, \beta)$ are the background variables. The base equations of motion and energy momentum tensor are those of the standard 'mass-less Proca' theory, namely those from the Lagrangian$\mathfrak{L} = \frac{-1}{4} F^{\mu \nu}F_{\mu \nu}$ , subject to the constraint$\nabla_{\mu} A^{\mu}=0$ . If one wishes to simulate the standard Proca model, one simply needs to add the modifications to the energy momentum tensor and equations of motions coming from the$\frac{-\mu^2}{2} A^{\nu}A_{\nu}$ term. See the Examples folder for such examples of these modifications -
Various boundary conditions. Since GRBoondi inherits from GRChombo, all the boundary conditions in GRChombo are also straight-forwardly applicable to GRBoondi. GRBoondi thus supports:
- Periodic boundary conditions
- Sommerfeld out-going wave conditions
- Static boundary conditions
- Extrapolation at linear and zeroth order
- Reflective symmetry (e.g. simulating only z>0 in Kerr spacetime, since its symmetric about z=0 plane)
-
Finite differencing scheme. The code supports 4th order finite differencing in space and 4th order Runge-Kutta in time.
-
Checkpointing. Since GRBoondi inherits from Chombo, it inherits the checkpointing feature. Simulations can be restarted from a checkpoint file saved during a previous run, allowing for arbitrarily long simulations, even on restricted computing clusters.
-
Diagnostics. GRBoondi features many different diagnostic quantities that can be calculated during the course of a simulation and additional tools for users to calculate their own quantities.
- Computation of conserved quantities, such as energy and angular momentum densities and their associated fluxes across a surface. It also can calculate the energy-momentum tensor trace and its square, for studying the importance of backreaction. Current diagnostic quantities are conserved energy density, Eulerian energy density, conserved angular momentum, conserved energy density flux, conserved angular momentum flux, trace of the energy-momentum tensor, and square of the energy-momentum tensor. The conserved energy and angular momentum correspond to approximate time and rotational killing vectors. These can be disabled if the spacetime doesnt possess these.
- Excision of diagnostics in user-specified regions. Currently, only spherical excision is implemented, where the user specifies the minimum and maximum radius for the diagnostic quantities. The user can specify which quantities they wish to excise as well, as specified in the parameter file. Generalization to more complicated diagnostic regions is case dependent and left up to the user
- Integration of quantities across the computational grid. The user can specify which quantities they wish to integrate, as specified in the parameter file.
- Integration of quantities across spherical surfaces. The user can specify which quantities they wish to integrate over a spherical surface and the radii of those surfaces as well, as specified in the parameter file.
- Additional diagnostic variables are easily added.
-
Tailored Postprocessing tools GRBoondi comes equipped with a custom-built postprocessing package, leveraging Visit's python interface.
GRBoondi 2024 Contact person: shaunfell (at) proton.me