-
Notifications
You must be signed in to change notification settings - Fork 2
Spacetime, geometry and the grid
The most natural background to simulate accretion flows around rotating black holes is the Kerr spacetime. The Kerr metric is the vacuum solution to Einstein's field equations around an uncharged, axially-symmetric black hole. The line element for the Kerr metric in the standard Boyer-Lindquist (BL) coordinates (t,r,θ,φ) is,
where , and . The GRMHD equations are invariant under the mass of the black hole and one often ignores 'M' when discretizing the governing equations. 'a' is the spin of the black hole and can take values, .
The Kerr spacetime as expressed in BL coordinates is singular at ∆=0, ie. at r=rEH where rEH is the event horizon. The Kerr-Schild (KS) coordinates however, are regular at the event horizon and iharm
discretizes the equation of GRMHD in the KS coordinates, or rather a modified form of KS for computational efficiency. To avoid redundancy, we will not state the details here but redirect the user to this page.
In relativistic hydrodynamics one usually has to solve Einstein's field equations, , where the LHS describes the spacetime geometry and the RHS describes the matter/energy distribution, and the evolution equations of Tµν. In systems of interest to us, the backreaction of the accreting matter on the geometry of the spacetime can be neglected. We do not solve Einstein's field equations and consider Kerr geometry at each timestep.
However, to perform simulations on a computer, the spacetime must be discretized and this leads to the 3+1 decomposition where the covariant derivative is split into temporal and spatial derivatives. As mentioned here, this distinction between the temporal the spatial parts is necessary to exploit the hyperbolic nature of the governing equations of GRMHD.
The spacetime is foliated with a family of spacelike, non-intersecting hypersurface, Σ(t), each of which is parameterized by a constant value of time, 't'. One can define a unit normal to these hypersurfaces, where . Due to the nature of the split, nµ has components (C,0,0,0), where C can be determined from the normalization condition, . Defining , we have (negative sign to ensure future directed one-form nµ). is known as the 'lapse' function. In iharm
this is accessed like G->lapse[loc][j][i]
. More about the iharm
grid struct in the following subsection.
Note that nµ does not point along the direction of increasing time and if we were to introduce a four-vector, tµ that did, then it would have a purely spacelike part in addition to the timelike component nµ and can be expressed as where βµ is the 'shift' vector which physically represents the spatial shift in the coordinates of any point from one hypersurface to the next.
nµ is chosen to match the four velocity of an Eulerian/normal observer with respect to (w.r.t.) which most primitives are reported. The Lorentz factor γ w.r.t. the normal observer is where uµ is the four velocity of the fluid w.r.t. the normal observer. The three velocities of the fluid are obtained by projecting uµ on to the hypersurfaces. This yields .
iharm
initializes a GridGeom
struct *G
that contains all the necessary information about the geometry of the spacetime. The GridGeom
struct stores the covariant (G->gcov[loc][j][i]
) and contravariant (G->gcon[loc][j][i]
) form of the metric, the square root of the determinant of the metric (G->gdet[loc][j][i]
) and the lapse (G->lapse[loc][j][i]
) at 4 or 5 locations (FACE1
,FACE2
,CORN
,CENT
and FACE3
) depending on if you're running a 2D or 3D code. coord.c maps these location flags to the location in the grid zone in the figure at the head of the file. set_grid
in coord.c sets the grid based on the parameters provided in param.dat
. Note that the data members of *G
are spatially indexed along (r,θ)
only since the Kerr metric is axisymmetric.
iharm
outputs a grid file and one can use it to obtain the coordinate locations and local metric for processing the GRMHD output. One can also reconstruct the grid using the data in the header as outlined here with the help of the transformation matrices that one can construct using coordinate transformations provided here.