{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "# Metric and scalar equations for the cubic Galileon in quasi-isotropic coordinates" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "'SageMath version 8.9, Release Date: 2019-09-29'" ] }, "execution_count": 1, "metadata": { }, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Set up the notebook to display mathematical objects using LaTeX formatting:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "### Setup" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Declare a 4-dimensional manifold $M$:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "M = Manifold(4, 'M')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Declare a quasi-isotropic chart over $M$:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "QI. = M.chart()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Declare the four metric functions over $M$:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "N = function('N')(r,theta)\n", "A = function('A')(r,theta)\n", "B = function('B')(r,theta)\n", "w = function('omega')(r,theta)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Declare the metric $g$ on $M$:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "g = M.metric('g')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "First set all its components to zero:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Fully symmetric 2-indices components w.r.t. Coordinate frame (M, (d/dt,d/dr,d/dtheta,d/dp))" ] }, "execution_count": 7, "metadata": { }, "output_type": "execute_result" } ], "source": [ "g.set_comp()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then set the non zero components according to relation (8):" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "g[0,0] = - N^2 + B^2 * r^2 * sin(theta)^2 * w^2\n", "g[3,0] = - B^2 * r^2 * sin(theta)^2 * w\n", "g[1,1] = A^2\n", "g[2,2] = A^2 * r^2\n", "g[3,3] = B^2 * r^2 * sin(theta)^2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Compute the inverse metric for later use:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "g_inv = g.inverse()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Compute the associated Levi-Civita connection for later use:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "NAB = g.connection()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "To define the scalar field $\\phi$ over $M$ according to the ansatz (11), first declare the parameter $q$:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "q = var('q')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then declare the spatial dependece $\\Psi$:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "Psi = function('Psi')(r,theta)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Finally, declare the scalar field $\\phi$ over $M$ according to the ansatz (11):" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "phi = M.scalar_field(q*t + Psi)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "### Compute the terms of tensor $T^{(\\phi)}$ given in relation (3)\n", "\n", "First declare the coupling constants $\\zeta$, $\\eta$ and $\\gamma$:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "[zeta, eta, gamma] = var('zeta eta gamma')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "##### Term proportional to $\\eta$\n", "\n", "To compute the term proportional to $\\eta$, first compute the exterior derivative of $\\phi$:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "d_phi = phi.differential()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then compute its squared norm $(\\partial\\phi)^{2} = \\nabla_{\\mu}\\phi\\nabla^{\\mu}\\phi$ using the inverse metric:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "NAB_phi_SQR = ( g_inv['^u.'] * d_phi['_u'] )['^v'] * d_phi['_v']" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Finally, compute the term proportional to $\\eta$:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "eta_term = eta/zeta * ( d_phi * d_phi - 1/2 * g * NAB_phi_SQR )" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "##### Term proportional to $\\gamma$\n", "\n", "To compute the term proportional to $\\gamma$, first compute the exterior derivative of NAB_phi_SQR:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "d_NAB_phi_SQR = NAB_phi_SQR.differential()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then compute the first term as the symmetrized tensor product of d_NAB_phi_SQR with $d\\phi$:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "gamma_term_1 = 1/2 * ( d_phi * d_NAB_phi_SQR + d_NAB_phi_SQR * d_phi )" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "To compute the second term, first compute $\\Box\\phi$ using the Hessian matrix of $\\phi$:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "HESS_phi = NAB(d_phi)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Extract $\\Box\\phi$ as the trace of HESS_phi:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "BOX_phi = g_inv['^uv'] * HESS_phi['_uv']" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then compute the second term:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "gamma_term_2 = - BOX_phi * d_phi * d_phi" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "And the third term:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "gamma_term_3 = - 1/2 * g * ( d_phi.up(g)['^u'] * d_NAB_phi_SQR['_u'] )" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Finally, add all three terms:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "gamma_term = gamma/zeta * ( gamma_term_1 + gamma_term_2 + gamma_term_3 )" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "### 3+1 decomposition of the effective stress-energy-momentum tensor $T^{(eff)}$\n", "\n", "Subtract the cosmological term to $T^{(\\phi)}$ to form $T^{(eff)}$ in order to write the metric equations as $G_{\\mu\\nu} = 8\\pi T^{(eff)}_{\\mu\\nu}$.\n", "First declare a cosmological constant:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "Lambda = var('Lambda')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then declare $T^{(eff)}$:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "T_eff = 1/(8*pi)* (eta_term + gamma_term - Lambda * g)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "It is shown in ref. [87] (E. Gourgoulhon, \"An introduction to the theory of rotating relativistic stars\") that algebraic manipulations of equations of the form $G_{\\mu\\nu} = 8\\pi T^{(eff)}_{\\mu\\nu}$ written in quasi-isotropic coordinates may result in equations (3.14) to (3.17) of the same reference.\n", "These equations rewrite as\n", "$$\n", " N^{2} \\Delta_{3} N = \n", "\\frac{N \\left( Br\\sin\\theta \\right)^{2}}{2} \\partial\\omega \\partial\\omega\n", "- \\frac{N^{2}}{B} \\partial N \\partial B\n", "+ 4 \\pi A^{2} N^{3} (E + S), \\\\\n", " N^{3} \\Delta_{2} [NA] =\n", "\\frac{N^4}{A}\\partial A \\partial A\n", "+ 2 N^3 \\partial A \\partial N\n", "+ \\frac{3 A (N Br\\sin\\theta)^{2}}{4} \\partial\\omega \\partial\\omega\n", "+ 8 \\pi A^{3} N^{4} S^{\\varphi}_{\\phantom{\\varphi}\\varphi}, \\\\\n", " N^{2} \\Delta_{2} [NBr\\sin\\theta] = 8 \\pi A^{2} B N^{3} r \\sin\\theta (S^{r}_{\\phantom{r}r} + S^{\\theta}_{\\phantom{\\theta}\\theta}), \\\\\n", " N \\Delta_{3} [\\omega r \\sin \\theta] =\n", "\\frac{N \\omega}{r \\sin\\theta}\n", "+ r \\sin\\theta \\left( \\partial\\omega \\partial N - \\frac{3 N}{B} \\partial \\omega \\partial B \\right), \n", "$$\n", "where $E$ and the $S^{i}_{\\phantom{i}j}$ are defined from the 3+1 decomposition of $T^{(eff)}$ performed below.\n", "\n", "Declare the time function over $M$:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "time = M.scalar_field(t)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Declare the future-oriented unit vector normal to the constant-$t$ hypersurfaces, which is constructed as the metric dual of the exterior derivative of the time function, normalized by the metric function $N$:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "unit_normal = -N * time.differential().up(g)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "##### Effective energy density $E$\n", "\n", "Compute the quantity $E$ appearing in the equations above as the full contraction of $T^{(eff)}$ with the unit normal vector:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "E = (T_eff['_u.'] * unit_normal['^u'])['_v'] * unit_normal['^v']" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Extract its expression, automatically simplified for latter use:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "E = E.expr().simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "##### Effective stress tensor $S^{(eff)}$\n", "\n", "To construct the projector onto the tangent spaces to the constant-$t$ hypersurfaces, first declare the identity map on the full tangent spaces to $M$:" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "identity = M.tensor_field(1,1)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "First set all its components to zero:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2-indices components w.r.t. Coordinate frame (M, (d/dt,d/dr,d/dtheta,d/dp))" ] }, "execution_count": 32, "metadata": { }, "output_type": "execute_result" } ], "source": [ "identity.set_comp()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "And set to $1$ the diagonal components:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "for mu in range(M.dim()):\n", " identity[mu,mu] = 1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Declare the projector from the identity and the tensor product of the unit normal with its metric dual:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "projector = identity + unit_normal * unit_normal.down(g)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Declare the effective stress tensor $S^{(eff)}$ from two contractions of $T^{(eff)}$ with the projector:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "S_eff = T_eff['_uv'] * (projector * projector)['^uv_..']" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Extract the simplified expressions of the quantities $S^{r}_{\\phantom{r}r}$, $S^{\\theta}_{\\phantom{\\theta}\\theta}$ and\n", "$S^{\\varphi}_{\\phantom{\\varphi}\\varphi}$:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "S_r_up_r_down = S_eff.up(g,pos=0)[1,1].expr().simplify_full()\n", "S_theta_up_theta_down = S_eff.up(g,pos=0)[2,2].expr().simplify_full()\n", "S_phi_up_phi_down = S_eff.up(g,pos=0)[3,3].expr().simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Extract the trace $S$ of $S^{(eff)}$:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "S = (S_r_up_r_down + S_theta_up_theta_down + S_phi_up_phi_down).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "### Metric equations (21) - (24) with sources (B.5) - (B.8)\n", "\n", "To check the metric equations, first define the various differential operators involved.\n", "First is the 2-dimensional Laplacian denoted $\\Delta_{2}$ in the equations above:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "def Lap2(f,r,theta):\n", " return diff(diff(f,r),r) + 1/r*diff(f,r) + 1/r^2*diff(diff(f,theta),theta)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then the 3-dimensional Laplacian denoted $\\Delta_{3}$:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "def Lap3(f,r,theta):\n", " return diff(diff(f,r),r) + 2/r*diff(f,r) + 1/r^2*diff(diff(f,theta),theta) + 1/(r^2*tan(theta))*diff(f,theta)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then the operator acting on any two functions $f$ and $g$ of the coordinates $r$ and $\\theta$ and denoted $\\partial f \\partial g$:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "def DD(f,g,r,theta):\n", " return diff(f,r)*diff(g,r) + 1/r^2*diff(f,theta)*diff(g,theta)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Then the operator acting on any three functions $f$, $g$ and $h$ of the coordinates $r$ and $\\theta$ and denoted $\\mathcal{H}^{(0)}_{f}[g,h]$:" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "def Hf0gh(f,g,h,r,theta):\n", " left = matrix(SR, 2, 1)\n", " right = matrix(SR, 2, 1)\n", " mat = matrix(SR,2,2)\n", " left[0,0] = diff(g,r)\n", " left[1,0] = 1/r*diff(g,theta)\n", " right[0,0] = diff(h,r)\n", " right[1,0] = 1/r*diff(h,theta)\n", " mat[0,0] = diff(diff(f,r),r)\n", " mat[0,1] = 1/r*diff(diff(f,r),theta)\n", " mat[1,0] = mat[0,1]\n", " mat[1,1] = 1/r^2 * diff(diff(f,theta),theta)\n", " return (left.transpose()*mat*right)[0,0].simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "##### Metric equation (21) with source term (B.5)\n", "\n", "Check that the last term appearing in the right-hand side of the equation on $\\Delta_{3} N$ above, i.e. $4 \\pi A^{2} N^{3} (E + S)$, explicitly rewrites as\n", "\n", "$$\n", " 4 \\pi A^{2} N^{3} (E + S) = \n", "N A^{2} \\left( \\frac{\\eta q^{2}}{\\zeta} - \\Lambda N^{2} \\right)\n", "- \\frac{\\gamma}{2 \\zeta} \\left(q^{2} + \\frac{N^{2} \\partial\\Psi\\partial\\Psi}{A^{2}} \\right)\n", "\\left( N \\Delta_{3}\\Psi + \\partial\\Psi\\partial N + \\frac{N \\partial\\Psi\\partial B}{B} \\right).\n", "$$\n", "\n", "To do so, declare the right-hand side of this relation:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "Source_N_last_terms_1 = N*A^2 * ( eta*q^2/zeta - Lambda*N^2 )\n", "Source_N_last_terms_2a = -gamma/(2*zeta) * ( q^2 + N^2*DD(Psi,Psi,r,theta)/A^2 )\n", "Source_N_last_terms_2b = N*Lap3(Psi,r,theta) + DD(Psi,N,r,theta) + N*DD(Psi,B,r,theta)/B\n", "Source_N_last_terms = Source_N_last_terms_1 + Source_N_last_terms_2a * Source_N_last_terms_2b " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Check that it coincides with $4 \\pi A^{2} N^{3} (E + S)$:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 43, "metadata": { }, "output_type": "execute_result" } ], "source": [ "( Source_N_last_terms - 4*pi*A^2*N^3*(E + S) ).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Therefore the equation on $\\Delta_{3} N$ explicitly rewrites as\n", "\n", "$$\n", " N^{2} \\Delta_{3} N = \n", "\\frac{N \\left( Br\\sin\\theta \\right)^{2}}{2} \\partial\\omega \\partial\\omega\n", "- \\frac{N^{2}}{B} \\partial N \\partial B\n", "+ N A^{2} \\left( \\frac{\\eta q^{2}}{\\zeta} - \\Lambda N^{2} \\right)\n", "- \\frac{\\gamma}{2 \\zeta} \\left(q^{2} + \\frac{N^{2} \\partial\\Psi\\partial\\Psi}{A^{2}} \\right)\n", "\\left( N \\Delta_{3}\\Psi + \\partial\\Psi\\partial N + \\frac{N \\partial\\Psi\\partial B}{B} \\right).\n", "$$\n", "\n", "Using the relations (12)-(13) to reformulate everything in terms of dimensionless quantities eventually leads to equation (21) with source (B.5).\n", "\n", "##### Metric equation (22) with source term (B.6)\n", "\n", "Check that the last term appearing in the right-hand side of the equation on $\\Delta_{2} [NA]$ above, i.e. $8 \\pi A^{3} N^{4} S^{\\varphi}_{\\phantom{\\varphi}\\varphi}$, explicitly rewrites as\n", "\n", "$$\n", "8 \\pi A^{3} N^{4} S^{\\varphi}_{\\phantom{\\varphi}\\varphi} =\n", "\\frac{\\eta N^{2} A}{2\\zeta} \\left( q^{2} A^{2} - N^{2} \\partial\\Psi\\partial\\Psi \\right) \n", "- \\Lambda A^{3} N^{4}\n", "-\\frac{\\gamma}{\\zeta} \\left( \n", " q^{2} N A \\partial\\Psi\\partial N \n", " - \\frac{N^{4} \\partial\\Psi\\partial\\Psi \\partial\\Psi\\partial A}{A^{2}} \n", " + \\frac{1}{A} \\left[ \n", " N^{4} \\mathcal{H}^{(0)}_{\\Psi}[\\Psi,\\Psi] \n", " - \\frac{N^{4} \\partial_{r}\\Psi}{r^{3}} (\\partial_{\\theta}\\Psi)^{2}\n", " \\right]\n", " \\right).\n", "$$\n", "\n", "To do so, declare the right-hand side of this relation:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "Source_A_last_terms_1 = eta*N^2*A/(2*zeta)*(q^2*A^2 - N^2*DD(Psi,Psi,r,theta))\n", "Source_A_last_terms_2 = - Lambda*A^3*N^4\n", "Source_A_last_terms_3a = q^2*N*A*DD(Psi,N,r,theta) - N^4*DD(Psi,Psi,r,theta)*DD(Psi,A,r,theta)/A^2\n", "Source_A_last_terms_3b = 1/A*(N^4*Hf0gh(Psi,Psi,Psi,r,theta) - N^4*diff(Psi,r)/r^3*diff(Psi,theta)^2)\n", "Source_A_last_terms = Source_A_last_terms_1 + Source_A_last_terms_2 - gamma/zeta*(Source_A_last_terms_3a + Source_A_last_terms_3b)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Check that it coincides with $8 \\pi A^{3} N^{4} S^{\\varphi}_{\\phantom{\\varphi}\\varphi}$:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 49, "metadata": { }, "output_type": "execute_result" } ], "source": [ "( Source_A_last_terms - 8*pi*A^3*N^4*S_phi_up_phi_down ).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Therefore the equation on $\\Delta_{2} [NA]$ explicitly rewrites as\n", "\n", "$$\n", "N^{3} \\Delta_{2} [NA] =\n", "\\frac{N^4}{A}\\partial A \\partial A\n", "+ 2 N^3 \\partial A \\partial N\n", "+ \\frac{3 A (N Br\\sin\\theta)^{2}}{4} \\partial\\omega \\partial\\omega\n", "+ \\frac{\\eta N^{2} A}{2\\zeta} \\left( q^{2} A^{2} - N^{2} \\partial\\Psi\\partial\\Psi \\right) \n", "- \\Lambda A^{3} N^{4}\n", "-\\frac{\\gamma}{\\zeta} \\left( \n", " q^{2} N A \\partial\\Psi\\partial N \n", " - \\frac{N^{4} \\partial\\Psi\\partial\\Psi \\partial\\Psi\\partial A}{A^{2}} \n", " + \\frac{1}{A} \\left[ \n", " N^{4} \\mathcal{H}^{(0)}_{\\Psi}[\\Psi,\\Psi] \n", " - \\frac{N^{4} \\partial_{r}\\Psi}{r^{3}} (\\partial_{\\theta}\\Psi)^{2}\n", " \\right]\n", " \\right).\n", "$$ \n", "\n", "\n", "Using the relations (12)-(13) to reformulate everything in terms of dimensionless quantities eventually leads to equation (22) with source (B.6).\n", "\n", "##### Metric equation (23) with source term (B.7)\n", "\n", "Check that the last term appearing in the right-hand side of the equation on $\\Delta_{2} [NBr\\sin\\theta]$ above, i.e. $8 \\pi A^{2} B N^{3} r \\sin\\theta (S^{r}_{\\phantom{r}r} + S^{\\theta}_{\\phantom{\\theta}\\theta})$, explicitly rewrites as\n", "\n", "$$\n", "8 \\pi A^{2} B N^{3} r \\sin\\theta (S^{r}_{\\phantom{r}r} + S^{\\theta}_{\\phantom{\\theta}\\theta}) =\n", "- Br\\sin\\theta \\left[\n", " N A^{2} \\left(\n", " 2 \\Lambda N^{2}\n", " - \\frac{q^{2} \\eta}{\\zeta} \n", " \\right) \n", " + \\frac{\\gamma N^{2} \\partial\\Psi\\partial\\Psi}{\\zeta A^{2}} \n", " \\left(\n", " N \\Delta_{3}\\Psi \n", " + \\partial\\Psi\\partial N\n", " + \\frac{N \\partial\\Psi\\partial B}{B} \n", " \\right)\n", " \\right].\n", "$$\n", "\n", "To do so, declare the right-hand side of this relation:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "Source_B_last_terms_1 = N*A^2*(2*Lambda*N^2 - q^2*eta/zeta)\n", "Source_B_last_terms_2a = gamma*N^2*DD(Psi,Psi,r,theta)/(zeta*A^2)\n", "Source_B_last_terms_2b = (N*Lap3(Psi,r,theta) + DD(Psi,N,r,theta) + N*DD(Psi,B,r,theta)/B)\n", "Source_B_last_terms = -B*r*sin(theta)*( Source_B_last_terms_1 + Source_B_last_terms_2a*Source_B_last_terms_2b )" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Check that it coincides with $8 \\pi A^{2} B N^{3} r \\sin\\theta (S^{r}_{\\phantom{r}r} + S^{\\theta}_{\\phantom{\\theta}\\theta})$:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 51, "metadata": { }, "output_type": "execute_result" } ], "source": [ "( Source_B_last_terms - 8*pi*A^2*B*N^3*r*sin(theta)*(S_r_up_r_down + S_theta_up_theta_down) ).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Therefore the equation on $\\Delta_{2} [NBr\\sin\\theta]$ explicitly rewrites as\n", "\n", "$$\n", "N^{2} \\Delta_{2} [NBr\\sin\\theta] = \n", "- Br\\sin\\theta \\left[\n", " N A^{2} \\left(\n", " 2 \\Lambda N^{2}\n", " - \\frac{q^{2} \\eta}{\\zeta} \n", " \\right) \n", " + \\frac{\\gamma N^{2} \\partial\\Psi\\partial\\Psi}{\\zeta A^{2}} \n", " \\left(\n", " N \\Delta_{3}\\Psi \n", " + \\partial\\Psi\\partial N\n", " + \\frac{N \\partial\\Psi\\partial B}{B} \n", " \\right)\n", " \\right].\n", "$$ \n", "\n", "\n", "Using the relations (12)-(13) to reformulate everything in terms of dimensionless quantities eventually leads to equation (23) with source (B.7).\n", "\n", "Finally, it is also only needed to use the relations (12)-(13) in the equation on $N \\Delta_{3} [\\omega r \\sin \\theta]$ above to obtain (24) with source (B.8).\n", "\n", "\n", "### Scalar equation (25) with explicit expression (B.9)\n", "\n", "Declare the covariant expression of the vector current $J$ given by relation (5): " ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": true }, "outputs": [ ], "source": [ "one_form_J = ( gamma * BOX_phi - eta ) * d_phi - gamma/2 * d_NAB_phi_SQR" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Declare the Jacobian matrix of $J$:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true }, "outputs": [ ], "source": [ "JAC_J = NAB(one_form_J.up(g))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "deletable": true, "editable": true }, "source": [ "Extract the divergence of $J$ as the trace of the Jacobian matrix:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [ ], "source": [ "scalar_eq = JAC_J.trace()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Then define the various differential operators involved in the explicit expression of the scalar equation:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": true }, "outputs": [ ], "source": [ "def Hf1gh(f,g,h,r,theta):\n", " left = matrix(SR, 2, 1)\n", " right = matrix(SR, 2, 1)\n", " mat = matrix(SR,2,2)\n", " left[0,0] = 1/r*diff(g,theta)\n", " left[1,0] = -diff(g,r)\n", " right[0,0] = 1/r*diff(h,theta)\n", " right[1,0] = -diff(h,r)\n", " mat[0,0] = diff(diff(f,r),r)\n", " mat[0,1] = 1/r*diff(diff(f,r),theta)\n", " mat[1,0] = mat[0,1]\n", " mat[1,1] = 1/r^2 * diff(diff(f,theta),theta)\n", " return (left.transpose()*mat*right)[0,0].simplify_full()\n", "\n", "def Hf2gh(f,g,h,r,theta):\n", " left = matrix(SR, 2, 1)\n", " right = matrix(SR, 2, 1)\n", " mat = matrix(SR,2,2)\n", " left[0,0] = diff(g,r)\n", " left[1,0] = 1/r*diff(g,theta)\n", " right[0,0] = diff(h,r)\n", " right[1,0] = 1/r*diff(h,theta)\n", " mat[0,0] = diff(diff(f,r),r)\n", " mat[0,1] = 2/r*diff(diff(f,r),theta)\n", " mat[1,0] = mat[0,1]\n", " mat[1,1] = 1/r^2 * diff(diff(f,theta),theta)\n", " return (left.transpose()*mat*right)[0,0].simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Declare all the terms involved in the explicit expression of the scalar equation:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": true }, "outputs": [ ], "source": [ "term_1 = Lap3(N,r,theta) + DD(N, B,r,theta)/B - 2*DD(N, N,r,theta)/N\n", "term_1 *= q^2 * A^2 * N^(-3) \n", "\n", "term_2 = Lap3(Psi,r,theta) + DD(Psi, B,r,theta)/B + DD(Psi, N,r,theta)/N\n", "term_2 *= gamma^(-1) * eta * A^2 + 2 * DD(Psi, A,r,theta)/A - 2 * DD(Psi, N,r,theta)/N\n", "\n", "term_3 = - 2 * ( Lap2(Psi,r,theta) + DD(Psi,B,r,theta)/B )\n", "term_3 *= Lap3(Psi,r,theta) - 1/r*diff(Psi,r)\n", "\n", "term_4 = 2/r^2*diff(diff(Psi,theta),theta) \n", "term_4 *= Lap2(Psi,r,theta) - DD(Psi,A,r,theta)/A\n", "\n", "term_5 = A^(-1) * (Lap3(A,r,theta) - 4/r*diff(A,r))\n", "term_5 += B^(-1) * Lap2(B,r,theta)\n", "term_5 += DD(A, B,r,theta)/(A*B)\n", "term_5 -= 3 * DD(A, A,r,theta)/A^2\n", "term_5 += DD(N, A,r,theta)/(N*A)\n", "term_5 *= - DD(Psi,Psi,r,theta)\n", "\n", "term_6 = 2 * (DD(Psi,N,r,theta)/N)^2\n", "\n", "term_7 = - N^(-1) * Hf0gh(N,Psi,Psi,r,theta)\n", "\n", "term_8 = B^(-1) * Hf1gh(B,Psi,Psi,r,theta)\n", "\n", "term_9 = - 2 * A^(-1) * Hf2gh(Psi,Psi,A,r,theta)\n", "\n", "term_10 = 2 * ( diff(diff(Psi,r),r)^2 + ( 1/r^2*diff(Psi,theta) - 1/r*diff(diff(Psi,r),theta) )^2 )\n", "\n", "term_11 = - 2 * diff(Psi,r) * diff(A,r)/A\n", "term_11 *= diff(diff(Psi,r),r) + 2/r*diff(Psi,r) - 1/r^2*diff(diff(Psi,theta),theta)\n", "\n", "term_12 = - 1/r * diff(Psi,r)^2 * diff(B,r)/B\n", "\n", "term_13 = 1/r^3 * diff(Psi,theta) * ( 2*diff(Psi,r)*diff(N,theta)/N - diff(Psi,theta)*diff(N,r)/N )\n", "\n", "explicit_scalar_eq = term_1 + term_2 + term_3 + term_4 + term_5 + term_6 + term_7 + term_8 + term_9 + term_10 + term_11 + term_12 + term_13\n", "explicit_scalar_eq *= -gamma * A^(-4)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Check that both expressions of the scalar equation coincide:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 57, "metadata": { }, "output_type": "execute_result" } ], "source": [ "(scalar_eq.expr() - explicit_scalar_eq).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The relations (12)-(13) finally allow to rewrite the explicit expression as (B.9)." ] } ], "metadata": { "kernelspec": { "display_name": "SageMath (default)", "language": "sagemath", "metadata": { "cocalc": { "description": "Open-source mathematical software system", "priority": 10, "url": "https://www.sagemath.org/" } }, "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": 4 }