{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "tags": [] }, "source": [ "# Ricci rotation coefficients and spin coefficients \n", "\n", "This SageMath notebook implements the computation of the Ricci rotation coefficients of a given tetrad, as well as the Newman-Penrose and GHP spin coefficients.\n", "\n", "An example is provided by the Kinnersley null tetrad in Kerr spacetime. \n", "\n", "*Author:* Eric Gourgoulhon (2024)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "'SageMath version 10.4.rc1, Release Date: 2024-06-27'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Since some computations are quite heavy, we ask for running them in parallel on 8 threads:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "Parallelism().set(nproc=8)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "## Spacetime manifold" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "M = Manifold(4, 'M', structure='Lorentzian')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "We sall use the **advanced Kerr coordinates** $(v,r,\\theta,\\varphi)$:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(M,(v, r, {\\theta}, {\\varphi})\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(M,(v, r, {\\theta}, {\\varphi})\\right)$" ], "text/plain": [ "Chart (M, (v, r, th, ph))" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X. = M.chart(r'v r th:\\theta:(0,pi) ph:\\varphi:(0,2*pi)')\n", "X" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "### Metric tensor\n", "\n", "Expression of the Kerr metric in terms of the **advanced Kerr coordinates**:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "m, a = var('m a', domain='real')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g = \\left( \\frac{2 \\, m r}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} - 1 \\right) \\mathrm{d} v\\otimes \\mathrm{d} v +\\mathrm{d} v\\otimes \\mathrm{d} r + \\left( -\\frac{2 \\, a m r \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} {\\varphi} +\\mathrm{d} r\\otimes \\mathrm{d} v -a \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} r\\otimes \\mathrm{d} {\\varphi} + \\left( a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\left( -\\frac{2 \\, a m r \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} v -a \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} r + {\\left(\\frac{2 \\, a^{2} m r \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} + a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle g = \\left( \\frac{2 \\, m r}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} - 1 \\right) \\mathrm{d} v\\otimes \\mathrm{d} v +\\mathrm{d} v\\otimes \\mathrm{d} r + \\left( -\\frac{2 \\, a m r \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} {\\varphi} +\\mathrm{d} r\\otimes \\mathrm{d} v -a \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} r\\otimes \\mathrm{d} {\\varphi} + \\left( a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\left( -\\frac{2 \\, a m r \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} v -a \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} r + {\\left(\\frac{2 \\, a^{2} m r \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} + a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\otimes \\mathrm{d} {\\varphi}$" ], "text/plain": [ "g = (2*m*r/(a^2*cos(th)^2 + r^2) - 1) dv⊗dv + dv⊗dr - 2*a*m*r*sin(th)^2/(a^2*cos(th)^2 + r^2) dv⊗dph + dr⊗dv - a*sin(th)^2 dr⊗dph + (a^2*cos(th)^2 + r^2) dth⊗dth - 2*a*m*r*sin(th)^2/(a^2*cos(th)^2 + r^2) dph⊗dv - a*sin(th)^2 dph⊗dr + (2*a^2*m*r*sin(th)^2/(a^2*cos(th)^2 + r^2) + a^2 + r^2)*sin(th)^2 dph⊗dph" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Delta = r^2 - 2*m*r + a^2\n", "Sigma = r^2 + a^2*cos(th)^2\n", "\n", "g = M.metric()\n", "g[0,0] = - 1 + 2*m*r/Sigma\n", "g[0,1] = 1\n", "g[0,3] = - 2*a*m*r*sin(th)^2/Sigma\n", "g[1,3] = - a*sin(th)^2\n", "g[2,2] = Sigma\n", "g[3,3] = (r^2 + a^2 + 2*a^2*m*r*sin(th)^2/Sigma)*sin(th)^2\n", "\n", "g.display()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g^{-1} = \\left( \\frac{a^{2} \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial v }\\otimes \\frac{\\partial}{\\partial v } + \\left( \\frac{a^{2} + r^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial v }\\otimes \\frac{\\partial}{\\partial r } + \\left( \\frac{a}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial v }\\otimes \\frac{\\partial}{\\partial {\\varphi} } + \\left( \\frac{a^{2} + r^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial r }\\otimes \\frac{\\partial}{\\partial v } + \\left( \\frac{a^{2} - 2 \\, m r + r^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial r }\\otimes \\frac{\\partial}{\\partial r } + \\left( \\frac{a}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial r }\\otimes \\frac{\\partial}{\\partial {\\varphi} } + \\left( \\frac{1}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial {\\theta} }\\otimes \\frac{\\partial}{\\partial {\\theta} } + \\left( \\frac{a}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial {\\varphi} }\\otimes \\frac{\\partial}{\\partial v } + \\left( \\frac{a}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial {\\varphi} }\\otimes \\frac{\\partial}{\\partial r } + \\left( -\\frac{1}{a^{2} \\sin\\left({\\theta}\\right)^{4} - {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}} \\right) \\frac{\\partial}{\\partial {\\varphi} }\\otimes \\frac{\\partial}{\\partial {\\varphi} }\\)" ], "text/latex": [ "$\\displaystyle g^{-1} = \\left( \\frac{a^{2} \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial v }\\otimes \\frac{\\partial}{\\partial v } + \\left( \\frac{a^{2} + r^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial v }\\otimes \\frac{\\partial}{\\partial r } + \\left( \\frac{a}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial v }\\otimes \\frac{\\partial}{\\partial {\\varphi} } + \\left( \\frac{a^{2} + r^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial r }\\otimes \\frac{\\partial}{\\partial v } + \\left( \\frac{a^{2} - 2 \\, m r + r^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial r }\\otimes \\frac{\\partial}{\\partial r } + \\left( \\frac{a}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial r }\\otimes \\frac{\\partial}{\\partial {\\varphi} } + \\left( \\frac{1}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial {\\theta} }\\otimes \\frac{\\partial}{\\partial {\\theta} } + \\left( \\frac{a}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial {\\varphi} }\\otimes \\frac{\\partial}{\\partial v } + \\left( \\frac{a}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\frac{\\partial}{\\partial {\\varphi} }\\otimes \\frac{\\partial}{\\partial r } + \\left( -\\frac{1}{a^{2} \\sin\\left({\\theta}\\right)^{4} - {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}} \\right) \\frac{\\partial}{\\partial {\\varphi} }\\otimes \\frac{\\partial}{\\partial {\\varphi} }$" ], "text/plain": [ "inv_g = a^2*sin(th)^2/(a^2*cos(th)^2 + r^2) ∂/∂v⊗∂/∂v + (a^2 + r^2)/(a^2*cos(th)^2 + r^2) ∂/∂v⊗∂/∂r + a/(a^2*cos(th)^2 + r^2) ∂/∂v⊗∂/∂ph + (a^2 + r^2)/(a^2*cos(th)^2 + r^2) ∂/∂r⊗∂/∂v + (a^2 - 2*m*r + r^2)/(a^2*cos(th)^2 + r^2) ∂/∂r⊗∂/∂r + a/(a^2*cos(th)^2 + r^2) ∂/∂r⊗∂/∂ph + 1/(a^2*cos(th)^2 + r^2) ∂/∂th⊗∂/∂th + a/(a^2*cos(th)^2 + r^2) ∂/∂ph⊗∂/∂v + a/(a^2*cos(th)^2 + r^2) ∂/∂ph⊗∂/∂r - 1/(a^2*sin(th)^4 - (a^2 + r^2)*sin(th)^2) ∂/∂ph⊗∂/∂ph" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.inverse().display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "## Kinnersley null tetrad" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Let us first introduce some auxiliary quantities (remark: we use `I` for the imaginary number $i$, keeping `i` for indices):" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{1}{i \\, a \\cos\\left({\\theta}\\right) - r}\\)" ], "text/latex": [ "$\\displaystyle \\frac{1}{i \\, a \\cos\\left({\\theta}\\right) - r}$" ], "text/plain": [ "1/(I*a*cos(th) - r)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rho = 1 / (I*a*cos(th) - r) \n", "rho" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle -\\frac{1}{i \\, a \\cos\\left({\\theta}\\right) + r}\\)" ], "text/latex": [ "$\\displaystyle -\\frac{1}{i \\, a \\cos\\left({\\theta}\\right) + r}$" ], "text/plain": [ "-1/(I*a*cos(th) + r)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rho_bar = rho.conjugate().simplify_full()\n", "rho_bar" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{1}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}}\\)" ], "text/latex": [ "$\\displaystyle \\frac{1}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}}$" ], "text/plain": [ "1/(a^2*cos(th)^2 + r^2)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(rho*rho_bar).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "We then introduce the vector fields of the Kinnersley tetrad $(\\ell_{\\rm K}, n_{\\rm K}, m_{\\rm K}, \\bar{m}_{\\rm K})$ one by one:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\ell_{\\rm K} = \\left( \\frac{2 \\, {\\left(a^{2} + r^{2}\\right)}}{a^{2} - 2 \\, m r + r^{2}} \\right) \\frac{\\partial}{\\partial v } +\\frac{\\partial}{\\partial r } + \\left( \\frac{2 \\, a}{a^{2} - 2 \\, m r + r^{2}} \\right) \\frac{\\partial}{\\partial {\\varphi} }\\)" ], "text/latex": [ "$\\displaystyle \\ell_{\\rm K} = \\left( \\frac{2 \\, {\\left(a^{2} + r^{2}\\right)}}{a^{2} - 2 \\, m r + r^{2}} \\right) \\frac{\\partial}{\\partial v } +\\frac{\\partial}{\\partial r } + \\left( \\frac{2 \\, a}{a^{2} - 2 \\, m r + r^{2}} \\right) \\frac{\\partial}{\\partial {\\varphi} }$" ], "text/plain": [ "lK = 2*(a^2 + r^2)/(a^2 - 2*m*r + r^2) ∂/∂v + ∂/∂r + 2*a/(a^2 - 2*m*r + r^2) ∂/∂ph" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lK = M.vector_field(2*(r^2 + a^2)/Delta, 1, 0, 2*a/Delta,\n", " name='lK', latex_name=r'\\ell_{\\rm K}')\n", "lK.display()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle n_{\\rm K} = \\left( -\\frac{a^{2} - 2 \\, m r + r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\right) \\frac{\\partial}{\\partial r }\\)" ], "text/latex": [ "$\\displaystyle n_{\\rm K} = \\left( -\\frac{a^{2} - 2 \\, m r + r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\right) \\frac{\\partial}{\\partial r }$" ], "text/plain": [ "nK = -1/2*(a^2 - 2*m*r + r^2)/(a^2*cos(th)^2 + r^2) ∂/∂r" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nK = M.vector_field(0, -Delta/(2*Sigma), 0, 0, \n", " name='nK', latex_name=r'n_{\\rm K}')\n", "nK.display()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle m_{\\rm K} = \\left( \\frac{i \\, a \\sin\\left({\\theta}\\right)}{i \\, \\sqrt{2} a \\cos\\left({\\theta}\\right) + \\sqrt{2} r} \\right) \\frac{\\partial}{\\partial v } + \\frac{\\sqrt{2}}{2 \\, {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)}} \\frac{\\partial}{\\partial {\\theta} } + \\frac{i}{{\\left(i \\, \\sqrt{2} a \\cos\\left({\\theta}\\right) + \\sqrt{2} r\\right)} \\sin\\left({\\theta}\\right)} \\frac{\\partial}{\\partial {\\varphi} }\\)" ], "text/latex": [ "$\\displaystyle m_{\\rm K} = \\left( \\frac{i \\, a \\sin\\left({\\theta}\\right)}{i \\, \\sqrt{2} a \\cos\\left({\\theta}\\right) + \\sqrt{2} r} \\right) \\frac{\\partial}{\\partial v } + \\frac{\\sqrt{2}}{2 \\, {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)}} \\frac{\\partial}{\\partial {\\theta} } + \\frac{i}{{\\left(i \\, \\sqrt{2} a \\cos\\left({\\theta}\\right) + \\sqrt{2} r\\right)} \\sin\\left({\\theta}\\right)} \\frac{\\partial}{\\partial {\\varphi} }$" ], "text/plain": [ "mK = I*a*sin(th)/(I*sqrt(2)*a*cos(th) + sqrt(2)*r) ∂/∂v + 1/2*sqrt(2)/(I*a*cos(th) + r) ∂/∂th + I/((I*sqrt(2)*a*cos(th) + sqrt(2)*r)*sin(th)) ∂/∂ph" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mK = - rho_bar/sqrt(2) * M.vector_field(I*a*sin(th), 0, 1, I/sin(th))\n", "mK.set_name('mK', latex_name=r'm_{\\rm K}')\n", "mK.display()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\bar{m}_{\\rm K} = \\left( -\\frac{i \\, a \\sin\\left({\\theta}\\right)}{-i \\, \\sqrt{2} a \\cos\\left({\\theta}\\right) + \\sqrt{2} r} \\right) \\frac{\\partial}{\\partial v } + \\frac{\\sqrt{2}}{2 \\, {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)}} \\frac{\\partial}{\\partial {\\theta} } -\\frac{i}{{\\left(-i \\, \\sqrt{2} a \\cos\\left({\\theta}\\right) + \\sqrt{2} r\\right)} \\sin\\left({\\theta}\\right)} \\frac{\\partial}{\\partial {\\varphi} }\\)" ], "text/latex": [ "$\\displaystyle \\bar{m}_{\\rm K} = \\left( -\\frac{i \\, a \\sin\\left({\\theta}\\right)}{-i \\, \\sqrt{2} a \\cos\\left({\\theta}\\right) + \\sqrt{2} r} \\right) \\frac{\\partial}{\\partial v } + \\frac{\\sqrt{2}}{2 \\, {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)}} \\frac{\\partial}{\\partial {\\theta} } -\\frac{i}{{\\left(-i \\, \\sqrt{2} a \\cos\\left({\\theta}\\right) + \\sqrt{2} r\\right)} \\sin\\left({\\theta}\\right)} \\frac{\\partial}{\\partial {\\varphi} }$" ], "text/plain": [ "mbK = -I*a*sin(th)/(-I*sqrt(2)*a*cos(th) + sqrt(2)*r) ∂/∂v + 1/2*sqrt(2)/(-I*a*cos(th) + r) ∂/∂th - I/((-I*sqrt(2)*a*cos(th) + sqrt(2)*r)*sin(th)) ∂/∂ph" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mbK = M.vector_field(name='mbK', latex_name=r'\\bar{m}_{\\rm K}')\n", "for i in M.irange():\n", " mbK[i] = mK[i].expr().conjugate()\n", "mbK.display()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Let us check that each vector of the tetrad is a null vector:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 0\\)" ], "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(lK, lK).expr()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 0\\)" ], "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(nK, nK).expr()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 0\\)" ], "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(mK, mK).expr()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 0\\)" ], "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(mbK, mbK).expr()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Furthermore, we have the following scalar products:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(-1, 1\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(-1, 1\\right)$" ], "text/plain": [ "(-1, 1)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(lK, nK).expr(), g(mK,mbK).expr()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(0, 0\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(0, 0\\right)$" ], "text/plain": [ "(0, 0)" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(lK, mK).expr(), g(nK, mK).expr()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(0, 0\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(0, 0\\right)$" ], "text/plain": [ "(0, 0)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(lK, mbK).expr(), g(nK, mbK).expr()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Let us define the Kinnersley tetrad `K` as the vector frame $(\\ell_{\\rm K}, n_{\\rm K}, m_{\\rm K}, \\bar{m}_{\\rm K})$ on $M$, using the symbol $e_{\\rm K}$ for a generic member of the tetrad:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(M, \\left({e_{\\rm K}}_{0},{e_{\\rm K}}_{1},{e_{\\rm K}}_{2},{e_{\\rm K}}_{3}\\right)\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(M, \\left({e_{\\rm K}}_{0},{e_{\\rm K}}_{1},{e_{\\rm K}}_{2},{e_{\\rm K}}_{3}\\right)\\right)$" ], "text/plain": [ "Vector frame (M, (eK_0,eK_1,eK_2,eK_3))" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "K = M.vector_frame('eK', (lK, nK, mK, mbK), latex_symbol=r'{e_{\\rm K}}')\n", "K" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "tags": [] }, "source": [ "We have then:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\ell_{\\rm K} = {e_{\\rm K}}_{0}\\)" ], "text/latex": [ "$\\displaystyle \\ell_{\\rm K} = {e_{\\rm K}}_{0}$" ], "text/plain": [ "lK = eK_0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle n_{\\rm K} = {e_{\\rm K}}_{1}\\)" ], "text/latex": [ "$\\displaystyle n_{\\rm K} = {e_{\\rm K}}_{1}$" ], "text/plain": [ "nK = eK_1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle m_{\\rm K} = {e_{\\rm K}}_{2}\\)" ], "text/latex": [ "$\\displaystyle m_{\\rm K} = {e_{\\rm K}}_{2}$" ], "text/plain": [ "mK = eK_2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle \\bar{m}_{\\rm K} = {e_{\\rm K}}_{3}\\)" ], "text/latex": [ "$\\displaystyle \\bar{m}_{\\rm K} = {e_{\\rm K}}_{3}$" ], "text/plain": [ "mbK = eK_3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for vec in (lK, nK, mK, mbK):\n", " show(vec.display(K))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "The dual basis of the Kinnersley tetrad (each member of the dual is a 1-form and is labelled with an upper index):" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle {e_{\\rm K}}^{0} = \\left( \\frac{a^{2} - 2 \\, m r + r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\right) \\mathrm{d} v -\\frac{{\\left(a^{3} - 2 \\, a m r + a r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle {e_{\\rm K}}^{0} = \\left( \\frac{a^{2} - 2 \\, m r + r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\right) \\mathrm{d} v -\\frac{{\\left(a^{3} - 2 \\, a m r + a r^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "eK^0 = 1/2*(a^2 - 2*m*r + r^2)/(a^2*cos(th)^2 + r^2) dv - 1/2*(a^3 - 2*a*m*r + a*r^2)*sin(th)^2/(a^2*cos(th)^2 + r^2) dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle {e_{\\rm K}}^{1} = \\mathrm{d} v + \\left( -\\frac{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}{a^{2} - 2 \\, m r + r^{2}} \\right) \\mathrm{d} r -a \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle {e_{\\rm K}}^{1} = \\mathrm{d} v + \\left( -\\frac{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}{a^{2} - 2 \\, m r + r^{2}} \\right) \\mathrm{d} r -a \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "eK^1 = dv - 2*(a^2*cos(th)^2 + r^2)/(a^2 - 2*m*r + r^2) dr - a*sin(th)^2 dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle {e_{\\rm K}}^{2} = \\left( -\\frac{a \\sin\\left({\\theta}\\right)}{\\sqrt{2} a \\cos\\left({\\theta}\\right) + i \\, \\sqrt{2} r} \\right) \\mathrm{d} v + \\left( \\frac{i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} + 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}}{\\sqrt{2} a \\cos\\left({\\theta}\\right) - i \\, \\sqrt{2} r} \\right) \\mathrm{d} {\\theta} + \\left( \\frac{{\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{\\sqrt{2} a \\cos\\left({\\theta}\\right) + i \\, \\sqrt{2} r} \\right) \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle {e_{\\rm K}}^{2} = \\left( -\\frac{a \\sin\\left({\\theta}\\right)}{\\sqrt{2} a \\cos\\left({\\theta}\\right) + i \\, \\sqrt{2} r} \\right) \\mathrm{d} v + \\left( \\frac{i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} + 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}}{\\sqrt{2} a \\cos\\left({\\theta}\\right) - i \\, \\sqrt{2} r} \\right) \\mathrm{d} {\\theta} + \\left( \\frac{{\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{\\sqrt{2} a \\cos\\left({\\theta}\\right) + i \\, \\sqrt{2} r} \\right) \\mathrm{d} {\\varphi}$" ], "text/plain": [ "eK^2 = -a*sin(th)/(sqrt(2)*a*cos(th) + I*sqrt(2)*r) dv + (I*a^2*cos(th)^2 + 2*a*r*cos(th) - I*r^2)/(sqrt(2)*a*cos(th) - I*sqrt(2)*r) dth + (a^2 + r^2)*sin(th)/(sqrt(2)*a*cos(th) + I*sqrt(2)*r) dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle {e_{\\rm K}}^{3} = \\left( -\\frac{{\\left(i \\, a^{2} \\cos\\left({\\theta}\\right) - a r\\right)} \\sin\\left({\\theta}\\right)}{i \\, \\sqrt{2} a^{2} \\cos\\left({\\theta}\\right)^{2} + i \\, \\sqrt{2} r^{2}} \\right) \\mathrm{d} v + \\left( \\frac{a^{3} \\cos\\left({\\theta}\\right)^{3} - i \\, a^{2} r \\cos\\left({\\theta}\\right)^{2} + a r^{2} \\cos\\left({\\theta}\\right) - i \\, r^{3}}{i \\, \\sqrt{2} a^{2} \\cos\\left({\\theta}\\right)^{2} + 2 \\, \\sqrt{2} a r \\cos\\left({\\theta}\\right) - i \\, \\sqrt{2} r^{2}} \\right) \\mathrm{d} {\\theta} + \\left( -\\frac{{\\left(a^{2} r + r^{3} - {\\left(i \\, a^{3} + i \\, a r^{2}\\right)} \\cos\\left({\\theta}\\right)\\right)} \\sin\\left({\\theta}\\right)}{i \\, \\sqrt{2} a^{2} \\cos\\left({\\theta}\\right)^{2} + i \\, \\sqrt{2} r^{2}} \\right) \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle {e_{\\rm K}}^{3} = \\left( -\\frac{{\\left(i \\, a^{2} \\cos\\left({\\theta}\\right) - a r\\right)} \\sin\\left({\\theta}\\right)}{i \\, \\sqrt{2} a^{2} \\cos\\left({\\theta}\\right)^{2} + i \\, \\sqrt{2} r^{2}} \\right) \\mathrm{d} v + \\left( \\frac{a^{3} \\cos\\left({\\theta}\\right)^{3} - i \\, a^{2} r \\cos\\left({\\theta}\\right)^{2} + a r^{2} \\cos\\left({\\theta}\\right) - i \\, r^{3}}{i \\, \\sqrt{2} a^{2} \\cos\\left({\\theta}\\right)^{2} + 2 \\, \\sqrt{2} a r \\cos\\left({\\theta}\\right) - i \\, \\sqrt{2} r^{2}} \\right) \\mathrm{d} {\\theta} + \\left( -\\frac{{\\left(a^{2} r + r^{3} - {\\left(i \\, a^{3} + i \\, a r^{2}\\right)} \\cos\\left({\\theta}\\right)\\right)} \\sin\\left({\\theta}\\right)}{i \\, \\sqrt{2} a^{2} \\cos\\left({\\theta}\\right)^{2} + i \\, \\sqrt{2} r^{2}} \\right) \\mathrm{d} {\\varphi}$" ], "text/plain": [ "eK^3 = -(I*a^2*cos(th) - a*r)*sin(th)/(I*sqrt(2)*a^2*cos(th)^2 + I*sqrt(2)*r^2) dv + (a^3*cos(th)^3 - I*a^2*r*cos(th)^2 + a*r^2*cos(th) - I*r^3)/(I*sqrt(2)*a^2*cos(th)^2 + 2*sqrt(2)*a*r*cos(th) - I*sqrt(2)*r^2) dth - (a^2*r + r^3 - (I*a^3 + I*a*r^2)*cos(th))*sin(th)/(I*sqrt(2)*a^2*cos(th)^2 + I*sqrt(2)*r^2) dph" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for form in K.coframe():\n", " show(form.display())" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "We notice a lack of simplification. To fix it, we define a simplifying function that \n", "invokes the algebraic field $\\bar{\\mathbb{Q}}$:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def algebraic_simplify(expr):\n", " r\"\"\"\n", " Simplifies a symbolic expression through the fraction field of polynomials\n", " over QQbar\n", "\n", " INPUT:\n", "\n", " - ``expr`` -- a Sage's symbolic expression (element of the symbolic ring SR)\n", "\n", " OUTPUT:\n", "\n", " - a Sage's symbolic expression\n", "\n", " \"\"\"\n", " a00, m00, r00, y00, z00, s00 = SR.var('a00 m00 r00 y00 z00 s00')\n", " # From symbolic variables to variables in QQbar:\n", " expr = expr.subs({a: a00, m: m00, r: r00, cos(th): y00, sin(th): z00, sqrt(2): s00})\n", " expr = expr.subs({z00^2: 1 - y00^2}) # sin(th)^2 --> 1 - cos(th)^2\n", " F = QQbar['a00', 'm00', 'r00', 'y00', 'z00', 's00'].fraction_field()\n", " expr = SR(F(str(expr))).simplify()\n", " # Back to the original symbolic variables:\n", " expr = expr.subs({a00: a, m00: m, r00: r, y00: cos(th), z00: sin(th), s00: sqrt(2)})\n", " # Some extra simplifications:\n", " expr = expr.subs({1 - cos(th)^2: sin(th)^2})\n", " expr = expr.subs({cos(th)^2 - 1: -sin(th)^2})\n", " w0 = SR.wild(0)\n", " expr = expr.subs({w0 - w0*cos(th)^2: w0*sin(th)^2})\n", " expr = expr.subs({w0*cos(th)^2 - w0: -w0*sin(th)^2})\n", " expr = expr.factor().simplify_trig().factor()\n", " return expr" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Let us check it:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(-\\frac{{\\left(a^{2} r + r^{3} - {\\left(i \\, a^{3} + i \\, a r^{2}\\right)} \\cos\\left({\\theta}\\right)\\right)} \\sin\\left({\\theta}\\right)}{i \\, \\sqrt{2} a^{2} \\cos\\left({\\theta}\\right)^{2} + i \\, \\sqrt{2} r^{2}}, -a \\sin\\left({\\theta}\\right)^{2}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(-\\frac{{\\left(a^{2} r + r^{3} - {\\left(i \\, a^{3} + i \\, a r^{2}\\right)} \\cos\\left({\\theta}\\right)\\right)} \\sin\\left({\\theta}\\right)}{i \\, \\sqrt{2} a^{2} \\cos\\left({\\theta}\\right)^{2} + i \\, \\sqrt{2} r^{2}}, -a \\sin\\left({\\theta}\\right)^{2}\\right)$" ], "text/plain": [ "(-(a^2*r + r^3 - (I*a^3 + I*a*r^2)*cos(th))*sin(th)/(I*sqrt(2)*a^2*cos(th)^2 + I*sqrt(2)*r^2),\n", " -a*sin(th)^2)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s1, s2 = K.coframe()[3][3].expr(), K.coframe()[1][3].expr()\n", "s1, s2" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}}, -a \\sin\\left({\\theta}\\right)^{2}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}}, -a \\sin\\left({\\theta}\\right)^{2}\\right)$" ], "text/plain": [ "(1/2*sqrt(2)*(a^2 + r^2)*sin(th)/(a*cos(th) - I*r), -a*sin(th)^2)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "algebraic_simplify(s1), algebraic_simplify(s2)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Let us apply the simplifying function to all the coframe elements:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle {e_{\\rm K}}^{0} = \\left( \\frac{a^{2} - 2 \\, m r + r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\right) \\mathrm{d} v -\\frac{{\\left(a^{2} - 2 \\, m r + r^{2}\\right)} a \\sin\\left({\\theta}\\right)^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle {e_{\\rm K}}^{0} = \\left( \\frac{a^{2} - 2 \\, m r + r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\right) \\mathrm{d} v -\\frac{{\\left(a^{2} - 2 \\, m r + r^{2}\\right)} a \\sin\\left({\\theta}\\right)^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "eK^0 = 1/2*(a^2 - 2*m*r + r^2)/(a^2*cos(th)^2 + r^2) dv - 1/2*(a^2 - 2*m*r + r^2)*a*sin(th)^2/(a^2*cos(th)^2 + r^2) dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle {e_{\\rm K}}^{1} = \\mathrm{d} v + \\left( -\\frac{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}{a^{2} - 2 \\, m r + r^{2}} \\right) \\mathrm{d} r -a \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle {e_{\\rm K}}^{1} = \\mathrm{d} v + \\left( -\\frac{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}{a^{2} - 2 \\, m r + r^{2}} \\right) \\mathrm{d} r -a \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "eK^1 = dv - 2*(a^2*cos(th)^2 + r^2)/(a^2 - 2*m*r + r^2) dr - a*sin(th)^2 dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle {e_{\\rm K}}^{2} = -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}} \\mathrm{d} v + \\frac{1}{2} \\, \\sqrt{2} {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\mathrm{d} {\\theta} + \\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle {e_{\\rm K}}^{2} = -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}} \\mathrm{d} v + \\frac{1}{2} \\, \\sqrt{2} {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\mathrm{d} {\\theta} + \\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "eK^2 = -1/2*sqrt(2)*a*sin(th)/(a*cos(th) + I*r) dv + 1/2*sqrt(2)*(I*a*cos(th) + r) dth + 1/2*sqrt(2)*(a^2 + r^2)*sin(th)/(a*cos(th) + I*r) dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle {e_{\\rm K}}^{3} = -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}} \\mathrm{d} v + \\frac{1}{2} \\, \\sqrt{2} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\mathrm{d} {\\theta} + \\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle {e_{\\rm K}}^{3} = -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}} \\mathrm{d} v + \\frac{1}{2} \\, \\sqrt{2} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\mathrm{d} {\\theta} + \\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "eK^3 = -1/2*sqrt(2)*a*sin(th)/(a*cos(th) - I*r) dv + 1/2*sqrt(2)*(-I*a*cos(th) + r) dth + 1/2*sqrt(2)*(a^2 + r^2)*sin(th)/(a*cos(th) - I*r) dph" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for f in K.coframe():\n", " f.apply_map(algebraic_simplify, keep_other_components=True)\n", " show(f.display())" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Let us check that `K` is a null NP tetrad by asking for the components of the metric tensor w.r.t. it:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g = -{e_{\\rm K}}^{0}\\otimes {e_{\\rm K}}^{1}-{e_{\\rm K}}^{1}\\otimes {e_{\\rm K}}^{0}+{e_{\\rm K}}^{2}\\otimes {e_{\\rm K}}^{3}+{e_{\\rm K}}^{3}\\otimes {e_{\\rm K}}^{2}\\)" ], "text/latex": [ "$\\displaystyle g = -{e_{\\rm K}}^{0}\\otimes {e_{\\rm K}}^{1}-{e_{\\rm K}}^{1}\\otimes {e_{\\rm K}}^{0}+{e_{\\rm K}}^{2}\\otimes {e_{\\rm K}}^{3}+{e_{\\rm K}}^{3}\\otimes {e_{\\rm K}}^{2}$" ], "text/plain": [ "g = -eK^0⊗eK^1 - eK^1⊗eK^0 + eK^2⊗eK^3 + eK^3⊗eK^2" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display(K)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "A matrix view of the components:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\begin{array}{rrrr}\n", "0 & -1 & 0 & 0 \\\\\n", "-1 & 0 & 0 & 0 \\\\\n", "0 & 0 & 0 & 1 \\\\\n", "0 & 0 & 1 & 0\n", "\\end{array}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\begin{array}{rrrr}\n", "0 & -1 & 0 & 0 \\\\\n", "-1 & 0 & 0 & 0 \\\\\n", "0 & 0 & 0 & 1 \\\\\n", "0 & 0 & 1 & 0\n", "\\end{array}\\right)$" ], "text/plain": [ "[ 0 -1 0 0]\n", "[-1 0 0 0]\n", "[ 0 0 0 1]\n", "[ 0 0 1 0]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[K,:]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Let us evaluate the *metric* duals (not the frame dual!) of each of the vector of the Kinnersley frame. These 1-forms are obtained via `down(g)` (index lowering with the metric $g$):" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\underline{\\ell}_{\\rm K} = -\\mathrm{d} v + \\left( \\frac{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}{a^{2} - 2 \\, m r + r^{2}} \\right) \\mathrm{d} r + \\left( -\\frac{{\\left(a^{2} \\sin\\left({\\theta}\\right)^{2} - a^{2} - r^{2}\\right)} a \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle \\underline{\\ell}_{\\rm K} = -\\mathrm{d} v + \\left( \\frac{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}{a^{2} - 2 \\, m r + r^{2}} \\right) \\mathrm{d} r + \\left( -\\frac{{\\left(a^{2} \\sin\\left({\\theta}\\right)^{2} - a^{2} - r^{2}\\right)} a \\sin\\left({\\theta}\\right)^{2}}{a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}} \\right) \\mathrm{d} {\\varphi}$" ], "text/plain": [ "lKf = -dv + 2*(a^2*cos(th)^2 + r^2)/(a^2 - 2*m*r + r^2) dr - (a^2*sin(th)^2 - a^2 - r^2)*a*sin(th)^2/(a^2*cos(th)^2 + r^2) dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle \\underline{n}_{\\rm K} = \\left( -\\frac{a^{2} - 2 \\, m r + r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\right) \\mathrm{d} v + \\frac{{\\left(a^{2} - 2 \\, m r + r^{2}\\right)} a \\sin\\left({\\theta}\\right)^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle \\underline{n}_{\\rm K} = \\left( -\\frac{a^{2} - 2 \\, m r + r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\right) \\mathrm{d} v + \\frac{{\\left(a^{2} - 2 \\, m r + r^{2}\\right)} a \\sin\\left({\\theta}\\right)^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "nKf = -1/2*(a^2 - 2*m*r + r^2)/(a^2*cos(th)^2 + r^2) dv + 1/2*(a^2 - 2*m*r + r^2)*a*sin(th)^2/(a^2*cos(th)^2 + r^2) dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle \\underline{m}_{\\rm K} = -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}} \\mathrm{d} v + \\frac{1}{2} \\, \\sqrt{2} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\mathrm{d} {\\theta} + \\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle \\underline{m}_{\\rm K} = -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}} \\mathrm{d} v + \\frac{1}{2} \\, \\sqrt{2} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\mathrm{d} {\\theta} + \\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) - i \\, r\\right)}} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "mKf = -1/2*sqrt(2)*a*sin(th)/(a*cos(th) - I*r) dv + 1/2*sqrt(2)*(-I*a*cos(th) + r) dth + 1/2*sqrt(2)*(a^2 + r^2)*sin(th)/(a*cos(th) - I*r) dph" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle \\underline{\\bar{m}}_{\\rm K} = -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}} \\mathrm{d} v + \\frac{1}{2} \\, \\sqrt{2} {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\mathrm{d} {\\theta} + \\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}} \\mathrm{d} {\\varphi}\\)" ], "text/latex": [ "$\\displaystyle \\underline{\\bar{m}}_{\\rm K} = -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}} \\mathrm{d} v + \\frac{1}{2} \\, \\sqrt{2} {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\mathrm{d} {\\theta} + \\frac{\\sqrt{2} {\\left(a^{2} + r^{2}\\right)} \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}} \\mathrm{d} {\\varphi}$" ], "text/plain": [ "mbKf = -1/2*sqrt(2)*a*sin(th)/(a*cos(th) + I*r) dv + 1/2*sqrt(2)*(I*a*cos(th) + r) dth + 1/2*sqrt(2)*(a^2 + r^2)*sin(th)/(a*cos(th) + I*r) dph" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lKf = lK.down(g)\n", "lKf.set_name('lKf', latex_name=r'\\underline{\\ell}_{\\rm K}')\n", "\n", "nKf = nK.down(g)\n", "nKf.set_name('nKf', latex_name=r'\\underline{n}_{\\rm K}')\n", "\n", "mKf = mK.down(g)\n", "mKf.set_name('mKf', latex_name=r'\\underline{m}_{\\rm K}')\n", "\n", "mbKf = mbK.down(g)\n", "mbKf.set_name('mbKf', latex_name=r'\\underline{\\bar{m}}_{\\rm K}')\n", "\n", "for f in (lKf, nKf, mKf, mbKf):\n", " f.apply_map(algebraic_simplify, keep_other_components=True)\n", " show(f.display())" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\underline{\\ell}_{\\rm K} = -{e_{\\rm K}}^{1}\\)" ], "text/latex": [ "$\\displaystyle \\underline{\\ell}_{\\rm K} = -{e_{\\rm K}}^{1}$" ], "text/plain": [ "lKf = -eK^1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle \\underline{n}_{\\rm K} = -{e_{\\rm K}}^{0}\\)" ], "text/latex": [ "$\\displaystyle \\underline{n}_{\\rm K} = -{e_{\\rm K}}^{0}$" ], "text/plain": [ "nKf = -eK^0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle \\underline{m}_{\\rm K} = {e_{\\rm K}}^{3}\\)" ], "text/latex": [ "$\\displaystyle \\underline{m}_{\\rm K} = {e_{\\rm K}}^{3}$" ], "text/plain": [ "mKf = eK^3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\\(\\displaystyle \\underline{\\bar{m}}_{\\rm K} = {e_{\\rm K}}^{2}\\)" ], "text/latex": [ "$\\displaystyle \\underline{\\bar{m}}_{\\rm K} = {e_{\\rm K}}^{2}$" ], "text/plain": [ "mbKf = eK^2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for f in (lKf, nKf, mKf, mbKf):\n", " show(f.display(K))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "## Levi-Civita connection\n", "\n", "The Levi-Civita connection $\\nabla$ is returned by the method `connection`:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "nabla = g.connection()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "## Ricci rotation coefficients" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "The connection coefficients with respect to the Kinnersley tetrad would be returned by simply typing `nabla.coef(K)`. However the Ricci rotation coefficients do not coincide exactly with those. \n", "Indeed, the **connection coefficients** $\\Gamma^k_{\\ \\, ij}$ are defined by\n", "$$ \\Gamma^i_{\\ \\, jk} := \\langle e^i ,\\nabla_{e_k} e_j\\rangle $$\n", "while the **Ricci rotation coefficients** are defined by\n", "$$ \\Gamma_{ijk} := e_i\\cdot \\nabla_{e_k} e_j \\qquad\\qquad \\mbox{(1)}$$\n", "where a dot stands for the scalar product with respect to the metric $g$.\n", "If $g_{ij} := g(e_i,e_j) = e_i\\cdot e_j$, then \n", "$$ \\Gamma_{ijk} = g_{il} \\Gamma^{l}_{\\ \\, jk} . $$" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "We implement here a Python function that computes the Ricci rotation coefficients from (1) and returns them as an object of type `CompWithSym`, in order to take into account the antisymmetry with respect to the first two indices ($\\Gamma_{ijk} = - \\Gamma_{jik}$):" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def ricci_coef(tetrad, metric=g, chart=M.default_chart(), \n", " simplify=algebraic_simplify, verbose=False):\n", " r\"\"\"\n", " Compute the Ricci rotation coefficients with respect to a given tetrad.\n", "\n", " The Ricci rotation coefficients `Gamma_{ijk}` are stored in a CompWithSym \n", " object ``C`` such that ``C[i,j,k]`` ` = \\Gamma_{ijk}`\n", "\n", " INPUT:\n", "\n", " - ``tetrad`` -- the tetrad, as an instance of VectorFrame\n", " - ``metric`` -- the metric defining the Levi-Civita connection\n", " - ``chart`` -- the coordinate chart in which the computation is performed\n", " - ``simplify`` -- a simplifying function \n", " - ``verbose`` -- if ``True``, loop indices are printed out during \n", " the computation\n", "\n", " OUTPUT:\n", "\n", " - instance of ``CompWithSym`` providing the Ricci rotation coefficients\n", "\n", " \"\"\"\n", " from sage.tensor.modules.comp import CompWithSym\n", " from sage.manifolds.differentiable.scalarfield import DiffScalarField\n", "\n", " ee = tetrad # shortcut notations\n", " gg = metric #\n", " nabla = gg.connection()\n", " resu = CompWithSym(M.scalar_field_algebra(), # each $\\Gamma_{ijk}$ is a scalar field\n", " tetrad, # these are coefficients with respect to the given tetrad\n", " 3, # 3-index objects\n", " start_index=M.start_index(), # same starting index as for the manifold\n", " output_formatter=DiffScalarField.coord_function, # for display\n", " antisym=(0,1)) # antisymmetry with respect to the first two indices\n", "\n", " for j in M.irange(end=M.dim() - 2 - M.start_index()):\n", " if verbose: print(\"j = \", j)\n", " nab_ej = nabla(ee[j]) # \\nabla e_j\n", " for k in M.irange():\n", " nab_ek_ej = nab_ej.contract(ee[k]) # \\nabla_{e_k} e_j\n", " nab_ek_ej.apply_map(simplify, frame=chart.frame(), chart=chart)\n", " for i in M.irange(start=j+1):\n", " if verbose: print('i j k : ', i, j, k)\n", " # formula (1) above :\n", " resu[[i,j,k]] = simplify( gg(ee[i], nab_ek_ej).expr(chart) )\n", " return resu" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "j = 0\n", "i j k : 1 0 0\n", "i j k : 2 0 0\n", "i j k : 3 0 0\n", "i j k : 1 0 1\n", "i j k : 2 0 1\n", "i j k : 3 0 1\n", "i j k : 1 0 2\n", "i j k : 2 0 2\n", "i j k : 3 0 2\n", "i j k : 1 0 3\n", "i j k : 2 0 3\n", "i j k : 3 0 3\n", "j = 1\n", "i j k : 2 1 0\n", "i j k : 3 1 0\n", "i j k : 2 1 1\n", "i j k : 3 1 1\n", "i j k : 2 1 2\n", "i j k : 3 1 2\n", "i j k : 2 1 3\n", "i j k : 3 1 3\n", "j = 2\n", "i j k : 3 2 0\n", "i j k : 3 2 1\n", "i j k : 3 2 2\n", "i j k : 3 2 3\n", "CPU times: user 2min 27s, sys: 2.44 s, total: 2min 29s\n", "Wall time: 2min 41s\n" ] } ], "source": [ "%time omK = ricci_coef(K, verbose=True)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "## Newman-Penrose spin coefficients" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def spin_coef_NP(rcf, simplify=algebraic_simplify, signature='positive'):\n", " r\"\"\"\n", " Evaluate the Newman-Penrose spin coefficients associated to a tetrad,\n", " from the Ricci rotation coefficients of this tetrad.\n", "\n", " INPUT:\n", "\n", " - ``rcf`` -- the Ricci rotation coefficients, as an instance of CompWithSym\n", " - ``simplify`` -- a simplifying function\n", " - ``signature`` -- the metric signature (either ``'positive'``\n", " or ``'negative'``)\n", "\n", " OUPUT:\n", "\n", " - a dictionary containing the 12 Newman-Penrose spin coefficients, with\n", " the Greek symbols of the coefficients as the dictionary keys.\n", "\n", " \"\"\"\n", " resu = {}\n", " resu['κ'] = rcf[0,2,0]\n", " resu['ρ'] = rcf[0,2,3]\n", " resu['σ'] = rcf[0,2,2]\n", " resu['τ'] = rcf[0,2,1]\n", " resu['ν'] = rcf[3,1,1]\n", " resu['μ'] = rcf[3,1,2]\n", " resu['λ'] = rcf[3,1,3]\n", " resu['π'] = rcf[3,1,0]\n", " resu['ϵ'] = (rcf[0,1,0] - rcf[2,3,0])/2\n", " resu['α'] = (rcf[0,1,3] - rcf[2,3,3])/2\n", " resu['β'] = (rcf[0,1,2] - rcf[2,3,2])/2\n", " resu['γ'] = (rcf[0,1,1] - rcf[2,3,1])/2\n", " if signature == 'negative':\n", " for name, sc in resu.items():\n", " resu[name] = - sc\n", " elif signature != 'positive':\n", " raise ValueError(\"signature must be either 'positive' or 'negative'\")\n", " # Conversion to symbolic expressions and simplification:\n", " for name, sc in resu.items():\n", " resu[name] = simplify(sc.expr())\n", " return resu" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left\\{\\verb|κ| : 0, \\verb|ρ| : \\frac{1}{i \\, a \\cos\\left({\\theta}\\right) - r}, \\verb|σ| : 0, \\verb|τ| : -\\frac{i \\, \\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}, \\verb|ν| : 0, \\verb|μ| : \\frac{-i \\, a^{2} + 2 i \\, m r - i \\, r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}}, \\verb|λ| : 0, \\verb|π| : \\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)}}, \\verb|ϵ| : 0, \\verb|α| : \\frac{\\sqrt{2} {\\left(a \\sin\\left({\\theta}\\right)^{2} + i \\, r \\cos\\left({\\theta}\\right) + a\\right)}}{4 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)} \\sin\\left({\\theta}\\right)}, \\verb|β| : \\frac{\\sqrt{2} \\cos\\left({\\theta}\\right)}{4 \\, {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\sin\\left({\\theta}\\right)}, \\verb|γ| : -\\frac{-i \\, a m \\cos\\left({\\theta}\\right) + i \\, a r \\cos\\left({\\theta}\\right) + a^{2} - m r}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)}}\\right\\}\\)" ], "text/latex": [ "$\\displaystyle \\left\\{\\verb|κ| : 0, \\verb|ρ| : \\frac{1}{i \\, a \\cos\\left({\\theta}\\right) - r}, \\verb|σ| : 0, \\verb|τ| : -\\frac{i \\, \\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}, \\verb|ν| : 0, \\verb|μ| : \\frac{-i \\, a^{2} + 2 i \\, m r - i \\, r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}}, \\verb|λ| : 0, \\verb|π| : \\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)}}, \\verb|ϵ| : 0, \\verb|α| : \\frac{\\sqrt{2} {\\left(a \\sin\\left({\\theta}\\right)^{2} + i \\, r \\cos\\left({\\theta}\\right) + a\\right)}}{4 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)} \\sin\\left({\\theta}\\right)}, \\verb|β| : \\frac{\\sqrt{2} \\cos\\left({\\theta}\\right)}{4 \\, {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\sin\\left({\\theta}\\right)}, \\verb|γ| : -\\frac{-i \\, a m \\cos\\left({\\theta}\\right) + i \\, a r \\cos\\left({\\theta}\\right) + a^{2} - m r}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)}}\\right\\}$" ], "text/plain": [ "{'κ': 0,\n", " 'ρ': 1/(I*a*cos(th) - r),\n", " 'σ': 0,\n", " 'τ': -1/2*I*sqrt(2)*a*sin(th)/(a^2*cos(th)^2 + r^2),\n", " 'ν': 0,\n", " 'μ': 1/2*(-I*a^2 + 2*I*m*r - I*r^2)/((a^2*cos(th)^2 + r^2)*(a*cos(th) + I*r)),\n", " 'λ': 0,\n", " 'π': 1/2*sqrt(2)*a*sin(th)/(I*a^2*cos(th)^2 - 2*a*r*cos(th) - I*r^2),\n", " 'ϵ': 0,\n", " 'α': 1/4*sqrt(2)*(a*sin(th)^2 + I*r*cos(th) + a)/((I*a^2*cos(th)^2 - 2*a*r*cos(th) - I*r^2)*sin(th)),\n", " 'β': 1/4*sqrt(2)*cos(th)/((I*a*cos(th) + r)*sin(th)),\n", " 'γ': -1/2*(-I*a*m*cos(th) + I*a*r*cos(th) + a^2 - m*r)/((a^2*cos(th)^2 + r^2)*(-I*a*cos(th) + r))}" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scNP = spin_coef_NP(omK)\n", "scNP" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "## Geroch–Held–Penrose spin coefficients" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "def spin_coef_GHP(rcf, simplify=algebraic_simplify, signature='positive'):\n", " r\"\"\"\n", " Evaluate the Geroch-Held-Penrose spin coefficients associated to a tetrad,\n", " from the Ricci rotation coefficients of this tetrad.\n", "\n", " INPUT:\n", "\n", " - ``rcf`` -- the Ricci rotation coefficients, as an instance of CompWithSym\n", " - ``simplify`` -- a simplifying function\n", " - ``signature`` -- the metric signature (either ``'positive'``\n", " or ``'negative'``)\n", "\n", " OUPUT:\n", "\n", " - a dictionary containing the 12 Geroch-Help-Penrose spin coefficients, with\n", " the Greek symbols of the coefficients as the dictionary keys.\n", "\n", " \"\"\"\n", " scNP = spin_coef_NP(rcf, simplify=simplify, signature=signature)\n", " resu = {}\n", " for symb in ('β', 'ϵ', 'ρ', 'τ', 'σ', 'κ'):\n", " resu[symb] = scNP[symb]\n", " resu[\"β'\"] = -scNP[\"α\"]\n", " resu[\"ϵ'\"] = -scNP[\"γ\"]\n", " resu[\"ρ'\"] = -scNP[\"μ\"]\n", " resu[\"τ'\"] = -scNP[\"π\"]\n", " resu[\"σ'\"] = -scNP[\"λ\"]\n", " resu[\"κ'\"] = -scNP[\"ν\"]\n", " return resu" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left\\{\\verb|β| : \\frac{\\sqrt{2} \\cos\\left({\\theta}\\right)}{4 \\, {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\sin\\left({\\theta}\\right)}, \\verb|ϵ| : 0, \\verb|ρ| : \\frac{1}{i \\, a \\cos\\left({\\theta}\\right) - r}, \\verb|τ| : -\\frac{i \\, \\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}, \\verb|σ| : 0, \\verb|κ| : 0, \\verb|β'| : -\\frac{\\sqrt{2} {\\left(a \\sin\\left({\\theta}\\right)^{2} + i \\, r \\cos\\left({\\theta}\\right) + a\\right)}}{4 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)} \\sin\\left({\\theta}\\right)}, \\verb|ϵ'| : \\frac{-i \\, a m \\cos\\left({\\theta}\\right) + i \\, a r \\cos\\left({\\theta}\\right) + a^{2} - m r}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)}}, \\verb|ρ'| : -\\frac{-i \\, a^{2} + 2 i \\, m r - i \\, r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}}, \\verb|τ'| : -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)}}, \\verb|σ'| : 0, \\verb|κ'| : 0\\right\\}\\)" ], "text/latex": [ "$\\displaystyle \\left\\{\\verb|β| : \\frac{\\sqrt{2} \\cos\\left({\\theta}\\right)}{4 \\, {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\sin\\left({\\theta}\\right)}, \\verb|ϵ| : 0, \\verb|ρ| : \\frac{1}{i \\, a \\cos\\left({\\theta}\\right) - r}, \\verb|τ| : -\\frac{i \\, \\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}, \\verb|σ| : 0, \\verb|κ| : 0, \\verb|β'| : -\\frac{\\sqrt{2} {\\left(a \\sin\\left({\\theta}\\right)^{2} + i \\, r \\cos\\left({\\theta}\\right) + a\\right)}}{4 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)} \\sin\\left({\\theta}\\right)}, \\verb|ϵ'| : \\frac{-i \\, a m \\cos\\left({\\theta}\\right) + i \\, a r \\cos\\left({\\theta}\\right) + a^{2} - m r}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)}}, \\verb|ρ'| : -\\frac{-i \\, a^{2} + 2 i \\, m r - i \\, r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}}, \\verb|τ'| : -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)}}, \\verb|σ'| : 0, \\verb|κ'| : 0\\right\\}$" ], "text/plain": [ "{'β': 1/4*sqrt(2)*cos(th)/((I*a*cos(th) + r)*sin(th)),\n", " 'ϵ': 0,\n", " 'ρ': 1/(I*a*cos(th) - r),\n", " 'τ': -1/2*I*sqrt(2)*a*sin(th)/(a^2*cos(th)^2 + r^2),\n", " 'σ': 0,\n", " 'κ': 0,\n", " \"β'\": -1/4*sqrt(2)*(a*sin(th)^2 + I*r*cos(th) + a)/((I*a^2*cos(th)^2 - 2*a*r*cos(th) - I*r^2)*sin(th)),\n", " \"ϵ'\": 1/2*(-I*a*m*cos(th) + I*a*r*cos(th) + a^2 - m*r)/((a^2*cos(th)^2 + r^2)*(-I*a*cos(th) + r)),\n", " \"ρ'\": -1/2*(-I*a^2 + 2*I*m*r - I*r^2)/((a^2*cos(th)^2 + r^2)*(a*cos(th) + I*r)),\n", " \"τ'\": -1/2*sqrt(2)*a*sin(th)/(I*a^2*cos(th)^2 - 2*a*r*cos(th) - I*r^2),\n", " \"σ'\": 0,\n", " \"κ'\": 0}" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc = spin_coef_GHP(omK)\n", "sc" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "### Check of the GHP spin coefficients by comparison with known formulas" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{1}{i \\, a \\cos\\left({\\theta}\\right) - r}\\)" ], "text/latex": [ "$\\displaystyle \\frac{1}{i \\, a \\cos\\left({\\theta}\\right) - r}$" ], "text/plain": [ "1/(I*a*cos(th) - r)" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc[\"ρ\"]" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(sc[\"ρ\"] == rho)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle -\\frac{-i \\, a^{2} + 2 i \\, m r - i \\, r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}}\\)" ], "text/latex": [ "$\\displaystyle -\\frac{-i \\, a^{2} + 2 i \\, m r - i \\, r^{2}}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(a \\cos\\left({\\theta}\\right) + i \\, r\\right)}}$" ], "text/plain": [ "-1/2*(-I*a^2 + 2*I*m*r - I*r^2)/((a^2*cos(th)^2 + r^2)*(a*cos(th) + I*r))" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc[\"ρ'\"]" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(sc[\"ρ'\"] == -rho*Delta/(2*Sigma))" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle -\\frac{i \\, \\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}\\)" ], "text/latex": [ "$\\displaystyle -\\frac{i \\, \\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}}$" ], "text/plain": [ "-1/2*I*sqrt(2)*a*sin(th)/(a^2*cos(th)^2 + r^2)" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc[\"τ\"]" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(sc[\"τ\"] == -I*a*sin(th)/(sqrt(2)*Sigma))" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)}}\\)" ], "text/latex": [ "$\\displaystyle -\\frac{\\sqrt{2} a \\sin\\left({\\theta}\\right)}{2 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)}}$" ], "text/plain": [ "-1/2*sqrt(2)*a*sin(th)/(I*a^2*cos(th)^2 - 2*a*r*cos(th) - I*r^2)" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc[\"τ'\"]" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(sc[\"τ'\"] == -I*a*rho^2*sin(th)/sqrt(2))" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{\\sqrt{2} \\cos\\left({\\theta}\\right)}{4 \\, {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\sin\\left({\\theta}\\right)}\\)" ], "text/latex": [ "$\\displaystyle \\frac{\\sqrt{2} \\cos\\left({\\theta}\\right)}{4 \\, {\\left(i \\, a \\cos\\left({\\theta}\\right) + r\\right)} \\sin\\left({\\theta}\\right)}$" ], "text/plain": [ "1/4*sqrt(2)*cos(th)/((I*a*cos(th) + r)*sin(th))" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc[\"β\"]" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(sc[\"β\"] == -rho_bar/(2*sqrt(2)*tan(th)))" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle -\\frac{\\sqrt{2} {\\left(a \\sin\\left({\\theta}\\right)^{2} + i \\, r \\cos\\left({\\theta}\\right) + a\\right)}}{4 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)} \\sin\\left({\\theta}\\right)}\\)" ], "text/latex": [ "$\\displaystyle -\\frac{\\sqrt{2} {\\left(a \\sin\\left({\\theta}\\right)^{2} + i \\, r \\cos\\left({\\theta}\\right) + a\\right)}}{4 \\, {\\left(i \\, a^{2} \\cos\\left({\\theta}\\right)^{2} - 2 \\, a r \\cos\\left({\\theta}\\right) - i \\, r^{2}\\right)} \\sin\\left({\\theta}\\right)}$" ], "text/plain": [ "-1/4*sqrt(2)*(a*sin(th)^2 + I*r*cos(th) + a)/((I*a^2*cos(th)^2 - 2*a*r*cos(th) - I*r^2)*sin(th))" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc[\"β'\"]" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(sc[\"β'\"] == sc[\"β\"].conjugate() + sc[\"τ'\"])" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Besides, we have $\\epsilon' \\neq 0$:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{-i \\, a m \\cos\\left({\\theta}\\right) + i \\, a r \\cos\\left({\\theta}\\right) + a^{2} - m r}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)}}\\)" ], "text/latex": [ "$\\displaystyle \\frac{-i \\, a m \\cos\\left({\\theta}\\right) + i \\, a r \\cos\\left({\\theta}\\right) + a^{2} - m r}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)} {\\left(-i \\, a \\cos\\left({\\theta}\\right) + r\\right)}}$" ], "text/plain": [ "1/2*(-I*a*m*cos(th) + I*a*r*cos(th) + a^2 - m*r)/((a^2*cos(th)^2 + r^2)*(-I*a*cos(th) + r))" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc[\"ϵ'\"]" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{a^{2} r \\sin\\left({\\theta}\\right)^{2} + i \\, {\\left(a^{2} - 2 \\, m r + r^{2}\\right)} a \\cos\\left({\\theta}\\right) + {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} - r^{2}\\right)} m}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}^{2}}\\)" ], "text/latex": [ "$\\displaystyle \\frac{a^{2} r \\sin\\left({\\theta}\\right)^{2} + i \\, {\\left(a^{2} - 2 \\, m r + r^{2}\\right)} a \\cos\\left({\\theta}\\right) + {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} - r^{2}\\right)} m}{2 \\, {\\left(a^{2} \\cos\\left({\\theta}\\right)^{2} + r^{2}\\right)}^{2}}$" ], "text/plain": [ "1/2*(a^2*r*sin(th)^2 + I*(a^2 - 2*m*r + r^2)*a*cos(th) + (a^2*cos(th)^2 - r^2)*m)/(a^2*cos(th)^2 + r^2)^2" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eps_prime0 = (m*(a^2*cos(th)^2 - r^2) + a^2*r*sin(th)^2 \n", " + I*a*Delta*cos(th)) / (2*(r^2 + a^2*cos(th)^2)^2)\n", "eps_prime0" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bool(sc[\"ϵ'\"] == eps_prime0)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "All the other spin coefficients are zero:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(0, 0, 0, 0, 0\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(0, 0, 0, 0, 0\\right)$" ], "text/plain": [ "(0, 0, 0, 0, 0)" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sc[\"ϵ\"], sc[\"σ\"], sc[\"σ'\"], sc[\"κ\"], sc[\"κ'\"]" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 10.4.rc1", "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.10.12" } }, "nbformat": 4, "nbformat_minor": 4 }