{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Kerr-Newman spacetime\n", "\n", "This worksheet demonstrates a few capabilities of SageManifolds (version 0.9.1) in computations regarding Kerr-Newman spacetime.\n", "\n", "Click [here](https://raw.githubusercontent.com/sagemanifolds/SageManifolds/master/Worksheets/v0.9.1/SM_Kerr_Newman.ipynb) to download the worksheet file (ipynb format). To run it, you must start SageMath within the Jupyter notebook, via the command `sage -n jupyter`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we set up the notebook to display mathematical objects using LaTeX formatting:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also define a viewer for 3D plots (use `'jmol'` for interactive 3D graphics):" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "viewer3D = 'tachyon' # must be 'jmol', 'tachyon' or None (default)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since some computations are quite long, we ask for running them in parallel on 8 cores:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Parallelism().set(nproc=8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Spacetime manifold\n", "\n", "We declare the Kerr-Newman spacetime as a 4-dimensional diffentiable manifold:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "M = Manifold(4, 'M', r'\\mathcal{M}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us use the standard Boyer-Lindquist coordinates on it, by first introducing the part $\\mathcal{M}_0$ covered by these coordinates

" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Chart (M0, (t, r, th, ph))\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "Chart (M0, (t, r, th, ph))" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M0 = M.open_subset('M0', r'\\mathcal{M}_0')\n", "# BL = Boyer-Lindquist\n", "BL. = M0.chart(r't r:(0,+oo) th:(0,pi):\\theta ph:(0,2*pi):\\phi') \n", "print(BL) ; BL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Metric tensor

\n", "

The 3 parameters $m$, $a$ and $q$ of the Kerr-Newman spacetime are declared as symbolic variables:

" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(m, a, q)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "var('m a q')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us introduce the spacetime metric:

" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "g = M.lorentzian_metric('g')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The metric is defined by its components in the coordinate frame associated with Boyer-Lindquist coordinates, which is the current manifold's default frame:

" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g = (-(q^2 - 2*m*r)/(a^2*cos(th)^2 + r^2) - 1) dt*dt + (q^2 - 2*m*r)*a*sin(th)^2/(a^2*cos(th)^2 + r^2) dt*dph + (a^2*cos(th)^2 + r^2)/(a^2 + q^2 - 2*m*r + r^2) dr*dr + (a^2*cos(th)^2 + r^2) dth*dth + (q^2 - 2*m*r)*a*sin(th)^2/(a^2*cos(th)^2 + r^2) dph*dt - ((q^2 - 2*m*r)*a^2*sin(th)^2/(a^2*cos(th)^2 + r^2) - a^2 - r^2)*sin(th)^2 dph*dph" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rho2 = r^2 + (a*cos(th))^2\n", "Delta = r^2 -2*m*r + a^2 + q^2\n", "g[0,0] = -1 + (2*m*r-q^2)/rho2\n", "g[0,3] = -a*sin(th)^2*(2*m*r-q^2)/rho2\n", "g[1,1], g[2,2] = rho2/Delta, rho2\n", "g[3,3] = (r^2 + a^2 + (2*m*r-q^2)*(a*sin(th))^2/rho2)*sin(th)^2\n", "g.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The list of the non-vanishing components:

" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g_t,t = -(q^2 - 2*m*r)/(a^2*cos(th)^2 + r^2) - 1 \n", "g_t,ph = (q^2 - 2*m*r)*a*sin(th)^2/(a^2*cos(th)^2 + r^2) \n", "g_r,r = (a^2*cos(th)^2 + r^2)/(a^2 + q^2 - 2*m*r + r^2) \n", "g_th,th = a^2*cos(th)^2 + r^2 \n", "g_ph,t = (q^2 - 2*m*r)*a*sin(th)^2/(a^2*cos(th)^2 + r^2) \n", "g_ph,ph = -((q^2 - 2*m*r)*a^2*sin(th)^2/(a^2*cos(th)^2 + r^2) - a^2 - r^2)*sin(th)^2 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display_comp()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The component $g^{tt}$ of the inverse metric:

" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(a^4 + 2*a^2*r^2 + r^4 - (a^4 + a^2*q^2 - 2*a^2*m*r + a^2*r^2)*sin(th)^2)/(2*m*r^3 - r^4 - (a^2 + q^2)*r^2 - (a^4 + a^2*q^2 - 2*a^2*m*r + a^2*r^2)*cos(th)^2)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.inverse()[0,0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The lapse function:

" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Scalar field on the Open subset M0 of the 4-dimensional differentiable manifold M" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = 1/sqrt(-(g.inverse()[[0,0]])) ; N" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "M0 --> R\n", "(t, r, th, ph) |--> sqrt(a^2*cos(th)^2 + r^2)*sqrt(a^2 + q^2 - 2*m*r + r^2)/sqrt(a^4 + 2*a^2*r^2 + r^4 - (a^4 + a^2*q^2 - 2*a^2*m*r + a^2*r^2)*sin(th)^2)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Electromagnetic field tensor

\n", "

Let us first introduce the 1-form basis associated with Boyer-Lindquist coordinates:

" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Coordinate coframe (M0, (dt,dr,dth,dph))" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dBL = BL.coframe() ; dBL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The electromagnetic field tensor $F$ is formed as [cf. e.g. Eq. (33.5) of Misner, Thorne & Wheeler (1973)]

" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "F = (a^2*q*cos(th)^2 - q*r^2)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dt/\\dr + 2*a^2*q*r*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dt/\\dth + (a^3*q*cos(th)^2 - a*q*r^2)*sin(th)^2/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dr/\\dph + 2*(a^3*q*r + a*q*r^3)*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dth/\\dph" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F = M.diff_form(2, name='F')\n", "F.set_restriction( q/rho2^2 * (r^2-a^2*cos(th)^2)* dBL[1].wedge( dBL[0] - a*sin(th)^2* dBL[3] ) + \\\n", " 2*q/rho2^2 * a*r*cos(th)*sin(th)* dBL[2].wedge( (r^2+a^2)* dBL[3] - a* dBL[0] ) )\n", "F.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The list of non-vanishing components:

" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "F_t,r = (a^2*q*cos(th)^2 - q*r^2)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) \n", "F_t,th = 2*a^2*q*r*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) \n", "F_r,t = -(a^2*q*cos(th)^2 - q*r^2)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) \n", "F_r,ph = (a^3*q*cos(th)^2 - a*q*r^2)*sin(th)^2/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) \n", "F_th,t = -2*a^2*q*r*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) \n", "F_th,ph = 2*(a^3*q*r + a*q*r^3)*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) \n", "F_ph,r = -(a^3*q*cos(th)^2 - a*q*r^2)*sin(th)^2/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) \n", "F_ph,th = -2*(a^3*q*r + a*q*r^3)*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F.display_comp()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The Hodge dual of $F$:

" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "*F = 2*a*q*r*cos(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dt/\\dr - (a^3*q*cos(th)^2 - a*q*r^2)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dt/\\dth - 2*(a^4*q*r*cos(th)*sin(th)^4 - (a^4*q*r + a^2*q*r^3)*cos(th)*sin(th)^2)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) dr/\\dph + ((a^4*q + a^2*q*r^2)*sin(th)^3 - (a^4*q - q*r^4)*sin(th))/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dth/\\dph" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "star_F = F.hodge_dual(g) ; star_F.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Maxwell equations

\n", "\n", "

Let us check that $F$ obeys the two (source-free) Maxwell equations:

" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "dF = 0" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F.exterior_derivative().display()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "d*F = 0" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "star_F.exterior_derivative().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Levi-Civita Connection

\n", "\n", "

The Levi-Civita connection $\\nabla$ associated with $g$:

" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Levi-Civita connection nabla_g associated with the Lorentzian metric g on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "nab = g.connection() ; print(nab)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us verify that the covariant derivative of $g$ with respect to $\\nabla$ vanishes identically:

" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nab(g) == 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Another view of the above property:

" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "nabla_g(g) = 0" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nab(g).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The nonzero Christoffel symbols (skipping those that can be deduced by symmetry of the last two indices):

" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Gam^t_t,r = (a^4*m + a^2*q^2*r + q^2*r^3 - m*r^4 - (a^4*m + a^2*m*r^2)*sin(th)^2)/(2*m*r^5 - r^6 - (a^2 + q^2)*r^4 - (a^6 + a^4*q^2 - 2*a^4*m*r + a^4*r^2)*cos(th)^4 + 2*(2*a^2*m*r^3 - a^2*r^4 - (a^4 + a^2*q^2)*r^2)*cos(th)^2) \n", "Gam^t_t,th = (a^2*q^2 - 2*a^2*m*r)*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) \n", "Gam^t_r,ph = -(a^3*q^2*r - a^3*m*r^2 + 2*a*q^2*r^3 - 3*a*m*r^4 - (a^5*m + a^3*q^2*r - a^3*m*r^2)*cos(th)^4 + (a^5*m - 2*a*q^2*r^3 + 3*a*m*r^4)*cos(th)^2)/(2*m*r^5 - r^6 - (a^2 + q^2)*r^4 - (a^6 + a^4*q^2 - 2*a^4*m*r + a^4*r^2)*cos(th)^4 + 2*(2*a^2*m*r^3 - a^2*r^4 - (a^4 + a^2*q^2)*r^2)*cos(th)^2) \n", "Gam^t_th,ph = ((a^5*q^2 - 2*a^5*m*r)*cos(th)*sin(th)^5 - (a^5*q^2 - 2*a^5*m*r + a^3*q^2*r^2 - 2*a^3*m*r^3)*cos(th)*sin(th)^3)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) \n", "Gam^r_t,t = (m*r^4 - (2*m^2 + q^2)*r^3 + (a^2*m + 3*m*q^2)*r^2 - (a^4*m + a^2*m*q^2 - 2*a^2*m^2*r + a^2*m*r^2)*cos(th)^2 - (a^2*q^2 + q^4)*r)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) \n", "Gam^r_t,ph = -(a*m*r^4 - (2*a*m^2 + a*q^2)*r^3 + (a^3*m + 3*a*m*q^2)*r^2 - (a^5*m + a^3*m*q^2 - 2*a^3*m^2*r + a^3*m*r^2)*cos(th)^2 - (a^3*q^2 + a*q^4)*r)*sin(th)^2/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) \n", "Gam^r_r,r = -(a^2*m + q^2*r - m*r^2 - (a^2*m - a^2*r)*sin(th)^2)/(2*m*r^3 - r^4 - (a^2 + q^2)*r^2 - (a^4 + a^2*q^2 - 2*a^2*m*r + a^2*r^2)*cos(th)^2) \n", "Gam^r_r,th = -a^2*cos(th)*sin(th)/(a^2*cos(th)^2 + r^2) \n", "Gam^r_th,th = (2*m*r^2 - r^3 - (a^2 + q^2)*r)/(a^2*cos(th)^2 + r^2) \n", "Gam^r_ph,ph = ((a^2*m*r^4 - (2*a^2*m^2 + a^2*q^2)*r^3 + (a^4*m + 3*a^2*m*q^2)*r^2 - (a^6*m + a^4*m*q^2 - 2*a^4*m^2*r + a^4*m*r^2)*cos(th)^2 - (a^4*q^2 + a^2*q^4)*r)*sin(th)^4 + (2*m*r^6 - r^7 - (a^2 + q^2)*r^5 + (2*a^4*m*r^2 - a^4*r^3 - (a^6 + a^4*q^2)*r)*cos(th)^4 + 2*(2*a^2*m*r^4 - a^2*r^5 - (a^4 + a^2*q^2)*r^3)*cos(th)^2)*sin(th)^2)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) \n", "Gam^th_t,t = (a^2*q^2 - 2*a^2*m*r)*cos(th)*sin(th)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) \n", "Gam^th_t,ph = -(a^3*q^2 - 2*a^3*m*r + a*q^2*r^2 - 2*a*m*r^3)*cos(th)*sin(th)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) \n", "Gam^th_r,r = -a^2*cos(th)*sin(th)/(2*m*r^3 - r^4 - (a^2 + q^2)*r^2 - (a^4 + a^2*q^2 - 2*a^2*m*r + a^2*r^2)*cos(th)^2) \n", "Gam^th_r,th = r/(a^2*cos(th)^2 + r^2) \n", "Gam^th_th,th = -a^2*cos(th)*sin(th)/(a^2*cos(th)^2 + r^2) \n", "Gam^th_ph,ph = -((a^6 + a^4*q^2 - 2*a^4*m*r + a^4*r^2)*cos(th)^5 - 2*(2*a^2*m*r^3 - a^2*r^4 - (a^4 + a^2*q^2)*r^2)*cos(th)^3 - (a^4*q^2 - 2*a^4*m*r + 2*a^2*q^2*r^2 - 4*a^2*m*r^3 - a^2*r^4 - r^6)*cos(th))*sin(th)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) \n", "Gam^ph_t,r = (a^3*m*cos(th)^2 + a*q^2*r - a*m*r^2)/(2*m*r^5 - r^6 - (a^2 + q^2)*r^4 - (a^6 + a^4*q^2 - 2*a^4*m*r + a^4*r^2)*cos(th)^4 + 2*(2*a^2*m*r^3 - a^2*r^4 - (a^4 + a^2*q^2)*r^2)*cos(th)^2) \n", "Gam^ph_t,th = (a*q^2 - 2*a*m*r)*cos(th)/((a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4)*sin(th)) \n", "Gam^ph_r,ph = -(a^2*q^2*r - a^2*m*r^2 + q^2*r^3 - 2*m*r^4 + r^5 - (a^4*m - a^4*r)*cos(th)^4 + (a^4*m - a^2*m*r^2 + 2*a^2*r^3)*cos(th)^2)/(2*m*r^5 - r^6 - (a^2 + q^2)*r^4 - (a^6 + a^4*q^2 - 2*a^4*m*r + a^4*r^2)*cos(th)^4 + 2*(2*a^2*m*r^3 - a^2*r^4 - (a^4 + a^2*q^2)*r^2)*cos(th)^2) \n", "Gam^ph_th,ph = (a^4*cos(th)*sin(th)^4 - (2*a^4 + a^2*q^2 - 2*a^2*m*r + 2*a^2*r^2)*cos(th)*sin(th)^2 + (a^4 + 2*a^2*r^2 + r^4)*cos(th))/((a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4)*sin(th)) " ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.christoffel_symbols_display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Killing vectors

\n", "

The default vector frame on the spacetime manifold is the coordinate basis associated with Boyer-Lindquist coordinates:

" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M.default_frame() is BL.frame()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Coordinate frame (M0, (d/dt,d/dr,d/dth,d/dph))" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "BL.frame()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us consider the first vector field of this frame:

" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Vector field d/dt on the Open subset M0 of the 4-dimensional differentiable manifold M" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xi = BL.frame()[0] ; xi" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vector field d/dt on the Open subset M0 of the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "print(xi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The 1-form associated to it by metric duality is

" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-(a^2*cos(th)^2 + q^2 - 2*m*r + r^2)/(a^2*cos(th)^2 + r^2) dt + (a*q^2 - 2*a*m*r)*sin(th)^2/(a^2*cos(th)^2 + r^2) dph" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xi_form = xi.down(g) ; xi_form.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Its covariant derivative is

" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (0,2) on the Open subset M0 of the 4-dimensional differentiable manifold M\n" ] }, { "data": { "text/html": [ "" ], "text/plain": [ "(m*r^4 - (2*m^2 + q^2)*r^3 + (a^2*m + 3*m*q^2)*r^2 - (a^4*m + a^2*m*q^2 - 2*a^2*m^2*r + a^2*m*r^2)*cos(th)^2 - (a^2*q^2 + q^4)*r)/(2*m*r^5 - r^6 - (a^2 + q^2)*r^4 - (a^6 + a^4*q^2 - 2*a^4*m*r + a^4*r^2)*cos(th)^4 + 2*(2*a^2*m*r^3 - a^2*r^4 - (a^4 + a^2*q^2)*r^2)*cos(th)^2) dt*dr - (a^2*q^2 - 2*a^2*m*r)*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dt*dth - (m*r^4 - (2*m^2 + q^2)*r^3 + (a^2*m + 3*m*q^2)*r^2 - (a^4*m + a^2*m*q^2 - 2*a^2*m^2*r + a^2*m*r^2)*cos(th)^2 - (a^2*q^2 + q^4)*r)/(2*m*r^5 - r^6 - (a^2 + q^2)*r^4 - (a^6 + a^4*q^2 - 2*a^4*m*r + a^4*r^2)*cos(th)^4 + 2*(2*a^2*m*r^3 - a^2*r^4 - (a^4 + a^2*q^2)*r^2)*cos(th)^2) dr*dt - (a^3*m*cos(th)^4 - a*q^2*r + a*m*r^2 - (a^3*m - a*q^2*r + a*m*r^2)*cos(th)^2)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dr*dph + (a^2*q^2 - 2*a^2*m*r)*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dth*dt - (a^3*q^2 - 2*a^3*m*r + a*q^2*r^2 - 2*a*m*r^3)*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dth*dph + (a^3*m*sin(th)^4 - (a^3*m + a*q^2*r - a*m*r^2)*sin(th)^2)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dph*dr + (a^3*q^2 - 2*a^3*m*r + a*q^2*r^2 - 2*a*m*r^3)*cos(th)*sin(th)/(a^4*cos(th)^4 + 2*a^2*r^2*cos(th)^2 + r^4) dph*dth" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nab_xi = nab(xi_form) ; print(nab_xi) ; nab_xi.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us check that the vector field $\\xi=\\frac{\\partial}{\\partial t}$ obeys Killing equation:

" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nab_xi.symmetrize() == 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Similarly, let us check that $\\chi := \\frac{\\partial}{\\partial\\phi}$ is a Killing vector:

" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Vector field d/dph on the Open subset M0 of the 4-dimensional differentiable manifold M" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chi = BL.frame()[3] ; chi" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nab(chi.down(g)).symmetrize() == 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Another way to check that $\\xi$ and $\\chi$ are Killing vectors is the vanishing of the Lie derivative of the metric tensor along them:

" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.lie_der(xi) == 0" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.lie_der(chi) == 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Curvature

\n", "\n", "

The Ricci tensor associated with $g$:

" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field of symmetric bilinear forms Ric(g) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "Ric = g.ricci() ; print(Ric)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Ric(g) = -(a^2*q^2*cos(th)^2 - 2*a^2*q^2 - q^4 + 2*m*q^2*r - q^2*r^2)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) dt*dt - (2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2 - (2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2)*cos(th)^2)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) dt*dph + q^2/(2*m*r^3 - r^4 - (a^2 + q^2)*r^2 - (a^4 + a^2*q^2 - 2*a^2*m*r + a^2*r^2)*cos(th)^2) dr*dr + q^2/(a^2*cos(th)^2 + r^2) dth*dth - (2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2 - (2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2)*cos(th)^2)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) dph*dt - ((a^6*q^2 + a^4*q^4 - 2*a^4*m*q^2*r + a^4*q^2*r^2)*sin(th)^6 - (a^4*q^4 - 2*a^4*m*q^2*r + a^2*q^4*r^2 - 2*a^2*m*q^2*r^3)*sin(th)^4 - (a^6*q^2 + 3*a^4*q^2*r^2 + 3*a^2*q^2*r^4 + q^2*r^6)*sin(th)^2)/(a^8*cos(th)^8 + 4*a^6*r^2*cos(th)^6 + 6*a^4*r^4*cos(th)^4 + 4*a^2*r^6*cos(th)^2 + r^8) dph*dph" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ric.display()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[ -(a^2*q^2*cos(th)^2 - 2*a^2*q^2 - q^4 + 2*m*q^2*r - q^2*r^2)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) 0 0 -(2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2 - (2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2)*cos(th)^2)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6)]\n", "[ 0 q^2/(2*m*r^3 - r^4 - (a^2 + q^2)*r^2 - (a^4 + a^2*q^2 - 2*a^2*m*r + a^2*r^2)*cos(th)^2) 0 0]\n", "[ 0 0 q^2/(a^2*cos(th)^2 + r^2) 0]\n", "[ -(2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2 - (2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2)*cos(th)^2)/(a^6*cos(th)^6 + 3*a^4*r^2*cos(th)^4 + 3*a^2*r^4*cos(th)^2 + r^6) 0 0 -((a^6*q^2 + a^4*q^4 - 2*a^4*m*q^2*r + a^4*q^2*r^2)*sin(th)^6 - (a^4*q^4 - 2*a^4*m*q^2*r + a^2*q^4*r^2 - 2*a^2*m*q^2*r^3)*sin(th)^4 - (a^6*q^2 + 3*a^4*q^2*r^2 + 3*a^2*q^2*r^4 + q^2*r^6)*sin(th)^2)/(a^8*cos(th)^8 + 4*a^6*r^2*cos(th)^6 + 6*a^4*r^4*cos(th)^4 + 4*a^2*r^6*cos(th)^2 + r^8)]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ric[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us check that in the Kerr case, i.e. when $q=0$, the Ricci tensor is zero:

" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[0 0 0 0]\n", "[0 0 0 0]\n", "[0 0 0 0]\n", "[0 0 0 0]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ric[:].subs(q=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The Riemann curvature tensor associated with $g$:

" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field Riem(g) of type (1,3) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "R = g.riemann() ; print(R)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The component $R^0_{\\ \\, 101}$ of the Riemann tensor is

" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(4*a^2*q^2*r^2 - 3*a^2*m*r^3 + 3*q^2*r^4 - 2*m*r^5 + (a^4*q^2 - 3*a^4*m*r)*cos(th)^4 - (2*a^4*q^2 - 9*a^4*m*r + 2*a^2*q^2*r^2 - 7*a^2*m*r^3)*cos(th)^2)/(2*m*r^7 - r^8 - (a^2 + q^2)*r^6 - (a^8 + a^6*q^2 - 2*a^6*m*r + a^6*r^2)*cos(th)^6 + 3*(2*a^4*m*r^3 - a^4*r^4 - (a^6 + a^4*q^2)*r^2)*cos(th)^4 + 3*(2*a^2*m*r^5 - a^2*r^6 - (a^4 + a^2*q^2)*r^4)*cos(th)^2)" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R[0,1,0,1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The expression in the uncharged limit (Kerr spacetime) is

" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(3*a^4*m*r*cos(th)^4 + 3*a^2*m*r^3 + 2*m*r^5 - (9*a^4*m*r + 7*a^2*m*r^3)*cos(th)^2)/(a^2*r^6 - 2*m*r^7 + r^8 + (a^8 - 2*a^6*m*r + a^6*r^2)*cos(th)^6 + 3*(a^6*r^2 - 2*a^4*m*r^3 + a^4*r^4)*cos(th)^4 + 3*(a^4*r^4 - 2*a^2*m*r^5 + a^2*r^6)*cos(th)^2)" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R[0,1,0,1].expr().subs(q=0).simplify_rational()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

while in the non-rotating limit (Reissner-Nordström spacetime), it is

" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-(3*q^2 - 2*m*r)/(q^2*r^2 - 2*m*r^3 + r^4)" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R[0,1,0,1].expr().subs(a=0).simplify_rational()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

In the Schwarzschild limit, it reduces to

" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-2*m/(2*m*r^2 - r^3)" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R[0,1,0,1].expr().subs(a=0, q=0).simplify_rational()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Obviously, it vanishes in the flat space limit:

" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R[0,1,0,1].expr().subs(m=0, a=0, q=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Bianchi identity

\n", "\n", "

Let us check the Bianchi identity $\\nabla_p R^i_{\\ \\, j kl} + \\nabla_k R^i_{\\ \\, jlp} + \\nabla_l R^i_{\\ \\, jpk} = 0$:

" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field nabla_g(Riem(g)) of type (1,4) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "DR = nab(R) ; print(DR) #long (takes a while)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n" ] } ], "source": [ "for i in M.irange():\n", " for j in M.irange():\n", " for k in M.irange():\n", " for l in M.irange():\n", " for p in M.irange():\n", " print DR[i,j,k,l,p] + DR[i,j,l,p,k] + DR[i,j,p,k,l] ," ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

If the last sign in the Bianchi identity is changed to minus, the identity does no longer hold:

" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "DR[0,1,2,3,1] + DR[0,1,3,1,2] + DR[0,1,1,2,3] # should be zero (Bianchi identity)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-4*((a^5*q^2 - 6*a^5*m*r + a^3*q^2*r^2 - 6*a^3*m*r^3)*cos(th)^3 - (5*a^3*q^2*r^2 - 6*a^3*m*r^3 + 5*a*q^2*r^4 - 6*a*m*r^5)*cos(th))*sin(th)/(2*m*r^7 - r^8 - (a^2 + q^2)*r^6 - (a^8 + a^6*q^2 - 2*a^6*m*r + a^6*r^2)*cos(th)^6 + 3*(2*a^4*m*r^3 - a^4*r^4 - (a^6 + a^4*q^2)*r^2)*cos(th)^4 + 3*(2*a^2*m*r^5 - a^2*r^6 - (a^4 + a^2*q^2)*r^4)*cos(th)^2)" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "DR[0,1,2,3,1] + DR[0,1,3,1,2] - DR[0,1,1,2,3] # note the change of the second + to -" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ricci scalar\n", "\n", "The Ricci scalar $R = g^{ab} R_{ab}$ of the Kerr-Newman spacetime vanishes identically:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "r(g): M --> R\n", "on M0: (t, r, th, ph) |--> 0" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.ricci_scalar().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Einstein equation

\n", "

The Einstein tensor is

" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field of symmetric bilinear forms +Ric(g) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "G = Ric - 1/2*g.ricci_scalar()*g ; print(G)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Since the Ricci scalar is zero, the Einstein tensor reduces to the Ricci tensor:

" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G == Ric" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The invariant $F_{ab} F^{ab}$ of the electromagnetic field:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "Fuu = F.up(g)\n", "F2 = F['_ab']*Fuu['^ab'] ; print(F2)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "M --> R\n", "on M0: (t, r, th, ph) |--> -2*(a^4*q^2*cos(th)^4 - 6*a^2*q^2*r^2*cos(th)^2 + q^2*r^4)/(a^8*cos(th)^8 + 4*a^6*r^2*cos(th)^6 + 6*a^4*r^4*cos(th)^4 + 4*a^2*r^6*cos(th)^2 + r^8)" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F2.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The energy-momentum tensor of the electromagnetic field:

" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (0,2) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "Fud = F.up(g,0)\n", "T = 1/(4*pi)*( F['_k.']*Fud['^k_.'] - 1/4*F2 * g ); print(T)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[ -1/8*(a^2*q^2*cos(th)^2 - 2*a^2*q^2 - q^4 + 2*m*q^2*r - q^2*r^2)/(pi*a^6*cos(th)^6 + 3*pi*a^4*r^2*cos(th)^4 + 3*pi*a^2*r^4*cos(th)^2 + pi*r^6) 0 0 -1/8*(2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2)*sin(th)^2/(pi*a^6*cos(th)^6 + 3*pi*a^4*r^2*cos(th)^4 + 3*pi*a^2*r^4*cos(th)^2 + pi*r^6)]\n", "[ 0 1/8*q^2/(2*pi*m*r^3 - pi*r^4 - (pi*a^2 + pi*q^2)*r^2 - (pi*a^4 + pi*a^2*q^2 - 2*pi*a^2*m*r + pi*a^2*r^2)*cos(th)^2) 0 0]\n", "[ 0 0 1/8*q^2/(pi*a^2*cos(th)^2 + pi*r^2) 0]\n", "[ -1/8*(2*a^3*q^2 + a*q^4 - 2*a*m*q^2*r + 2*a*q^2*r^2)*sin(th)^2/(pi*a^6*cos(th)^6 + 3*pi*a^4*r^2*cos(th)^4 + 3*pi*a^2*r^4*cos(th)^2 + pi*r^6) 0 0 -1/8*((2*a^2*m*q^2*r^5 - 2*a^2*q^2*r^6 - (2*a^4*q^2 + a^2*q^4)*r^4 - (2*a^8*q^2 + a^6*q^4 - 2*a^6*m*q^2*r + 2*a^6*q^2*r^2)*cos(th)^4 + 2*(2*a^4*m*q^2*r^3 + 2*a^4*q^2*r^4 + (2*a^6*q^2 - a^4*q^4)*r^2)*cos(th)^2)*sin(th)^4 - (a^2*q^2*r^6 + q^2*r^8 + (a^8*q^2 + a^6*q^2*r^2)*cos(th)^6 - 5*(a^6*q^2*r^2 + a^4*q^2*r^4)*cos(th)^4 + (8*a^6*q^2*r^2 + 11*a^4*q^2*r^4 + 3*a^2*q^2*r^6)*cos(th)^2)*sin(th)^2)/(pi*a^10*cos(th)^10 + 5*pi*a^8*r^2*cos(th)^8 + 10*pi*a^6*r^4*cos(th)^6 + 10*pi*a^4*r^6*cos(th)^4 + 5*pi*a^2*r^8*cos(th)^2 + pi*r^10)]" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Check of the Einstein equation:

" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G == 8*pi*T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Kretschmann scalar\n", "\n", "The tensor $R^\\flat$, of components $R_{abcd} = g_{am} R^m_{\\ \\, bcd}$:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (0,4) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "dR = R.down(g) ; print(dR)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The tensor $R^\\sharp$, of components $R^{abcd} = g^{bp} g^{cq} g^{dr} R^a_{\\ \\, pqr}$:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (4,0) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "uR = R.up(g) ; print(uR)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Kretschmann scalar $K := R^{abcd} R_{abcd}$:" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "M --> R\n", "on M0: (t, r, th, ph) |--> -8*(6*m^2*r^8 - 12*(m^3 + m*q^2)*r^7 + (6*a^2*m^2 + 30*m^2*q^2 + 7*q^4)*r^6 - 6*(a^8*m^2 + a^6*m^2*q^2 - 2*a^6*m^3*r + a^6*m^2*r^2)*cos(th)^6 - 2*(6*a^2*m*q^2 + 13*m*q^4)*r^5 + 7*(a^2*q^4 + q^6)*r^4 + (7*a^6*q^4 + 7*a^4*q^6 + 90*a^4*m^2*r^4 - 60*(3*a^4*m^3 + a^4*m*q^2)*r^3 + (90*a^6*m^2 + 210*a^4*m^2*q^2 + 7*a^4*q^4)*r^2 - 2*(30*a^6*m*q^2 + 37*a^4*m*q^4)*r)*cos(th)^4 - 2*(45*a^2*m^2*r^6 - 30*(3*a^2*m^3 + 2*a^2*m*q^2)*r^5 + (45*a^4*m^2 + 165*a^2*m^2*q^2 + 17*a^2*q^4)*r^4 - 2*(30*a^4*m*q^2 + 47*a^2*m*q^4)*r^3 + 17*(a^4*q^4 + a^2*q^6)*r^2)*cos(th)^2)/(2*m*r^13 - r^14 - (a^2 + q^2)*r^12 - (a^14 + a^12*q^2 - 2*a^12*m*r + a^12*r^2)*cos(th)^12 + 6*(2*a^10*m*r^3 - a^10*r^4 - (a^12 + a^10*q^2)*r^2)*cos(th)^10 + 15*(2*a^8*m*r^5 - a^8*r^6 - (a^10 + a^8*q^2)*r^4)*cos(th)^8 + 20*(2*a^6*m*r^7 - a^6*r^8 - (a^8 + a^6*q^2)*r^6)*cos(th)^6 + 15*(2*a^4*m*r^9 - a^4*r^10 - (a^6 + a^4*q^2)*r^8)*cos(th)^4 + 6*(2*a^2*m*r^11 - a^2*r^12 - (a^4 + a^2*q^2)*r^10)*cos(th)^2)" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Kr_scalar = uR['^ijkl']*dR['_ijkl']\n", "Kr_scalar.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

A variant of this expression can be obtained by invoking the factor() method on the coordinate function representing the scalar field in the manifold's default chart:

" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-8*(6*a^6*m^2*cos(th)^6 - 7*a^4*q^4*cos(th)^4 + 60*a^4*m*q^2*r*cos(th)^4 - 90*a^4*m^2*r^2*cos(th)^4 + 34*a^2*q^4*r^2*cos(th)^2 - 120*a^2*m*q^2*r^3*cos(th)^2 + 90*a^2*m^2*r^4*cos(th)^2 - 7*q^4*r^4 + 12*m*q^2*r^5 - 6*m^2*r^6)/(a^2*cos(th)^2 + r^2)^6" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Kr = Kr_scalar.coord_function()\n", "Kr.factor()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

As a check, we can compare Kr to the formula given by R. Conn Henry, Astrophys. J. 535, 350 (2000):

" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Kr == 8/(r^2+(a*cos(th))^2)^6 *( \n", " 6*m^2*(r^6 - 15*r^4*(a*cos(th))^2 + 15*r^2*(a*cos(th))^4 - (a*cos(th))^6) \n", " - 12*m*q^2*r*(r^4 - 10*(a*r*cos(th))^2 + 5*(a*cos(th))^4) \n", " + q^4*(7*r^4 - 34*(a*r*cos(th))^2 + 7*(a*cos(th))^4) )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The Schwarzschild value of the Kretschmann scalar is recovered by setting $a=0$ and $q=0$:

" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "48*m^2/r^6" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Kr.expr().subs(a=0, q=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Let us plot the Kretschmann scalar for $m=1$, $a=0.9$ and $q=0.5$:

" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nANQMiDvwFNdeey1b5aR7pe4iJiSzg7oGqZDAg5SnWDXslGw2q1Z05cqVb3/721B2UNcgcgfeZHBw\nMJvNWrBoTpw4AWUHHgDiDjzLyMiIxkZjarbMkSNHoOzAAyAVEngftn2jJPFRngp54sSJbDaLxBjg\nDRC5A+8zMjIiT3yUPHPlypUjR45A2YFnwIQqaAjkU6xiW+bEiRNwY4DHQOQOGgUm62ULvpwtMzw8\nnM1moezAY0DcQQMh0fcTJ04wOx5uDPAemFAFjcjw8PBPf/rT++677/vf/77bYwGgKsBzB43IyMhI\nc3Pzt771LbcHAkC1QOQOAAAeBJ47AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7\nAAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4\nEIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7\nAAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4\nEIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7\nAAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4EIg7AAB4kP8PjbNLaCxS8eAAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics3d Object" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "K1 = Kr.expr().subs(m=1, a=0.9, q=0.5)\n", "plot3d(K1, (r,1,3), (th, 0, pi), viewer=viewer3D)" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 7.4.beta4", "language": "", "name": "sagemath" }, "language": "python", "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.10" } }, "nbformat": 4, "nbformat_minor": 0 }