{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Computation of the surface gravity of the Schwarzschild black hole\n", "\n", "We compute $\\kappa$ by the formula\n", "$$\\kappa^2 = - \\frac{1}{2} \\nabla_a k_b \\nabla^a k^b $$\n", "where $k^a$ is the Killing vector $\\frac{\\partial}{\\partial t}$, which coincides on the horizon with the horizon null generator. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "M = Manifold(4, 'M', structure='Lorentzian')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (M, (t, r, th, phi))" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X. = M.chart(r\"t r:(0,+oo) th:(0,pi):\\theta phi:(0,2*pi):\\phi\")\n", "X" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "m = var('m')\n", "assume(m>0)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g = (2*m/r - 1) dt*dt - 1/(2*m/r - 1) dr*dr + r^2 dth*dth + r^2*sin(th)^2 dphi*dphi" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = M.metric()\n", "g[0,0] = - (1-2*m/r)\n", "g[1,1] = 1/(1-2*m/r)\n", "g[2,2] = r^2\n", "g[3,3] = r^2*sin(th)^2\n", "g.display()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "k = d/dt" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k = M.vector_field(name='k')\n", "k[0] = 1\n", "k.display()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "nabla = g.connection()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "nabla_g(k) = -m/(2*m*r - r^2) d/dt*dr - (2*m^2 - m*r)/r^3 d/dr*dt" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dk = nabla(k)\n", "Dk.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The tensor $\\nabla_a k_b$:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-m/r^2 dt*dr + m/r^2 dr*dt" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dk_down = Dk.down(g)\n", "Dk_down.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us check in passing Killing equation:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dk_down.symmetrize().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The tensor $\\nabla^a k^b$:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "m/r^2 d/dt*d/dr - m/r^2 d/dr*d/dt" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dk_up = Dk.up(g)\n", "Dk_up.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are ready now to evaluate the formula \n", "$$\\kappa^2 = - \\frac{1}{2} \\nabla_a k_b \\nabla^a k^b $$\n", "We contract both over index no. 0 (first index) and index no. 1 (second index):" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "kappa2 = -1/2 * Dk_down.contract(0, 1, Dk_up, 0, 1)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "M --> R\n", "(t, r, th, phi) |--> m^2/r^4" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kappa2.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If one wishes, LaTeX notations can be used to perform the contraction instead of using the method `contract`:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "M --> R\n", "(t, r, th, phi) |--> m^2/r^4" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kappa2 = -1/2 * Dk_down['_{ab}']*Dk_up['^{ab}']\n", "kappa2.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The symbolic expression representing the scalar field $\\kappa^2$:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "m^2/r^4" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kappa2.expr()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The final result:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4/m" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "kappa = sqrt(kappa2.expr().subs(r=2*m))\n", "kappa" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 8.2", "language": "", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.14" } }, "nbformat": 4, "nbformat_minor": 2 }