{ "cells": [ { "cell_type": "markdown", "id": "c20860aa", "metadata": {}, "source": [ "# Riemann Curvature of the Schwarzschild Metric\n", "\n", "Outside a static spherical mass $M$, let\n", "\n", "$$\n", "A(r)=1-\\frac{2GM}{c^2r}.\n", "$$\n", "\n", "With signature $(+---)$ and coordinates $(t,r,\\theta,\\phi)$, the line\n", "element is\n", "\n", "$$\n", "ds^2=A\\,dt^2-A^{-1}dr^2-r^2d\\theta^2-r^2\\sin^2\\theta\\,d\\phi^2.\n", "$$\n", "\n", "The metric is Ricci-flat but not Riemann-flat. Selected components make\n", "that distinction visible without requesting a costly expansion of every\n", "curvature component.\n" ] }, { "cell_type": "markdown", "id": "459657af", "metadata": {}, "source": [ "## Local frame, metric, and inverse\n", "\n", "The chart covers $r>0$ away from $A=0$. The surface\n", "$r=2GM/c^2$ is a coordinate horizon in this chart, whereas $r=0$ will be\n", "detected by a curvature invariant. In a local Lorentz frame with\n", "$\\eta=\\operatorname{diag}(1,-1,-1,-1)$, the coordinate tangent vectors\n", "have components\n", "\n", "$$\n", "e_t=(\\sqrt A,0,0,0),\\quad\n", "e_r=(0,A^{-1/2},0,0),\\quad\n", "e_\\theta=(0,0,r,0),\\quad\n", "e_\\phi=(0,0,0,r\\sin\\theta).\n", "$$\n", "\n", "Egison obtains the metric as $g_{ij}=\\eta(e_i,e_j)$ and computes its\n", "inverse, instead of entering either matrix component by component.\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "20aa7dd0", "metadata": {}, "outputs": [], "source": [ "declare symbol G, M, c, t, r, θ, φ: MathValue\n", "\n", "def x : Vector MathValue := [| t, r, θ, φ |]\n", "def A : MathValue := `(c^2 * r - 2 * G * M) / (c^2 * r)\n", "\n", "def e_i_j : Matrix MathValue :=\n", " [| [| sqrt A, 0, 0, 0 |]\n", " , [| 0, 1 / sqrt A, 0, 0 |]\n", " , [| 0, 0, r, 0 |]\n", " , [| 0, 0, 0, r * sin θ |]\n", " |]_i_j\n", "\n", "def minkowskiDot (u : Vector MathValue) (v : Vector MathValue) : MathValue :=\n", " u_1 * v_1 - u_2 * v_2 - u_3 * v_3 - u_4 * v_4\n", "\n", "def g_i_j : Matrix MathValue :=\n", " generateTensor (\\[i, j] -> minkowskiDot e_i_# e_j_#) [4, 4]\n", "\n", "def g~i~j : Matrix MathValue := M.inverse g_#_#\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "b9c12b39", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$(c^{2} r - 2 G M) c^{-2} r^{-1}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "f690f1c6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\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}_{\\#\\#}^{\\;\\;}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g_#_#\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "ad569a81", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\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}_{\\;\\;}^{\\#\\#}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g~#~#\n" ] }, { "cell_type": "markdown", "id": "014e4807", "metadata": {}, "source": [ "## Levi-Civita connection\n", "\n", "The connection is computed from the metric, rather than entered as a table.\n", "Angular components such as $\\Gamma^\\theta{}_{r\\theta}=1/r$ and\n", "$\\Gamma^\\phi{}_{\\theta\\phi}=\\cot\\theta$ are especially compact checks.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "7e02c921", "metadata": {}, "outputs": [], "source": [ "def Γ_i_j_k : Tensor MathValue :=\n", " (1 / 2) * (∂/∂ g_i_k x~j + ∂/∂ g_i_j x~k - ∂/∂ g_j_k x~i)\n", "\n", "def Γ~i_j_k : Tensor MathValue := withSymbols [m]\n", " g~i~m . Γ_m_j_k\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "cc1a96d8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$r^{-1}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Γ~3_2_3\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "3c1e2019", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$\\cos(θ) \\sin(θ)^{-1}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Γ~4_3_4\n" ] }, { "cell_type": "markdown", "id": "aeae1010", "metadata": {}, "source": [ "## Riemann and Ricci tensors\n", "\n", "We use the same sign convention as the round-sphere notebooks. The angular\n", "component $R^\\theta{}_{\\phi\\theta\\phi}$ is nonzero when $M\\ne0$; a flat\n", "spherical-coordinate metric would make its radial and angular terms cancel.\n", "Ricci curvature is the contraction $R^m{}_{imj}$.\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "94869a2a", "metadata": {}, "outputs": [], "source": [ "def R~i_j_k_l : Tensor MathValue := withSymbols [m]\n", " expandAll\n", " (∂/∂ Γ~i_j_l x~k - ∂/∂ Γ~i_j_k x~l\n", " + Γ~m_j_l . Γ~i_m_k - Γ~m_j_k . Γ~i_m_l)\n", "\n", "def Ric_i_j : Matrix MathValue := withSymbols [m]\n", " sum (contract R~m_i_m_j)\n", "\n", "def scalarCurvature : MathValue := withSymbols [i, j]\n", " g~i~j . Ric_i_j\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "c225200e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$2 \\sin(θ)^{2} G M c^{-2} r^{-1}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "expandAll (R~3_4_3_4)\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "1f66f650", "metadata": {}, "outputs": [ { "data": { "text/html": [ "$0$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "expandAll (Ric_1_1)\n" ] }, { "cell_type": "markdown", "id": "121ead88", "metadata": {}, "source": [ "## Interpretation\n", "\n", "The Riemann component records tidal curvature, while the Ricci component\n", "simplifies to zero, as required by the vacuum Einstein equations. The\n", "coordinate-independent Kretschmann invariant is\n", "\n", "$$\n", "R_{abcd}R^{abcd}=\\frac{48G^2M^2}{c^4r^6}.\n", "$$\n", "\n", "Thus curvature is finite at the Schwarzschild horizon but diverges at\n", "$r=0$. The full invariant contraction is stated rather than made an output\n", "cell because expanding all four-index combinations is needlessly expensive\n", "for an interactive demonstration.\n" ] } ], "metadata": { "kernelspec": { "display_name": "Egison", "language": "egison", "name": "egison" }, "language_info": { "codemirror_mode": "egison", "file_extension": ".egi", "mimetype": "text/x-egison", "name": "egison" } }, "nbformat": 4, "nbformat_minor": 5 }