Riemann Curvature of the Schwarzschild Metric

Outside a static spherical mass $M$, let

$$ A(r)=1-\frac{2GM}{c^2r}. $$

With signature $(+---)$ and coordinates $(t,r,\theta,\phi)$, the line element is

$$ ds^2=A\,dt^2-A^{-1}dr^2-r^2d\theta^2-r^2\sin^2\theta\,d\phi^2. $$

The metric is Ricci-flat but not Riemann-flat. Selected components make that distinction visible without requesting a costly expansion of every curvature component.

Local frame, metric, and inverse

The chart covers $r>0$ away from $A=0$. The surface $r=2GM/c^2$ is a coordinate horizon in this chart, whereas $r=0$ will be detected by a curvature invariant. In a local Lorentz frame with $\eta=\operatorname{diag}(1,-1,-1,-1)$, the coordinate tangent vectors have components

$$ e_t=(\sqrt A,0,0,0),\quad e_r=(0,A^{-1/2},0,0),\quad e_\theta=(0,0,r,0),\quad e_\phi=(0,0,0,r\sin\theta). $$

Egison obtains the metric as $g_{ij}=\eta(e_i,e_j)$ and computes its inverse, instead of entering either matrix component by component.

declare symbol G, M, c, t, r, θ, φ: MathValue

def x : Vector MathValue := [| t, r, θ, φ |]
def A : MathValue := `(c^2 * r - 2 * G * M) / (c^2 * r)

def e_i_j : Matrix MathValue :=
  [| [| sqrt A, 0, 0, 0 |]
   , [| 0, 1 / sqrt A, 0, 0 |]
   , [| 0, 0, r, 0 |]
   , [| 0, 0, 0, r * sin θ |]
   |]_i_j

def minkowskiDot (u : Vector MathValue) (v : Vector MathValue) : MathValue :=
  u_1 * v_1 - u_2 * v_2 - u_3 * v_3 - u_4 * v_4

def g_i_j : Matrix MathValue :=
  generateTensor (\[i, j] -> minkowskiDot e_i_# e_j_#) [4, 4]

def g~i~j : Matrix MathValue := M.inverse g_#_#
A
$(c^{2} r - 2 G M) c^{-2} r^{-1}$
g_#_#
$\begin{pmatrix} (c^{2} r - 2 G M) c^{-2} r^{-1} & 0 & 0 & 0 \\ 0 & -(c^{2} r - 2 G M)^{-1} c^{2} r & 0 & 0 \\ 0 & 0 & -r^{2} & 0 \\ 0 & 0 & 0 & -\sin(θ)^{2} r^{2} \\ \end{pmatrix}_{\#\#}^{\;\;}$
g~#~#
$\begin{pmatrix} (c^{2} r - 2 G M)^{-1} c^{2} r & 0 & 0 & 0 \\ 0 & -(c^{2} r - 2 G M) c^{-2} r^{-1} & 0 & 0 \\ 0 & 0 & -r^{-2} & 0 \\ 0 & 0 & 0 & -\sin(θ)^{-2} r^{-2} \\ \end{pmatrix}_{\;\;}^{\#\#}$

Levi-Civita connection

The connection is computed from the metric, rather than entered as a table. Angular components such as $\Gamma^\theta{}_{r\theta}=1/r$ and $\Gamma^\phi{}_{\theta\phi}=\cot\theta$ are especially compact checks.

def Γ_i_j_k : Tensor MathValue :=
  (1 / 2) * (∂/∂ g_i_k x~j + ∂/∂ g_i_j x~k - ∂/∂ g_j_k x~i)

def Γ~i_j_k : Tensor MathValue := withSymbols [m]
  g~i~m . Γ_m_j_k
Γ~3_2_3
$r^{-1}$
Γ~4_3_4
$\cos(θ) \sin(θ)^{-1}$

Riemann and Ricci tensors

We use the same sign convention as the round-sphere notebooks. The angular component $R^\theta{}_{\phi\theta\phi}$ is nonzero when $M\ne0$; a flat spherical-coordinate metric would make its radial and angular terms cancel. Ricci curvature is the contraction $R^m{}_{imj}$.

def R~i_j_k_l : Tensor MathValue := withSymbols [m]
  expandAll
    (∂/∂ Γ~i_j_l x~k - ∂/∂ Γ~i_j_k x~l
      + Γ~m_j_l . Γ~i_m_k - Γ~m_j_k . Γ~i_m_l)

def Ric_i_j : Matrix MathValue := withSymbols [m]
  sum (contract R~m_i_m_j)

def scalarCurvature : MathValue := withSymbols [i, j]
  g~i~j . Ric_i_j
expandAll (R~3_4_3_4)
$2 \sin(θ)^{2} G M c^{-2} r^{-1}$
expandAll (Ric_1_1)
$0$

Interpretation

The Riemann component records tidal curvature, while the Ricci component simplifies to zero, as required by the vacuum Einstein equations. The coordinate-independent Kretschmann invariant is

$$ R_{abcd}R^{abcd}=\frac{48G^2M^2}{c^4r^6}. $$

Thus curvature is finite at the Schwarzschild horizon but diverges at $r=0$. The full invariant contraction is stated rather than made an output cell because expanding all four-index combinations is needlessly expensive for an interactive demonstration.

Links

Back to the Table of Contents