-
Notifications
You must be signed in to change notification settings - Fork 54
Capabilities
GRChombo is a code for doing numerical relativity simulations. This means that it solves the Einstein equation of general relativity, to give the time evolution of the metric components (plus matter) for some chosen initial conditions.
GRChombo takes full advantage of modern parallel computing techniques, being built on the Chombo code for the solution of general partial differential equations. Its features include full adaptive mesh refinement (AMR) with block structured Berger-Rigoutsos grid generation which supports non-trivial "many-boxes-in-many-boxes" meshing hierarchies, and massive parallelism through the Message Passing Interface (MPI).
Further details on the code, its developers and their work can be found on our website www.grchombo.org. This is a good place to go to understand what types of problems the code can be used for.
-
Formulation of the Einstein Equations - GRChombo uses the CCZ4 formalism with constraint violation damping. The BSSN formulation can also be easily switched to.
-
Gauge choice - the moving puncture gauge is currently implemented to manage spacetime singularities, but the gauge class is templated over such that other gauges can be written to override this default choice.
-
Black hole spacetimes - the code supports binary data with two boosted, spinning black holes using Bowen-York initial data generated from a standalone version of the TwoPunctures code. The TwoPunctures code is kept in a separate repository for licensing reasons. Instructions are provided in the README explaining how to build the BinaryBH example with TwoPunctures. Code is provided to track the punctures and their paths can be plotted, but we do not have any explicit eccentricity reduction process so you will need to have initial data for circular orbits from another source if you require them (the set ups for common configurations can often be found in the literature, or by asking a friendly member of another NR code).
-
Matter types - currently the only implemented matter type in the public code is a real scalar field minimally coupled to gravity. It is straightforward in principle to adapt this to simulate other types of matter, provided that they can be described by fields with a value at each point on the grid, and a well defined evolution equation. Note, however, that for fluids one would need to implement flux conservative schemes and shock capturing tools. This has not yet been attempted, although the underlying code Chombo is well adapted to such methods.
-
Boundary conditions - GRChombo supports
- periodic boundary conditions,
- non periodic boundary conditions that allow outgoing waves (Sommerfeld), holding the boundary values constant (static), extrapolation at linear and zeroth order, and the enforcement of reflective symmetries (e.g., because the domain is symmetric in x -> -x).
-
Finite differencing scheme - the code currently supports both 4th order and 6th order finite differencing in space. The latter has been found to be necessary for high fidelity BH waveforms. Time updates always use the 4th order Runge-Kutta scheme.
-
Checkpointing is available to allow the user to save intermediate timesteps for restart in a simulation.
-
Diagnostics
-
Tools for extraction of values at a given point on the grid and integration over surfaces - See Extraction and integration. Note that these tools take account of the AMR hierarchy and select data from the highest resolution grid. They also perform an interpolation at up to 4th order where the point does not fall exactly at a cell centre.
-
Weyl scalar calculation and extraction - this is implemented both with and without matter contributions. See the BinaryBH example for a typical usage. Note that Cauchy Characteristic Extraction of gravitational waves is not currently implemented.
-
Diagnostic variables can be implemented separately to the evolution variables and classes written to assign their values and output them to plot files.
-
-
Apparent horizon finder for location and properties of black hole horizons in a dynamical spacetime - see Apparent horizon finder.
-
Initial condition solver for the Hamiltonian constraint - see Initial Condition Solver.
-
ADM masses and momenta - these are the subject of a PR in the branch feature/adm_mass.
The following are things for which we know code exists in some form with some member(s) of the collaboration. Our goal is always to add code to the public repository after a reasonable period of testing (usually after a research article using the code has been accepted for publication). However, there is sometimes a lag in this happening since we have higher standards for public code that often necessitate a rewrite of even working and well-tested code. If you plan to develop one of these features we suggest you Contact us to see if we already have code that we can share with you (at your own risk!).
-
Fixed background metrics - some problems do not require a fully dynamical metric, and the approximation of fields evolving on a fixed background is sufficient. Code has been developed to calculate analytically the background metric values for use in the evolution of scalar fields on Schwarzschild, Kerr and boosted black hole backgrounds. (GRChombo responsible members: K Clough/D Traykova)
-
Massive vector (Proca) fields - The matter class for a massive vector field has been implemented in GRChombo. (GRChombo responsible members: T Helfer/K Clough)
-
Initial condition solver for the Hamiltonian and Momentum constraints - this will solve jointly the Hamiltonian and Momentum constraints for a minimally coupled scalar field, in black hole spacetimes and cosmological spacetimes with periodic boundary conditions. (GRChombo responsible members: J Aurrekoetxea/K Clough)
-
Cartoon formalism for dimensional reduction - allows simulation of higher dimensional spacetimes reduced to 3+1D or 2+1D using symmetries. (GRChombo responsible members: T Franca/P Figueras)
Copyright GRChombo 2018. Contact us for further details.