{
"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
}