{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"# Numerical values\n",
"\n",
"This Jupyter/SageMath worksheet is relative to the lectures\n",
"[Geometry and physics of black holes](https://relativite.obspm.fr/blackholes/).\n",
"\n",
"Click [here](https://raw.githubusercontent.com/egourgoulhon/BHLectures/master/sage/numerical_values.ipynb) to download the worksheet file (ipynb format). To run it, you must start SageMath with the Jupyter notebook, with the command `sage -n jupyter`\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"%display latex"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"## Physical constants"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"Values of the fundamental constants in SI units (taken from the [Particle Data Group](http://pdg.lbl.gov/) (2017)):"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"c = 2.99792458e8\n",
"G = 6.67408e-11\n",
"hbar = 1.054571800e-34"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"The solar mass $M_\\odot$ in SI units:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"M_sol = 1.98848e30"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"The Planck mass in kg:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
"2.17647019549064e-8"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sqrt(hbar*c/G)"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"The solar mass $M_\\odot$ in meters:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
"1476.62844258127"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"M_sol_m = G*M_sol/c^2\n",
"M_sol_m"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"The solar mass $M_\\odot$ in seconds:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
"4.92550230393478e-6"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"M_sol_s = G*M_sol/c^3\n",
"M_sol_s"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"The astronomical unit (au) in SI units:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"au = 1.49597870700e11"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"## A sample of black holes masses\n",
"\n",
"Masses in $M_\\odot$:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
"[15.0000000000000, 4.30000000000000e6, 6.00000000000000e9]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"masses = [15., 4.3e6, 6e9]\n",
"masses"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"Schwarzschild radii:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"m = 15.0000000000000 M_sol: 2m = 44.2988532774 km = 2.9611954415e-07 au\n",
"m = 4.30000000000000e6 M_sol: 2m = 12699004.6062 km = 0.0848876026562 au\n",
"m = 6.00000000000000e9 M_sol: 2m = 17719541311.0 km = 118.44781766 au\n"
]
}
],
"source": [
"for m in masses:\n",
" Rs = RDF(2*m * M_sol_m)\n",
" Rs_km = RDF(Rs/1000)\n",
" Rs_au = RDF(Rs/au)\n",
" print(\"m = {} M_sol: 2m = {} km = {} au\".format(m, Rs_km, Rs_au)) "
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"## Free fall in a Schwarzschild black hole"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"Proper time to reach the singularity starting from rest at the ISCO:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
"1/2*sqrt(1/2)*pi*sqrt(r0^3)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"var('r0')\n",
"tau_f(r0) = pi*sqrt(r0^3/8)\n",
"tau_f(r0)"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"Proper time to reach the horizon starting from rest at the ISCO:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
"sqrt(1/2)*sqrt(r0^3)*(sqrt(2)*sqrt(-(2/r0 - 1)/r0) + arctan(sqrt(1/2*r0 - 1)))"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tau_h(r0) = sqrt(r0^3/2)*(atan(sqrt(r0/2-1)) + sqrt(2/r0*(1-2/r0)))\n",
"tau_h(r0)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"m = 15.0000000000000 M_sol:\n",
" tau_f = 0.0012060728479 s = 3.35020235528e-07 h = 1.39591764803e-08 days\n",
"m = 4.30000000000000e6 M_sol:\n",
" tau_f = 345.740883065 s = 0.0960391341847 h = 0.00400163059103 days\n",
"m = 6.00000000000000e9 M_sol:\n",
" tau_f = 482429.13916 s = 134.008094211 h = 5.58367059213 days\n"
]
}
],
"source": [
"for m in masses:\n",
" t_s = RDF(tau_f(6) * m * M_sol_s)\n",
" t_h = RDF(t_s/3600)\n",
" t_d = RDF(t_h/24)\n",
" print(\"m = {} M_sol:\".format(m)) \n",
" print(\" tau_f = {} s = {} h = {} days\".format(t_s, t_h, t_d))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"m = 15.0000000000000 M_sol:\n",
" tau_h = 0.00109545050356 s = 3.04291806543e-07 h = 1.26788252726e-08 days\n",
"m = 4.30000000000000e6 M_sol:\n",
" tau_h = 314.029144353 s = 0.0872303178758 h = 0.00363459657816 days\n",
"m = 6.00000000000000e9 M_sol:\n",
" tau_h = 438180.201422 s = 121.716722617 h = 5.07153010906 days\n"
]
}
],
"source": [
"for m in masses:\n",
" t_s = RDF(tau_h(6) * m * M_sol_s)\n",
" t_h = RDF(t_s/3600)\n",
" t_d = RDF(t_h/24)\n",
" print(\"m = {} M_sol:\".format(m)) \n",
" print(\" tau_h = {} s = {} h = {} days\".format(t_s, t_h, t_d))"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"Time spent into the black hole:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"m = 15.0000000000000 M_sol:\n",
" tau_inside = 0.000110622344344 s = 3.07284289845e-08 h = 1.28035120769e-09 days\n",
"m = 4.30000000000000e6 M_sol:\n",
" tau_inside = 31.711738712 s = 0.0088088163089 h = 0.000367034012871 days\n",
"m = 6.00000000000000e9 M_sol:\n",
" tau_inside = 44248.9377377 s = 12.2913715938 h = 0.512140483075 days\n"
]
}
],
"source": [
"for m in masses:\n",
" t_s = RDF((tau_f(6) - tau_h(6)) * m * M_sol_s)\n",
" t_h = RDF(t_s/3600)\n",
" t_d = RDF(t_h/24)\n",
" print(\"m = {} M_sol:\".format(m)) \n",
" print(\" tau_inside = {} s = {} h = {} days\".format(t_s, t_h, t_d))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"source": [
"## ISCO frequency"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Schwarzschild"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"m = 15.0000000000000 M_sol: r_ISCO = 132.896559832 km = 8.88358632449e-07 au\n",
"f_ISCO = 146.572154082 Hz, T_ISCO = 0.00682257831484 s = 0.000113709638581 min\n",
"m = 4.30000000000000e6 M_sol: r_ISCO = 38097013.8186 km = 0.254662807969 au\n",
"f_ISCO = 0.000511298211914 Hz, T_ISCO = 1955.80578359 s = 32.5967630598 min\n",
"m = 6.00000000000000e9 M_sol: r_ISCO = 53158623932.9 km = 355.34345298 au\n",
"f_ISCO = 3.66430385205e-07 Hz, T_ISCO = 2729031.32594 s = 45483.8554323 min\n"
]
}
],
"source": [
"for m in masses:\n",
" RI = RDF(6*m * M_sol_m)\n",
" RI_km = RDF(RI/1000)\n",
" RI_au = RDF(RI/au)\n",
" f_Hz = RDF(1/(6*sqrt(6)* m * M_sol_s)/(2*pi))\n",
" T_s = 1/f_Hz\n",
" T_min = T_s/60\n",
" print(\"m = {} M_sol: r_ISCO = {} km = {} au\".format(m, RI_km, RI_au)) \n",
" print(\"f_ISCO = {} Hz, T_ISCO = {} s = {} min\".format(f_Hz, T_s, T_min)) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Extreme Kerr"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"m = 15.0000000000000 M_sol: r_ISCO = 22.1494266387 km = 1.48059772075e-07 au\n",
"f_ISCO = 1077.080964 Hz, T_ISCO = 0.000928435311197 s = 1.54739218533e-05 min\n",
"m = 4.30000000000000e6 M_sol: r_ISCO = 6349502.3031 km = 0.0424438013281 au\n",
"f_ISCO = 0.00375725917676 Hz, T_ISCO = 266.151455876 s = 4.43585759794 min\n",
"m = 6.00000000000000e9 M_sol: r_ISCO = 8859770655.49 km = 59.2239088299 au\n",
"f_ISCO = 2.69270241001e-06 Hz, T_ISCO = 371374.124479 s = 6189.56874131 min\n"
]
}
],
"source": [
"for m in masses:\n",
" RI = RDF(m * M_sol_m)\n",
" RI_km = RDF(RI/1000)\n",
" RI_au = RDF(RI/au)\n",
" f_Hz = RDF(1/(2* m * M_sol_s)/(2*pi))\n",
" T_s = 1/f_Hz\n",
" T_min = T_s/60\n",
" print(\"m = {} M_sol: r_ISCO = {} km = {} au\".format(m, RI_km, RI_au)) \n",
" print(\"f_ISCO = {} Hz, T_ISCO = {} s = {} min\".format(f_Hz, T_s, T_min)) "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 8.1.rc4",
"language": "",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.14"
}
},
"nbformat": 4,
"nbformat_minor": 2
}