{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "This notebook was written under the supervision of Éric Gourgoulhon \\(LUTH\\) as part of my physics internship in July 2023.\n", "\n", "**Author** : Nicolas Seroux\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# Solution de Reissner\\-Nordström\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Définition de la variété d'espace\\-temps et de la métrique de Reissner\\-Nordström\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On définit la métrique de Reissner\\-Nordström sur une variété $\\mathscr{M}$ difféomorphe à $\\mathbb{R}\\times\\mathbb{R}^*_+\\times\\mathbb{S}_2$ que l'on munit des coordonnées de Schwarzschild $(t,r,\\theta,\\varphi)$ adaptées à la symétrie sphérique :\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "M = Manifold(4, 'M', latex_name=r'\\mathscr{M}', structure='Lorentzian')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "X. = M.chart(r\"t r:(0,+oo) th:(0,pi):\\theta ph:(0,2*pi):\\varphi:periodic\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "La métrique $g$ de Reissner\\-Nordström est définie en fonction des paramètres $m$ et $Q$ représentant respectivement la masse et la charge totale du trou noir. On supposera de plus que $|Q|=0)\n", "\n", "Q = var('Q')\n", "assume(abs(Q)\\(\\displaystyle g = \\left( -\\frac{Q^{2} - 2 \\, m r + r^{2}}{r^{2}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( \\frac{r^{2}}{Q^{2} - 2 \\, m r + r^{2}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + r^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle g = \\left( -\\frac{Q^{2} - 2 \\, m r + r^{2}}{r^{2}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( \\frac{r^{2}}{Q^{2} - 2 \\, m r + r^{2}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + r^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + r^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "g = -(Q^2 - 2*m*r + r^2)/r^2 dt⊗dt + r^2/(Q^2 - 2*m*r + r^2) dr⊗dr + r^2 dth⊗dth + r^2*sin(th)^2 dph⊗dph" ] }, "execution_count": 6, "metadata": { }, "output_type": "execute_result" } ], "source": [ "g = M.metric()\n", "\n", "g[0,0] = -Del/r^2\n", "g[1,1] = r^2/Del\n", "g[2,2] = r^2\n", "g[3,3] = r^2*sin(th)^2\n", "\n", "g.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Equations d'Einstein\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Tenseurs de courbure\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On peut désormais calculer les tenseurs de Riemann et de Ricci liés à $g$ :\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "Riem = g.riemann()\n", "Rc = g.ricci()\n", "R = g.ricci_scalar()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "L'espace\\-temps de Reissner\\-Nordstrom n'est pas Ricci\\-plat à cause du champ électromagnétique :\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{Ric}\\left(g\\right) = \\left( \\frac{Q^{4} - 2 \\, Q^{2} m r + Q^{2} r^{2}}{r^{6}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( -\\frac{Q^{2}}{Q^{2} r^{2} - 2 \\, m r^{3} + r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + \\frac{Q^{2}}{r^{2}} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{Q^{2} \\sin\\left({\\theta}\\right)^{2}}{r^{2}} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{Ric}\\left(g\\right) = \\left( \\frac{Q^{4} - 2 \\, Q^{2} m r + Q^{2} r^{2}}{r^{6}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( -\\frac{Q^{2}}{Q^{2} r^{2} - 2 \\, m r^{3} + r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + \\frac{Q^{2}}{r^{2}} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{Q^{2} \\sin\\left({\\theta}\\right)^{2}}{r^{2}} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "Ric(g) = (Q^4 - 2*Q^2*m*r + Q^2*r^2)/r^6 dt⊗dt - Q^2/(Q^2*r^2 - 2*m*r^3 + r^4) dr⊗dr + Q^2/r^2 dth⊗dth + Q^2*sin(th)^2/r^2 dph⊗dph" ] }, "execution_count": 8, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Rc.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On peut également calculer le tenseur d'Einstein associé :\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle G = \\left( \\frac{Q^{4} - 2 \\, Q^{2} m r + Q^{2} r^{2}}{r^{6}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( -\\frac{Q^{2}}{Q^{2} r^{2} - 2 \\, m r^{3} + r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + \\frac{Q^{2}}{r^{2}} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{Q^{2} \\sin\\left({\\theta}\\right)^{2}}{r^{2}} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle G = \\left( \\frac{Q^{4} - 2 \\, Q^{2} m r + Q^{2} r^{2}}{r^{6}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t + \\left( -\\frac{Q^{2}}{Q^{2} r^{2} - 2 \\, m r^{3} + r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} r + \\frac{Q^{2}}{r^{2}} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{Q^{2} \\sin\\left({\\theta}\\right)^{2}}{r^{2}} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "G = (Q^4 - 2*Q^2*m*r + Q^2*r^2)/r^6 dt⊗dt - Q^2/(Q^2*r^2 - 2*m*r^3 + r^4) dr⊗dr + Q^2/r^2 dth⊗dth + Q^2*sin(th)^2/r^2 dph⊗dph" ] }, "execution_count": 9, "metadata": { }, "output_type": "execute_result" } ], "source": [ "G = Rc - R*g/2\n", "G.set_name('G', latex_name=r'G')\n", "G.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "En outre, ce alcul du scalaire de Kretschman montre qu'il y a une singularité de courbure en $r=0$ :\n", "\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{8 \\, {\\left(7 \\, Q^{4} - 12 \\, Q^{2} m r + 6 \\, m^{2} r^{2}\\right)}}{r^{8}}\\)" ], "text/latex": [ "$\\displaystyle \\frac{8 \\, {\\left(7 \\, Q^{4} - 12 \\, Q^{2} m r + 6 \\, m^{2} r^{2}\\right)}}{r^{8}}$" ], "text/plain": [ "8*(7*Q^4 - 12*Q^2*m*r + 6*m^2*r^2)/r^8" ] }, "execution_count": 10, "metadata": { }, "output_type": "execute_result" } ], "source": [ "K = Riem.down(g)['_{abcd}']*Riem.up(g)['^{abcd}']\n", "K.expr()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Tenseur énergie\\-impulsion\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On commence par exprimer le champ électromagnétique dans le co\\-repère associé aux coordonnées de Schwarzschild. On suppose que le potentiel électromagnétique $A$ à une forme simple où la symétrie sphérique est manifeste, et qui se réduit à l'expression usuelle du potentiel dans un espace\\-temps plat :\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle A = -\\frac{Q}{r} \\mathrm{d} t\\)" ], "text/latex": [ "$\\displaystyle A = -\\frac{Q}{r} \\mathrm{d} t$" ], "text/plain": [ "A = -Q/r dt" ] }, "execution_count": 11, "metadata": { }, "output_type": "execute_result" } ], "source": [ "A = M.diff_form(1, name='A')\n", "\n", "A[M.default_frame(), 0] = -Q/r\n", "\n", "A.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Le champ électromagnétique est défini comme la différentielle extérieure du potentiel $A$ :\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle F = -\\frac{Q}{r^{2}} \\mathrm{d} t\\wedge \\mathrm{d} r\\)" ], "text/latex": [ "$\\displaystyle F = -\\frac{Q}{r^{2}} \\mathrm{d} t\\wedge \\mathrm{d} r$" ], "text/plain": [ "F = -Q/r^2 dt∧dr" ] }, "execution_count": 12, "metadata": { }, "output_type": "execute_result" } ], "source": [ "F = A.exterior_derivative()\n", "F.set_name('F')\n", "F.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Le tenseur énergie\\-impulsion $T$ est défini à partir du champ $F$ par :\n", "\n", "$$T_{\\mu\\nu}=\\frac{1}{4\\pi}F_{\\alpha\\mu}F^\\alpha_\\nu-\\frac{1}{4}F_{\\alpha\\beta}F^{\\alpha\\beta}g_{\\mu\\nu}.$$\n", "\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle T = \\left( \\frac{Q^{4} - 2 \\, Q^{2} m r + Q^{2} r^{2}}{8 \\, \\pi r^{6}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t -\\frac{Q^{2}}{8 \\, {\\left(\\pi Q^{2} r^{2} - 2 \\, \\pi m r^{3} + \\pi r^{4}\\right)}} \\mathrm{d} r\\otimes \\mathrm{d} r + \\frac{Q^{2}}{8 \\, \\pi r^{2}} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{Q^{2} \\sin\\left({\\theta}\\right)^{2}}{8 \\, \\pi r^{2}} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle T = \\left( \\frac{Q^{4} - 2 \\, Q^{2} m r + Q^{2} r^{2}}{8 \\, \\pi r^{6}} \\right) \\mathrm{d} t\\otimes \\mathrm{d} t -\\frac{Q^{2}}{8 \\, {\\left(\\pi Q^{2} r^{2} - 2 \\, \\pi m r^{3} + \\pi r^{4}\\right)}} \\mathrm{d} r\\otimes \\mathrm{d} r + \\frac{Q^{2}}{8 \\, \\pi r^{2}} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{Q^{2} \\sin\\left({\\theta}\\right)^{2}}{8 \\, \\pi r^{2}} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "T = 1/8*(Q^4 - 2*Q^2*m*r + Q^2*r^2)/(pi*r^6) dt⊗dt - 1/8*Q^2/(pi*Q^2*r^2 - 2*pi*m*r^3 + pi*r^4) dr⊗dr + 1/8*Q^2/(pi*r^2) dth⊗dth + 1/8*Q^2*sin(th)^2/(pi*r^2) dph⊗dph" ] }, "execution_count": 13, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Fuu = F.up(g)\n", "F2 = F['_ab']*Fuu['^ab']\n", "\n", "\n", "Fud = F.up(g,0)\n", "T = 1/(4*pi)*( F['_k.']*Fud['^k_.'] - 1/4*F2 * g )\n", "T.set_name('T',latex_name=r'T')\n", "T.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "---\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "En utilisant les calculs précédents, il est facile de vérifier que la métrique de Reissner\\-Nordström est une solution des équations d'Einstein :\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 14, "metadata": { }, "output_type": "execute_result" } ], "source": [ "G == 8*pi*T" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Géodésiques dans l'espace\\-temps de Reissner\\-Nordström\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On introduit un espace euclidien $\\mathbb{E}^3$ dans lequel on projettera les géodésiques.\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} & \\mathscr{M} & \\longrightarrow & \\mathbb{E}^{3} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(x, y, z\\right) = \\left(r \\cos\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right), r \\sin\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right), r \\cos\\left({\\theta}\\right)\\right) \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} & \\mathscr{M} & \\longrightarrow & \\mathbb{E}^{3} \\\\ & \\left(t, r, {\\theta}, {\\varphi}\\right) & \\longmapsto & \\left(x, y, z\\right) = \\left(r \\cos\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right), r \\sin\\left({\\varphi}\\right) \\sin\\left({\\theta}\\right), r \\cos\\left({\\theta}\\right)\\right) \\end{array}$" ], "text/plain": [ "M → E^3\n", " (t, r, th, ph) ↦ (x, y, z) = (r*cos(ph)*sin(th), r*sin(ph)*sin(th), r*cos(th))" ] }, "execution_count": 15, "metadata": { }, "output_type": "execute_result" } ], "source": [ "E3. = EuclideanSpace()\n", "X3 = E3.cartesian_coordinates()\n", "to_E3 = M.diff_map(E3, {(X, X3): [r*sin(th)*cos(ph), r*sin(th)*sin(ph), r*cos(th)]})\n", "to_E3.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Une géodésique est caractérisée par un point $p_0$ de $\\mathscr{M}$ et un vecteur $v_0\\in\\mathrm{T}_{p_0}\\mathscr{M}$. \n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle v_0 = 1.40000000000000 \\frac{\\partial}{\\partial t } + \\frac{0.0600000000000000}{m} \\frac{\\partial}{\\partial {\\varphi} }\\)" ], "text/latex": [ "$\\displaystyle v_0 = 1.40000000000000 \\frac{\\partial}{\\partial t } + \\frac{0.0600000000000000}{m} \\frac{\\partial}{\\partial {\\varphi} }$" ], "text/plain": [ "v_0 = 1.40000000000000 ∂/∂t + 0.0600000000000000/m ∂/∂ph" ] }, "execution_count": 16, "metadata": { }, "output_type": "execute_result" } ], "source": [ "p0 = M((0,8*m,pi/2,0), name='p_0')\n", "v0 = M.tangent_space(p0)((1.4,0,0,0.06/m), name='v_0')\n", "v0.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "On introduit un paramètre affine $s$ avant d'intégrer numériquement l'équation des géodsiques :\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "s = var('s')\n", "geod = M.integrated_geodesic(g, (s, 0, 500), v0)\n", "sol = geod.solve(parameters_values={m: 1, Q:1/2}) \n", "interp = geod.interpolate()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "La projection des coordonnées de Schwarzschild dans $\\mathbb{E}^3$ permet d'obtenir une visualisation des géodésiques :\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": "\n\n", "text/plain": [ "Graphics3d Object" ] }, "execution_count": 18, "metadata": { }, "output_type": "execute_result" } ], "source": [ "graph = geod.plot_integrated(chart=X3, mapping=to_E3, plot_points=500, thickness=2, label_axes=False)\n", "graph += p0.plot(chart=X3, mapping=to_E3, size=4, parameters={m: 1, Q:1/2})\n", "graph += sphere(size=2, color='grey')\n", "show(graph)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Le caractère répulsif du centre de symétrie $r=0$ est manifeste si l'on trace une géodésique de même condition initiale dans l'espace\\-temps de Schwarzschild, i.e. pour $Q=0$. \n", "\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": "\n\n", "text/plain": [ "Graphics3d Object" ] }, "execution_count": 19, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s = var('s')\n", "\n", "geod_sch = M.integrated_geodesic(g, (s, 0, 90), v0)\n", "sol_sch = geod_sch.solve(parameters_values={m: 1, Q:0}) \n", "interp_sch = geod_sch.interpolate()\n", "\n", "graph_sch = geod_sch.plot_integrated(chart=X3, mapping=to_E3, plot_points=500, \n", " thickness=2, label_axes=False) # the geodesic\n", "graph_sch += p0.plot(chart=X3, mapping=to_E3, size=4, parameters={m: 1, Q:0}) # the starting point\n", "graph_sch += sphere(size=2, color='grey') # the event horizon\n", "show(graph_sch)" ] } ], "metadata": { "kernelspec": { "argv": [ "sage-10.1", "--python", "-m", "sage.repl.ipython_kernel", "--matplotlib=inline", "-f", "{connection_file}" ], "display_name": "SageMath 10.1", "env": { }, "language": "sagemath", "metadata": { "cocalc": { "description": "Open-source mathematical software system", "priority": 10, "url": "https://www.sagemath.org/" } }, "name": "sage-10.1", "resource_dir": "/ext/jupyter/kernels/sage-10.1" }, "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.11.1" } }, "nbformat": 4, "nbformat_minor": 4 }