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