SpECTRE  v2024.04.12
gr::KerrSchildCoords Class Reference

Contains helper functions for transforming tensors in Kerr spacetime to Kerr-Schild coordinates. More...

#include <KerrSchildCoords.hpp>

Public Member Functions

 KerrSchildCoords (const KerrSchildCoords &)=default
 
KerrSchildCoordsoperator= (const KerrSchildCoords &)=default
 
 KerrSchildCoords (KerrSchildCoords &&)=default
 
KerrSchildCoordsoperator= (KerrSchildCoords &&)=default
 
 KerrSchildCoords (double bh_mass, double bh_dimless_spin)
 
template<typename DataType >
tnsr::I< DataType, 3, Frame::Inertialcartesian_from_spherical_ks (const tnsr::I< DataType, 3, Frame::NoFrame > &spatial_vector, const tnsr::I< DataType, 3, Frame::Inertial > &cartesian_coords) const
 Transforms a spatial vector from Kerr (or "spherical Kerr-Schild") coordinates to Cartesian Kerr-Schild coordinates. If applied on points on the z-axis, the vector to transform must have a vanishing \(v^\vartheta\) in order for the transformation to be single-valued.
 
template<typename DataType >
Scalar< DataType > r_coord_squared (const tnsr::I< DataType, 3, Frame::Inertial > &cartesian_coords) const
 Kerr-Schild \(r^2\) in terms of the Cartesian coordinates.
 
void pup (PUP::er &)
 

Friends

bool operator== (const KerrSchildCoords &lhs, const KerrSchildCoords &rhs)
 

Detailed Description

Contains helper functions for transforming tensors in Kerr spacetime to Kerr-Schild coordinates.

Consider the Kerr-Schild form of the Kerr metric in Cartesian coordinates \( (t, x, y, z)\),

\begin{align*} ds^2 = -dt^2 + dx^2 + dy^2 + dz^2 + \dfrac{2Mr^3}{r^4 + a^2 z^2} \left[dt + \dfrac{r(x\,dx + y\,dy)}{r^2 + a^2} + \dfrac{a(y\,dx - x\,dy)}{r^2 + a^2} + \dfrac{z}{r}dz\right]^2, \end{align*}

where \(r\) is the function defined through

\begin{align*} r^2(x, y, z) = \frac{x^2 + y^2 + z^2 - a^2}{2} + \sqrt{\left(\frac{x^2 + y^2 + z^2 - a^2}{2}\right)^2 + a^2 z^2}. \end{align*}

Depending on the physical context, the following coordinate transformations are usually adopted:

  • Spherical coordinates, defined by the usual transformation

    \begin{align*} x &= r_\text{sph}\sin\theta\cos\phi,\\ y &= r_\text{sph}\sin\theta\sin\phi,\\ z &= r_\text{sph}\cos\theta. \end{align*}

    Note that \(r_\text{sph} \neq r\), so the horizon of a Kerr black hole is not at constant \(r_\text{sph}\).

  • Oblate spheroidal coordinates,

    \begin{align*} x &= \sqrt{r^2 + a^2}\sin\vartheta\cos\phi,\\ y &= \sqrt{r^2 + a^2}\sin\vartheta\sin\phi,\\ z &= r\cos\vartheta. \end{align*}

    Notice that \(r\) is that defined in the Kerr-Schild form of the Kerr metric, so the horizon is at constant \(r\). (As it will be noted below, \(r\) corresponds to the Boyer-Lindquist radial coordinate.) Also, note that the azimuthal angle \(\phi\) is the same as the corresponding angle in spherical coordinates, whereas the zenithal angle \(\vartheta\) differs from the corresponding angle \(\theta\).

  • Kerr coordinates (sometimes also referred to as "Kerr-Schild coordinates"), defined by

    \begin{align*} x &= (r \cos\varphi - a \sin\varphi)\sin\vartheta = \sqrt{r^2 + a^2}\sin\vartheta\cos\left(\varphi + \tan^{-1}(a/ r)\right),\\ y &= (r \sin\varphi + a \cos\varphi)\sin\vartheta = \sqrt{r^2 + a^2}\sin\vartheta\sin\left(\varphi + \tan^{-1}(a/ r)\right),\\ z &= r \cos\vartheta. \end{align*}

    These are the coordinates used in the gr::KerrSchildCoords class. Notice that \(r\) and \(\vartheta\) are the same as those in spheroidal coordinates, whereas the azimuthal angle \(\varphi \neq \phi\).

    Note
    Kerr's original "advanced Eddington-Finkelstein" form of his metric is retrieved by performing the additional transformation \(t = u - r\). Note that Kerr's choice of the letter \(u\) for the time coordinate is not consistent with the convention of denoting the advanced time \(v = t + r\) (in flat space), and the retarded time \(u = t - r\) (in flat space). Finally, note that Kerr's original metric has the sign of \(a\) flipped.

    The Kerr coordinates have been used in the hydro community to evolve the GRMHD equations. They are the intermediate step in getting the Kerr metric in Boyer-Lindquist coordinates. The relation between both is

    \begin{align*} dt_\text{BL} &= dt - \frac{2M r\,dr}{r^2 - 2Mr + a^2}, \\ dr_\text{BL} &= dr,\\ d\theta_\text{BL} &= d\vartheta,\\ d\phi_\text{BL} &= d\varphi - \frac{a\,dr}{r^2-2Mr + a^2}. \end{align*}

    The above transformation makes explicit that \(r\) is the Boyer-Lindquist radial coodinate, \( r = r_\text{BL}\). Likewise, \(\vartheta = \theta_\text{BL}\).

    Note
    Sometimes (especially in the GRMHD community), the Kerr coordinates as defined above are referred to as "spherical Kerr-Schild" coordinates. These should not be confused with the true spherical coordinates defined in this documentation.

    The Kerr metric in Kerr coodinates is sometimes used to write analytic initial data for hydro simulations. In this coordinate system, the metric takes the form

    \begin{align*} ds^2 &= -(1 - B)\,dt^2 + (1 + B)\,dr^2 + \Sigma\,d\vartheta^2 + \left(r^2 + a^2 + B a^2\sin^2\vartheta\right)\sin^2\vartheta\,d\varphi^2\\ &\quad + 2B\,dt\,dr - 2aB\sin^2\vartheta\,dt\,d\varphi - 2a\left(1 + B\right)\sin^2\vartheta\,dr\,d\varphi, \end{align*}

    where \(B = 2M r/ \Sigma\) and \(\Sigma = r^2 + a^2\cos^2\vartheta\). Using the additional relations

    \begin{align*} \sin\vartheta &= \sqrt{\frac{x^2 + y^2}{r^2 + a^2}},\quad \cos\vartheta = \frac{z}{r},\\ \sin\varphi &= \frac{y r - x a}{\sqrt{(x^2 + y^2)(r^2 + a^2)}},\quad \cos\varphi = \frac{x r + y a}{\sqrt{(x^2 + y^2)(r^2 + a^2)}}, \end{align*}

    the Jacobian of the transformation to Cartesian Kerr-Schild coordinates is

    \begin{align*} \dfrac{\partial(x, y, z)}{\partial(r, \vartheta, \varphi)} &= \left(\begin{array}{ccc} \dfrac{xr + ya}{r^2 + a^2} & \dfrac{xz}{r}\sqrt{\dfrac{r^2 + a^2}{x^2 + y^2}} & -y\\ \dfrac{yr - ax}{r^2 + a^2} & \dfrac{yz}{r}\sqrt{\dfrac{r^2 + a^2}{x^2 + y^2}} & x\\ \dfrac{z}{r} & - r\sqrt{\dfrac{x^2 + y^2}{r^2 + a^2}} & 0 \end{array}\right), \end{align*}

    which can be used to transform tensors between both coordinate systems.


The documentation for this class was generated from the following file: