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
g_#_#
g~#~#
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
Γ~4_3_4
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)
expandAll (Ric_1_1)
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.