{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# Comparisons of $E$, $L$ and $\\Omega$ between [Bardeen et al](http://adsabs.harvard.edu/doi/10.1086/151796), [Toshmatov et al](https://journals.aps.org/prd/pdf/10.1103/PhysRevD.95.084037) and Lamy et al\n", "\n", "This Jupyter/SageMath notebook is related to the article [Lamy et al, arXiv:1802.01635](https://arxiv.org/abs/1802.01635)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'SageMath version 8.1, Release Date: 2017-12-07'" ] }, "execution_count": 1, "metadata": { }, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "%display latex" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "from sage.manifolds.utilities import simplify_chain_real as simpl" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# $E$, $L$ and $\\Omega$ in Bardeen '72 (Kerr case)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "var('r a b m0', domain='real')\n", "var('th', latex_name=r'\\theta', domain='real')\n", "assume(r>0)\n", "assume(m0>0)\n", "assume(a>=0)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "omega_pos_B=sqrt(m0)/(r^(3/2)+a*sqrt(m0)) # Omega computed in Bardeen et al '72 (Kerr) for co-rotating orbits\n", "omega_neg_B=-sqrt(m0)/(r^(3/2)-a*sqrt(m0))# Omega computed in Bardeen et al '72 (Kerr) for counter-rotating orbits" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "E_pos_B=(r^(3/2)-2*m0*sqrt(r)+a*sqrt(m0))/(r^(3/4)*sqrt(r^(3/2)-3*m0*sqrt(r)+2*a*sqrt(m0))) # E computed in Bardeen et al '72 (Kerr) for co-rotating orbits\n", "E_neg_B=(r^(3/2)-2*m0*sqrt(r)-a*sqrt(m0))/(r^(3/4)*sqrt(r^(3/2)-3*m0*sqrt(r)-2*a*sqrt(m0))) # E computed in Bardeen et al '72 (Kerr) for counter-rotating orbits" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "L_pos_B=(sqrt(m0)*(r^2-2*a*sqrt(m0)*sqrt(r)+a^2))/(r^(3/4)*sqrt(r^(3/2)-3*m0*sqrt(r)+2*a*sqrt(m0))) # L computed in Bardeen et al '72 (Kerr) for co-rotating orbits\n", "L_neg_B=(-sqrt(m0)*(r^2+2*a*sqrt(m0)*sqrt(r)+a^2))/(r^(3/4)*sqrt(r^(3/2)-3*m0*sqrt(r)-2*a*sqrt(m0))) # L computed in Bardeen et al '72 (Kerr) for counter-rotating orbits" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "ratio_pos_B=L_pos_B/E_pos_B" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 9, "metadata": { }, "output_type": "execute_result" } ], "source": [ "ratio_pos_B.simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# $E$, $L$ and $\\Omega$ in Toshmatov et al '17 (Kerr with $M(r)$)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Definitions" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "M=m0*r^3/(r^3+2*m0*b^2) #Let's assume the Hayward form for M(r), which boils down to Kerr for b=0\n", "Sigma = r^2 + a^2*cos(th)^2\n", "Delta = r^2 - 2*M*r + a^2\n", "g00=-(1 - 2*r*M/Sigma)\n", "g03=-2*a*r*sin(th)^2*M/Sigma\n", "g33=(r^2 + a^2 + 2*r*(a*sin(th))^2*M/Sigma)*sin(th)^2\n", "dg00=diff(g00,r)\n", "dg03=diff(g03,r)\n", "dg33=diff(g33,r)\n", "Mdot=diff(M,r)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "omega_pos_T=(sqrt(M/r-Mdot)/(a*sqrt(M/r-Mdot)+r)) # Omega computed in Toshmatov et al '17\n", "omega_neg_T=sqrt(M/r-Mdot)/(a*sqrt(M/r-Mdot)-r)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "E_pos_T=(r-2*M+a*sqrt(M/r-Mdot))/(r*(r-3*M+2*a*sqrt(M/r-Mdot)+r*Mdot)) # E computed in Toshmatov et al '17\n", "E_neg_T=-(r-2*M+a*sqrt(M/r-Mdot))/(r*(r-3*M+2*a*sqrt(M/r-Mdot)+r*Mdot))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "L_pos_T=(2*a*M-(r^2+a^2)*sqrt(M/r-Mdot))/(r*(r-3*M+2*a*sqrt(M/r-Mdot)+r*Mdot)) # L computed in Toshmatov et al '17\n", "L_neg_T=-(2*a*M-(r^2+a^2)*sqrt(M/r-Mdot))/(r*(r-3*M+2*a*sqrt(M/r-Mdot)+r*Mdot))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Comparison with Bardeen '72" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### $\\Omega$: agreement" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 14, "metadata": { }, "output_type": "execute_result" } ], "source": [ "omega_pos_B" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 15, "metadata": { }, "output_type": "execute_result" } ], "source": [ "simpl(omega_pos_T.subs({b:0, th:pi/2}))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 16, "metadata": { }, "output_type": "execute_result" } ], "source": [ "bool(omega_pos_B == simpl(omega_pos_T.subs({b:0, th:pi/2})))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### $E$: disagreement" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 17, "metadata": { }, "output_type": "execute_result" } ], "source": [ "simpl(E_pos_B)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 18, "metadata": { }, "output_type": "execute_result" } ], "source": [ "simpl(E_pos_T.subs({b:0, th:pi/2}))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 19, "metadata": { }, "output_type": "execute_result" } ], "source": [ "E_pos_B.subs({a:1},{m0:1},{r:3}).n()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 20, "metadata": { }, "output_type": "execute_result" } ], "source": [ "E_pos_T.subs({a:1},{b:0},{m0:1},{r:3},{th:pi/2}).n() #b=0 boils down to Kerr " ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 21, "metadata": { }, "output_type": "execute_result" } ], "source": [ "E_neg_B.subs({a:1},{m0:1},{r:3}).n()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 22, "metadata": { }, "output_type": "execute_result" } ], "source": [ "E_neg_T.subs({a:1},{b:0},{m0:1},{r:3},{th:pi/2}).n() #b=0 boils down to Kerr " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### $L$: disagreement" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 23, "metadata": { }, "output_type": "execute_result" } ], "source": [ "simpl(L_pos_B)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 24, "metadata": { }, "output_type": "execute_result" } ], "source": [ "simpl(L_pos_T.subs({b:0, th:pi/2}))" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 25, "metadata": { }, "output_type": "execute_result" } ], "source": [ "L_pos_B.subs({a:1},{m0:1},{r:3}).n()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 26, "metadata": { }, "output_type": "execute_result" } ], "source": [ "L_pos_T.subs({a:1},{b:0},{m0:1},{r:3},{th:pi/2}).n() #b=0 boils down to Kerr " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# $E$, $L$ and $\\Omega$ in Lamy et al '18 (Kerr with $M(r)$)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Definitions" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "omega_pos=(-dg03+sqrt(dg03^2-dg00*dg33))/dg33 # Omega computed in Lamy et al '18\n", "omega_neg=(-dg03-sqrt(dg03^2-dg00*dg33))/dg33" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "E_pos=-(g00+g03*omega_pos)/sqrt(-(g00+2*g03*omega_pos+g33*omega_pos^2)) #E computed in Lamy et al '18 \n", "E_neg=-(g00+g03*omega_neg)/sqrt(-(g00+2*g03*omega_neg+g33*omega_neg^2))" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "L_pos=(g03+g33*omega_pos)/sqrt(-(g00+2*g03*omega_pos+g33*omega_pos^2)) # L computed in Lamy et al '18\n", "L_neg=(g03+g33*omega_neg)/sqrt(-(g00+2*g03*omega_neg+g33*omega_neg^2))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Comparison with Bardeen '72" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### $\\Omega$: agreement" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 30, "metadata": { }, "output_type": "execute_result" } ], "source": [ "simpl(omega_pos_B)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 31, "metadata": { }, "output_type": "execute_result" } ], "source": [ "simpl(omega_pos.subs({b:0, th:pi/2}))" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 32, "metadata": { }, "output_type": "execute_result" } ], "source": [ "bool(simpl(omega_pos_B) == simpl(omega_pos.subs({b:0},{th:pi/2})))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### $E$: agreement" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 33, "metadata": { }, "output_type": "execute_result" } ], "source": [ "E_pos_B1 = simpl(E_pos_B)\n", "E_pos_B1" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 34, "metadata": { }, "output_type": "execute_result" } ], "source": [ "E_pos1 = simpl(E_pos.subs({b:0, th:pi/2})) #b=0 boils down to Kerr \n", "E_pos1" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 35, "metadata": { }, "output_type": "execute_result" } ], "source": [ "bool(E_pos1^2 == E_pos_B1^2)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### $L$: agreement" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 36, "metadata": { }, "output_type": "execute_result" } ], "source": [ "L_pos_B1 = simpl(L_pos_B)\n", "L_pos_B1" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 37, "metadata": { }, "output_type": "execute_result" } ], "source": [ "L_pos1 = simpl(L_pos.subs({b:0, th:pi/2})) #b=0 boils down to Kerr \n", "L_pos1" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ] }, "execution_count": 38, "metadata": { }, "output_type": "execute_result" } ], "source": [ "bool(L_pos1^2 == L_pos_B1^2)" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath (stable)", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.14" } }, "nbformat": 4, "nbformat_minor": 0 }