Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : namespace gr {
7 :
8 : /*!
9 : * \brief Computes the tortoise coordinates radius from the Boyer-Lindquist
10 : * radius.
11 : *
12 : * This function evaluates the transformation from tortoise coordinates $r_*$ to
13 : * Boyer-Lindquist radius $r$:
14 : * \begin{equation}
15 : * r_* = r + \frac{2 M}{r_+ - r_-}\left(
16 : * r_+ \ln(\frac{r - r_+}{2 M}) - r_- \ln(\frac{r - r_-}{2 M}) \right)
17 : * \end{equation}
18 : * where $r_\pm = M \pm \sqrt{M^2 - a^2}$.
19 : *
20 : * This transformation has the Jacobian
21 : * \begin{equation}
22 : * \frac{dr_*}{dr} = \frac{r^2 + a^2}{\Delta}
23 : * \end{equation}
24 : * with $\Delta = r^2 - 2 M r + a^2$.
25 : *
26 : * \param r_minus_r_plus Boyer-Lindquist radius minus $r_+$: $r - r_+$.
27 : * \param mass Kerr mass parameter $M$.
28 : * \param dimensionless_spin Kerr dimensionless spin parameter $\chi=a/M$.
29 : * \return Tortoise coordinates radius $r_*$.
30 : */
31 : template <typename DataType>
32 1 : DataType tortoise_radius_from_boyer_lindquist_minus_r_plus(
33 : const DataType& r_minus_r_plus, double mass, double dimensionless_spin);
34 :
35 : /*!
36 : * \brief Computes the Boyer-Lindquist radius from tortoise coordinates.
37 : *
38 : * This function inverts the transformation from tortoise coordinates radius
39 : * $r_*$ to Boyer-Lindquist radius $r$:
40 : * \begin{equation}
41 : * r_* = r + \frac{2 M}{r_+ - r_-}\left(
42 : * r_+ \ln(\frac{r - r_+}{2 M}) - r_- \ln(\frac{r - r_-}{2 M}) \right)
43 : * \end{equation}
44 : * where $r_\pm = M \pm \sqrt{M^2 - a^2}$.
45 : *
46 : * It performs a numerical rootfind to invert the above equation.
47 : *
48 : * \param r_star Tortoise coordinate $r_*$.
49 : * \param mass Kerr mass parameter $M$.
50 : * \param dimensionless_spin Kerr dimensionless spin parameter $\chi=a/M$.
51 : * \return Boyer-Lindquist radius minus $r_+$: $r - r_+$.
52 : */
53 : template <typename DataType>
54 1 : DataType boyer_lindquist_radius_minus_r_plus_from_tortoise(
55 : const DataType& r_star, double mass, double dimensionless_spin);
56 :
57 : } // namespace gr
|