{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# The event horizon of Schwarzschild black hole as a degenerate submanifold" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This Jupyter notebook illustrates SageMath functionalities regarding smooth manifolds equipped with a degenerate metric on the concrete example of the event horizon of Schwarzschild black hole. The involved tools have been developed through the [SageManifolds](https://sagemanifolds.obspm.fr) project. \n", "\n", "*Author:* **Hans Fotsing Tetsing**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A version of SageMath at least equal to 9.1 is required to run this notebook" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 9.1, Release Date: 2020-05-20'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "M = Manifold(4, 'M', structure='Lorentzian')\n", "print(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define now on $M$ the ingoing Eddington-Finkelstein coordinates" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "X_M. = M.chart(r\"t r:(0,oo) th:(0,pi):\\theta ph:(0,2*pi):\\phi\") " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "var('m'); assume(m>0)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "Int = M.open_subset('Int', coord_def={X_M: r<2*m})\n", "Ext = M.open_subset('Ext', coord_def={X_M: r>2*m})" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Lorentzian metric g on the 4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "g = M.metric()\n", "print(g)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Below we set the component of $g$ to obtain the Schwarzschild metric in the ingoing Eddington-Finkelstein coordinates" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g = (2*m/r - 1) dt*dt + 2*m/r dt*dr + 2*m/r dr*dt + (2*m/r + 1) dr*dr + r^2 dth*dth + r^2*sin(th)^2 dph*dph" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[0,0], g[0,1], g[1,1], g[2,2], g[3,3] = -1+2*m/r, 2*m/r, 1+2*m/r, r^2, r^2*sin(th)^2\n", "g.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$M$ is now the Schwarzschild black hole. Its event horizon is the null hypersurface $H$ defined by $r=2m$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "degenerate hypersurface H embedded in 4-dimensional differentiable manifold M\n" ] } ], "source": [ "H = Manifold(3, 'H', ambient=M, structure='degenerate_metric')\n", "print(H)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "X_H. = H.chart(r\"ht:(-oo,oo):t hth:(0,pi):\\theta hph:(0,2*pi):\\phi\")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi: H --> M\n", " (ht, hth, hph) |--> (t, r, th, ph) = (ht, 2*m, hth, hph)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi = H.diff_map(M, {(X_H, X_M): [ht, 2*m, hth, hph]}, \n", " name='Phi', latex_name=r'\\Phi')\n", "Phi.display()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Phi_inv: M --> H\n", " (t, r, th, ph) |--> (ht, hth, hph) = (t, th, ph)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi_inv = M.diff_map(H, {(X_M, X_H): [t, th, ph]}, \n", " name='Phi_inv', latex_name=r'\\Phi^{-1}')\n", "Phi_inv.display()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "phi_inv_t = M.scalar_field({X_M:r-2*m})" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "H.set_immersion(Phi, inverse=Phi_inv)\n", "H.declare_embedding()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "degenerate metric gamma on the degenerate hypersurface H embedded in 4-dimensional differentiable manifold M\n" ] } ], "source": [ "h = H.induced_metric()\n", "print(h)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "gamma = 4*m^2 dhth*dhth + 4*m^2*sin(hth)^2 dhph*dhph" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.display()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "r d/dt - r d/dr" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v = M.vector_field()\n", "v[:2] = [r,-r]\n", "v.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This vector field $v$ is everywhere neither tangent nor orthogonal to $H$ and then can be used as rigging to study the extrinsic geometry of $H$." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "H.set_transverse(rigging=v)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-d/dt" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xi = M.vector_field()\n", "xi[0] =-1\n", "xi.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\xi$ defines the normal tangent direction along $H$." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(d/dth, d/dph)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "e1 = M.vector_field()\n", "e2 = M.vector_field()\n", "e1[2] = 1\n", "e2[3] = 1\n", "e1.display(), e2.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$S=Span(e1,e2)$ is a screen distribution for $H$, thus a complementary of $TH^\\perp$ in $TH$." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "screen distribution S along the degenerate hypersurface H embedded in 4-dimensional differentiable manifold M mapped into the 4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "S = H.screen('S', [e1, e2], (xi))\n", "print(S)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The intergral surfaces of this screen distribution are the spheres $\\{t=cste,r=2m\\}$." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Vector frame (H, (vv_0,vv_1,vv_2,vv_3)) with values on the 4-dimensional Lorentzian manifold M" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T = H.adapted_frame(); T" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field nabla_g(xi)|X(H) of type (1,1) along the degenerate hypersurface H embedded in 4-dimensional differentiable manifold M with values on the 4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "W = H.weingarten_map()\n", "print(W)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "nabla_g(xi)|X(H) = -1/4/m xi*xi^b" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "W.display(T)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Weingarten map of this event horizon does not vanish but is along the orthogonal tangent vector $\\xi$. \n", "\n", "The Weingarten map can be decomposed as $$\\nabla_U\\xi=-A^\\ast(U)-\\tau(U)\\xi,~~~~\\forall U\\in\\mathfrak X(H).$$\n", "$A^\\ast$ is the shape operator and $\\tau$ the roration $1-$form. So, the hypersurface is totally geodesic and the rotation $1-$form $\\tau$ vanishes on the screen distribution and $\\tau(\\xi)=\\frac1{4m}$. We can confirm that $H$ is totally geodesic by computing the shape operator." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field A^* of type (1,1) along the degenerate hypersurface H embedded in 4-dimensional differentiable manifold M with values on the 4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "SO = H.shape_operator()\n", "print(SO)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "A^* = 0" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "SO.display()" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.1", "language": "sage", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }