{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tolman-Oppenheimer-Volkoff equations\n", "\n", "This Jupyter/SageMath notebook is relative to the lectures\n", "[General relativity computations with SageManifolds](https://indico.cern.ch/event/505595/) given at the NewCompStar School 2016 (Coimbra, Portugal).\n", " \n", "These computations are based on [SageManifolds](https://sagemanifolds.obspm.fr) (currently version 1.3, as included in SageMath 8.3).\n", "\n", "Click [here](https://raw.githubusercontent.com/sagemanifolds/SageManifolds/master/Worksheets/v1.3/SM_TOV.ipynb) to download the notebook file (ipynb format). To run it, you must start SageMath with the Jupyter notebook, with the command sage -n jupyter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This worksheet is divided in two parts:\n", "\n", "1. Deriving the TOV system from the Einstein equation\n", "2. Solving the TOV system to get stellar models\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*NB:* a version of SageMath at least equal to 7.5 is required to run this notebook:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 8.3, Release Date: 2018-08-03'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we set up the notebook to display mathematical objects using LaTeX rendering:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Deriving the TOV system from the Einstein equation\n", "\n", "### Spacetime\n", "\n", "We declare the spacetime manifold $M$:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4-dimensional differentiable manifold M\n" ] } ], "source": [ "M = Manifold(4, 'M')\n", "print(M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get some information about the object M, we use the question mark:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "M?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using a double question mark, we get the Python source code (SageMath is **open source**, isn't it?):" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "M??" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We declare the chart of spherical coordinates $(t,r,\\theta,\\phi)$, via the method chart acting on M; to see how to use it, we again use the question mark:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "M.chart?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (M, (t, r, th, ph))" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X. = M.chart(r't r:(0,+oo) th:(0,pi):\\theta ph:(0,2*pi):\\phi')\n", "X" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Metric tensor\n", "\n", "The static and spherically symmetric metric ansatz, with the unknown functions $\\nu(r)$ and $m(r)$:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g = -e^(2*nu(r)) dt*dt - 1/(2*m(r)/r - 1) dr*dr + r^2 dth*dth + r^2*sin(th)^2 dph*dph" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = M.lorentzian_metric('g')\n", "nu = function('nu')\n", "m = function('m')\n", "g[0,0] = -exp(2*nu(r))\n", "g[1,1] = 1/(1-2*m(r)/r)\n", "g[2,2] = r^2\n", "g[3,3] = (r*sin(th))^2\n", "g.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can display the metric components as a list:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g_t,t = -e^(2*nu(r)) \n", "g_r,r = -1/(2*m(r)/r - 1) \n", "g_th,th = r^2 \n", "g_ph,ph = r^2*sin(th)^2 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display_comp()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "By default, only the nonzero components are shown; to get all the components, set the option only_nonzero to False:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g_t,t = -e^(2*nu(r)) \n", "g_t,r = 0 \n", "g_t,th = 0 \n", "g_t,ph = 0 \n", "g_r,t = 0 \n", "g_r,r = -1/(2*m(r)/r - 1) \n", "g_r,th = 0 \n", "g_r,ph = 0 \n", "g_th,t = 0 \n", "g_th,r = 0 \n", "g_th,th = r^2 \n", "g_th,ph = 0 \n", "g_ph,t = 0 \n", "g_ph,r = 0 \n", "g_ph,th = 0 \n", "g_ph,ph = r^2*sin(th)^2 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.display_comp(only_nonzero=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also display the metric components as a matrix, via the [] operator:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[ -e^(2*nu(r)) 0 0 0]\n", "[ 0 -1/(2*m(r)/r - 1) 0 0]\n", "[ 0 0 r^2 0]\n", "[ 0 0 0 r^2*sin(th)^2]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The [] operator can also be used to access to individual elements:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-e^(2*nu(r))" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g[0,0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Einstein equation\n", "\n", "Let us start by evaluating the Ricci tensor of $g$:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field of symmetric bilinear forms Ric(g) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "Ric = g.ricci()\n", "print(Ric)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Ric(g) = ((r^2*e^(2*nu(r)) - 2*r*e^(2*nu(r))*m(r))*(d(nu)/dr)^2 - (r*e^(2*nu(r))*d(m)/dr - 2*r*e^(2*nu(r)) + 3*e^(2*nu(r))*m(r))*d(nu)/dr + (r^2*e^(2*nu(r)) - 2*r*e^(2*nu(r))*m(r))*d^2(nu)/dr^2)/r^2 dt*dt - ((r^3 - 2*r^2*m(r))*(d(nu)/dr)^2 - 2*r*d(m)/dr - (r^2*d(m)/dr - r*m(r))*d(nu)/dr + (r^3 - 2*r^2*m(r))*d^2(nu)/dr^2 + 2*m(r))/(r^3 - 2*r^2*m(r)) dr*dr + (r*d(m)/dr - (r^2 - 2*r*m(r))*d(nu)/dr + m(r))/r dth*dth + (r*d(m)/dr - (r^2 - 2*r*m(r))*d(nu)/dr + m(r))*sin(th)^2/r dph*dph" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ric.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Ricci scalar is naturally obtained by the method ricci_scalar():" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "g.ricci_scalar?" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "r(g): M --> R\n", " (t, r, th, ph) |--> -2*((r^2 - 2*r*m(r))*(d(nu)/dr)^2 - (r*d(m)/dr - 2*r + 3*m(r))*d(nu)/dr + (r^2 - 2*r*m(r))*d^2(nu)/dr^2 - 2*d(m)/dr)/r^2" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.ricci_scalar().display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a check we can also compute it by taking the trace of the Ricci tensor with respect to $g$:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g.ricci_scalar() == g.inverse()['^{ab}']*Ric['_{ab}']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Einstein tensor\n", "$$G_{ab} := R_{ab} - \\frac{1}{2} R \\, g_{ab},$$\n", "or in index-free notation:\n", "$$G := \\mathrm{Ric}(g) - \\frac{1}{2} r(g) \\, g$$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field of symmetric bilinear forms G on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "G = Ric - 1/2*g.ricci_scalar() * g\n", "G.set_name('G')\n", "print(G)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "G = 2*e^(2*nu(r))*d(m)/dr/r^2 dt*dt + 2*((r^2 - 2*r*m(r))*d(nu)/dr - m(r))/(r^3 - 2*r^2*m(r)) dr*dr + ((r^3 - 2*r^2*m(r))*(d(nu)/dr)^2 - r*d(m)/dr - (r^2*d(m)/dr - r^2 + r*m(r))*d(nu)/dr + (r^3 - 2*r^2*m(r))*d^2(nu)/dr^2 + m(r))/r dth*dth + ((r^3 - 2*r^2*m(r))*(d(nu)/dr)^2 - r*d(m)/dr - (r^2*d(m)/dr - r^2 + r*m(r))*d(nu)/dr + (r^3 - 2*r^2*m(r))*d^2(nu)/dr^2 + m(r))*sin(th)^2/r dph*dph" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The energy-momentum tensor\n", "\n", "We consider a perfect fluid matter model. \n", "Let us first defined the fluid 4-velocity $u$: " ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "u = e^(-nu(r)) d/dt" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u = M.vector_field('u')\n", "u[0] = exp(-nu(r))\n", "u.display()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[e^(-nu(r)), 0, 0, 0]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u[:]" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Free module X(M) of vector fields on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "print(u.parent())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us check that $u$ is a normalized timelike vector, i.e. that $g_{ab} u^a u^b = -1$, or, in index-free notation, $g(u,u)=-1$:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Scalar field g(u,u) on the 4-dimensional differentiable manifold M" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(u,u)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field g(u,u) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "print(g(u,u))" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "g(u,u): M --> R\n", " (t, r, th, ph) |--> -1" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(u,u).display()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Algebra of differentiable scalar fields on the 4-dimensional differentiable manifold M" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(u,u).parent()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Algebra of differentiable scalar fields on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "print(g(u,u).parent())" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(u,u) == -1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To form the energy-momentum tensor, we need the 1-form $\\underline{u}$ that is metric-dual to the vector $u$, i.e. \n", "$u_a = g_{ab} u^b$:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "u_form = u.down(g)\n", "print(u_form)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-e^nu(r) dt" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "u_form.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The energy-momentum tensor is then\n", "$$T_{ab} = (\\rho + p) u_a u_b + p \\, g_{ab},$$\n", "or in index-free notation:\n", "$$T = (\\rho + p) \\underline{u}\\otimes\\underline{u} + p \\, g$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the tensor product $\\otimes$ is taken with the * operator, we write:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field of symmetric bilinear forms T on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "rho = function('rho')\n", "p = function('p')\n", "T = (rho(r)+p(r))* (u_form * u_form) + p(r) * g\n", "T.set_name('T')\n", "print(T)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "T = e^(2*nu(r))*rho(r) dt*dt + r*p(r)/(r - 2*m(r)) dr*dr + r^2*p(r) dth*dth + r^2*p(r)*sin(th)^2 dph*dph" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T.display()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Scalar field T(u,u) on the 4-dimensional differentiable manifold M" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T(u,u)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field T(u,u) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "print(T(u,u))" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "T(u,u): M --> R\n", " (t, r, th, ph) |--> rho(r)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T(u,u).display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Einstein equation\n", "\n", "The Einstein equation is \n", "$$G = 8\\pi T$$\n", "We rewrite it as $E = 0$ with $E := G - 8\\pi T$:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field of symmetric bilinear forms E on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "E = G - 8*pi*T\n", "E.set_name('E')\n", "print(E)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "E = -2*(4*pi*r^2*e^(2*nu(r))*rho(r) - e^(2*nu(r))*d(m)/dr)/r^2 dt*dt - 2*(4*pi*r^3*p(r) - (r^2 - 2*r*m(r))*d(nu)/dr + m(r))/(r^3 - 2*r^2*m(r)) dr*dr - (8*pi*r^3*p(r) - (r^3 - 2*r^2*m(r))*(d(nu)/dr)^2 + r*d(m)/dr + (r^2*d(m)/dr - r^2 + r*m(r))*d(nu)/dr - (r^3 - 2*r^2*m(r))*d^2(nu)/dr^2 - m(r))/r dth*dth - (8*pi*r^3*p(r) - (r^3 - 2*r^2*m(r))*(d(nu)/dr)^2 + r*d(m)/dr + (r^2*d(m)/dr - r^2 + r*m(r))*d(nu)/dr - (r^3 - 2*r^2*m(r))*d^2(nu)/dr^2 - m(r))*sin(th)^2/r dph*dph" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.display()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "E_t,t = -2*(4*pi*r^2*e^(2*nu(r))*rho(r) - e^(2*nu(r))*d(m)/dr)/r^2 \n", "E_r,r = -2*(4*pi*r^3*p(r) - (r^2 - 2*r*m(r))*d(nu)/dr + m(r))/(r^3 - 2*r^2*m(r)) \n", "E_th,th = -(8*pi*r^3*p(r) - (r^3 - 2*r^2*m(r))*(d(nu)/dr)^2 + r*d(m)/dr + (r^2*d(m)/dr - r^2 + r*m(r))*d(nu)/dr - (r^3 - 2*r^2*m(r))*d^2(nu)/dr^2 - m(r))/r \n", "E_ph,ph = -(8*pi*r^3*p(r) - (r^3 - 2*r^2*m(r))*(d(nu)/dr)^2 + r*d(m)/dr + (r^2*d(m)/dr - r^2 + r*m(r))*d(nu)/dr - (r^3 - 2*r^2*m(r))*d^2(nu)/dr^2 - m(r))*sin(th)^2/r " ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E.display_comp()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-2*(4*pi*r^2*e^(2*nu(r))*rho(r) - e^(2*nu(r))*d(m)/dr)/r^2" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E[0,0]" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[diff(m(r), r) == 4*pi*r^2*rho(r)]" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "EE0_sol = solve(E[0,0].expr()==0, diff(m(r),r))\n", "EE0_sol" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "diff(m(r), r) == 4*pi*r^2*rho(r)" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "EE0 = EE0_sol[0]\n", "EE0" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-2*(4*pi*r^3*p(r) - (r^2 - 2*r*m(r))*d(nu)/dr + m(r))/(r^3 - 2*r^2*m(r))" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E[1,1]" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "diff(nu(r), r) == (4*pi*r^3*p(r) + m(r))/(r^2 - 2*r*m(r))" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "EE1_sol = solve(E[1,1].expr()==0, diff(nu(r),r))\n", "EE1 = EE1_sol[0]\n", "EE1" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E[3,3] == E[2,2]*sin(th)^2" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-(8*pi*r^3*p(r) - (r^3 - 2*r^2*m(r))*(d(nu)/dr)^2 + r*d(m)/dr + (r^2*d(m)/dr - r^2 + r*m(r))*d(nu)/dr - (r^3 - 2*r^2*m(r))*d^2(nu)/dr^2 - m(r))/r" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E[2,2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The energy-momentum conservation equation\n", "The energy-momentum tensor must obey\n", "$$\\nabla_b T^b_{\\ \\, a} = 0$$\n", "We first form the tensor $T^b_{\\ \\, a}$ by raising the first index of $T_{ab}$:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (1,1) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "Tu = T.up(g, 0)\n", "print(Tu)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We get the Levi-Civita connection $\\nabla$ associated with the metric $g$:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Levi-Civita connection nabla_g associated with the Lorentzian metric g on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "nabla = g.connection()\n", "print(nabla)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Gam^t_t,r = d(nu)/dr \n", "Gam^t_r,t = d(nu)/dr \n", "Gam^r_t,t = (r*e^(2*nu(r)) - 2*e^(2*nu(r))*m(r))*d(nu)/dr/r \n", "Gam^r_r,r = (r*d(m)/dr - m(r))/(r^2 - 2*r*m(r)) \n", "Gam^r_th,th = -r + 2*m(r) \n", "Gam^r_ph,ph = -(r - 2*m(r))*sin(th)^2 \n", "Gam^th_r,th = 1/r \n", "Gam^th_th,r = 1/r \n", "Gam^th_ph,ph = -cos(th)*sin(th) \n", "Gam^ph_r,ph = 1/r \n", "Gam^ph_th,ph = cos(th)/sin(th) \n", "Gam^ph_ph,r = 1/r \n", "Gam^ph_ph,th = cos(th)/sin(th) " ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nabla.display()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We apply nabla to Tu to get the tensor $(\\nabla T)^b_{\\ \\, ac} = \\nabla_c T^b_{\\ \\, a}$ (MTW index convention):" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor field of type (1,2) on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "dTu = nabla(Tu)\n", "print(dTu)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The divergence $\\nabla_b T^b_{\\ \\, a}$ is then computed as the trace of the tensor $(\\nabla T)^b_{\\ \\, ac}$ on the first index ($b$, position 0) and last index ($c$, position 2):" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "divT = dTu.trace(0,2)\n", "print(divT)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also take the trace by using the index notation:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "divT == dTu['^b_{ab}']" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form on the 4-dimensional differentiable manifold M\n" ] } ], "source": [ "print(divT)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "((p(r) + rho(r))*d(nu)/dr + d(p)/dr) dr" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "divT.display()" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[0, (p(r) + rho(r))*d(nu)/dr + d(p)/dr, 0, 0]" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "divT[:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The only non trivially vanishing components is thus" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(p(r) + rho(r))*d(nu)/dr + d(p)/dr" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "divT[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hence the energy-momentum conservation equation $\\nabla_b T^b_{\\ \\, a}=0$ reduces to" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "diff(p(r), r) == -(p(r) + rho(r))*diff(nu(r), r)" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "EE2_sol = solve(divT[1].expr()==0, diff(p(r),r))\n", "EE2 = EE2_sol[0]\n", "EE2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The TOV system\n", "\n", "Let us collect all the independent equations obtained so far:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "diff(m(r), r) == 4*pi*r^2*rho(r)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "diff(nu(r), r) == (4*pi*r^3*p(r) + m(r))/(r^2 - 2*r*m(r))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "diff(p(r), r) == -(p(r) + rho(r))*diff(nu(r), r)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for eq in [EE0, EE1, EE2]:\n", " show(eq)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Solving the TOV system\n", "\n", "In order to solve the TOV system, we need to specify a fluid equation of state. For simplicity, we select a polytropic one:\n", "$$p = k \\rho^2$$" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "k*rho(r)^2" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "var('k', domain='real')\n", "p_eos(r) = k*rho(r)^2\n", "p_eos(r)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We substitute this expression for $p$ in the TOV equations:" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "diff(nu(r), r) == (4*pi*k*r^3*rho(r)^2 + m(r))/(r^2 - 2*r*m(r))" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "EE1_rho = EE1.substitute_function(p, p_eos)\n", "EE1_rho" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2*k*rho(r)*diff(rho(r), r) == -(k*rho(r)^2 + rho(r))*diff(nu(r), r)" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "EE2_rho = EE2.substitute_function(p, p_eos)\n", "EE2_rho" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "diff(rho(r), r) == -1/2*(k*rho(r) + 1)*diff(nu(r), r)/k" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "EE2_rho = (EE2_rho / (2*k*rho(r))).simplify_full()\n", "EE2_rho" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We subsitute the expression of equation EE1_rho for $\\partial \\nu/\\partial r$, in order to get rid of any derivative in the right-hand sides:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "diff(rho(r), r) == -1/2*(4*pi*k^2*r^3*rho(r)^3 + 4*pi*k*r^3*rho(r)^2 + k*m(r)*rho(r) + m(r))/(k*r^2 - 2*k*r*m(r))" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "EE2_rho = EE2_rho.subs({diff(nu(r),r): EE1_rho.rhs()}).simplify_full()\n", "EE2_rho" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The system to solve for $(m(r), \\nu(r), \\rho(r))$ is thus" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "diff(m(r), r) == 4*pi*r^2*rho(r)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "diff(nu(r), r) == (4*pi*k*r^3*rho(r)^2 + m(r))/(r^2 - 2*r*m(r))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "diff(rho(r), r) == -1/2*(4*pi*k^2*r^3*rho(r)^3 + 4*pi*k*r^3*rho(r)^2 + k*m(r)*rho(r) + m(r))/(k*r^2 - 2*k*r*m(r))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for eq in [EE0, EE1_rho, EE2_rho]:\n", " show(eq)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Numerical resolution\n", "\n", "Let us use a standard 4th-order Runge-Kutta method:" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [], "source": [ "desolve_system_rk4?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We gather all equations in a list for the ease of manipulation:" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [], "source": [ "eqs = [EE0, EE1_rho, EE2_rho]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get a numerical solution, we have of course to specify some numerical value for the EOS constant $k$; let us choose $k=1/4$:" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[4*pi*r^2*rho(r),\n", " (pi*r^3*rho(r)^2 + m(r))/(r^2 - 2*r*m(r)),\n", " -1/2*(pi*r^3*rho(r)^3 + 4*pi*r^3*rho(r)^2 + m(r)*rho(r) + 4*m(r))/(r^2 - 2*r*m(r))]" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "k0 = 1/4\n", "rhs = [eq.rhs().subs(k=k0) for eq in eqs]\n", "rhs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The integration for $m(r)$ and $\\rho(r)$ has to stop as soon as $\\rho(r)$ become negative. An easy way to ensure this is to use the Heaviside function (actually SageMath's unit_step; for some reason, heaviside does not work for the RK4 numerical resolution):" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(unit_step(x), (x,-4,4), thickness=2, aspect_ratio=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and to multiply the r.h.s. of the $dm/dr$ and $d\\rho/dr$ equations by $h(\\rho)$:" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[4*pi*r^2*rho(r)*unit_step(rho(r)),\n", " (pi*r^3*rho(r)^2 + m(r))/(r^2 - 2*r*m(r)),\n", " -1/2*(pi*r^3*rho(r)^3 + 4*pi*r^3*rho(r)^2 + m(r)*rho(r) + 4*m(r))*unit_step(rho(r))/(r^2 - 2*r*m(r))]" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rhs[0] = rhs[0] * unit_step(rho(r))\n", "rhs[2] = rhs[2] * unit_step(rho(r))\n", "rhs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us add an extra equation, for the purpose of getting the star's radius as an output of the integration, via the equation $dR/dr = 1$, again multiplied by the Heaviside function of $\\rho$:" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[4*pi*r^2*rho(r)*unit_step(rho(r)),\n", " (pi*r^3*rho(r)^2 + m(r))/(r^2 - 2*r*m(r)),\n", " -1/2*(pi*r^3*rho(r)^3 + 4*pi*r^3*rho(r)^2 + m(r)*rho(r) + 4*m(r))*unit_step(rho(r))/(r^2 - 2*r*m(r)),\n", " unit_step(rho(r))]" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rhs.append(1 * unit_step(rho(r)))\n", "rhs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the purpose of the numerical integration via desolve_system_rk4, we have to replace the symbolic functions $m(r)$, $\\nu(r)$ and $\\rho(r)$ by some symbolic variables, $m_1$, $\\nu_1$ and\n", "$\\rho_1$, say:" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[4*pi*r^2*rho_1*unit_step(rho_1),\n", " -(pi*r^3*rho_1^2 + m_1)/(2*m_1*r - r^2),\n", " 1/2*(pi*r^3*rho_1^3 + 4*pi*r^3*rho_1^2 + m_1*rho_1 + 4*m_1)*unit_step(rho_1)/(2*m_1*r - r^2),\n", " unit_step(rho_1)]" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "var('m_1 nu_1 rho_1 r_1')\n", "rhs = [y.subs({m(r): m_1, nu(r): nu_1, rho(r): rho_1}) for y in rhs]\n", "rhs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The integration parameters:" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "rho_c = 1\n", "r_min = 1e-8\n", "r_max = 1\n", "np = 200\n", "delta_r = (r_max - r_min) / (np-1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The numerical resolution, with the initial conditions \n", "$$(r_{\\rm min}, m(r_{\\rm min}), \\nu(r_{\\rm min}), \\rho(r_{\\rm min}), R(r_{\\rm min})) = (r_{\\rm min},0,0,\\rho_{\\rm c},r_{\\rm min})$$\n", "set in the parameter ics:" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [], "source": [ "sol = desolve_system_rk4(rhs, vars=(m_1, nu_1, rho_1, r_1), ivar=r, \n", " ics=[r_min, 0, 0, rho_c, r_min], \n", " end_points=r_max, step=delta_r)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The solution is returned as a list, the first 10 elements of which being:" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[[1.00000000000000e-8, 0, 0, 1, 1.00000000000000e-8],\n", " [0.00502513557788945,\n", " 5.31396735484216e-07,\n", " 0.000105774675722407,\n", " 0.9997355715039982,\n", " 0.005025135577889449],\n", " [0.0100502611557789,\n", " 4.24965314706328e-06,\n", " 0.000384231107483355,\n", " 0.9990395169277086,\n", " 0.0100502611557789],\n", " [0.01507538673366835,\n", " 1.43327909521466e-05,\n", " 0.000846989113836226,\n", " 0.9978829788643846,\n", " 0.01507538673366835],\n", " [0.0201005123115578,\n", " 3.39411395241295e-05,\n", " 0.001494375305317491,\n", " 0.9962654611649957,\n", " 0.0201005123115578],\n", " [0.02512563788944725,\n", " 6.62085388024929e-05,\n", " 0.002326219908059372,\n", " 0.99418783560987,\n", " 0.02512563788944725],\n", " [0.0301507634673367,\n", " 0.000114233579606946,\n", " 0.003342215306107709,\n", " 0.9916514444622955,\n", " 0.0301507634673367],\n", " [0.03517588904522615,\n", " 0.000181070903418294,\n", " 0.00454196301924163,\n", " 0.9886579816183987,\n", " 0.03517588904522614],\n", " [0.0402010146231156,\n", " 0.000269722576804864,\n", " 0.005924983493499082,\n", " 0.9852094664010502,\n", " 0.04020101462311559],\n", " [0.04522614020100505,\n", " 0.00038312955549096,\n", " 0.007490718320263326,\n", " 0.9813082359597236,\n", " 0.04522614020100504]]" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each element is of the form $[r, m(r), \\nu(r), \\rho(r), R(r)]$. So to get the list of $(r, \\rho(r))$ values, we write" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[(1.00000000000000e-8, 1),\n", " (0.00502513557788945, 0.9997355715039982),\n", " (0.0100502611557789, 0.9990395169277086),\n", " (0.01507538673366835, 0.9978829788643846),\n", " (0.0201005123115578, 0.9962654611649957),\n", " (0.02512563788944725, 0.99418783560987),\n", " (0.0301507634673367, 0.9916514444622955),\n", " (0.03517588904522615, 0.9886579816183987),\n", " (0.0402010146231156, 0.9852094664010502),\n", " (0.04522614020100505, 0.9813082359597236)]" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rho_sol = [(s[0], s[3]) for s in sol]\n", "rho_sol[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We may then use this list to have some plot of $\\rho(r)$, thanks to the function line, which transforms a list into a graphical object:" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph = line(rho_sol, axes_labels=[r'$r$', r'$\\rho$'], gridlines=True)\n", "graph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The solution for $m(r)$:" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[(1.00000000000000e-8, 0),\n", " (0.00502513557788945, 5.31396735484216e-07),\n", " (0.0100502611557789, 4.24965314706328e-06),\n", " (0.01507538673366835, 1.43327909521466e-05),\n", " (0.0201005123115578, 3.39411395241295e-05),\n", " (0.02512563788944725, 6.62085388024929e-05),\n", " (0.0301507634673367, 0.000114233579606946),\n", " (0.03517588904522615, 0.000181070903418294),\n", " (0.0402010146231156, 0.000269722576804864),\n", " (0.04522614020100505, 0.00038312955549096)]" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m_sol = [(s[0], s[1]) for s in sol]\n", "m_sol[:10]" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph = line(m_sol, axes_labels=[r'$r$', r'$m$'], gridlines=True)\n", "graph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The solution for $\\nu(r)$ (has to be rescaled by adding a constant to ensure $\\nu(+\\infty) = 1$):" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[(1.00000000000000e-8, 0),\n", " (0.00502513557788945, 0.000105774675722407),\n", " (0.0100502611557789, 0.000384231107483355),\n", " (0.01507538673366835, 0.000846989113836226),\n", " (0.0201005123115578, 0.001494375305317491),\n", " (0.02512563788944725, 0.002326219908059372),\n", " (0.0301507634673367, 0.003342215306107709),\n", " (0.03517588904522615, 0.00454196301924163),\n", " (0.0402010146231156, 0.005924983493499082),\n", " (0.04522614020100505, 0.007490718320263326)]" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nu_sol = [(s[0], s[2]) for s in sol]\n", "nu_sol[:10]" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph = line(nu_sol, axes_labels=[r'$r$', r'$\\tilde{\\nu}$'], gridlines=True)\n", "graph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The solution for $R(r)$:" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r_sol = [(s[0], s[4]) for s in sol]\n", "line(r_sol)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The total gravitational mass of the star is obtained via the last element (index: -1) of the list of $(r,m(r))$ values:" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0.09559565598299921" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M_grav = m_sol[-1][1]\n", "M_grav" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, the stellar radius is obtained through the last element of the list of $(r,R(r))$ values:" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0.4313232887688435" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R = r_sol[-1][1]\n", "R" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The star's compactness:" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0.22163342085205887" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M_grav/R" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sequence of stellar models\n", "\n", "Let us perform a loop on the central density.\n", "First we set up a list of values for $\\rho_c$:" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[0.0100000000000000,\n", " 0.0866666666666667,\n", " 0.163333333333333,\n", " 0.240000000000000,\n", " 0.316666666666667,\n", " 0.393333333333333,\n", " 0.470000000000000,\n", " 0.546666666666667,\n", " 0.623333333333333,\n", " 0.700000000000000,\n", " 0.776666666666667,\n", " 0.853333333333333,\n", " 0.930000000000000,\n", " 1.00666666666667,\n", " 1.08333333333333,\n", " 1.16000000000000,\n", " 1.23666666666667,\n", " 1.31333333333333,\n", " 1.39000000000000,\n", " 1.46666666666667,\n", " 1.54333333333333,\n", " 1.62000000000000,\n", " 1.69666666666667,\n", " 1.77333333333333,\n", " 1.85000000000000,\n", " 1.92666666666667,\n", " 2.00333333333333,\n", " 2.08000000000000,\n", " 2.15666666666667,\n", " 2.23333333333333,\n", " 2.31000000000000,\n", " 2.38666666666667,\n", " 2.46333333333333,\n", " 2.54000000000000,\n", " 2.61666666666667,\n", " 2.69333333333333,\n", " 2.77000000000000,\n", " 2.84666666666667,\n", " 2.92333333333333,\n", " 3.00000000000000]" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rho_c_min = 0.01\n", "rho_c_max = 3\n", "n_conf = 40\n", "rho_c_list = [rho_c_min + i * (rho_c_max-rho_c_min)/(n_conf-1) for i in range(n_conf)]\n", "rho_c_list" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The loop:" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "M_list = list()\n", "R_list = list()\n", "for rho_c in rho_c_list:\n", " sol = desolve_system_rk4(rhs, vars=(m_1, nu_1, rho_1, r_1), ivar=r, \n", " ics=[r_min, 0, 0, rho_c, r_min], \n", " end_points=r_max, step=delta_r)\n", " M_list.append( sol[-1][1] )\n", " R_list.append( sol[-1][4] )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The mass along the sequence:" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[0.003079315360454514,\n", " 0.02348546985345206,\n", " 0.03930692799158078,\n", " 0.0516981286545538,\n", " 0.06148304165147275,\n", " 0.06927984377457193,\n", " 0.07551555926927055,\n", " 0.0805202557445157,\n", " 0.08457113778228031,\n", " 0.08783166910121751,\n", " 0.09047779784378224,\n", " 0.09260717100641455,\n", " 0.09433415719194971,\n", " 0.0957016482745759,\n", " 0.09680530145501753,\n", " 0.09766591038061952,\n", " 0.09835121528373907,\n", " 0.09885145273111141,\n", " 0.09922756198663038,\n", " 0.09948788735020943,\n", " 0.09965397004970597,\n", " 0.09974081642007522,\n", " 0.09976091231232462,\n", " 0.09972549478102291,\n", " 0.09963724302696997,\n", " 0.09952192314657442,\n", " 0.09936764700836923,\n", " 0.09916251861147671,\n", " 0.09895164244004298,\n", " 0.0987339306627872,\n", " 0.09846948402179896,\n", " 0.09821523250994979,\n", " 0.09792970323068292,\n", " 0.09765239505357755,\n", " 0.09738036112959368,\n", " 0.0970791116621731,\n", " 0.09676265660918966,\n", " 0.09647034426217437,\n", " 0.096161790313415,\n", " 0.095870481103591]" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M_list" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The radius along the sequence:" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[0.6247906235175875,\n", " 0.5996649956281401,\n", " 0.575376888668341,\n", " 0.5552763863567831,\n", " 0.5368509259045217,\n", " 0.5201005073115568,\n", " 0.5050251305778883,\n", " 0.4916247957035165,\n", " 0.4798995026884412,\n", " 0.4698492515326624,\n", " 0.4589614794472353,\n", " 0.4497487492211047,\n", " 0.4396984980653258,\n", " 0.4313232887688435,\n", " 0.4246231213316576,\n", " 0.4162479120351752,\n", " 0.4095477445979893,\n", " 0.4045226190200999,\n", " 0.3986599725125622,\n", " 0.3911222841457281,\n", " 0.3860971585678387,\n", " 0.3810720329899492,\n", " 0.3760469074120598,\n", " 0.3735343446231151,\n", " 0.3693467399748739,\n", " 0.3643216143969845,\n", " 0.3592964888190951,\n", " 0.3559464051005021,\n", " 0.3542713632412057,\n", " 0.3492462376633163,\n", " 0.3458961539447233,\n", " 0.3442211120854268,\n", " 0.3408710283668339,\n", " 0.3391959865075374,\n", " 0.3366834237185927,\n", " 0.3333333399999998,\n", " 0.330820777211055,\n", " 0.3291457353517586,\n", " 0.3257956516331656,\n", " 0.3241206097738691]" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R_list" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To draw $M$ as a function of $\\rho_{\\rm c}$, we use the Python function zip to construct a list of $(\\rho_{\\rm c}, M)$ values:" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[(0.0100000000000000, 0.003079315360454514),\n", " (0.0866666666666667, 0.02348546985345206),\n", " (0.163333333333333, 0.03930692799158078),\n", " (0.240000000000000, 0.0516981286545538),\n", " (0.316666666666667, 0.06148304165147275),\n", " (0.393333333333333, 0.06927984377457193),\n", " (0.470000000000000, 0.07551555926927055),\n", " (0.546666666666667, 0.0805202557445157),\n", " (0.623333333333333, 0.08457113778228031),\n", " (0.700000000000000, 0.08783166910121751),\n", " (0.776666666666667, 0.09047779784378224),\n", " (0.853333333333333, 0.09260717100641455),\n", " (0.930000000000000, 0.09433415719194971),\n", " (1.00666666666667, 0.0957016482745759),\n", " (1.08333333333333, 0.09680530145501753),\n", " (1.16000000000000, 0.09766591038061952),\n", " (1.23666666666667, 0.09835121528373907),\n", " (1.31333333333333, 0.09885145273111141),\n", " (1.39000000000000, 0.09922756198663038),\n", " (1.46666666666667, 0.09948788735020943),\n", " (1.54333333333333, 0.09965397004970597),\n", " (1.62000000000000, 0.09974081642007522),\n", " (1.69666666666667, 0.09976091231232462),\n", " (1.77333333333333, 0.09972549478102291),\n", " (1.85000000000000, 0.09963724302696997),\n", " (1.92666666666667, 0.09952192314657442),\n", " (2.00333333333333, 0.09936764700836923),\n", " (2.08000000000000, 0.09916251861147671),\n", " (2.15666666666667, 0.09895164244004298),\n", " (2.23333333333333, 0.0987339306627872),\n", " (2.31000000000000, 0.09846948402179896),\n", " (2.38666666666667, 0.09821523250994979),\n", " (2.46333333333333, 0.09792970323068292),\n", " (2.54000000000000, 0.09765239505357755),\n", " (2.61666666666667, 0.09738036112959368),\n", " (2.69333333333333, 0.0970791116621731),\n", " (2.77000000000000, 0.09676265660918966),\n", " (2.84666666666667, 0.09647034426217437),\n", " (2.92333333333333, 0.096161790313415),\n", " (3.00000000000000, 0.095870481103591)]" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "zip(rho_c_list, M_list)" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "image/png": "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fvCDJntrHEFTZghzyNF+ZOgGcrSfyxnSOMCo3NzcJnuv//kf6W9/k/76V2nkyCZ7W9SjKTOEOeRoPzJ0Aznaz+UMmRwNJ/z1r9IvfuGtnnTTTaarAQAAcA8jDrDeK694tyj9+tfSjTeargYAAMBNNA6w2jvvSD/7mfTjH0sPPijFxZmuCAAAwE00DrBWUZF04YVSr17SM89IrVqZrggAAMBdNA4wasqUKY163d690k9/KpWVSS++KDHVxZzGZojoQo72I0M3kKP9XM6QfRxgVEpKSsivKS+XJk2SCgultWulk06KQGFosMZkiOhDjvYjQzeQo/1czpBVlWCd667z5jM8/7yUmmq6GgAAgNjAiAOscv/90gMPSA8/TNMAAADQnBo1x2HBggXq27ev2rZtq6FDh2rt2rVHPH/x4sVKTExUmzZtlJiYqCVLltT4+Xfffafp06frxBNPVLt27TRw4EA99NBDjSkNDsvPl66/Xpo9W7ryStPVAAAAxJaQG4dFixZp5syZuvXWW7V582adffbZSk1NVSAQqPP8goICpaWlKTMzU1u2bFFmZqYuueQSbdy4seqc66+/XitWrNDChQv13nvv6frrr9e1116r5557rvFXBiusW7euQee98YY3r2HiRG+TN0SPhmaI6EaO9iNDN5Cj/VzOMOQ5DsnJyUpKSqoxIjBw4ECNHz9ec+v4G11aWpp2796t5cuXVx0bO3asOnfuXLUl96BBg5SWlqbbb7+96pyhQ4fqwgsv1O9///ta78kcB3f4fD4tXbr0iOcEAtIZZ0j9+0urVknt2jVTcWiQhmSI6EeO9iNDN5Cj/VzOMKQRhwMHDmjTpk21ZounpKRo/fr1db6moKCg1vljxoypcf7IkSO1dOlSbd26VcFgUK+++qo++OADjRkzJpTyYKG8vLwj/ry8XJo8WWrb1rtViaYh+tSXIexAjvYjQzeQo/1czjCkydHFxcUqLy9Xt27dahzv1q2bioqK6nxNUVFRvec/8MAD+vWvf60TTzxR8fHxatGihR5//HGNHDkylPJgofbt2x/x53ffLb32mrR6tXTccc1TE0JTX4awAznajwzdQI72cznDRq2qFBcXV+P7YDBY61go5z/wwAPasGGDli5dqt69e+u1117TNddcoxNOOEHnn39+Y0qEA/71L+m227zJ0KNGma4GAAAgtoV0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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph = line(zip(rho_c_list, M_list), axes_labels=[r'$\\rho_c$', r'$M$'], gridlines=True)\n", "graph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, we draw $M$ as a function of $R$:" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAw8AAAJKCAYAAABqPnm9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xuc1nP+//HH1OhIabXKqSKnQjJpI6WwOqArYZsJscU6FXKodViHddhMDmu1YmUc0xSLEUJaopTWNskum2StwWr7DrZo0On6/fH5VcZ0mKtm5nO9r3ncb7frVn3mM9e8Pp59NK95Hz5ZyWQyiSRJkiRtQZ24C5AkSZIUBpsHSZIkSZVi8yBJkiSpUmweJEmSJFWKzYMkSZKkSrF5kCRJklQpNg+SJEmSKsXmQZIkSVKl2DxIkiRJqhSbB0mSJEmVYvMgSZIkqVJsHiRJkiRVSlo3D3/+8585+OCD2WGHHcjKyqJhw4aUlZVt8fOeeuop6tWrR1ZWFnvssQcdO3Zk8eLFNVCxJEmSlLnSunk45ZRTWLBgAVdeeSWdO3fmu+++41//+tdmP+eLL77g6aefZtWqVZxwwgl88sknvP322+y99941VLUkSZKUmdK6eVjnrbfe4swzzwTgww8/3Oy5t912Gzk5OQAcd9xx1V6bJEmSVFukffOwZs0avvvuOzp27Aiw2elHL730EocddhjFxcUAHHXUUTVSoyRJklQbpH3zMG/ePHJycmjbti2w6ZGHFStWMH36dPr378+MGTPYZZdd2H///WuyVEmSJCmjpX3zMGPGDI466ihatmxJ48aNN9k83HbbbVx22WUsXryYTz/91FEHSZIkqYqlffPwxhtv0LVrVwD22muvjU5bmjt3Lm3atKFly5a8+uqrgFOWJEmSpKqW1s3D6tWrWb16NY0aNQKgbdu2lJSUsHr16vXnrFy5kokTJ65fUL2ueTj66KNrvmBJkiQpg6V18/DWW29x6KGHrv9z27ZtWb16NR9//PH6Y3/4wx+46KKL1v95xowZtGrVir322qtGa5UkSZIyXVo3D+vWO6yzbtH0uqlL7733HvXr119//P333+fzzz93ypIkSZJUDdK6eZgzZw6HHXbY+j//cMeltWvXcs899zBs2LD1H3fKkiRJklR90rZ5WLVqFclkkgYNGqw/9sPm4d577+Wss86ibt266z/uYmlJkiSp+qRt8zB37lw6d+5c7ljr1q3Jzs7mtdde46uvvlr/4Lh1XnvtNdq2bcsee+xRk6VKkiRJtUJaNg8rVqxg9OjR7LTTTuWOZ2dn07p1a5YvX85ll11W7mPFxcX897//pXv37jVZqiRJklRrpFXz8N1335GTk8POO+/M1KlTueiii9hrr71YtGjR+nM6d+7M+PHj109nGjVqFAcccADdunUD4PHHH+eggw7i9ttvj+UaJEmSpEyVlUwmk3EXIUmSJCn9pdXIgyRJkqT0ZfMgSZIkqVJsHiRJkiRVis2DJEmSpEqxeZAkSZJUKTYPkiRJkirF5kGSJElSpdg8SJIkSaoUmwdJkiRJlWLzIEmSJKlSbB4kSZIkVYrNgyRJkqRKsXmQJEmSVCk2D5IkSZIqJcjmIZlMsnz5cpLJZNylSJIkSbVGkM3D119/TdOmTfn666/jLkWSJEmqNYJsHiRJkiTVPJsHSZIkSZVSbc3DuHHj2HPPPWnQoAGdOnVi5syZmzz33Xff5eSTT6ZNmzZkZWVx5513VldZ2oRZs2bFXYJSZGbhMbMwmVt4zCw8ZhaOamkeJk+ezIgRI7j66quZP38+3bt3p2/fvpSUlGz0/LKyMvbaay9uueUWWrZsWR0laQvGjBkTdwlKkZmFx8zCZG7hMbPwmFk4spLVsGVRly5dyMnJ4Z577ll/rF27dpx44omMHj16s5/bpk0bRowYwYgRIzZ5zvLly2natCnLli2jSZMmVVZ3bVZWVkajRo3iLkMpMLPwmFmYzC08ZhYeMwtHlY88rFy5knnz5tGrV69yx3v16sXs2bOr+supinjDhsfMwmNmYTK38JhZeMwsHFXePJSWlrJmzRpatGhR7niLFi1YsmRJVX85SZIkSTWk2hZMZ2VllftzMpmscEySJElSOKq8eWjevDl169atMMqwdOnSCqMR2yovL49EIlHuVVhYuNnPKSwsZMiQIRWO5+bmUlRUVO7YtGnTSCQSFc4dNmwYBQUF5Y4VFxeTSCQoLS0td/y6664jPz+/3LGSkhISiQQLFy4sd3zs2LGMHDmy3LGysjISiUSFXQiq+jrWfd24ryOZhBUroH//XMaNK6K4GGbMgGefhSuumMbBBye4/Xb47W/h8svhvPNg332HccghBRxzDHTpAgceCHvsUUyDBgmaNSulcWOoWxfq1IE6da6jbt18GjaExo1hhx2gSZMS6tVL0KzZQnbeGXbZBdq0gZYtx9Ky5Uh69IC+feHkk2HQoDJat04wcOAsrr4abr4Z7r4bLrywkN69hzB/PpSURNeQTFbv36sjjzyy2vNYp7bfH1V1HSNHjsyI64DMyKOy17Hu46Ffxzq14TpOPPHEjLiOTMmjMtcxcuTIjLgOqJo8tvT9bJyqbcF0p06dGDdu3Ppj7du3p3///i6YTlNjx47lwgsvrJL3Sibhyy83vL76qvyff3zsf/+D5cvh66+j19q1m37vOnVg++2j1w47bPj9D//cuDE0bAgNGpR/1akDa9ZE77927Ybf//jYmjXw/fdQVrbl14oVUf2rVlWstX592GknaN48+nXd7zf3atQIKjtAV5WZqWaYWZjMLTxmFh4zC0e1NA+TJ09m8ODB3HvvvRx++OHcd999jB8/nnfffZfWrVtzxhlnsNtuu61vJFauXMl7770HwHHHHcdpp53Gaaedxvbbb8/ee+9d4f1tHuK3Zg188gl8+CEsXrzh9eGH0ausrOLn1KsHP/nJhlezZtGvO+4ITZqsGwWIfl33+uGfmzSJmoJ0m/2WTMI330BpKXzxxcZfP/xYaWn02th/owYNNt9ctGwJe+8dvRo3rvlrlSRJtVu1NA8QPSRuzJgxfP755xx44IH8/ve/Xz/NomfPnrRp04aHHnoIgH//+9/sueeeFd6jR48ezJgxo8Jxm4d4fP45vPgivPACvPxy9BN3iKYEtWkDbdtG39S2bQutW0c/af9ho5DKT9Vrg7KyqJn4v//b0FBs6fXDEY7ddoN99oF9941+Xfdq2zYa9ZAkSapq1dY8VCebh6pVVhY1Bj9+/ec/5f/8xRfRN/8/+1m0BqBLl6hZaN0attsu7qvIfMlk1EAsXgyLFsEHH2x4LVoUTaGCaHpWq1YbGosDD4SuXeGAA6JGT5IkaWvZPNQiX3wBf/87vPPOhteiRbBsGcBCYH8g+qn1LrtEr1133fD7tm3hmGOi6TOK38KFC9l//yizZBKWLCnfTKz7/cKFsHp1NPWrS5eokejaNfr9jjvGfBG1zA8zUzjMLTxmFh4zC4fNQwZbtAgmT4Y5c6JG4bPPouP16kU/he7QAdq1ixqEceMSFBRMYZddom8onV6U/hKJBFOmTNnieWVl8Le/RX8PZs+OXqWlUcbt229oJg4/PBqpMPvqU9nMlF7MLTxmFh4zC4fNQwb57jv4xz/g1VehsBDmz492H+rRAw4+GA46KGoY9t0XsrPLf25JSQmtWrWKp3Btla3NLJmMpj6tayRmz4Z3342O77QTHHFE9OrWDTp1cv1EVfI+C5O5hcfMwmNm4bB5CNTXX8OCBVBcHDUJxcXw3nvR9JQGDeCEE2DQoGhtQsOGcVerdLdsGbz5ZtRIzJoV/b6sLGocDj00aiSOOCIaodhpp7irlSRJcbF5CEhpaTSi8PDDUbOQTEbf3B10EOTkwCGHRL8edJANg7bNqlVRc/rGG9Fr1qxo0TxEU93WNRNHHBGthXGqkyRJtYPNQxpLJuGjj+C11+C556KnLCeT0K9f9OrUKfpGzp2OVN2SSfj3vzc0Em+8sWGqU4sWG6Y5HXFE1MT6d1KSpMxUJ+4CtMHatdHOOOPHw+mnR9tttm0LZ50FH38Mt94abZ/61FMwZEi0fqGqvkn78aPRlf5qMrOsLNhzz+jv5b33Rrt2ffEFPP989PeztBSuumrDDk5HHw3XXAMvvRQ9PVwR77MwmVt4zCw8ZhaO7C2fouqwblThb3+Dt96Kfp03L1rLUKdONP0oNzda7NytW/SQtepUtrHHHSutxZ1Zs2Zw3HHRC2Dlymg63brRiXvvhZtuiv4+H3RQ9Pd43ejEHnvEWnps4s5MW8fcwmNm4TGzcDhtqYYkk9E0jxdegOnTo4bhq6+ij7VuHS1KPfTQaCpSly4QyGVJm5RMRs+ZmDVrw1SnRYuij7VqtaGR6NbNB9hJkhQKm4dq9M038PLLUcPwwgvw6afRQuaePaM99Tt3jpqFn/407kqlmrF0aflF2PPmRTuENW0a3RPdukGfPtHIm4uwJUlKPzYPVSyZjEYVxo+PdkZasSJ6rsJxx0Xbph55ZLSVqqRoO9i//nVDMzF7drRG4oAD4MwzozUWu+wSd5WSJGkdm4dtlEzCJ59EDcNf/wovvhg9zXmPPaKFpKefHi16TnelpaU0b9487jKUgkzMbPXqaFrfQw9BUVG0ZWyfPvDLX0Y7jIXeeGdiZrWBuYXHzMJjZuFwt6UULV8e7SBz442QSEQ/FW3dGk45BSZOhP33j3ag+egjuO66MBoHgKFDh8ZdglKUiZllZ0fNwqRJ0XMlxo2DL7+EgQOje+2CC2Du3KhpD1EmZlYbmFt4zCw8ZhYORx4qIZmMplOMHw+PPw7ffhttR/mzn0XrFtb9GvL0iuLiYnJycuIuQymoTZm9/370cMRHHoHPPoua9DPPhMGDYbfd4q6u8mpTZpnE3MJjZuExs3DYPGzBX/4CF10E770HbdrA2WfDL34B++zjgk6ppq1ZA6+8Ek1reuqpaHvYY4+NpjX17++T1SVJqm5OW9qCpk2jxZvTpsGHH8LVV0cLoG0cpJpXt27ULDz2GCxZAn/6U7QpwaBB0cjfOedEi6/D+5GIJElhcORBUvA++CCa0vTII1BSEq01OuOM6NWmTdzVSZKUORx5EAAFBQVxl6AUmdkG++wTbWLw0Ufw6qvQvTuMGQN77hk9V+XBB6Ont8fNzMJkbuExs/CYWThsHgREC5UUFjOrqE6dDc3Cf/8bjURkZ0fbJrdoEW2d/PLL0dqJOJhZmMwtPGYWHjMLR9DTlvr27Ut2djaDBg1i0KBBcZclKU198glMmBDt2PT++7D77lEjceaZ0c5NkiSpcoJuHlzzICkVyWT0MMeHH46eJfHVV9FWy2ecAXl5sNNOcVcoSVJ6s3mQVCt9/z0891zUSEydGk156tcvGo3o2xe22y7uCiVJSj82D5JqvaVLoyfEP/wwvP027Lxz1EScdRbst1/c1UmSlD5cMC0AEolE3CUoRWZWdXbeGUaMgPnzYcGC6LkRBQXReogjj4yairKybf86ZhYmcwuPmYXHzMJh8yAAhg8fHncJSpGZVY8OHeDOO+Gzz6J1EfXrR0+w3mUXOP98mDdv6x9CZ2ZhMrfwmFl4zCwcTluSpC3417+i7V8ffDBqKg4+GM4+G047DZo1i7s6SZJqjs2DJFXSmjXw0ktw//3w7LNQty6cckq0NqJHj2jRtSRJmczmQZK2wpIl0UPoCgpg0SJo2zZqItZNcZIkKRP5czIBUFRUFHcJSpGZxatlSxg1ChYuhNdfhyOOgBtvhD32gP79o5GJ1avLf46ZhcncwmNm4TGzcNg8CIDCwsK4S1CKzCw9ZGVB9+7Rjkz/+Q+MHQuffgqJBLRqBVddBYsXR+eaWZjMLTxmFh4zC4fTliSpGsyfH01pmjABli2Dnj3h4oujUYmsrLirkyRp6zjyIEnV4JBD4I9/hM8/h0cfjRZbDxgAXbrA9OlxVydJ0taxeZCkatSwIZx+erQu4i9/iXZkOvZYOOYYePPNuKuTJCk1Ng+SVEOOPhrmzIFnnoGlS+Hww6NpTH//e9yVSZJUOTYPAmDIkCFxl6AUmVl4hgwZQlZWtJj67bej9RD/+Ef00LnTTtuwsFrpxXstPGYWHjMLh82DAOjVq1fcJShFZhaeH2ZWt27UMCxcCPfcAzNmQLt2cN550VOslT6818JjZuExs3C425IkpYFvv4W774bRo6GsDIYNgyuugObN465MkqQNHHmQpDTQsCFcfjl89BH8+tfwpz/BXnvB9dfD8uVxVydJUsTmQZLSSJMmUcPwr3/Br34Ft9wSNRG33x6NTkiSFCebBwEwa9asuEtQiswsPKlk9tOfRg3D4sVw8snRaMTee0cjEqtWVWORqsB7LTxmFh4zC4fNgwAYM2ZM3CUoRWYWnq3JbPfdo4Zh4cLoKdXnnx8trJ44EdaurfoaVZH3WnjMLDxmFg4XTAuAsrIyGjVqFHcZSoGZhacqMnvnHfjNb+DZZ6FDB7j1VnCTkurlvRYeMwuPmYXDkQcBeMMGyMzCUxWZdegAU6bAG2/ADjtA797R6513qqBAbZT3WnjMLDxmFg6bB0kKUNeuMHMmPPVUtENTx44wZAh8+mnclUmSMlnQzUNeXh6JRILCwsK4S5GkGpeVBQMGwLvvwtix8NxzsO++cPXVbu8qSaoeQTcPkyZNYsqUKQwaNCjuUoI3cuTIuEtQiswsPNWV2XbbRQ+VW7wYRoyAO+6IdmYaN86dmaqC91p4zCw8ZhaOoJsHVZ1WrVrFXYJSZGbhqe7MmjaF3/0OFi2C446D4cPhwAOhqAjC2xojfXivhcfMwmNm4XC3JUnKUG+/DaNGwcsvQ7ducNtt0KVL3FVJkkLmyIMkZaiOHWHaNHjxRVi2DA47DHJzo6dXS5K0NWweJCnD9e4N8+dDQQHMmgX77w+XXgpffBF3ZZKk0Ng8CICFCxfGXYJSZGbhiTOzunVh6NBoPcS118L48dGi6ttug+++i62sIHivhcfMwmNm4bB5EACjRo2KuwSlyMzCkw6ZNW4cPaF68WIYNAiuuCIaiZg4Edaujbu69JQOuSk1ZhYeMwuHC6YFQElJiTsdBMbMwpOOmS1cGDUQzzwDhx4Kt94KPXvGXVV6ScfctHlmFh4zC4fNgySJ11+Hyy+Ht96CE06AMWOgXbu4q5IkpRunLUmSOPJIePNNKCyEf/wjej7Er3/tQ+YkSeXZPEiSAKhTB/LyoqlMN90UPam6e3f46KO4K5MkpQubBwGQn58fdwlKkZmFJ5TM6teHK6+EN96ApUuj50U88UTcVcUnlNy0gZmFx8zCYfMgAMrKyuIuQSkys/CEltnPfhY9H6J3bxg4EM47D779Nu6qal5oucnMQmRm4XDBtCRps5JJuP9+uOii6NkQkydD+/ZxVyVJioMjD5KkzcrKgl/9KtqJae3aaEvXgoKoqZAk1S42D5KkSjnwwKiBOO00OPtsOPVUWL487qokSTXJ5kEAlJaWxl2CUmRm4cmEzBo1gvHjoy1dn38eDjkE/va3uKuqXpmQW21jZuExs3DYPAiAoUOHxl2CUmRm4cmkzPLyosXUP/kJdO0abeu6dm3cVVWPTMqttjCz8JhZOFwwLQCKi4vJycmJuwylwMzCk4mZrVwJV10Ft98Oxx0HDz8MzZvHXVXVysTcMp2ZhcfMwmHzIEnaZlOnwplnQr16MHEi9OgRd0WSpOrgtCVJ0jY77jh4+23Yd184+mi4/npYsybuqiRJVc3mQZJUJXbbDaZPh+uugxtvjJqITz+NuypJUlWyeRAABQUFcZegFJlZeGpDZnXrwrXXwiuvwIcfQseO8NxzcVe1bWpDbpnGzMJjZuGweRAQLVRSWMwsPLUpsx49omlMhx8O/frBJZfA99/HXdXWqU25ZQozC4+ZhSPoBdN9+/YlOzubQYMGMWjQoLjLkiT9SDIJd90FI0dChw4waRLsvXfcVUmStlbQzYO7LUlSGObNg9xc+O9/oaAABg6MuyJJ0tZw2pIkqdp16gTFxXDCCVETcemlsGpV3FVJklJl8yBJqhFNmkTPgLjzThg7Fn7+82gkQpIUDpsHAZBIJOIuQSkys/CYGWRlwcUXR7sxLVoEOTkwe3bcVW2euYXHzMJjZuGweRAAw4cPj7sEpcjMwmNmG3TvHk1j2nNP6NkT7r47WlydjswtPGYWHjMLhwumJUmxWbky2onprrvg9NPhT3+CRo3irkqStCmOPEiSYlOvHvzhDzBhAjz5JHTtGj1cTpKUnmweJEmxO+00ePNN+OYbOPRQeP75uCuSJG2MzYMAKCoqirsEpcjMwmNmm9ehA/ztb9CtW7Sl6/XXw9q1cVdlbiEys/CYWThsHgRAYWFh3CUoRWYWHjPbsh13hGeegRtvhBtugH794Msv463J3MJjZuExs3C4YFqSlJZefBFOPTVqKJ56Cjp2jLsiSZIjD5KktNSnD8ybFzUPhx8OjzwSd0WSJJsHSVLa2nNPeOMNyMuDM8+EYcOi7V0lSfGweZAkpbWGDeGBB+Cee2D8+Oihcp99FndVklQ72TwIgCFDhsRdglJkZuExs62XlQXnnQczZ0JJCeTkwGuv1czXNrfwmFl4zCwcNg8CoFevXnGXoBSZWXjMbNt16QLFxXDAAXDMMXDHHVDd236YW3jMLDxmFg53W5IkBWf1arjqKrj1Vhg4EAoKYPvt465KkjKfIw+SpOBkZ8OYMfDEEzB1ajQi8f77cVclSZlvq5qHcePGseeee9KgQQM6derEzJkzN3v+k08+Sfv27alfvz7t27fn6aefLvfxb775huHDh7P77rvTsGFD2rVrxz333LM1pUmSapFTToG//jV6EnXnzvCjf14kSVUs5eZh8uTJjBgxgquvvpr58+fTvXt3+vbtS0lJyUbPnzNnDrm5uQwePJgFCxYwePBgBg4cyNy5c9efc8kll/Diiy8yYcIE/vnPf3LJJZdw4YUX8swzz2z9lSkls2bNirsEpcjMwmNm1aNdu6iB6NULTjoJrrwS1qypuvc3t/CYWXjMLBwpr3no0qULOTk55UYG2rVrx4knnsjo0aMrnJ+bm8vy5ct54YUX1h/r06cPzZo1W/8o8gMPPJDc3Fyuueaa9ed06tSJ4447jhtvvLHCe7rmoeolEgmmTJkSdxlKgZmFx8yqVzIJt90GV1wBRx8NkyfDT36y7e9rbuExs/CYWThSGnlYuXIl8+bNq7AivlevXsyePXujnzNnzpwK5/fu3bvc+d26dWPKlCl89tlnJJNJXn31VRYtWkTv3r1TKU/bYNKkSXGXoBSZWXjMrHplZcHIkfDyyzB/Phx2GHzwwba/r7mFx8zCY2bhSKl5KC0tZc2aNbRo0aLc8RYtWrBkyZKNfs6SJUu2eP5dd91F+/bt2X333alXrx59+vRh3LhxdOvWLZXytA0aNWoUdwlKkZmFx8xqxtFHw5tvQp060ULqGTO27f3MLTxmFh4zC8dWLZjOysoq9+dkMlnhWCrn33XXXbz55ptMmTKFefPmcfvtt3PBBRcwffr0rSlPklTL7b03zJkTPUyuVy948MG4K5KkzJBS89C8eXPq1q1bYZRh6dKlFUYX1mnZsuVmz//222+56qqruOOOO+jXrx8dOnRg+PDh5Obmctttt222nry8PBKJRLnXunUUm1JYWLjRpxjm5uZSVFRU7ti0adNIJBIVzh02bBgFBQXljhUXF5NIJCgtLS13/LrrriM/P7/csZKSEhKJBAsXLix3fOzYsYwcObLcsbKyMhKJRIWFRF6H1+F1eB1ex+avo1kzeOEFGDIEhg4tYZ99Erz3XnjX8UMh5+F1eB1eR+WvY0vfz8YqmaKf/exnyfPPP7/csXbt2iWvuOKKjZ4/cODAZN++fcsd69OnTzIvLy+ZTCaTy5YtSwLJqVOnljvnnHPOSR577LEbfc91n7Ns2bJUy9cmXH755XGXoBSZWXjMLB5r1yaTt9+eTGZlJZMDBiST33yT2uebW3jMLDxmFo7sVJuNSy+9lMGDB3PooYdy+OGHc99991FSUsJ5550HwBlnnMFuu+22fueliy++mCOPPJL8/Hz69+/PM888w/Tp09d3ek2aNKFHjx6MHDmShg0b0rp1a1577TUeeeQR7rjjjiprkrR5rVq1irsEpcjMwmNm8cjKgksvjaYynXoq9OgBU6bArrtW7vPNLTxmFh4zC0fKW7VC9JC4MWPG8Pnnn3PggQfy+9//niOPPBKAnj170qZNGx566KH15//5z3/mN7/5Df/6179o27YtN998MyeddNL6jy9ZsoQrr7ySadOm8eWXX9K6dWvOOeccLrnkko2upXCrVknS1pg/H/r1i37/7LNwyCHx1iNJodmq5iFuNg+SpK31n/9AIgELF8LEidHvJUmVs1W7LUmSFKpdd4XXXoPeveHEE+H226MHzEmStszmQQAVdiZQ+jOz8JhZ+mjcGJ54AkaNgssvh3PPhVWrNn6uuYXHzMJjZuGweRAAo0aNirsEpcjMwmNm6aVOHbjlFnjggeg5EH37wldfVTzP3MJjZuExs3C45kFAtKewOx2ExczCY2bpa8YMOPlk+OlP4fnnoW3bDR8zt/CYWXjMLBw2D5IkAR98AMcfD19+CU8/Dd27x12RJKUfpy1JkgTssw+8+SYcdBAccww88kjcFUlS+rF5kCTp//vJT+Cll2DwYDjzTLj6ali7Nu6qJCl92DwIgPz8/LhLUIrMLDxmFoZ69eD++2HMGBg9Gg4+OJ+ysrirUiq818JjZuGweRAAZf7LGBwzC4+ZhSMrC0aOhKeegoULy+jZE5YsibsqVZb3WnjMLBwumJYkaTOKi6FfP6hbF557Djp0iLsiSYqPIw+SJG1GTg789a/QvDkccUS0lask1VY2D5IkbcFuu8Hrr0e7MCUScOedEN64vSRtO5sHAVBaWhp3CUqRmYXHzMK0Lrftt4/WQFx2GVxyCVxwAaxaFXNx2ijvtfCYWThsHgTA0KFD4y5BKTKz8JhZmH6YW5060S5M48dHOzIdfzz8738xFqeN8l4Lj5mFwwXTAqC4uJicnJy4y1AKzCw8ZhamTeV7dP8kAAAgAElEQVT2yitw8smwyy7RQuq99oqhOG2U91p4zCwcNg+SJG2l99+PRh+WLYOiomhBtSRlMqctSZK0lfbbD+bOhfbt4eij4Ykn4q5IkqqXzYMkSdtgp53g5ZfhF7+AvDwoKIi7IkmqPjYPAqDAf+2CY2bhMbMwVSa3evXgkUfg3HPh7LPhjjtqoDBtkvdaeMwsHEE3D3l5eSQSCQoLC+MuJXjFxcVxl6AUmVl4zCxMlc2tTh24+2648spoO9drr/VZEHHxXguPmYXDBdOSJFWx/Hy44gq48MLogXJ1gv5RnSRtkB13AZIkZZpf/xp23BHOPz/aiamgALL9F1dSBvB/ZZIkVYNzz4UmTeCMM+Drr6GwEOrXj7sqSdo2DqRKklRNBg2Cp5+GF16Afv1gxYq4K5KkbWPzIAASiUTcJShFZhYeMwvTtuZ2wglR8zBnDhx7LHz1VRUVpk3yXguPmYXD5kEADB8+PO4SlCIzC4+ZhakqcuvZE155JXoidc+e8N//bvNbajO818JjZuFwtyVJkmrIu+9Gow/bbx89WK5167grkqTUOPIgSVINOeAAmDULVq+G7t2jkQhJConNgyRJNWivvaIGYocdogZi/vy4K5KkyrN5EABFRUVxl6AUmVl4zCxM1ZHbrrvC669H05aOOgreeKPKv0St5r0WHjMLh82DACgsLIy7BKXIzMJjZmGqrtx22gn+8hfo2DFaB/HSS9XyZWol77XwmFk4XDAtSVKMvv0WBg6MmofCQjj55LgrkqRNc+RBkqQYNWwITz0Fp5wSNREPPhh3RZK0adlxFyBJUm233Xbw6KPQpAkMHQrLl8PFF8ddlSRVZPMgSVIaqFsX7rkHmjaFESPgf/+Da6+FrKy4K5OkDZy2JACGDBkSdwlKkZmFx8zCVJO5ZWVBfj6MHg3XXw+XXgpr19bYl88Y3mvhMbNwOPIgAHr16hV3CUqRmYXHzMIUR25XXBFNYRo2DJYtg/vug2z/xa4077XwmFk43G1JkqQ0NWEC/PKXcOKJ8NhjUL9+3BVJqu2ctiRJUpo6/fRoJ6bnnoNEAlasiLsiSbWdzYMkSWkskYCpU6OnUPfuHS2klqS42DwIgFmzZsVdglJkZuExszClQ25HHx09jfq99+Coo2Dp0rgrSm/pkJlSY2bhsHkQAGPGjIm7BKXIzMJjZmFKl9y6dIHXX4clS6B7d/jkk7grSl/pkpkqz8zC4YJpAVBWVkajRo3iLkMpMLPwmFmY0i23xYvh5z+HZBJefhn23TfuitJPumWmLTOzcDjyIABv2ACZWXjMLEzpltvee8OsWdCoUTQCsWBB3BWln3TLTFtmZuEIunnIy8sjkUhQWFgYdymSJNWY3XePpjDtvjv07AmzZ8ddkaTawmlLkiQFatky6NcP5s2DZ56JpjNJUnUKeuRBVWfkyJFxl6AUmVl4zCxM6Zxb06bw4ovQowccfzw8/XTcFaWHdM5MG2dm4bB5EACtWrWKuwSlyMzCY2ZhSvfcGjWCoiIYMABOOQUmT467ovile2aqyMzC4bQlSZIywJo1MGQIFBZGT6Xu1y/uiiRlIkceJEnKAHXrwgMPRE3DL34Br7wSd0WSMpHNgyRJGSI7Oxp56NkTEgl48824K5KUaWweBMDChQvjLkEpMrPwmFmYQsutfv1o2lJODvTtC2+/HXdFNS+0zGRmIbF5EACjRo2KuwSlyMzCY2ZhCjG3Ro3g2WehbVvo1Qvefz/uimpWiJnVdmYWDhdMC4CSkhJ3OgiMmYXHzMIUcm5ffBFt47psGcycCW3axF1RzQg5s9rKzMJh8yBJUgb7/HPo3h2SyaiB2HXXuCuSFDKnLUmSlMF22QWmT4eVK+HYY6G0NO6KJIXM5kGSpAzXpk3UQJSWQp8+0TQmSdoaNg8CID8/P+4SlCIzC4+ZhSlTcttvP5g2DT78EE44AVasiLui6pMpmdUmZhYOmwcBUFZWFncJSpGZhcfMwpRJuR18MLzwAsyfDyedBN9/H3dF1SOTMqstzCwcLpiWJKmWeeUVOO646PX449HD5SSpMhx5kCSpljn6aPjzn6NnQQwZAmvXxl2RpFDYPEiSVAudcAJMmAATJ8Lw4dFWrpK0JTYPAqDUvfuCY2bhMbMwZXJuubkwfjzccw9ccUXmNBCZnFmmMrNw2DwIgKFDh8ZdglJkZuExszBlem5Dh8Kdd8KYMfC738VdTdXI9MwykZmFwwXTAqC4uJicnJy4y1AKzCw8Zham2pLbTTfBNddEjcTFF8ddzbapLZllEjMLh82DJEkimYRf/xpuvRUKCqIRCUn6MTdnkyRJZGVBfj58/TX86lew/fYwcGDcVUlKNzYPkiQJiBqIu++Gb76B006Dxo3h+OPjrkpSOnHBtAAoKCiIuwSlyMzCY2Zhqm251akDDz4I/frBySfDq6/GXVHqaltmmcDMwhF085CXl0cikaCwsDDuUoJXXFwcdwlKkZmFx8zCVBtzy86GwkI48sioiXjzzbgrSk1tzCx0ZhYOF0xLkqSNWrEC+vSBf/wDZsyAgw+OuyJJcQt65EGSJFWfxo3huedgr72gVy94//24K5IUN5sHSZK0SU2bwksvQfPm8POfw8cfx12RpDjZPEiSpM1q3hxefhnq1YNjjoHPP4+7IklxsXkQAIlEIu4SlCIzC4+ZhcncIrvuCn/5C3z3HRx7LHzxRdwVbZqZhcfMwmHzIACGDx8edwlKkZmFx8zCZG4btGkD06fD0qXRQurly+OuaOPMLDxmFg53W5IkSSl5+2046ig46CB48UVo1CjuiiTVFEceJElSSjp2hKlTobgYTjoJvv8+7ook1RSbB0mSlLLDD4cpU6LnP5x6KqxeHXdFkmqCzYMAKCoqirsEpcjMwmNmYTK3TTv6aHjiiaiJGDoU1q6Nu6KImYXHzMJh8yAACgsL4y5BKTKz8JhZmMxt8/r1g0cfhQkT4MILIR1WUppZeMwsHC6YliRJ26ygAM4+G379axg9GrKy4q5IUnXIjrsASZIUvrPOgq+/hksugSZN4Kqr4q5IUnWweZAkSVVixIjo2Q9XXw077BBNY5KUWWweJElSlbnmmmgE4qKLYPvtYciQuCuSVJVcMC0Ahvh/9+CYWXjMLEzmlpqsLBgzBs49N1oD8cQTNV+DmYXHzMLhyIMA6NWrV9wlKEVmFh4zC5O5pS4rC8aNg2++gdNOg112gW7dau7rm1l4zCwc7rYkSZKqxcqV0KsXvPce/PWv0KZN3BVJ2lZbNW1p3Lhx7LnnnjRo0IBOnToxc+bMzZ7/5JNP0r59e+rXr0/79u15+umnK5zzz3/+k0QiQdOmTdlhhx047LDDKCkp2ZryJElSGqhXD/7852jxdCIRrYWQFLaUm4fJkyczYsQIrr76aubPn0/37t3p27fvJr/RnzNnDrm5uQwePJgFCxYwePBgBg4cyNy5c9ef8+GHH9KtWzf2339/ZsyYwYIFC7jmmmto0KDB1l+ZJEmKXfPm0ROo//1vOP309HkKtaStk/K0pS5dupCTk8M999yz/li7du048cQTGT16dIXzc3NzWb58OS+88ML6Y3369KFZs2brnyaYl5fHdtttx6OPPlqpGpy2VPVmzZpFt5qckKptZmbhMbMwmVvVeP756GnU6x4iV53MLDxmFo6URh5WrlzJvHnzKixq6dWrF7Nnz97o58yZM6fC+b17915//tq1a3n++efZd9996d27NzvvvDNdunShqKgoldK0jcaMGRN3CUqRmYXHzMJkblXj+OPh1lvhlltgwoTq/VpmFh4zC0dKzUNpaSlr1qyhRYsW5Y63aNGCJUuWbPRzlixZstnzly5dyjfffMMtt9xCnz59mDZtGgMGDOCkk07itddeS6U8bYNJkybFXYJSZGbhMbMwmVvVufTS6LkPZ58Nb75ZfV/HzMJjZuHYqq1as7Kyyv05mUxWOFbZ89f+/8mP/fv355JLLgGgY8eOzJ49m3vvvZcePXpsTYlKUaNGjeIuQSkys/CYWZjMrepkZcE998CiRXDiifDWW7DHHlX/dcwsPGYWjpRGHpo3b07dunUrjDIsXbq0wujCOi1bttzs+c2bNyc7O5v27duXO6ddu3Zb3G1pn332oWXLlnTq1IlEIkEikVi/jmJTCgsLN/ogktzc3ApTpaZNm0Yikahw7rBhwygoKCh3rLi4mEQiQWlpabnj1113Hfn5+eWOlZSUkEgkWLhwYbnjY8eOZeTIkeWOlZWVkUgkmDVrltfhdXgdXofX4XUEfx3168Ndd5WwfHmCXr0WsmJFmNcBmZGH15Ge17Gl72fjtFULpjt16sS4cePWH2vfvj39+/ff5ILpr7/+mqlTp64/1rdvX3bcccf1/2G6du1K27Ztyy2YHjBgAA0bNmTixIkV3tMF05Ikhe2dd6BrV+jTBx5/HOps1ebxkmpayrfqpZdeyv33388DDzzAP//5Ty655BJKSko477zzADjjjDO48sor159/8cUXM23aNPLz81m4cCH5+flMnz6dESNGrD9n5MiRTJ48mfHjx7N48WL++Mc/8uyzz3LBBRdUwSWqMn7ckSv9mVl4zCxM5lY9OnSAxx6Dp56C66+v2vc2s/CYWThSXvOQm5vLF198wQ033MDnn3/OgQceyNSpU2ndujUQDbXU+cGPD7p27cqkSZP4zW9+wzXXXEPbtm2ZPHkyXbp0WX/OgAEDuPfeexk9ejQXXXQR++23H08++aRbdtWgVq1axV2CUmRm4TGzMJlb9enfH373O7jySjjgAMjNrZr3NbPwmFk4Up62lA6ctiRJUmZIJuGMM6InUb/+OnTuHHdFkjbHGYaSJCk2WVkwfjwcfHA0EvHZZ3FXJGlzbB4kSVKsGjSAoiKoWzfawrWsLO6KJG2KzYMAKmxrpvRnZuExszCZW81o2RKmTIH33oOhQ6PpTFvLzMJjZuGweRAAo0aNirsEpcjMwmNmYTK3mnPIIfDIIzB5Mtx009a/j5mFx8zC4YJpAdEuWe50EBYzC4+Zhcncat6NN8K110aLqE8+OfXPN7PwmFk4bB4kSVJaSSbh1FPhmWfgjTeiEQlJ6cFpS5IkKa1kZcEDD0TPfkgk4PPP465I0jo2D5IkKe00bBiNPKxdCwMGwHffxV2RJLB50P+Xn58fdwlKkZmFx8zCZG7x2XXXaAvXBQvg7LMrvwOTmYXHzMJh8yAAytxUOzhmFh4zC5O5xatzZ3joIXjsMajs95dmFh4zC4cLpiVJUtq79tpo+9ann46eRC0pHo48SJKktHf99XDSSXDaafDOO3FXI9VeNg+SJCnt1akDDz8M++4L/frB0qVxVyTVTjYPAqC0tDTuEpQiMwuPmYXJ3NJH48bRDkzffx+NQnz//cbPM7PwmFk4bB4EwNChQ+MuQSkys/CYWZjMLb3ssUe0A9Pf/gbnnbfxHZjMLDxmFg4XTAuA4uJicnJy4i5DKTCz8JhZmMwtPU2YAIMHw223wWWXlf+YmYXHzMJh8yBJkoJ05ZXR9q3PPgvHHx93NVLt4LQlSZIUpJtvhkQCBg2Cd9+NuxqpdrB5kCRJQapTBx59FNq0iXZgcs2tVP1sHgRAQUFB3CUoRWYWHjMLk7mltx12iKYtffMNnHwyrFxpZiEys3AE3Tzk5eWRSCQoLCyMu5TgFRcXx12CUmRm4TGzMJlb+mvdOnry9Jw5MGwYzJtnZqHxPguHC6YlSVJGeOghGDIE7rwTLr447mqkzJQddwGSJElV4Ze/jBZOX3op7L8/9O4dd0VS5gl62pIkSdIP3XIL9O0LubmwcGHc1UiZx+ZBkiRljLp1YeJE2G23aAemL7+MuyIps9g8CIBEIhF3CUqRmYXHzMJkbuE5/fQEzz4LX30Fv/gFrFoVd0XaEu+zcNg8CIDhw4fHXYJSZGbhMbMwmVt4hg8fzl57wZNPwuuvw4gRcVekLfE+C4e7LUmSpIw1fjyccw7cfTdccEHc1Ujhc7clSZKUsX71q2gHposugv32g2OOibsiKWxOW5IkSRntttvg5z+P1j988EHc1Uhhs3kQAEVFRXGXoBSZWXjMLEzmFp4fZ5adDZMmwc47Rzsw/e9/MRWmTfI+C4fNgwAoLCyMuwSlyMzCY2ZhMrfwbCyzHXeEZ5+FpUujZ0CsXh1DYdok77NwuGBakiTVGn/5S/Tk6WHD4A9/iLsaKTyOPEiSpFrjmGPgrrui1333xV2NFB53W5IkSbXKBRdEOzANGwb77gs9e8ZdkRQORx4kSVKtc+ed0KMHnHwyfPxx3NVI4bB5EABDhgyJuwSlyMzCY2ZhMrfwVCaz7baDxx+HHXaA0093AXXcvM/CYfMgAHr16hV3CUqRmYXHzMJkbuGpbGY/+QlMmACzZ8Po0dVclDbL+ywc7rYkSZJqtWuvhd/9DmbOhMMPj7saKb3ZPEiSpFpt9Wo48khYsgTefhv81kLaNKctSZKkWi07Gx57DEpLox2YJG2azYMAmDVrVtwlKEVmFh4zC5O5hWdrMttzTxg3LloDMXFiNRSlzfI+C4fNgwAYM2ZM3CUoRWYWHjMLk7mFZ2szO/10OPVUOP98+OijKi5Km+V9Fg7XPAiAsrIyGjVqFHcZSoGZhcfMwmRu4dmWzJYtg44dYddd4bXXoilNqn7eZ+EIeuQhLy+PRCJBYWFh3KUEzxs2PGYWHjMLk7mFZ1sya9o0mrr05ptw881VWJQ2y/ssHI48SJIk/cj118ONN0bbt3btGnc1UvqweZAkSfqR1auhRw/4z3+i7VubNo27Iik9BD1tSVVn5MiRcZegFJlZeMwsTOYWnqrILDs7mr705Zdu31oTvM/CYfMgAFq1ahV3CUqRmYXHzMJkbuGpqszWbd/62GPRS9XH+ywcTluSJEnajMGD4ZlnYMGCqKGQajNHHiRJkjbj7ruheXM47bRoLYRUm9k8SJIkbUaTJtG0pb/+NdqBSarNbB4EwMKFC+MuQSkys/CYWZjMLTzVkdnhh8O118JNN8GsWVX+9rWe91k4bB4EwKhRo+IuQSkys/CYWZjMLTzVldlVV0VNxOmnw//+Vy1fotbyPguHC6YFQElJiTsdBMbMwmNmYTK38FRnZv/+Nxx8MBx/fDSVKSurWr5MreN9Fg6bB0mSpBQUFsKpp8Ijj0Q7MUm1idOWJEmSUjBoUNQ0DBsG//pX3NVINcvmQZIkKUV//CP89KfR9q2rVsVdjVRzbB4EQH5+ftwlKEVmFh4zC5O5hacmMlu3fetbb7l9a1XwPguHzYMAKCsri7sEpcjMwmNmYTK38NRUZocdBtdfDzffDDNn1siXzFjeZ+FwwbQkSdJWWrMGjjoKPv4YFiyAHXeMuyKpejnyIEmStJXq1oUJE2DZMjj/fAjvR7JSamweJEmStkGrVvCnP8GkSfDoo3FXI1UvmwcBUFpaGncJSpGZhcfMwmRu4Ykjs9xcOPPMaPvWxYtr/MsHz/ssHDYPAmDo0KFxl6AUmVl4zCxM5haeuDIbOxZatHD71q3hfRYOF0wLgOLiYnJycuIuQykws/CYWZjMLTxxZjZ3LhxxBFxxBdx0UywlBMn7LBw2D5IkSVXo5pvhmmtgxgw48si4q5Gqls2DJElSFVqzBo4+Gj76KNq+tVmzuCuSqo5rHiRJkqpQ3brRrktffw3nnef2rcosQTcPeXl5JBIJCgsL4y4leAUFBXGXoBSZWXjMLEzmFp50yGzd9q2PPw4PPxx3NekvHTJT5QTdPEyaNIkpU6YwaNCguEsJXnFxcdwlKEVmFh4zC5O5hSddMhs4EIYMgeHD3b51S9IlM22Zax4kSZKqyTffwCGHROse3ngDttsu7oqkbRP0yIMkSVI62357mDgR5s+H66+Puxpp29k8SJIkVaPOneGGG2D0aHjttbirkbaN05YkSZKq2Zo1cMwx8OGH8M47bt+qcDnyIAASiUTcJShFZhYeMwuTuYUnHTNbt33rihVwzjlu3/pj6ZiZNs7mQQAMHz487hKUIjMLj5mFydzCk66Z7bEH3Hcf/PnP8OCDcVeTXtI1M1XktCVJkqQadNZZMHlytIh6n33irkZKjc2DJElSDfrmG8jJgaZNo+1b69WLuyKp8py2JEmSVIO23x4eewzefhuuuy7uaqTU2DwIgKKiorhLUIrMLDxmFiZzC08ImXXuDDfdBPn58OqrcVcTvxAyU8TmQQAUFhbGXYJSZGbhMbMwmVt4Qsls5Ejo2RMGD4Yvv4y7mniFkplc8yBJkhSbTz+FDh3g6KPhiScgKyvuiqTNc+RBkiQpJrvvDvffD08+CQ88EHc10pbZPEiSJMXopJPg7LPhootg0aK4q5E2z2lLkiRJMVuxItq+dYcdYPZst29V+nLkQQAMGTIk7hKUIjMLj5mFydzCE2JmjRvDxInwzjtw7bVxV1PzQsystrJ5EAC9evWKuwSlyMzCY2ZhMrfwhJpZp07R9q1jxsArr8RdTc0KNbPaaKuah3HjxrHnnnvSoEEDOnXqxMyZMzd7/pNPPkn79u2pX78+7du35+mnn97kueeeey5ZWVnceeedW1OattKgQYPiLkEpMrPwmFmYzC08IWd2+eVw1FHR9q1ffBF3NTUn5Mxqm5Sbh8mTJzNixAiuvvpq5s+fT/fu3enbty8lJSUbPX/OnDnk5uYyePBgFixYwODBgxk4cCBz586tcG5RURFz585l1113Tf1KJEmSAlenDjzyCHz3HfzqVxDeylRlupQXTHfp0oWcnBzuueee9cfatWvHiSeeyOjRoyucn5uby/Lly3nhhRfWH+vTpw/NmjUr90CQzz77jC5duvDSSy9x/PHHM2LECEaMGLHRGlwwLUmSMtnTT0e7MN13X9RESOkipZGHlStXMm/evArz0nr16sXs2bM3+jlz5sypcH7v3r3Lnb927VoGDx7MyJEjOeCAA1IpSVVk1qxZcZegFJlZeMwsTOYWnkzIbMAAOOccGDEC3n8/7mqqXyZkVluk1DyUlpayZs0aWrRoUe54ixYtWLJkyUY/Z8mSJVs8Pz8/n+zsbC666KJUylEVGjNmTNwlKEVmFh4zC5O5hSdTMrvjDthjDzj1VFi5Mu5qqlemZFYbbNWC6awfPTs9mUxWOFbZ8+fNm8cf/vAHHnrooc2+h6rXpEmT4i5BKTKz8JhZmMwtPJmSWePGUFgIf/87/OY3cVdTvTIls9ogpeahefPm1K1bt8Iow9KlSyuMLqzTsmXLzZ4/c+ZMli5dSqtWrcjOziY7O5uPP/6Yyy67jDZt2my2nry8PBKJRLnXD9dRbExhYeFG9xLOzc2lqKio3LFp06aRSCQqnDts2DAKCgrKHSsuLiaRSFBaWlru+HXXXUd+fn65YyUlJSQSCRYuXFju+NixYxk5cmS5Y2VlZSQSiQrDeVV9HY0aNcqI61inNlzH2LFjM+I6MiWPylxHo0aNMuI6IDPyqOx1rPv/Y+jXsU5tuI5p06ZlxHUUFRVxyCHwu9/BrbdCfn641/FDG8ujUaNGGXEdUDV5bOn72Tht1YLpTp06MW7cuPXH2rdvT//+/Te5YPrrr79m6tSp64/17duXHXfckcLCQr744gs+//zzcp/Tu3dvBg8ezJAhQ9hvv/0qvKcLpiVJUm2xdi307g3vvRc9RG6nneKuSLVZdqqfcOmllzJ48GAOPfRQDj/8cO677z5KSko477zzADjjjDPYbbfd1jcSF198MUceeST5+fn079+fZ555hunTp6/v9HbaaSd2+tFdsN1229GyZcuNNg6SJEm1SZ068PDD0KEDnH02PPUUONNbcUl5zUNubi533nknN9xwAx07duT1119n6tSptG7dGoiGWn44ktC1a1cmTZrEgw8+SIcOHXjooYeYPHkyXbp0qbqr0Db78XCe0p+ZhcfMwmRu4cnEzHbdFQoKoKgIHnoo7mqqXiZmlqlSHnkAuOCCC7jgggs2+rEZM2ZUOHbKKadwyimnVPr9//3vf29NWdoGrVq1irsEpcjMwmNmYTK38GRqZv37wy9/GW3feswxkEmXmamZZaKU1zykA9c8SJKk2mjZMjjoINhvP5g2zelLqnlbtVWrJEmSal7TptH0penT4d57465GtZHNgyRJUkCOPRbOOw9GjoQPP4y7GtU2Ng8CqLAnstKfmYXHzMJkbuGpDZndeivsvDMMGRJt5Rq62pBZprB5EACjRo2KuwSlyMzCY2ZhMrfw1IbMtt8eHnwQZs2CP/wh7mq2XW3ILFO4YFpAtMWuOx2ExczCY2ZhMrfw1KbMLrkkWvvw9tvRIupQ1abMQmfzIEmSFKhvv4WOHaFZs2gUInurNuGXKs9pS5IkSYFq2DB6+vRbb0XrIKTqZvMgSZIUsMMOg1Gj4Lrr4O9/j7saZTqbBwGQn58fdwlKkZmFx8zCZG7hqY2ZXX99tObhzDNh1aq4q0ldbcwsVDYPAqCsrCzuEpQiMwuPmYXJ3MJTGzOrXz+avvT3v8PNN8ddTepqY2ahcsG0JElShrj+erjpJpg7Fzp1irsaZSKbB0mSpAyxahV06QIrV8K8edGIhFSVnLYkSZKUIbbbDh55BD74IFpALVU1mwcBUFpaGncJSpGZhcfMwmRu4antmR14IPz2t9HWrXPmxF1N5dT2zEJi8yAAhg4dGncJSpGZhcfMwmRu4TEzuPxy6Nw52n0phLXIZhYO1zwIgOLiYnJycuIuQykws/CYWZjMLTxmFnn//ejp0+eeC3feGXc1m2dm4bB5kCRJylB33gmXXAKvvgo9e8ZdjTKBzYMkSVKGWrsWjjoKSkrgnXdghx3irkihc82DJElShqpTBx58EP7v/2DkyLirUSYIunnIy8sjkUhQWFgYdynBKygoiLsEpcjMwmNmYTK38JhZeXvtBbfdBn/6E0ybFnc1G2dm4Qi6eZg0afB6sYsAACAASURBVBJTpkxh0KBBcZcSvOLi4rhLUIrMLDxmFiZzC4+ZVXTuuXDssXDWWfC//8VdTUVmFg7XPEiSJNUCn3wSPQNiwAB46KG4q1Gogh55kCRJUuXssUe0+9LDD8OUKXFXo1A58iBJklRLJJOQSMBbb8G778JOO8VdkULjyIMkSVItkZUF990HK1fCsGFxV6MQ2TwIgEQiEXcJSpGZhcfMwmRu4TGzzdtlF7j7bpg8GZ54Iu5qImYWDpsHATB8+PC4S1CKzCw8ZhYmcwuPmW1ZXh6cfDKcfz78979xV2NmIXHNgyRJUi30f/8HBxwARxwBTz0VTWmStsSRB0mSpFropz+NHhxXVAQTJsRdjUJh8yBJklRLDRgAp50GF14In30WdzUKgc2DACgqKoq7BKXIzMJjZmEyt/CYWWrGjoVGjeDss6OtXONgZuGweRAAhYWFcZegFJlZeMwsTOYWHjNLTbNmcP/98OKLUFAQTw1mFg4XTEuSJImzz462b/3736FNm7irUbpy5EGSJEnccQf85CcwdCisXRt3NUpXNg+SJEmiSRN44AF49VUYNy7uapSubB4kSZIEwDHHwLBhMGoUfPBB3NUoHdk8CIAhQ4bEXYJSZGbhMbMwmVt4zGzb5OfDrrvCL38Ja9bUzNc0s3DYPAiAXr16xV2CUmRm4TGzMJlbeMxs2zRuDA89BHPmwO9/XzNf08zC4W5LkiRJquCyy+Duu6G4GNq3j7sapQubB0mSJFXw7beQkwPbbx+NQmRnx12R0oHTliRJklRBw4bw8MPRyMMtt8RdjdKFzYMAmDVrVtwlKEVmFh4zC5O5hcfMqs7PfgZXXAE33AALFlTf1zGzcNg8CIAxY8bEXYJSZGbhMbMwmVt4zKxqXXst7L8/nHEGrFxZPV/DzMLhmgcBUFZWRqNGjeIuQykws/CYWZjMLTxmVvXefhs6d4Zf/xpuuqnq39/MwhF089C3b1+ys7MZNGgQgwYNirssSZKkjHXjjfDb30aLpzt3jrsaxSXo5sGRB0mSpJqxahUcfjiUlcG8edGC6v/X3p0HV13f+x9/BsKiGBELYkRFoCIiiBJEgWKxjij3SnChAnVFB8cBekGRpWpBKaKgXBeucItQF2wTprZQqqi4QIuCCwQ0KkRkEa1QG67sIyFwfn/kZ2okYE4453zzSZ6Pmfzh95x88/rmNSfD2893Uc3jNQ+SJEn6QXXqlNx9ad06+PWvo06jqDg8CICRI0dGHUFxsrPw2FmY7C08dpY8Z51Vcs3Df/83JPIGSXYWDocHAXDqqadGHUFxsrPw2FmY7C08dpZcd9xRcvrSTTfB7t2J2aedhcNrHiRJkhSXtWuhQwe45RaYOjXqNEolVx4kSZIUl9NPL3nq9P/8D7z+etRplEquPEiSJCluBw7AxRfD+vWQnw/+k6xmcOVBAKxZsybqCIqTnYXHzsJkb+Gxs9SoVQueegr+7/9gxIgj25edhcPhQQCMGjUq6giKk52Fx87CZG/hsbPUOe00mDIFZs6El16q/H7sLByetiQANm3a5J0OAmNn4bGzMNlbeOwstWIx6NWr5NSlDz+ERo3i34edhcPhQZIkSUfkiy+gXTvo3Rtmz446jZLJ05YkSZJ0RE4+GR5/HJ57DubOjTqNksmVB0mSJB2xWAyuuAKWLYOPPoImTaJOpGRw5UEATJo0KeoIipOdhcfOwmRv4bGzaKSlwW9/C/v3w+DBJcNERdlZOBweBMCePXuijqA42Vl47CxM9hYeO4vOiSfC9Onw/PMwZ07Fv8/OwuFpS5IkSUqofv3gtddK7r6UmRl1GiWSKw+SJElKqCeegPR0uPXW+E5fUtXn8CBJkqSEatwYZsyAF16AZ56JOo0SyeFBABQWFkYdQXGys/DYWZjsLTx2VjX06QM33ADDhsHnnx/+vXYWDocHAXDzzTdHHUFxsrPw2FmY7C08dlZ1PPYYZGTALbcc/vQlOwuHF0wLgLy8PDp27Bh1DMXBzsJjZ2Gyt/DYWdXy8svQq1fJXZhuu63899hZOBweJEmSlFS33gp/+AN88AG0bBl1Gh0JT1uSJElSUk2ZUvLE6ZtvhgMHok6jIxH08NC/f3+ys7PJycmJOookSZIOISMDfvc7+NvfYOrUqNPoSAQ9POTm5jJ//nwGDBgQdZTgzZo1K+oIipOdhcfOwmRv4bGzqumii+CXv4QxY6CgoOxrdhaOoIcHJU5eXl7UERQnOwuPnYXJ3sJjZ1XXAw/AySfDTTfB/v3/3m5n4fCCaUmSJKXM0qXQvTtMnAijR0edRvFy5UGSJEkp07UrjBgBY8fChx9GnUbxcuVBkiRJKfXNN5CVBfXqwTvvQJ06USdSRbnyIEmSpJSqXx+eeabkuQ8TJ0adRvFweBAA2dnZUUdQnOwsPHYWJnsLj52FoVMnuOsumDABevSws1A4PAiAoUOHRh1BcbKz8NhZmOwtPHYWjnvugdNOg9277SwUXvMgSZKkyPzxj3DNNfDGGyXPglDV5vAgSZKkyMRicMEFcOBAycXTtTwvpkqzHkmSJEUmLQ0mT4bly0tWIVS1OTwIgHnz5kUdQXGys/DYWZjsLTx2Fp6vv57Hf/4n3H03FBVFnUaH4/AgAHJycqKOoDjZWXjsLEz2Fh47C09OTg4PPADr18OMGVGn0eF4zYMkSZKqhIED4cUX4dNPwX/iVU2uPEiSJKlKGD8edu6Ehx+OOokOxeFBkiRJVcIpp8B//RdMmQKbN0edRuVxeJAkSVKVMWYM1KsH990XdRKVx+FBAAwcODDqCIqTnYXHzsJkb+Gxs/B8t7NGjUruujRzJhQURBhK5arU8DBt2jRatGhB/fr1ycrKYsmSJYd9/5/+9Cfatm1LvXr1aNu2LXPnzi19bd++fYwePZr27dvToEEDTjrpJG644Qa+/PLLykRTJfXs2TPqCIqTnYXHzsJkb+Gxs/B8v7MhQ6BZM/jVryIKpEOK+25Lc+bM4frrr2fatGl069aN3/72t8ycOZOPP/6YU0899aD3L1u2jO7du/Ob3/yGK6+8krlz5zJ27FjefPNNzj//fLZv307fvn0ZNGgQHTp04Ouvv2b48OEUFxezfPnycjN4tyVJkqTqbfZsuOEGeOst6No16jT6VtzDw/nnn0/Hjh2ZPn166bYzzzyTK664ggceeOCg9/fr148dO3bw0ksvlW677LLLaNSo0SHvw/zee+/RuXNnPvvss3IHEocHSZKk6u3AAejYEY45BpYsKXkStaIX12lLRUVFrFix4qClpZ49e7J06dJyv2fZsmUHvf/SSy895PsBtm/fTlpaGscdd1w88SRJklRN1KoFkyaVrDzMnx91Gn0rruGhsLCQ/fv307Rp0zLbmzZtypYtW8r9ni1btsT1/m+++YYxY8bwi1/8wlWFFHrzzTejjqA42Vl47CxM9hYeOwvPoTrr2RMuvrjkDkzFxSkOpXJV6oLptO+tG8VisYO2Veb9+/bto3///hw4cIBp06ZVJpoqafLkyVFHUJzsLDx2FiZ7C4+dhedQnaWllaw+rFkDTz2V4lAqV1zDQ+PGjaldu/ZBqwZfffXVQasL3zrxxBMr9P59+/ZxzTXXsGHDBl599dUKrTr079+f7OzsMl+Huo7iWzk5OeXewq1fv37MmzevzLaFCxeSnZ190HuHDBnCrFmzymzLy8sjOzubwsLCMtvHjRvHpEmTymzbtGkT2dnZrFmzpsz2qVOnMnLkyDLb9uzZQ3Z29kETeaKPIzc3t1ocx7dqwnGcd9551eI4qksfFTmO3NzcanEcUD36qOhxfPv3MfTj+FZNOI5rr722WhxHdemjIseRm5t7yOO4775srrqqkHHjYPfuqn0ckJg+fujfs1Gq1AXTWVlZZVYG2rZtS58+fQ55wfTOnTtZsGBB6bZevXpx3HHHlf5ivh0c1q5dy6JFi2jSpMlhM3jBtCRJUs2xYQOccQaMG1fyDAhFJz3eb7jjjju4/vrr6dSpE126dGHGjBls2rSJ2267DYAbbriBZs2alQ4Sw4YN48ILL2TSpEn06dOHv/zlL7z22mulk15xcTF9+/YlLy+PF154gf3795euVBx//PHUrVs3UccqSZKkALVoAYMHl5zCdOut8AP/n1lJFPfKA5Q8JG7y5Mls3ryZdu3a8cgjj3DhhRcC0KNHD0477TSefvrp0vc///zz3HPPPaxfv55WrVpx//33c9VVVwGwceNGWrRoUe7PWbRoET169DhouysPkiRJNUthIbRqBTfdBI89FnWamqtSF0wPHjyYjRs3snfvXlasWFE6OAAsXry4zOAA0LdvX9asWUNRURGrV68uHRwATjvtNGKxWLlf5Q0OSo7vnwuoqs/OwmNnYbK38NhZeCrSWePGMHo0TJ8O69enIJTKVanhQdVPeQ/jU9VmZ+GxszDZW3jsLDwV7Wz48JJTlrzuITqVOm0pap62JEmSVDPNnAmDBsF770GnTlGnqXkcHiRJkhSM4mI4+2zIzITXXit5FoRSx9OWJEmSFIz0dHjwQXjjDXjllajT1DwODwI46IEqqvrsLDx2FiZ7C4+dhSfeznr3hp/8pOQC6v37kxRK5XJ4EACjRo2KOoLiZGfhsbMw2Vt47Cw88XaWlgaTJ8MHH8Dvf5+kUCqX1zwIKHkUunenCIudhcfOwmRv4bGz8FS2s6uvhuXLoaAA6tdPQjAdxOFBkiRJQSoogLPOKrkG4s47o05TM3jakiRJkoJ0xhklt22dOBG+/jrqNDWDw4MkSZKCNW4cFBWVrD4o+RweBMCkSZOijqA42Vl47CxM9hYeOwvPkXR24okwYgQ89hh8/nkCQ6lcDg8CYM+ePVFHUJzsLDx2FiZ7C4+dhedIO7vzTmjYEMaOTVAgHZIXTEuSJCl4TzwBv/wlvP8+tG8fdZrqy+FBkiRJwdu3D9q2hdat4cUXo05TfXnakiRJkoJXp07JXZcWLIDFi6NOU305PAiAwsLCqCMoTnYWHjsLk72Fx87Ck6jO+vaFzp1h1CgI79yaMDg8CICbb7456giKk52Fx87CZG/hsbPwJKqztDSYPBneew/++MeE7FLf4zUPAiAvL4+OHTtGHUNxsLPw2FmY7C08dhaeRHd2+eWwZg18/DHUrZuw3QqHB0mSJFUzH34IHTqUPPth6NCo01QvnrYkSZKkaqVdO7jxRhg/HnbsiDpN9RL08NC/f3+ys7PJycmJOookSZKqkPHjYedOePjhqJNUL0EPD7m5ucyfP58BAwZEHSV4s2bNijqC4mRn4bGzMNlbeOwsPMno7OSTYdgwmDIFNm9O+O5rrKCHByVOXl5e1BEUJzsLj52Fyd7CY2fhSVZno0dDvXpw331J2X2N5AXTkiRJqramTCkZIj76CM44I+o04XPlQZIkSdXWkCHQrBn86ldRJ6keHB4kSZJUbdWvDxMmwNy5sHRp1GnC52lLkiRJqtYOHICOHeGYY2DJkpInUatyXHkQANnZ2VFHUJzsLDx2FiZ7C4+dhSfZndWqBZMmwVtvwfz5Sf1R1Z7DgwAY6uMXg2Nn4bGzMNlbeOwsPKnorGdPuPhiGDMGiouT/uOqLU9bkiRJUo2wYgV06gQzZsCgQVGnCZMrD5IkSaoRsrJgwAAYNw527446TZgcHiRJklRj3H8/FBbCo49GnSRMDg8CYN68eVFHUJzsLDx2FiZ7C4+dhSeVnbVoAYMHl1xA/a9/pezHVhsODwIgJycn6giKk52Fx87CZG/hsbPwpLqze+4puV3rhAkp/bHVghdMS5IkqcaZOBHuvRfWrIGWLaNOEw5XHiRJklTjDB8OTZqUrEKo4hweJEmSVOMcfTTcdx/k5JTcwlUV42lLkiRJqpGKi+Hss+Gkk+DVV0uug9DhufIgAAYOHBh1BMXJzsJjZ2Gyt/DYWXii6iw9HR58EF5/HRYujCRCcBweBEDPnj2jjqA42Vl47CxM9hYeOwtPlJ317g0/+QmMHg0HDkQWIxietiRJkqQabdky6NoVnn0Wrr8+6jRVm8ODJEmSaryrr4bly6GgAOrXjzpN1eVpS5IkSarxJk6Ef/wDnngi6iRVm8ODAHjzzTejjqA42Vl47CxM9hYeOwtPVejsjDNg0CC4/374+uuo01RdDg8CYPLkyVFHUJzsLDx2FiZ7C4+dhaeqdDZuHBQVldyBSeUL+pqHXr16kZ6ezoABAxgwYEDUsYK2Z88ejj766KhjKA52Fh47C5O9hcfOwlOVOhs3DiZNgrVr4ZRTok5T9QQ9PHjBtCRJkhJp50748Y/hP/4Dnnoq6jRVj6ctSZIkSf9fRgaMHQvPPAP5+VGnqXpceZAkSZK+Y98+aNsWWreGF1+MOk3V4sqDABg5cmTUERQnOwuPnYXJ3sJjZ+Gpap3VqVNy69YFC2Dx4qjTVC0ODwLg1FNPjTqC4mRn4bGzMNlbeOwsPFWxs759oXNnGDUKwjtPJ3k8bUmSJEkqx9/+Bj16wJw5cM01UaepGhweJEmSpEO4/HJYswY+/hjq1o06TfQ8bUmSJEk6hAcfhA0bYMaMqJNUDQ4PAmDNmjVRR1Cc7Cw8dhYmewuPnYWnKnfWrh3ceCOMHw87dkSdJnoODwJg1KhRUUdQnOwsPHYWJnsLj52Fp6p3Nn58ycPjHn446iTR85oHAbBp06YqeacDHZqdhcfOwmRv4bGz8ITQ2ZgxMHUqfPopZGZGnSY6Dg+SJEnSD9i2DVq1gp//HP73f6NOEx1PW5IkSZJ+wHHHwd13w8yZUFAQdZroODxIkiRJFTBkCJx8Mtx1V9RJouPwIAAmTZoUdQTFyc7CY2dhsrfw2Fl4QumsXj2YMAH+/GdYtizqNNFweBAAe/bsiTqC4mRn4bGzMNlbeOwsPCF19otfQIcOMGoUhHfl8JHzgmlJkiQpDq+8ApddBn/5C2RnR50mtRweJEmSpDjEYnDJJfDll/DBB5CeHnWi1PG0JUmSJCkOaWkwaRKsXg1PPx11mtRyeBAAhYWFUUdQnOwsPHYWJnsLj52FJ8TOsrJgwAAYNw4CumTjiDk8CICbb7456giKk52Fx87CZG/hsbPwhNrZ/ffDv/4Fjz4adZLU8ZoHAZCXl0fHjh2jjqE42Fl47CxM9hYeOwtPyJ0NHw5PPQXr1kHjxlGnST6HB0mSJKmSCguhVSsYOLBmrEAEfdpS//79yc7OJicnJ+ookiRJqoEaN4bRo2HaNFi/Puo0yefKgyRJknQE9uyB00+Hn/4U/vCHqNMkV9ArD0qcWbNmRR1BcbKz8NhZmOwtPHYWntA7O/pouO8+yMmBFSuiTpNcDg8CSi5UUljsLDx2FiZ7C4+dhac6dHbTTXDmmSWnMIV3Xk/FedqSJEmSlADz50OfPvDyy3DppVGnSQ6HB0mSJCkBYjG48ELYuRPy8qBWNTzHpxoekiRJkpR6aWkweTK8/z78/vdRp0kOVx4kSZKkBLr6ali+HAoKoH79qNMklisPAiA7OzvqCIqTnYXHzsJkb+Gxs/BUt84mToR//AOeeCLqJInn8CAAhg4dGnUExcnOwmNnYbK38NhZeKpbZ2ecAYMGwf33w9dfR50msTxtSZIkSUqwLVtKBojHH4cWLaJOkzgOD5IkSZIqxNOWJEmSJFWIw4MAmDdvXtQRFCc7C4+dhcnewmNn4bGzcDg8CICcnJyoIyhOdhYeOwuTvYXHzsJjZ+HwmgdJkiRJFeLKgyRJkqQKcXiQJEmSVCEOD5IkSVI1MnfuXDp06EDDhg1JS0vjqKOOomPHjnTq1In27dvTunVrevTowSOPPMKuXbvi2rfDgwAYOHBg1BEUJzsLj52Fyd7CY2fhsbPEuvLKK3n//fe56667AHjwwQfJy8tj+fLl5Ofns2bNGoYNG8a9995LVlYWX8fxGGyHBwHQs2fPqCMoTnYWHjsLk72Fx87CY2fJsWTJEgCuuuqqMttr1arFlVdeyaWXXsonn3zCc889V+F9Bnm3pVgsxs6dO8nIyCAtLS3qOJIkSVKVsn//fo4//nhatmzJypUry31PVlYWeXl5zJ49m+uuu65C+01PZMhUSUtL8xatkiRJ0iGsWLGCHTt2kJ2dXe7rc+bMIS8vj5/+9Kf069evwvv1tCVJkiSpmlm0aBHAQcPD7t27mT59Orfffjtjx45l4cKF1KlTp8L7DXLlQZIkSdKhLVq0iKOOOopnn32W2bNns2/fPt59913WrVvH5MmTWbt2LQ0aNIh7v0Fe8yBJkiSpfMXFxTRq1IgePXrw17/+tXT79u3b6d27N9u2bWPZsmWVGh48bUmSJEmqRt577z127dpFly5dymxv2LAht99+O/n5+fzud7+r1L4dHgRATk5O1BEUJzsLj52Fyd7CY2fhsbPE+vZ6hwsuuOCg1/bt2wdAfn5+pfbt8CDAD22I7Cw8dhYmewuPnYXHzhJr0aJF1KpVi/POO++g1959912ASp2yBA4PkiRJUrVRVFTE0qVLadeuHRkZGQe9/s477wDQuHHjSu2/xg8PyZp0Q9tvsoT0ewgpazKF9nsIbb/JENrvILT9Jot/x+wsxP3aWdXf7zvvvMOePXvKPWUJYOvWrQA0atSoUj/X4aEKl5/K/SZLSL+HkLImU2i/h9D2mwyh/Q5C22+y+HfMzkLcr51V/f2+9NJLQMnTo8vTtWtXoGSFAmDx4sV88sknFd5/jXrOQywWY+fOnWW2FRcXs2PHjoT/LPcb3n5Dyup+w9xvSFndb5j7DSmr+w1zvyFlDX2/GRkZpKWlVej79u7dS/fu3dm6dSsbNmwAYOTIkTzxxBM89NBD9OzZs/S9jz76KOnp6eTm5pKfn0/jxo2ZOHFihTPWqOc87Nixg4YNG0YdQ5IkSTqs7du3c+yxx0Yd4yA1angob+VBkiRJqmriWXlIpRo1PEiSJEmqvBp/wbQkSZKkinF4kCRJklQhDg+SJEmSKsThQZIkSVKFODxUQ9OmTaNFixbUr1+frKwslixZcsj3/vnPf6ZTp04cd9xxNGjQgHPOOYfZs2eXec9NN91EWlpama9DPbVQiRNPj9+Vm5tLWloaV1xxRZITKtEd+VmLRjw9Pv300wd1lJaWxjfffJPCxDVLovu59957D3r9xBNPTMWh1Gjx/r3ctm0bQ4YMITMzk/r163PmmWeyYMGCFKXV4Tg8VDNz5sxh+PDh3H333axcuZLu3bvTq1cvNm3aVO77jz/+eO6++26WLVvGBx98wMCBAxk4cCCvvPJKmfdddtllbN68ufTLD3Byxdvjtz777DPuvPNOunfvnqKkNVeyOvKzllqV6fHYY48t09HmzZupX79+ClPXHMnq56yzzirzen5+frIPpUaLt8eioiIuueQSNm7cyPPPP09BQQFPPvkkzZo1S3FylSumaqVz586x2267rcy2Nm3axMaMGVPhfZx77rmxe+65p/S/b7zxxlifPn0SllE/rDI9FhcXx7p16xabOXOmnaVAMjqyt9SLt8ennnoq1rBhw1REUyw5/YwbNy7WoUOHhGXUD4u3x+nTp8datmwZKyoqSkU8xcmVh2qkqKiIFStWlHkEOUDPnj1ZunTpD35/LBbj9ddfp6CggAsvvLDMa4sXL+aEE06gdevWDBo0iK+++iqh2fVvle1x/PjxNGnShFtuuSXZEWu8ZHbkZy11Ktvjrl27aN68OSeffDKXX345K1euTHbUGimZ/axdu5aTTjqJFi1a0L9/f9avX5/w/CpRmR7nz59Ply5dGDJkCE2bNqVdu3ZMnDiR/fv3pyKyfkB61AGUOIWFhezfv5+mTZuW2d60aVO2bNlyyO/bvn07zZo1Y+/evdSuXZtp06ZxySWXlL7eq1cvfv7zn9O8eXM2bNjAr3/9a372s5+xYsUK6tWrl7Tjqakq0+Nbb73FrFmzWLVqVSoi1njJ6sjPWmpVpsc2bdrw9NNP0759e3bs2MFjjz1Gt27deP/99zn99NNTEbvGSFY/559/Ps8++yytW7fmn//8JxMmTKBr16589NFH/OhHP0r6cdU0lelx/fr1vPHGG1x77bUsWLCAtWvXMmTIEIqLixk7dmwqYuswHB6qoe8/yjwWix328eYZGRmsWrWKXbt28frrr3PHHXfQsmVLevToAUC/fv1K39uuXTs6depE8+bNefHFF7nqqquScgyqeI87d+7kuuuu48knn6Rx48apiicS35GftWjE8zfzggsuKHMRe7du3ejYsSNTp07l8ccfT2rOmirR/fTq1av09fbt29OlSxdatWrFM888wx133JGEIxDE1+OBAwc44YQTmDFjBrVr1yYrK4svv/yShx56yOGhCnB4qEYaN25M7dq1D5rkv/rqq4Mm/u+qVasWP/7xjwE455xzWL16NQ888EDp8PB9mZmZNG/enLVr1yYsu/4t3h7XrVvHxo0b6d27d+m2AwcOAJCenk5BQQGtWrVKbugaJlUd+VlLrsr+zfyuWrVqcd5559lREqSqnwYNGtC+fXs7TJLK9JiZmUmdOnWoXbt26bYzzzyTLVu2UFRURN26dZOaWYfnNQ/VSN26dcnKyuLVV18ts/3VV1+la9euFd5PLBZj7969h3x969atfP7552RmZlY6qw4t3h7btGlDfn4+q1atKv3Kzs7moosuYtWqVZxyyimpil5jpKojP2vJlYi/mbFYjFWrVtlREqSqn71797J69Wo7TJLK9NitWzc+/fTT0v/JAvDJJ5+QmZnp4FAVRHWltpIjNzc3VqdOndisWbNiH3/8cWz48OGxBg0axDZu3BiLxWKx66+/vszdDSZOnBhbuHBhbN26dbHVq1fHpkyZEktPT489+eSTsVgsFtu5c2dsxIgRsaVLl8Y2bNgQW7RoUaxLly6xZs2axXbs2BHJMdYE8fb4fd61J/kS3ZGftWjE2+O9994be/nlEqpx1QAAAZxJREFUl2Pr1q2LrVy5MjZw4MBYenp67J133onqEKq1ZPQzYsSI2OLFi2Pr16+Pvf3227HLL788lpGRUbpPJV68PW7atCl2zDHHxIYOHRorKCiIvfDCC7ETTjghNmHChKgOQd/haUvVTL9+/di6dSvjx49n8+bNtGvXjgULFtC8eXMANm3aRK1a/15w2r17N4MHD+aLL77gqKOOok2bNjz33HOl517Xrl2b/Px8nn32WbZt20ZmZiYXXXQRc+bMISMjI5JjrAni7VGpl+iO/KxFI94et23bxq233sqWLVto2LAh5557Ln//+9/p3LlzVIdQrSWjny+++IIBAwZQWFhIkyZNuOCCC3j77bdL96nEi7fHU045hYULF3L77bdz9tln06xZM4YNG8bo0aOjOgR9R1osFotFHUKSJElS1ef/upQkSZJUIQ4PkiRJkirE4UGSJElShTg8SJIkSaoQhwdJkiRJFeLwIEmSJKlCHB4kSZIkVYjDgyRJkqQKcXiQJEmSVCEOD5IkSZIqxOFBkiRJUoU4PEiSJEmqkP8HX8Uc3Dv2fuQAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph = line(zip(R_list, M_list), axes_labels=[r'$R$', r'$M$'], gridlines=True)\n", "graph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and we save the plot in a pdf file to use it in our next publication ;-)" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "graph.save('plot_M_R.pdf')" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 8.3", "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.15" } }, "nbformat": 4, "nbformat_minor": 1 }