SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
gr::Solutions::HarmonicSchwarzschild Class Reference

Schwarzschild black hole in Cartesian coordinates with harmonic gauge. More...

#include <HarmonicSchwarzschild.hpp>

Classes

struct  Center
class  IntermediateComputer
 Computes the intermediates and quantities that we do not want to recompute across the solution's implementation. More...
class  IntermediateVars
 Computes and returns spacetime quantities of interest. More...
struct  internal_tags
 Tags defined for intermediates specific to the harmonic Schwarzschild solution. More...
struct  Mass

Public Types

using options = tmpl::list<Mass, Center>
template<typename DataType, typename Frame = ::Frame::Inertial>
using CachedBuffer
 Buffer for caching computed intermediates and quantities that we do not want to recompute across the solution's implementation.
Public Types inherited from gr::AnalyticSolution< 3_st >
using DerivLapse
using DerivShift
using DerivSpatialMetric
using tags

Public Member Functions

 HarmonicSchwarzschild (double mass, const std::array< double, volume_dim > &center, const Options::Context &context={})
 HarmonicSchwarzschild (const HarmonicSchwarzschild &)=default
HarmonicSchwarzschildoperator= (const HarmonicSchwarzschild &)=default
 HarmonicSchwarzschild (HarmonicSchwarzschild &&)=default
HarmonicSchwarzschildoperator= (HarmonicSchwarzschild &&)=default
 HarmonicSchwarzschild (CkMigrateMessage *)
template<typename DataType, typename Frame, typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, volume_dim, Frame > &x, double, tmpl::list< Tags... >) const
 Computes and returns spacetime quantities for a Schwarzschild black hole with harmonic coordinates at a specific Cartesian position.
void pup (PUP::er &p)
double mass () const
 Return the mass of the black hole.
const std::array< double, volume_dim > & center () const
 Return the center of the black hole.

Static Public Attributes

static constexpr Options::String help
Static Public Attributes inherited from gr::AnalyticSolution< 3_st >
static constexpr size_t volume_dim

Detailed Description

Schwarzschild black hole in Cartesian coordinates with harmonic gauge.

Details

This solution represents a Schwarzschild black hole in coordinates that are harmonic in both space and time, as well as horizon-penetrating. Therefore, this solution fulfills the harmonic coordinate conditions Eq. (4.42), (4.44), and (4.45) in [14] :

\begin{align} {}^{(4)}\Gamma^a &= 0 \end{align}

\begin{align} (\partial_t - \beta^j \partial_j)\alpha &= -\alpha^2 K \end{align}

\begin{align} (\partial_t - \beta^j \partial_j)\beta^i &= -\alpha^2 (\gamma^{ij} \partial_j \ln \alpha - \gamma^{jk} \Gamma^i_{jk}) \end{align}

(Note that Eq. 4.45 in [14] is missing a minus sign in front of the \(\Gamma\)-contraction term)

We implement Eqs. (45)–(50) in [45] , which represent the zero-spin limit of the time-harmonic and horizon-penetrating slices of Kerr spacetime presented in the paper. We add the radial transformation \(r \to r + M\) to make the spatial coordinates harmonic as well (see Eq. (43) in [45] ), so the coordinates remain harmonic under boosts.

Consider a Schwarzschild black hole of mass \(M\) and center \(C^i\). The spacetime will be specified using Cartesian coordinates \(x^i\) that are spatially and temporally harmonic. A radius centered on the black hole is

\begin{align} r &= \sqrt{\delta_{ij} \left(x^i - C^i\right)\left(x^j - C^j\right)} \end{align}

For computing the spatial metric, we define the following quantities:

\begin{align} \gamma_{rr} &= 1 + \frac{2M}{M+r} + \left(\frac{2M}{M+r}\right)^2 + \left(\frac{2M}{M+r}\right)^3,\\ \partial_r \gamma_{rr} &= -\frac{1}{2M}\left(\frac{2M}{M+r}\right)^2 -\frac{1}{M}\left(\frac{2M}{M+r}\right)^3 -\frac{3}{2M}\left(\frac{2M}{M+r}\right)^4,\\ \frac{X^i}{r} &= \frac{x^i - C^i}{r},\\ X_j &= X^i \delta_{ij} \end{align}

From these quantities, the spatial metric and its time derivative are computed as

\begin{align} \gamma_{ij} &= \left(\gamma_{rr} - \left(1+\frac{M}{r}\right)^2\right) \frac{X_i}{r} \frac{X_j}{r} + \delta_{ij} \left(1+\frac{M}{r}\right)^2,\\ \partial_t \gamma_{ij} &= 0 \end{align}

The spatial derivative is given in terms of the following quantities:

\begin{align} f_0 &= \left(1+\frac{M}{r}\right)^2\\ \partial_r f_0 &= 2 \left(1+\frac{M}{r}\right)\left(-\frac{M}{r^2}\right),\\ f_1 &= \frac{1}{r} \left(\gamma_{rr} - f_0\right),\\ f_2 &= \partial_r \gamma_{rr} - \partial_r f_0 - 2 f_1 \end{align}

In terms of these, the spatial metric's spatial derivative is

\begin{align} \partial_k \gamma_{ij} &= f_2 \frac{X_i}{r} \frac{X_j}{r} \frac{X_k}{r} + f_1 \frac{X_j}{r} \delta_{ik} + f_1 \frac{X_i}{r} \delta_{jk} + \partial_r f_0 \frac{X_k}{r} \delta_{ij} \end{align}

The lapse and its derivatives are

\begin{align} \alpha &= \gamma_{rr}^{-1/2},\\ \partial_t \alpha &= 0,\\ \partial_i \alpha &= -\frac{1}{2} \gamma_{rr}^{-3/2} \partial_r \gamma_{rr} \frac{X_i}{r} \end{align}

The shift and its time derivative are

\begin{align} \beta^i &= \left(\frac{2M}{M+r}\right)^2 \frac{X^i}{r} \frac{1}{\gamma_{rr}},\\ \partial_t \beta^i &= 0 \end{align}

The spatial derivative of the shift is computed in terms of the following quantities:

\begin{align} f_3 &= \frac{1}{r} \frac{1}{\gamma_{rr}} \left(\frac{2M}{M+r}\right)^2,\\ f_4 &= -f_3 - \frac{1}{M} \frac{1}{\gamma_{rr}} \left(\frac{2M}{M+r}\right)^3 - \partial_r \gamma_{rr} \left(\frac{2 M}{M+r} \frac{1}{\gamma_{rr}}\right)^2 \end{align}

In terms of these, the shift's spatial derivative is

\begin{align} \partial_k \beta^i &= f_4 \frac{X^i}{r} \frac{X_k}{r} + \delta_k^i f_3 \end{align}

Member Typedef Documentation

◆ CachedBuffer

template<typename DataType, typename Frame = ::Frame::Inertial>
using gr::Solutions::HarmonicSchwarzschild::CachedBuffer
Initial value:
gr::Tags::Shift<DataType, 3, Frame>, DerivShift<DataType, Frame>,
DerivSpatialMetric<DataType, Frame>,
Definition CachedTempBuffer.hpp:29
Prefix indicating a time derivative.
Definition Prefixes.hpp:28
::Tags::TempScalar< 10, DataType > spatial_metric_rr
Tag for the component of the spatial metric.
Definition HarmonicSchwarzschild.hpp:331
::Tags::TempScalar< 11, DataType > one_over_spatial_metric_rr
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:339
::Tags::Tempiii< 19, 3, Frame, DataType > f_2_times_xxx_over_r_cubed
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:431
::Tags::TempScalar< 14, DataType > d_f_0
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:379
::Tags::TempScalar< 2, DataType > one_over_r
Tag for one over the radius corresponding to the position of a point relative to the center of the bl...
Definition HarmonicSchwarzschild.hpp:257
::Tags::TempScalar< 7, DataType > two_m_over_m_plus_r
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:300
::Tags::TempI< 0, 3, Frame, DataType > x_minus_center
Tag for the position of a point relative to the center of the black hole.
Definition HarmonicSchwarzschild.hpp:239
::Tags::TempScalar< 16, DataType > f_1
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:400
::Tags::TempScalar< 12, DataType > spatial_metric_rr_minus_f_0
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:348
::Tags::TempScalar< 22, DataType > one_over_det_spatial_metric
Tag for one over the determinant of the spatial metric.
Definition HarmonicSchwarzschild.hpp:467
::Tags::Tempi< 17, 3, Frame, DataType > f_1_times_x_over_r
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:410
::Tags::TempScalar< 13, DataType > d_spatial_metric_rr
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:364
::Tags::TempI< 3, 3, Frame, DataType > x_over_r
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:266
::Tags::TempScalar< 4, DataType > m_over_r
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:274
::Tags::TempScalar< 6, DataType > f_0
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:292
::Tags::TempScalar< 21, DataType > f_4
Tag for the intermediate.
Definition HarmonicSchwarzschild.hpp:462
::Tags::TempScalar< 18, DataType > f_2
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:420
::Tags::TempScalar< 9, DataType > two_m_over_m_plus_r_cubed
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:316
::Tags::TempScalar< 8, DataType > two_m_over_m_plus_r_squared
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:308
::Tags::TempScalar< 23, DataType > neg_half_lapse_cubed_times_d_spatial_metric_rr
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:478
::Tags::TempScalar< 1, DataType > r
Tag for the radius corresponding to the position of a point relative to the center of the black hole.
Definition HarmonicSchwarzschild.hpp:248
::Tags::TempScalar< 20, DataType > f_3
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:441
::Tags::Tempi< 15, 3, Frame, DataType > d_f_0_times_x_over_r
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:389
::Tags::TempScalar< 5, DataType > sqrt_f_0
Tag for the intermediate .
Definition HarmonicSchwarzschild.hpp:283
Determinant of the spatial metric.
Definition Tags.hpp:39
Definition Tags.hpp:65
Definition Tags.hpp:61
Definition Tags.hpp:25

Buffer for caching computed intermediates and quantities that we do not want to recompute across the solution's implementation.

Details

See internal_tags documentation for details on what quantities the internal tags represent

Member Function Documentation

◆ variables()

template<typename DataType, typename Frame, typename... Tags>
tuples::TaggedTuple< Tags... > gr::Solutions::HarmonicSchwarzschild::variables ( const tnsr::I< DataType, volume_dim, Frame > & x,
double ,
tmpl::list< Tags... >  ) const
inline

Computes and returns spacetime quantities for a Schwarzschild black hole with harmonic coordinates at a specific Cartesian position.

Parameters
xCartesian coordinates of the position at which to compute spacetime quantities

Member Data Documentation

◆ help

Options::String gr::Solutions::HarmonicSchwarzschild::help
staticconstexpr
Initial value:
{
"Schwarzschild black hole in Cartesian coordinates with harmonic gauge"}

The documentation for this class was generated from the following file:
  • src/PointwiseFunctions/AnalyticSolutions/GeneralRelativity/HarmonicSchwarzschild.hpp