SpECTRE
v2025.03.17
|
Classes which implement analytic solutions to Einstein's equations. More...
Classes | |
class | GaugePlaneWave |
Gauge plane wave in flat spacetime. More... | |
class | GaugeWave |
Gauge wave in flat spacetime. More... | |
class | HarmonicSchwarzschild |
Schwarzschild black hole in Cartesian coordinates with harmonic gauge. More... | |
class | KerrSchild |
Kerr black hole in Kerr-Schild coordinates. More... | |
class | Minkowski |
The Minkowski solution for flat space in Dim spatial dimensions. More... | |
class | SphericalKerrSchild |
Kerr black hole in Spherical Kerr-Schild coordinates. More... | |
Functions | |
template<size_t Dim> | |
bool | operator== (const GaugeWave< Dim > &lhs, const GaugeWave< Dim > &rhs) |
template<size_t Dim> | |
bool | operator!= (const GaugeWave< Dim > &lhs, const GaugeWave< Dim > &rhs) |
bool | operator== (const HarmonicSchwarzschild &lhs, const HarmonicSchwarzschild &rhs) |
Return whether two harmonic Schwarzschild solutions are equivalent. | |
bool | operator!= (const HarmonicSchwarzschild &lhs, const HarmonicSchwarzschild &rhs) |
Return whether two harmonic Schwarzschild solutions are not equivalent. | |
template<typename DataType > | |
Scalar< DataType > | kerr_schild_radius_from_boyer_lindquist (const double boyer_lindquist_radius, const std::array< DataType, 2 > &theta_phi, double mass, const std::array< double, 3 > &dimensionless_spin) |
The Kerr-Schild radius corresponding to a Boyer-Lindquist radius. More... | |
template<typename DataType > | |
Scalar< DataType > | kerr_horizon_radius (const std::array< DataType, 2 > &theta_phi, double mass, const std::array< double, 3 > &dimensionless_spin) |
The Kerr-Schild radius corresponding to a Kerr horizon. More... | |
bool | operator== (const KerrSchild &lhs, const KerrSchild &rhs) |
bool | operator!= (const KerrSchild &lhs, const KerrSchild &rhs) |
template<size_t Dim> | |
constexpr bool | operator== (const Minkowski< Dim > &, const Minkowski< Dim > &) |
template<size_t Dim> | |
constexpr bool | operator!= (const Minkowski< Dim > &, const Minkowski< Dim > &) |
bool | operator== (const SphericalKerrSchild &lhs, const SphericalKerrSchild &rhs) |
bool | operator!= (const SphericalKerrSchild &lhs, const SphericalKerrSchild &rhs) |
Classes which implement analytic solutions to Einstein's equations.
Scalar< DataType > gr::Solutions::kerr_horizon_radius | ( | const std::array< DataType, 2 > & | theta_phi, |
double | mass, | ||
const std::array< double, 3 > & | dimensionless_spin | ||
) |
The Kerr-Schild radius corresponding to a Kerr horizon.
kerr_horizon_radius
evaluates \(r\) using the above equation in the documentation for kerr_schild_radius_from_boyer_lindquist
, and using the standard expression for the Boyer-Lindquist radius of the Kerr horizon:
\[ r_{BL} = r_+ = M + \sqrt{M^2-a^2}. \]
Scalar< DataType > gr::Solutions::kerr_schild_radius_from_boyer_lindquist | ( | const double | boyer_lindquist_radius, |
const std::array< DataType, 2 > & | theta_phi, | ||
double | mass, | ||
const std::array< double, 3 > & | dimensionless_spin | ||
) |
The Kerr-Schild radius corresponding to a Boyer-Lindquist radius.
Computes the radius of a surface of constant Boyer-Lindquist radius as a function of angles. The input argument theta_phi
is typically the output of the theta_phi_points()
method of a ylm::Spherepack
object; i.e., a std::array of two DataVectors containing the values of theta and phi at each point on a Strahlkorper.
Derivation:
Define spherical coordinates \((r,\theta,\phi)\) in the usual way from the Cartesian Kerr-Schild coordinates \((x,y,z)\) (i.e. \(x = r \sin\theta \cos\phi\) and so on). Then the relationship between \(r\) and the radial Boyer-Lindquist coordinate \(r_{BL}\) is
\[ r_{BL}^2 = \frac{1}{2}(r^2 - a^2) + \left(\frac{1}{4}(r^2-a^2)^2 + r^2(\vec{a}\cdot \hat{x})^2\right)^{1/2}, \]
where \(\vec{a}\) is the Kerr spin vector (with units of mass), \(\hat{x}\) means \((x/r,y/r,z/r)\), and the dot product is taken as in flat space.
We solve the above equation for \(r^2\) as a function of angles, yielding
\[ r^2 = \frac{r_{BL}^2 (r_{BL}^2 + a^2)} {r_{BL}^2+(\vec{a}\cdot \hat{x})^2}, \]
where the angles are encoded in \(\hat x\) and everything else on the right-hand side is constant.