{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "# 5D Kerr-AdS spacetime with a Nambu-Goto string\n", "\n", "## Case b = 0" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "This [SageMath](https://www.sagemath.org/) notebook is relative to the article *Holographic drag force in 5d Kerr-AdS black hole* by Irina Ya. Aref'eva, Anastasia A. Golubtsova and Eric Gourgoulhon, [arXiv:2004.12984](https://arxiv.org/abs/2004.12984).\n", "\n", "The involved differential geometry computations are based on tools developed through the [SageManifolds](https://sagemanifolds.obspm.fr) project." ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "*NB:* a version of SageMath at least equal to 8.2 is required to run this notebook:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/plain": [ "'SageMath version 9.0, Release Date: 2020-01-01'" ] }, "execution_count": 1, "metadata": { }, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "First we set up the notebook to display mathematical objects using LaTeX rendering:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "%display latex" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "Since some computations are quite long, we ask for running them in parallel on 8 cores:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "Parallelism().set(nproc=1) # only nproc=1 works on CoCalc" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "## Spacetime manifold\n", "\n", "We declare the Kerr-AdS spacetime as a 5-dimensional Lorentzian manifold:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5-dimensional Lorentzian manifold M\n" ] } ], "source": [ "M = Manifold(5, 'M', r'\\mathcal{M}', structure='Lorentzian', metric_name='G')\n", "print(M)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "Let us define **Boyer-Lindquist-type coordinates (rational polynomial version)** on $\\mathcal{M}$, via the method `chart()`, the argument of which is a string expressing the coordinates names, their ranges (the default is $(-\\infty,+\\infty)$) and their LaTeX symbols:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (M, (t, r, mu, ph, ps))" ] }, "execution_count": 5, "metadata": { }, "output_type": "execute_result" } ], "source": [ "BL. = M.chart(r't r:(0,+oo) mu:(0,1):\\mu ph:(0,2*pi):\\phi ps:(0,2*pi):\\psi')\n", "BL" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "The coordinate $\\mu$ is related to the standard Boyer-Lindquist coordinate $\\theta$ by\n", "$$ \\mu = \\cos\\theta$$" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The coordinate ranges are" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "t: (-oo, +oo); r: (0, +oo); mu: (0, 1); ph: (0, 2*pi); ps: (0, 2*pi)" ] }, "execution_count": 6, "metadata": { }, "output_type": "execute_result" } ], "source": [ "BL.coord_range()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Note that contrary to the 4-dimensional case, the range of $\\mu$ is $(0,1)$ only (cf. Sec. 1.2 of [R.C. Myers, arXiv:1111.1903](https://arxiv.org/abs/1111.1903) or Sec. 2 of [G.W. Gibbons, H. Lüb, Don N. Page, C.N. Pope, J. Geom. Phys. **53**, 49 (2005)](https://doi.org/10.1016/j.geomphys.2004.05.001)). In other words, the range of $\\theta$ is $\\left(0, \\frac{\\pi}{2}\\right)$ only. " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "## Metric tensor\n", "\n", "The 4 parameters $m$, $a$, $b$ and $\\ell$ of the Kerr-AdS spacetime are declared as symbolic variables, $a$ and $b$ being the two angular momentum parameters and $\\ell$ being related to the cosmological constant by $\\Lambda = - 6 \\ell^2$:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(m, a, b)" ] }, "execution_count": 7, "metadata": { }, "output_type": "execute_result" } ], "source": [ "var('m a b', domain='real')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "l" ] }, "execution_count": 8, "metadata": { }, "output_type": "execute_result" } ], "source": [ "var('l', domain='real', latex_name=r'\\ell')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "# Particular cases\n", "# m = 0\n", "# a = 0\n", "b = 0\n", "# b = a" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "Some auxiliary functions:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "keep_Delta = False # change to False to provide explicit expression for Delta_r, Xi_a, etc..." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "sig = (1 + r^2*l^2)/r^2\n", "costh2 = mu^2\n", "sinth2 = 1 - mu^2\n", "rho2 = r^2 + a^2*mu^2 + b^2*sinth2\n", "if keep_Delta:\n", " Delta_r = var('Delta_r', latex_name=r'\\Delta_r', domain='real')\n", " Delta_th = var('Delta_th', latex_name=r'\\Delta_\\theta', domain='real')\n", " if a == b:\n", " Xi_a = var('Xi', latex_name=r'\\Xi', domain='real')\n", " Xi_b = Xi_a\n", " else:\n", " Xi_a = var('Xi_a', latex_name=r'\\Xi_a', domain='real')\n", " Xi_b = var('Xi_b', latex_name=r'\\Xi_b', domain='real')\n", " #Delta_th = 1 - a^2*l^2*mu^2 - b^2*l^2*sinth2\n", " Xi_a = 1 - a^2*l^2\n", " Xi_b = 1 - b^2*l^2\n", "else:\n", " Delta_r = (r^2+a^2)*(r^2+b^2)*sig - 2*m\n", " Delta_th = 1 - a^2*l^2*mu^2 - b^2*l^2*sinth2\n", " Xi_a = 1 - a^2*l^2\n", " Xi_b = 1 - b^2*l^2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "The metric is set by its components in the coordinate frame associated with the Boyer-Lindquist-type coordinates, which is the current manifold's default frame. These components can be deduced from\n", "Eq. (5.22) of the article [S.W. Hawking, C.J. Hunter & M.M. Taylor-Robinson, Phys. Rev. D **59**, 064005 (1999)](https://doi.org/10.1103/PhysRevD.59.064005) (the check of agreement with this equation is performed below):" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "G = (a^4*l^2*mu^4 - l^2*r^4 - (a^4*l^2 + a^2)*mu^2 - (a^2*l^2 + 1)*r^2 + 2*m)/(a^2*mu^2 + r^2) dt*dt + (a^5*l^2*mu^4 + (a*l^2*mu^2 - a*l^2)*r^4 - (a^5*l^2 + 2*a*m)*mu^2 + (a^3*l^2*mu^4 - a^3*l^2)*r^2 + 2*a*m)/((a^4*l^2 - a^2)*mu^2 + (a^2*l^2 - 1)*r^2) dt*dph + (a^2*mu^2 + r^2)/(l^2*r^4 + (a^2*l^2 + 1)*r^2 + a^2 - 2*m) dr*dr + (a^2*mu^2 + r^2)/(a^2*l^2*mu^4 - (a^2*l^2 + 1)*mu^2 + 1) dmu*dmu + (a^5*l^2*mu^4 + (a*l^2*mu^2 - a*l^2)*r^4 - (a^5*l^2 + 2*a*m)*mu^2 + (a^3*l^2*mu^4 - a^3*l^2)*r^2 + 2*a*m)/((a^4*l^2 - a^2)*mu^2 + (a^2*l^2 - 1)*r^2) dph*dt + ((a^6*l^2 - a^4 + 2*a^2*m)*mu^4 - (a^2*l^2 - (a^2*l^2 - 1)*mu^2 - 1)*r^4 + 2*a^2*m - (a^6*l^2 - a^4 + 4*a^2*m)*mu^2 - (a^4*l^2 - (a^4*l^2 - a^2)*mu^4 - a^2)*r^2)/((a^6*l^4 - 2*a^4*l^2 + a^2)*mu^2 + (a^4*l^4 - 2*a^2*l^2 + 1)*r^2) dph*dph + mu^2*r^2 dps*dps" ] }, "execution_count": 12, "metadata": { }, "output_type": "execute_result" } ], "source": [ "G = M.metric()\n", "tmp = 1/rho2*( -Delta_r + Delta_th*(a^2*sinth2 + b^2*mu^2) + a^2*b^2*sig )\n", "G[0,0] = tmp.simplify_full()\n", "tmp = a*sinth2/(rho2*Xi_a)*( Delta_r - (r^2+a^2)*(Delta_th + b^2*sig) )\n", "G[0,3] = tmp.simplify_full()\n", "tmp = b*mu^2/(rho2*Xi_b)*( Delta_r - (r^2+b^2)*(Delta_th + a^2*sig) )\n", "G[0,4] = tmp.simplify_full()\n", "G[1,1] = (rho2/Delta_r).simplify_full()\n", "G[2,2] = (rho2/Delta_th/(1-mu^2)).simplify_full()\n", "tmp = sinth2/(rho2*Xi_a^2)*( - Delta_r*a^2*sinth2 + (r^2+a^2)^2*(Delta_th + sig*b^2*sinth2) ) \n", "G[3,3] = tmp.simplify_full()\n", "tmp = a*b*sinth2*mu^2/(rho2*Xi_a*Xi_b)*( - Delta_r + sig*(r^2+a^2)*(r^2+b^2) )\n", "G[3,4] = tmp.simplify_full()\n", "tmp = mu^2/(rho2*Xi_b^2)*( - Delta_r*b^2*mu^2 + (r^2+b^2)^2*(Delta_th + sig*a^2*mu^2) )\n", "G[4,4] = tmp.simplify_full()\n", "G.display()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "G_t,t = (a^4*l^2*mu^4 - l^2*r^4 - (a^4*l^2 + a^2)*mu^2 - (a^2*l^2 + 1)*r^2 + 2*m)/(a^2*mu^2 + r^2) \n", "G_t,ph = (a^5*l^2*mu^4 + (a*l^2*mu^2 - a*l^2)*r^4 - (a^5*l^2 + 2*a*m)*mu^2 + (a^3*l^2*mu^4 - a^3*l^2)*r^2 + 2*a*m)/((a^4*l^2 - a^2)*mu^2 + (a^2*l^2 - 1)*r^2) \n", "G_r,r = (a^2*mu^2 + r^2)/(l^2*r^4 + (a^2*l^2 + 1)*r^2 + a^2 - 2*m) \n", "G_mu,mu = (a^2*mu^2 + r^2)/(a^2*l^2*mu^4 - (a^2*l^2 + 1)*mu^2 + 1) \n", "G_ph,ph = ((a^6*l^2 - a^4 + 2*a^2*m)*mu^4 - (a^2*l^2 - (a^2*l^2 - 1)*mu^2 - 1)*r^4 + 2*a^2*m - (a^6*l^2 - a^4 + 4*a^2*m)*mu^2 - (a^4*l^2 - (a^4*l^2 - a^2)*mu^4 - a^2)*r^2)/((a^6*l^4 - 2*a^4*l^2 + a^2)*mu^2 + (a^4*l^4 - 2*a^2*l^2 + 1)*r^2) \n", "G_ps,ps = mu^2*r^2 " ] }, "execution_count": 13, "metadata": { }, "output_type": "execute_result" } ], "source": [ "G.display_comp(only_nonredundant=True)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Check of agreement with Eq. (5.22) of Hawking et al or Eq. (2.3) of 5dKerr-AdS-AGG-5-12\n", "\n", "We need the 1-forms $\\mathrm{d}t$, $\\mathrm{d}r$, $\\mathrm{d}\\mu$, $\\mathrm{d}\\phi$ and $\\mathrm{d}\\psi$:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(1-form dt on the 5-dimensional Lorentzian manifold M,\n", " 1-form dr on the 5-dimensional Lorentzian manifold M,\n", " 1-form dmu on the 5-dimensional Lorentzian manifold M,\n", " 1-form dph on the 5-dimensional Lorentzian manifold M,\n", " 1-form dps on the 5-dimensional Lorentzian manifold M)" ] }, "execution_count": 14, "metadata": { }, "output_type": "execute_result" } ], "source": [ "dt, dr, dmu, dph, dps = (BL.coframe()[i] for i in M.irange())\n", "dt, dr, dmu, dph, dps" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form dt on the 5-dimensional Lorentzian manifold M\n" ] } ], "source": [ "print(dt)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "In agreement with $\\mu = \\cos\\theta$, we introduce the 1-form $\\mathrm{d}\\theta = - \\mathrm{d}\\mu /\\sin\\theta $, with \n", "$\\sin\\theta = \\sqrt{1-\\mu^2}$ since $\\theta\\in\\left(0, \\frac{\\pi}{2}\\right)$:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "dth = - 1/sqrt(1 - mu^2)*dmu" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "dt - (a*mu^2 - a)/(a^2*l^2 - 1) dph" ] }, "execution_count": 17, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s1 = dt - a*sinth2/Xi_a*dph - b*costh2/Xi_b*dps\n", "s1.display()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "a dt + (a^2 + r^2)/(a^2*l^2 - 1) dph" ] }, "execution_count": 18, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2 = a*dt - (r^2 + a^2)/Xi_a*dph\n", "s2.display()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-r^2 dps" ] }, "execution_count": 19, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s3 = b*dt - (r^2 + b^2)/Xi_b*dps\n", "s3.display()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-a*mu^2*r^2 dps" ] }, "execution_count": 20, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s4 = a*b*dt - b*(r^2 + a^2)*sinth2/Xi_a * dph - a*(r^2 + b^2)*costh2/Xi_b * dps\n", "s4.display()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "X_t,t = (a^4*l^2*mu^4 - l^2*r^4 - (a^4*l^2 + a^2)*mu^2 - (a^2*l^2 + 1)*r^2 + 2*m)/(a^2*mu^2 + r^2) \n", "X_t,ph = (a^5*l^2*mu^4 + (a*l^2*mu^2 - a*l^2)*r^4 - (a^5*l^2 + 2*a*m)*mu^2 + (a^3*l^2*mu^4 - a^3*l^2)*r^2 + 2*a*m)/((a^4*l^2 - a^2)*mu^2 + (a^2*l^2 - 1)*r^2) \n", "X_r,r = (a^2*mu^2 + r^2)/(l^2*r^4 + (a^2*l^2 + 1)*r^2 + a^2 - 2*m) \n", "X_mu,mu = (a^2*mu^2 + r^2)/(a^2*l^2*mu^4 - (a^2*l^2 + 1)*mu^2 + 1) \n", "X_ph,t = (a^5*l^2*mu^4 + (a*l^2*mu^2 - a*l^2)*r^4 - (a^5*l^2 + 2*a*m)*mu^2 + (a^3*l^2*mu^4 - a^3*l^2)*r^2 + 2*a*m)/((a^4*l^2 - a^2)*mu^2 + (a^2*l^2 - 1)*r^2) \n", "X_ph,ph = ((a^6*l^2 - a^4 + 2*a^2*m)*mu^4 - (a^2*l^2 - (a^2*l^2 - 1)*mu^2 - 1)*r^4 + 2*a^2*m - (a^6*l^2 - a^4 + 4*a^2*m)*mu^2 - (a^4*l^2 - (a^4*l^2 - a^2)*mu^4 - a^2)*r^2)/((a^6*l^4 - 2*a^4*l^2 + a^2)*mu^2 + (a^4*l^4 - 2*a^2*l^2 + 1)*r^2) \n", "X_ps,ps = mu^2*r^2 " ] }, "execution_count": 21, "metadata": { }, "output_type": "execute_result" } ], "source": [ "G0 = - Delta_r/rho2 * s1*s1 + Delta_th*sinth2/rho2 * s2*s2 + Delta_th*costh2/rho2 * s3*s3 \\\n", " + rho2/Delta_r * dr*dr + rho2/Delta_th * dth*dth + sig/rho2 * s4*s4\n", "G0.display_comp(only_nonredundant=True)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "True" ] }, "execution_count": 22, "metadata": { }, "output_type": "execute_result" } ], "source": [ "G0 == G" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "## Einstein equation\n", "\n", "The Ricci tensor of $g$ is" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "if not keep_Delta:\n", " # Ric = G.ricci()\n", " # print(Ric)\n", " pass" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "if not keep_Delta:\n", " # show(Ric.display_comp(only_nonredundant=True))\n", " pass" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "Let us check that $g$ is a solution of the vacuum Einstein equation with the cosmological constant $\\Lambda = - 6 \\ell^2$:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "Lambda = -6*l^2\n", "if not keep_Delta:\n", " # print(Ric == 2/3*Lambda*G)\n", " pass" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Check of Eq. (2.10)\n", "\n", "One must have $a=b$ and `keep_Delta == False` for the test to pass:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "if a == b and not keep_Delta:\n", " G1 = - (1 + rho2*l^2 - 2*m/rho2) * dt*dt + rho2/Delta_r * dr*dr \\\n", " + rho2/Delta_th * dth*dth \\\n", " + sinth2/Xi_a^2*(rho2*Xi_a + 2*a^2*m/rho2*sinth2) * dph * dph \\\n", " + costh2/Xi_a^2*(rho2*Xi_a + 2*a^2*m/rho2*costh2) * dps * dps \\\n", " + a*sinth2/Xi_a*(rho2*l^2 - 2*m/rho2) * (dt*dph + dph*dt) \\\n", " + a*costh2/Xi_a*(rho2*l^2 - 2*m/rho2) * (dt*dps + dps*dt) \\\n", " + 2*m*a^2*sinth2*costh2/Xi_a^2/rho2 * (dph*dps + dps*dph)\n", " print(G1 == G)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Check of Eq. (2.14)\n", "\n", "One must have $b=0$ and `keep_Delta == False` for the test to pass:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n" ] } ], "source": [ "if b == 0 and not keep_Delta:\n", " s1 = dt - a*sinth2/Xi_a*dph\n", " s2 = a*dt - (r^2 + a^2)/Xi_a*dph\n", " G2 = - Delta_r/rho2* s1*s1 + rho2/Delta_r * dr*dr + rho2/Delta_th * dth*dth \\\n", " + Delta_th*sinth2/rho2* s2*s2 + r^2*costh2 * dps*dps\n", " print(G2 == G)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "## String worldsheet" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "The string worldsheet as a 2-dimensional Lorentzian manifold:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-dimensional Lorentzian manifold W\n" ] } ], "source": [ "W = Manifold(2, 'W', structure='Lorentzian')\n", "print(W)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "Let us assume that the string worldsheet is parametrized by $(t,r)$:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Chart (W, (t, r))" ] }, "execution_count": 29, "metadata": { }, "output_type": "execute_result" } ], "source": [ "XW. = W.chart(r't r:(0,+oo)')\n", "XW" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "The string embedding in Kerr-AdS spacetime, as an expansion about a straight string solution in AdS:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "F: W --> M\n", " (t, r) |--> (t, r, mu, ph, ps) = (t, r, a^2*mu_1(r) + Mu0, a*beta1*l^2*t + a*beta1*phi_1(r) + Phi0, a*beta2*l^2*t + a*beta2*psi_1(r) + Psi0)" ] }, "execution_count": 30, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Mu0 = var('Mu0', latex_name=r'\\mu_0', domain='real')\n", "Phi0 = var('Phi0', latex_name=r'\\Phi_0', domain='real')\n", "Psi0 = var('Psi0', latex_name=r'\\Psi_0', domain='real')\n", "beta1 = var('beta1', latex_name=r'\\beta_1', domain='real')\n", "beta2 = var('beta2', latex_name=r'\\beta_2', domain='real')\n", "\n", "cosTh0 = Mu0\n", "sinTh0 = sqrt(1 - Mu0^2)\n", "\n", "mu_s = Mu0 + a^2*function('mu_1')(r)\n", "ph_s = Phi0 + beta1*a*l^2*t + beta1*a*function('phi_1')(r)\n", "ps_s = Psi0 + beta2*a*l^2*t + beta2*a*function('psi_1')(r)\n", "\n", "F = W.diff_map(M, {(XW, BL): [t, r, mu_s, ph_s, ps_s]}, name='F') \n", "F.display()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[ 1 0]\n", "[ 0 1]\n", "[ 0 a^2*diff(mu_1(r), r)]\n", "[ a*beta1*l^2 a*beta1*diff(phi_1(r), r)]\n", "[ a*beta2*l^2 a*beta2*diff(psi_1(r), r)]" ] }, "execution_count": 31, "metadata": { }, "output_type": "execute_result" } ], "source": [ "F.jacobian_matrix()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "### Induced metric on the string worldsheet\n", "\n", "The string worldsheet metric is the metric $g$ induced by the spacetime metric $G$, i.e. the pullback of $G$ by the embedding $F$:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ ], "source": [ "g = W.metric()\n", "g.set(F.pullback(G))" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "size": 4 }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "((Mu0^4 + Mu0^2)*a^4*l^2 + ((Mu0^4 - Mu0^2)*a^8*beta1^2 + 2*(Mu0^4 - Mu0^2)*a^8*beta1 + (Mu0^4 - Mu0^2)*a^8)*l^6 - ((Mu0^4 - Mu0^2)*a^6*beta1^2 + 2*(Mu0^4 - Mu0^2)*a^6*beta1 + (2*Mu0^4 - Mu0^2)*a^6)*l^4 + (Mu0^2*a^6*beta2^2*l^8 - (2*Mu0^2*a^4*beta2^2 - (Mu0^2 - 1)*a^4*beta1^2 - 2*(Mu0^2 - 1)*a^4*beta1 + a^4)*l^6 + (Mu0^2*a^2*beta2^2 - (Mu0^2 - 1)*a^2*beta1^2 - 2*(Mu0^2 - 1)*a^2*beta1 + 2*a^2)*l^4 - l^2)*r^4 + (2*a^12*beta1^2*l^4*m + a^12*l^2 + (a^16*beta1^2 + 2*a^16*beta1 + a^16)*l^6 - (a^14*beta1^2 + 2*a^14*beta1 + 2*a^14)*l^4 + (a^16*beta2^2*l^8 + (a^14*beta1^2 - 2*a^14*beta2^2 + 2*a^14*beta1)*l^6 - (a^12*beta1^2 - a^12*beta2^2 + 2*a^12*beta1)*l^4)*r^2)*mu_1(r)^4 - Mu0^2*a^2 + 4*(2*Mu0*a^10*beta1^2*l^4*m + Mu0*a^10*l^2 + (Mu0*a^14*beta1^2 + 2*Mu0*a^14*beta1 + Mu0*a^14)*l^6 - (Mu0*a^12*beta1^2 + 2*Mu0*a^12*beta1 + 2*Mu0*a^12)*l^4 + (Mu0*a^14*beta2^2*l^8 + (Mu0*a^12*beta1^2 - 2*Mu0*a^12*beta2^2 + 2*Mu0*a^12*beta1)*l^6 - (Mu0*a^10*beta1^2 - Mu0*a^10*beta2^2 + 2*Mu0*a^10*beta1)*l^4)*r^2)*mu_1(r)^3 + (Mu0^4*a^8*beta2^2*l^8 - (2*Mu0^4*a^6*beta2^2 - (Mu0^4 - 1)*a^6*beta1^2 - 2*(Mu0^4 - 1)*a^6*beta1 + a^6)*l^6 + (Mu0^4*a^4*beta2^2 - (Mu0^4 - 1)*a^4*beta1^2 - 2*(Mu0^4 - 1)*a^4*beta1 + a^4)*l^4 + a^2*l^2 - 1)*r^2 + ((6*Mu0^2 + 1)*a^8*l^2 + ((6*Mu0^2 - 1)*a^12*beta1^2 + 2*(6*Mu0^2 - 1)*a^12*beta1 + (6*Mu0^2 - 1)*a^12)*l^6 - a^6 - ((6*Mu0^2 - 1)*a^10*beta1^2 + 2*(6*Mu0^2 - 1)*a^10*beta1 + (12*Mu0^2 - 1)*a^10)*l^4 + (a^10*beta2^2*l^8 + (a^8*beta1^2 - 2*a^8*beta2^2 + 2*a^8*beta1)*l^6 - (a^6*beta1^2 - a^6*beta2^2 + 2*a^6*beta1)*l^4)*r^4 + 6*(Mu0^2*a^12*beta2^2*l^8 + (Mu0^2*a^10*beta1^2 - 2*Mu0^2*a^10*beta2^2 + 2*Mu0^2*a^10*beta1)*l^6 - (Mu0^2*a^8*beta1^2 - Mu0^2*a^8*beta2^2 + 2*Mu0^2*a^8*beta1)*l^4)*r^2 + 4*(a^6*beta1*l^2 + ((3*Mu0^2 - 1)*a^8*beta1^2 - a^8*beta1)*l^4)*m)*mu_1(r)^2 + 2*(((Mu0^4 - 2*Mu0^2 + 1)*a^4*beta1^2 - 2*(Mu0^2 - 1)*a^4*beta1 + a^4)*l^4 + 2*((Mu0^2 - 1)*a^2*beta1 - a^2)*l^2 + 1)*m + 2*((2*Mu0^3 + Mu0)*a^6*l^2 + ((2*Mu0^3 - Mu0)*a^10*beta1^2 + 2*(2*Mu0^3 - Mu0)*a^10*beta1 + (2*Mu0^3 - Mu0)*a^10)*l^6 - Mu0*a^4 - ((2*Mu0^3 - Mu0)*a^8*beta1^2 + 2*(2*Mu0^3 - Mu0)*a^8*beta1 + (4*Mu0^3 - Mu0)*a^8)*l^4 + (Mu0*a^8*beta2^2*l^8 + (Mu0*a^6*beta1^2 - 2*Mu0*a^6*beta2^2 + 2*Mu0*a^6*beta1)*l^6 - (Mu0*a^4*beta1^2 - Mu0*a^4*beta2^2 + 2*Mu0*a^4*beta1)*l^4)*r^4 + 2*(Mu0^3*a^10*beta2^2*l^8 + (Mu0^3*a^8*beta1^2 - 2*Mu0^3*a^8*beta2^2 + 2*Mu0^3*a^8*beta1)*l^6 - (Mu0^3*a^6*beta1^2 - Mu0^3*a^6*beta2^2 + 2*Mu0^3*a^6*beta1)*l^4)*r^2 + 4*(Mu0*a^4*beta1*l^2 + ((Mu0^3 - Mu0)*a^6*beta1^2 - Mu0*a^6*beta1)*l^4)*m)*mu_1(r))/(Mu0^2*a^6*l^4 - 2*Mu0^2*a^4*l^2 + Mu0^2*a^2 + (a^4*l^4 - 2*a^2*l^2 + 1)*r^2 + (a^10*l^4 - 2*a^8*l^2 + a^6)*mu_1(r)^2 + 2*(Mu0*a^8*l^4 - 2*Mu0*a^6*l^2 + Mu0*a^4)*mu_1(r))" ] }, "execution_count": 33, "metadata": { }, "output_type": "execute_result" } ], "source": [ "g[0,0]" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "# g[0,0].expr().factor()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Reduced form of $g_{tr}$:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n" ] } ], "source": [ "if b == 0 and not keep_Delta:\n", " gtr = a^2*sinth2/(rho2*Xi_a^2)*(beta1*Xi_a*(Delta_r - Delta_th*(r^2 + a^2)) \\\n", " + beta1^2*l^2*(Delta_th*(r^2 + a^2)^2 \n", " - a^2*Delta_r*sinth2)) \\\n", " * diff(phi_1(r), r) \\\n", " + a^2*l^2*beta2^2*r^2*costh2 * diff(psi_1(r), r)\n", " gtr = gtr.subs({mu: mu_s, ph: ph_s, ps: ps_s})\n", " print(g[0,1] == gtr)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "size": 4 }, "source": [ "Reduced form of $g_{tt}$:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n" ] } ], "source": [ "if b == 0 and not keep_Delta:\n", " gtt = (a^2*Delta_th*sinth2 - Delta_r)/rho2 \\\n", " + (2*beta1*a^2*l^2*sinth2*(Delta_r - Delta_th*(r^2 + a^2)))/(rho2*Xi_a) \\\n", " + beta1^2*a^2*l^4*sinth2/(rho2*Xi_a^2)*(Delta_th*(r^2 + a^2)^2 - a^2*Delta_r*sinth2) \\\n", " + beta2^2*a^2*l^4*r^2*costh2\n", " gtt = gtt.subs({mu: mu_s, ph: ph_s, ps: ps_s})\n", " print(g[0,0] == gtt)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Reduced form of $g_{rr}$:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n" ] } ], "source": [ "if b == 0 and not keep_Delta:\n", " grr = rho2/Delta_r + a^2*beta1^2*sinth2/(Xi_a^2*rho2)*(Delta_th*(r^2 + a^2)^2\n", " - Delta_r*a^2*sinth2)*diff(phi_1(r), r)^2 \\\n", " + a^4*rho2/Delta_th/sinth2*diff(mu_1(r), r)^2 \\\n", " + beta2^2*a^2*r^2*costh2*diff(psi_1(r), r)^2\n", " grr = grr.subs({mu: mu_s, ph: ph_s, ps: ps_s})\n", " print(g[1,1] == grr)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "## Nambu-Goto action" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "detg = g.determinant().expr()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Expanding at second order in $a$:" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(((Mu0^2*a^2*beta2^2 - (Mu0^2 - 1)*a^2*beta1^2 - 2*(Mu0^2 - 1)*a^2*beta1)*l^4 - l^2)*r^4 - (Mu0^2 - 1)*a^2 + ((Mu0^2 - 1)*a^2*beta1^2*l^4*r^8 + 2*(Mu0^2 - 1)*a^2*beta1^2*l^2*r^6 - 4*(Mu0^2 - 1)*a^2*beta1^2*m*r^2 + 4*(Mu0^2 - 1)*a^2*beta1^2*m^2 - (4*(Mu0^2 - 1)*a^2*beta1^2*l^2*m - (Mu0^2 - 1)*a^2*beta1^2)*r^4)*diff(phi_1(r), r)^2 - (Mu0^2*a^2*beta2^2*l^4*r^8 + 2*Mu0^2*a^2*beta2^2*l^2*r^6 - 4*Mu0^2*a^2*beta2^2*m*r^2 + 4*Mu0^2*a^2*beta2^2*m^2 - (4*Mu0^2*a^2*beta2^2*l^2*m - Mu0^2*a^2*beta2^2)*r^4)*diff(psi_1(r), r)^2 + 2*(2*(Mu0^2 - 1)*a^2*beta1*l^2 + 1)*m - r^2)/(l^2*r^4 + r^2 - 2*m)" ] }, "execution_count": 39, "metadata": { }, "output_type": "execute_result" } ], "source": [ "detg_a2 = detg.series(a, 3).truncate().simplify_full()\n", "detg_a2 " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The Nambu-Goto Lagrangian at second order in $a$:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-1/2*(((Mu0^2*a^2*beta2^2 - (Mu0^2 - 1)*a^2*beta1^2 - 2*(Mu0^2 - 1)*a^2*beta1)*l^4 - 2*l^2)*r^4 - (Mu0^2 - 1)*a^2 + ((Mu0^2 - 1)*a^2*beta1^2*l^4*r^8 + 2*(Mu0^2 - 1)*a^2*beta1^2*l^2*r^6 - 4*(Mu0^2 - 1)*a^2*beta1^2*m*r^2 + 4*(Mu0^2 - 1)*a^2*beta1^2*m^2 - (4*(Mu0^2 - 1)*a^2*beta1^2*l^2*m - (Mu0^2 - 1)*a^2*beta1^2)*r^4)*diff(phi_1(r), r)^2 - (Mu0^2*a^2*beta2^2*l^4*r^8 + 2*Mu0^2*a^2*beta2^2*l^2*r^6 - 4*Mu0^2*a^2*beta2^2*m*r^2 + 4*Mu0^2*a^2*beta2^2*m^2 - (4*Mu0^2*a^2*beta2^2*l^2*m - Mu0^2*a^2*beta2^2)*r^4)*diff(psi_1(r), r)^2 + 4*((Mu0^2 - 1)*a^2*beta1*l^2 + 1)*m - 2*r^2)/(l^2*r^4 + r^2 - 2*m)" ] }, "execution_count": 40, "metadata": { }, "output_type": "execute_result" } ], "source": [ "L_a2 = (sqrt(-detg_a2)).series(a, 3).truncate().simplify_full()\n", "L_a2" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-Mu0^2*a^2*beta1^2*l^4*r^8*diff(phi_1(r), r)^2 + Mu0^2*a^2*beta2^2*l^4*r^8*diff(psi_1(r), r)^2 + a^2*beta1^2*l^4*r^8*diff(phi_1(r), r)^2 - 2*Mu0^2*a^2*beta1^2*l^2*r^6*diff(phi_1(r), r)^2 + 2*Mu0^2*a^2*beta2^2*l^2*r^6*diff(psi_1(r), r)^2 + 4*Mu0^2*a^2*beta1^2*l^2*m*r^4*diff(phi_1(r), r)^2 - 4*Mu0^2*a^2*beta2^2*l^2*m*r^4*diff(psi_1(r), r)^2 + Mu0^2*a^2*beta1^2*l^4*r^4 - Mu0^2*a^2*beta2^2*l^4*r^4 + 2*a^2*beta1^2*l^2*r^6*diff(phi_1(r), r)^2 + 2*Mu0^2*a^2*beta1*l^4*r^4 - 4*a^2*beta1^2*l^2*m*r^4*diff(phi_1(r), r)^2 - a^2*beta1^2*l^4*r^4 - Mu0^2*a^2*beta1^2*r^4*diff(phi_1(r), r)^2 + Mu0^2*a^2*beta2^2*r^4*diff(psi_1(r), r)^2 - 2*a^2*beta1*l^4*r^4 + 4*Mu0^2*a^2*beta1^2*m*r^2*diff(phi_1(r), r)^2 - 4*Mu0^2*a^2*beta2^2*m*r^2*diff(psi_1(r), r)^2 - 4*Mu0^2*a^2*beta1^2*m^2*diff(phi_1(r), r)^2 + a^2*beta1^2*r^4*diff(phi_1(r), r)^2 + 4*Mu0^2*a^2*beta2^2*m^2*diff(psi_1(r), r)^2 - 4*a^2*beta1^2*m*r^2*diff(phi_1(r), r)^2 - 4*Mu0^2*a^2*beta1*l^2*m + 4*a^2*beta1^2*m^2*diff(phi_1(r), r)^2 + 4*a^2*beta1*l^2*m + 2*l^2*r^4 + Mu0^2*a^2 - a^2 + 2*r^2 - 4*m" ] }, "execution_count": 41, "metadata": { }, "output_type": "execute_result" } ], "source": [ "L_a2.numerator()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2*l^2*r^4 + 2*r^2 - 4*m" ] }, "execution_count": 42, "metadata": { }, "output_type": "execute_result" } ], "source": [ "L_a2.denominator()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Euler-Lagrange equations" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "def euler_lagrange(lagr, qs, var):\n", " r\"\"\"\n", " Derive the Euler-Lagrange equations from a given Lagrangian.\n", "\n", " INPUT:\n", "\n", " - ``lagr`` -- symbolic expression representing the Lagrangian density\n", " - ``qs`` -- either a single symbolic function or a list/tuple of\n", " symbolic functions, representing the `q`'s; these functions must\n", " appear in ``lagr`` up to at most their first derivatives\n", " - ``var`` -- either a single variable, typically `t` (1-dimensional\n", " problem) or a list/tuple of symbolic variables\n", "\n", " OUTPUT:\n", "\n", " - list of Euler-Lagrange equations; if only one function is involved, the\n", " single Euler-Lagrannge equation is returned instead.\n", "\n", " \"\"\"\n", " if not isinstance(qs, (list, tuple)):\n", " qs = [qs]\n", " if not isinstance(var, (list, tuple)):\n", " var = [var]\n", " n = len(qs)\n", " d = len(var)\n", " qv = [SR.var('qxxxx{}'.format(q)) for q in qs]\n", " dqv = [[SR.var('qxxxx{}_{}'.format(q, v)) for v in var] for q in qs]\n", " subs = {qs[i](*var): qv[i] for i in range(n)}\n", " subs_inv = {qv[i]: qs[i](*var) for i in range(n)}\n", " for i in range(n):\n", " subs.update({diff(qs[i](*var), var[j]): dqv[i][j]\n", " for j in range(d)})\n", " subs_inv.update({dqv[i][j]: diff(qs[i](*var), var[j])\n", " for j in range(d)})\n", " lg = lagr.substitute(subs)\n", " eqs = []\n", " for i in range(n):\n", " dLdq = diff(lg, qv[i]).simplify_full()\n", " dLdq = dLdq.substitute(subs_inv)\n", " ddL = 0\n", " for j in range(d):\n", " h = diff(lg, dqv[i][j]).simplify_full()\n", " h = h.substitute(subs_inv)\n", " ddL += diff(h, var[j])\n", " eqs.append((dLdq - ddL).simplify_full() == 0)\n", " if n == 1:\n", " return eqs[0]\n", " return eqs" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "We compute the Euler-Lagrange equations at order $a^2$ for $\\phi_1$ and $\\psi_1$:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[2*(2*(Mu0^2 - 1)*a^2*beta1^2*l^2*r^3 + (Mu0^2 - 1)*a^2*beta1^2*r)*diff(phi_1(r), r) + ((Mu0^2 - 1)*a^2*beta1^2*l^2*r^4 + (Mu0^2 - 1)*a^2*beta1^2*r^2 - 2*(Mu0^2 - 1)*a^2*beta1^2*m)*diff(phi_1(r), r, r) == 0,\n", " -2*(2*Mu0^2*a^2*beta2^2*l^2*r^3 + Mu0^2*a^2*beta2^2*r)*diff(psi_1(r), r) - (Mu0^2*a^2*beta2^2*l^2*r^4 + Mu0^2*a^2*beta2^2*r^2 - 2*Mu0^2*a^2*beta2^2*m)*diff(psi_1(r), r, r) == 0]" ] }, "execution_count": 44, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eqs = euler_lagrange(L_a2, [phi_1, psi_1], r)\n", "eqs" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "#### Solving the equation for $\\phi_1$" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2*(2*(Mu0^2 - 1)*a^2*beta1^2*l^2*r^3 + (Mu0^2 - 1)*a^2*beta1^2*r)*diff(phi_1(r), r) + ((Mu0^2 - 1)*a^2*beta1^2*l^2*r^4 + (Mu0^2 - 1)*a^2*beta1^2*r^2 - 2*(Mu0^2 - 1)*a^2*beta1^2*m)*diff(phi_1(r), r, r) == 0" ] }, "execution_count": 45, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_phi1 = eqs[0]\n", "eq_phi1" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2*(2*l^2*r^3 + r)*diff(phi_1(r), r) + (l^2*r^4 + r^2 - 2*m)*diff(phi_1(r), r, r) == 0" ] }, "execution_count": 46, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_phi1 = (eq_phi1/(a^2*(Mu0^2-1)*beta1^2)).simplify_full()\n", "eq_phi1" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "_K1*integrate(1/(l^2*r^4 + r^2 - 2*m), r) + _K2" ] }, "execution_count": 47, "metadata": { }, "output_type": "execute_result" } ], "source": [ "phi1_sol(r) = desolve(eq_phi1, phi_1(r), ivar=r)\n", "phi1_sol(r)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "We revover Eqs. (3.35)-(3.36) of the paper with $K_1 = \\mathcal{P}/\\beta_1^2$ and $K_2=0$.\n", "In what follows, we introduce $\\mathcal{P}' = \\mathcal{P}/\\beta_1^2$ instead of $\\mathcal{P}$." ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The symbolic constants $K_1$ and $K_2$ are actually denoted `_K1` and `_K2` by SageMath, as the `print` reveals:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_K1*integrate(1/(l^2*r^4 + r^2 - 2*m), r) + _K2\n" ] } ], "source": [ "print(phi1_sol(r))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Hence we perform the substitutions with `SR.var('_K1')` and `SR.var('_K2')`:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "P*integrate(1/(l^2*r^4 + r^2 - 2*m), r)\n" ] } ], "source": [ "P = var(\"P\", latex_name=r\"\\mathcal{P}'\")\n", "phi1_sol(r) = phi1_sol(r).subs({SR.var('_K1'): P, SR.var('_K2'): 0})\n", "print(phi1_sol(r))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "#### Solving the equation for $\\psi_1$" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-2*(2*Mu0^2*a^2*beta2^2*l^2*r^3 + Mu0^2*a^2*beta2^2*r)*diff(psi_1(r), r) - (Mu0^2*a^2*beta2^2*l^2*r^4 + Mu0^2*a^2*beta2^2*r^2 - 2*Mu0^2*a^2*beta2^2*m)*diff(psi_1(r), r, r) == 0" ] }, "execution_count": 50, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_psi1 = eqs[1]\n", "eq_psi1" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-2*(2*l^2*r^3 + r)*diff(psi_1(r), r) - (l^2*r^4 + r^2 - 2*m)*diff(psi_1(r), r, r) == 0" ] }, "execution_count": 51, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_psi1 = (eq_psi1/(a^2*Mu0^2*beta2^2)).simplify_full()\n", "eq_psi1" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "_K1*integrate(1/(l^2*r^4 + r^2 - 2*m), r) + _K2" ] }, "execution_count": 52, "metadata": { }, "output_type": "execute_result" } ], "source": [ "psi1_sol(r) = desolve(eq_psi1, psi_1(r), ivar=r)\n", "psi1_sol(r)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "We revover Eq. (3.35)-(3.36) of the paper with $K_1 = \\mathcal{Q}/\\beta_2^2$ and $K_2=0$.\n", "In what follows, we introduce $\\mathcal{Q}' = \\mathcal{Q}/\\beta_2^2$ instead of $\\mathcal{Q}$:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Q*integrate(1/(l^2*r^4 + r^2 - 2*m), r)\n" ] } ], "source": [ "Q = var('Q', latex_name=r\"\\mathcal{Q}'\")\n", "psi1_sol(r) = psi1_sol(r).subs({SR.var('_K1'): Q, SR.var('_K2'): 0})\n", "print(psi1_sol(r))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Nambu-Goto Lagrangian at fourth order in $a$" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "detg_a4 = detg.series(a, 5).truncate().simplify_full()" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "L_a4 = (sqrt(-detg_a4)).series(a, 5).truncate().simplify_full()" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "eqs = euler_lagrange(L_a4, [phi_1, psi_1, mu_1], r)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### The equation for $\\mu_1$" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-(4*(Mu0^3 - Mu0)*a^4*beta1*l^2*m - ((Mu0^3 - Mu0)*a^4*beta1^2 - (Mu0^3 - Mu0)*a^4*beta2^2 + 2*(Mu0^3 - Mu0)*a^4*beta1)*l^4*r^4 - (Mu0^3 - Mu0)*a^4 + ((Mu0^3 - Mu0)*a^4*beta1^2*l^4*r^8 + 2*(Mu0^3 - Mu0)*a^4*beta1^2*l^2*r^6 - 4*(Mu0^3 - Mu0)*a^4*beta1^2*m*r^2 + 4*(Mu0^3 - Mu0)*a^4*beta1^2*m^2 - (4*(Mu0^3 - Mu0)*a^4*beta1^2*l^2*m - (Mu0^3 - Mu0)*a^4*beta1^2)*r^4)*diff(phi_1(r), r)^2 - ((Mu0^3 - Mu0)*a^4*beta2^2*l^4*r^8 + 2*(Mu0^3 - Mu0)*a^4*beta2^2*l^2*r^6 - 4*(Mu0^3 - Mu0)*a^4*beta2^2*m*r^2 + 4*(Mu0^3 - Mu0)*a^4*beta2^2*m^2 - (4*(Mu0^3 - Mu0)*a^4*beta2^2*l^2*m - (Mu0^3 - Mu0)*a^4*beta2^2)*r^4)*diff(psi_1(r), r)^2 - 2*(2*a^4*l^4*r^7 + 3*a^4*l^2*r^5 - 2*a^4*m*r - (4*a^4*l^2*m - a^4)*r^3)*diff(mu_1(r), r) - (a^4*l^4*r^8 + 2*a^4*l^2*r^6 - 4*a^4*m*r^2 + 4*a^4*m^2 - (4*a^4*l^2*m - a^4)*r^4)*diff(mu_1(r), r, r))/((Mu0^2 - 1)*l^2*r^4 + (Mu0^2 - 1)*r^2 - 2*(Mu0^2 - 1)*m) == 0" ] }, "execution_count": 57, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_mu1 = eqs[2]\n", "eq_mu1" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "# eq_mu1.lhs().numerator().simplify_full()" ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(Mu0^2 - 1)*l^2*r^4 + (Mu0^2 - 1)*r^2 - 2*(Mu0^2 - 1)*m" ] }, "execution_count": 59, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_mu1.lhs().denominator().simplify_full()" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "eq_mu1 = eq_mu1.lhs().numerator().simplify_full() == 0" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^4*r^4 - 4*(Mu0^3 - Mu0)*beta1*l^2*m + Mu0^3 - ((Mu0^3 - Mu0)*beta1^2*l^4*r^8 + 2*(Mu0^3 - Mu0)*beta1^2*l^2*r^6 - 4*(Mu0^3 - Mu0)*beta1^2*m*r^2 + 4*(Mu0^3 - Mu0)*beta1^2*m^2 - (4*(Mu0^3 - Mu0)*beta1^2*l^2*m - (Mu0^3 - Mu0)*beta1^2)*r^4)*diff(phi_1(r), r)^2 + ((Mu0^3 - Mu0)*beta2^2*l^4*r^8 + 2*(Mu0^3 - Mu0)*beta2^2*l^2*r^6 - 4*(Mu0^3 - Mu0)*beta2^2*m*r^2 + 4*(Mu0^3 - Mu0)*beta2^2*m^2 - (4*(Mu0^3 - Mu0)*beta2^2*l^2*m - (Mu0^3 - Mu0)*beta2^2)*r^4)*diff(psi_1(r), r)^2 + 2*(2*l^4*r^7 + 3*l^2*r^5 - (4*l^2*m - 1)*r^3 - 2*m*r)*diff(mu_1(r), r) + (l^4*r^8 + 2*l^2*r^6 - (4*l^2*m - 1)*r^4 - 4*m*r^2 + 4*m^2)*diff(mu_1(r), r, r) - Mu0 == 0" ] }, "execution_count": 61, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_mu1 = (eq_mu1/a^4).simplify_full()\n", "eq_mu1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "We plug the solutions obtained previously for $\\phi_1(r)$ and $\\psi_1(r)$ in this equation:" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^4*r^4 - (Mu0^3 - Mu0)*P^2*beta1^2 + (Mu0^3 - Mu0)*Q^2*beta2^2 - 4*(Mu0^3 - Mu0)*beta1*l^2*m + Mu0^3 + 2*(2*l^4*r^7 + 3*l^2*r^5 - (4*l^2*m - 1)*r^3 - 2*m*r)*diff(mu_1(r), r) + (l^4*r^8 + 2*l^2*r^6 - (4*l^2*m - 1)*r^4 - 4*m*r^2 + 4*m^2)*diff(mu_1(r), r, r) - Mu0 == 0" ] }, "execution_count": 62, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_mu1 = eq_mu1.substitute_function(phi_1, phi1_sol).substitute_function(psi_1, psi1_sol)\n", "eq_mu1 = eq_mu1.simplify_full()\n", "eq_mu1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Check of Eq. (3.37)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^4*r^4 - (Mu0^3 - Mu0)*P^2*beta1^2 + (Mu0^3 - Mu0)*Q^2*beta2^2 - 4*(Mu0^3 - Mu0)*beta1*l^2*m + Mu0^3 + 2*(2*l^4*r^7 + 3*l^2*r^5 - (4*l^2*m - 1)*r^3 - 2*m*r)*diff(mu_1(r), r) + (l^4*r^8 + 2*l^2*r^6 - (4*l^2*m - 1)*r^4 - 4*m*r^2 + 4*m^2)*diff(mu_1(r), r, r) - Mu0" ] }, "execution_count": 63, "metadata": { }, "output_type": "execute_result" } ], "source": [ "lhs = eq_mu1.lhs()\n", "lhs = lhs.simplify_full()\n", "lhs" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(l^2*r^4 + r^2 - 2*m)^2" ] }, "execution_count": 64, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s = lhs.coefficient(diff(mu_1(r), r, 2)) # coefficient of mu_1''\n", "s.factor()" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^4*r^4 - (Mu0^3 - Mu0)*P^2*beta1^2 + (Mu0^3 - Mu0)*Q^2*beta2^2 - 4*(Mu0^3 - Mu0)*beta1*l^2*m + Mu0^3 + 2*(2*l^4*r^7 + 3*l^2*r^5 - (4*l^2*m - 1)*r^3 - 2*m*r)*diff(mu_1(r), r) - Mu0)/(l^4*r^8 + 2*l^2*r^6 - (4*l^2*m - 1)*r^4 - 4*m*r^2 + 4*m^2)" ] }, "execution_count": 65, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s1 = (lhs/s - diff(mu_1(r), r, 2)).simplify_full()\n", "s1" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "2*(2*l^2*r^2 + 1)*r/(l^2*r^4 + r^2 - 2*m)" ] }, "execution_count": 66, "metadata": { }, "output_type": "execute_result" } ], "source": [ "b1 = s1.coefficient(diff(mu_1(r), r)).factor()\n", "b1" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^4*r^4 - (Mu0^3 - Mu0)*P^2*beta1^2 + (Mu0^3 - Mu0)*Q^2*beta2^2 - 4*(Mu0^3 - Mu0)*beta1*l^2*m + Mu0^3 - Mu0)/(l^4*r^8 + 2*l^2*r^6 - (4*l^2*m - 1)*r^4 - 4*m*r^2 + 4*m^2)" ] }, "execution_count": 67, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2 = (s1 - b1*diff(mu_1(r), r)).simplify_full()\n", "s2" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(beta1^2*l^4*r^4 - beta2^2*l^4*r^4 + 2*beta1*l^4*r^4 - P^2*beta1^2 + Q^2*beta2^2 - 4*beta1*l^2*m + 1)*(Mu0 + 1)*(Mu0 - 1)*Mu0/(l^2*r^4 + r^2 - 2*m)^2" ] }, "execution_count": 68, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2.factor()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The equation for $\\mu_1$ is thus:" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(beta1^2*l^4*r^4 - beta2^2*l^4*r^4 + 2*beta1*l^4*r^4 - P^2*beta1^2 + Q^2*beta2^2 - 4*beta1*l^2*m + 1)*(Mu0 + 1)*(Mu0 - 1)*Mu0/(l^2*r^4 + r^2 - 2*m)^2 + 2*(2*l^2*r^2 + 1)*r*diff(mu_1(r), r)/(l^2*r^4 + r^2 - 2*m) + diff(mu_1(r), r, r) == 0" ] }, "execution_count": 69, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_mu1 = diff(mu_1(r), r, 2) + b1*diff(mu_1(r), r) + s2.factor() == 0\n", "eq_mu1" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "l^2 + 1/r^2 - 2*m/r^4" ] }, "execution_count": 70, "metadata": { }, "output_type": "execute_result" } ], "source": [ "h(r) = l^2 + 1/r^2 - 2*m/r^4\n", "h(r)" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-(beta1^2 - beta2^2 + 2*beta1)*l^4*r^4 + P^2*beta1^2 - Q^2*beta2^2 + 4*beta1*l^2*m - 1" ] }, "execution_count": 71, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s3 = (s2 / (Mu0*(1-Mu0^2))* r^8*h(r)^2).simplify_full()\n", "s3" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Given that \n", "$$ \\mu_1(r) = - \\sin\\Theta_0 \\; \\theta_1(r) = - \\sqrt{1-\\mu_0^2} \\; \\theta_1(r) \\qquad\\mbox{and} \\qquad \\sin2\\Theta_0 = 2\\mu_0\\sqrt{1-\\mu_0^2},$$ \n", "we get for the equation for $\\theta_1$:\n", "$$ \\theta_1'' + \\frac{2r(1 + \\ell^2 r^2)}{r^4 h} \\, \\theta_1' + \\frac{1 + \\beta_2^{-2}\\mathcal{Q}^2 - \\beta_1^{-2}\\mathcal{P}^2 - 4 \\beta_1 \\ell^2 m + (\\beta_1^2 + 2 \\beta_1 - \\beta_2^2) \\ell^4 r^4}{2 r^8 h^2}\\sin(2\\Theta_0) = 0 $$ " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "This agrees with Eq. (3.37) of the paper." ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Solving the equation for $\\mu_1$" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "_K2 - integrate((((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^2*r + (Mu0^3 - Mu0)*integrate(-((beta1^2 - beta2^2 + 2*beta1)*l^2*r^2 + P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1)/(l^2*r^4 + r^2 - 2*m), r) - _K1)/(l^2*r^4 + r^2 - 2*m), r)" ] }, "execution_count": 72, "metadata": { }, "output_type": "execute_result" } ], "source": [ "mu1_sol(r) = desolve(eq_mu1, mu_1(r), ivar=r)\n", "mu1_sol(r)" ] }, { "cell_type": "code", "execution_count": 73, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_K2 - integrate((((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^2*r + (Mu0^3 - Mu0)*integrate(-((beta1^2 - beta2^2 + 2*beta1)*l^2*r^2 + P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1)/(l^2*r^4 + r^2 - 2*m), r) - _K1)/(l^2*r^4 + r^2 - 2*m), r)\n" ] } ], "source": [ "print(mu1_sol(r))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Let us check that `mu1_sol` is indeed a solution of the equation for $\\mu_1$:" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0 == 0" ] }, "execution_count": 74, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_mu1.substitute_function(mu_1, mu1_sol).simplify_full()" ] }, { "cell_type": "code", "execution_count": 75, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "_K2 - integrate((((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^2*r + (Mu0^3 - Mu0)*integrate(-((beta1^2 - beta2^2 + 2*beta1)*l^2*r^2 + P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1)/(l^2*r^4 + r^2 - 2*m), r) - _K1)/(l^2*r^4 + r^2 - 2*m), r)" ] }, "execution_count": 75, "metadata": { }, "output_type": "execute_result" } ], "source": [ "mu1_sol(r)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The innermost integral can be written\n", "$$ (\\beta_1^2 - \\beta^2 + 2 \\beta_1) \\ell^2 \\; s_1(r) + \\left({\\mathcal{P}'}^2 \\beta_1^2 - {\\mathcal{Q}'}\\beta_2^2 - 2 (\\beta_1^2-\\beta_2^2)\\ell^2 m - 1\\right) \\; s_2(r)$$\n", "with \n", "$$ s_1(r) := \\int^r \\frac{\\bar{r}^2}{\\ell^2 \\bar{r}^4 + \\bar{r}^2 - 2m} \\, \\mathrm{d}\\bar{r} \\qquad \\mbox{and}\\qquad s_2(r) := \\int^r \\frac{\\mathrm{d}\\bar{r}}{\\ell^2 \\bar{r}^4 + \\bar{r}^2 - 2m} .$$" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Let us evaluate $s_1$ by means of FriCAS:" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/2*sqrt(1/2)*sqrt(-((8*l^4*m + l^2)/sqrt(8*l^6*m + l^4) + 1)/(8*l^4*m + l^2))*log(sqrt(1/2)*(8*l^4*m + l^2)*sqrt(-((8*l^4*m + l^2)/sqrt(8*l^6*m + l^4) + 1)/(8*l^4*m + l^2))/sqrt(8*l^6*m + l^4) + r) - 1/2*sqrt(1/2)*sqrt(-((8*l^4*m + l^2)/sqrt(8*l^6*m + l^4) + 1)/(8*l^4*m + l^2))*log(-sqrt(1/2)*(8*l^4*m + l^2)*sqrt(-((8*l^4*m + l^2)/sqrt(8*l^6*m + l^4) + 1)/(8*l^4*m + l^2))/sqrt(8*l^6*m + l^4) + r) - 1/2*sqrt(1/2)*sqrt(((8*l^4*m + l^2)/sqrt(8*l^6*m + l^4) - 1)/(8*l^4*m + l^2))*log(sqrt(1/2)*(8*l^4*m + l^2)*sqrt(((8*l^4*m + l^2)/sqrt(8*l^6*m + l^4) - 1)/(8*l^4*m + l^2))/sqrt(8*l^6*m + l^4) + r) + 1/2*sqrt(1/2)*sqrt(((8*l^4*m + l^2)/sqrt(8*l^6*m + l^4) - 1)/(8*l^4*m + l^2))*log(-sqrt(1/2)*(8*l^4*m + l^2)*sqrt(((8*l^4*m + l^2)/sqrt(8*l^6*m + l^4) - 1)/(8*l^4*m + l^2))/sqrt(8*l^6*m + l^4) + r)" ] }, "execution_count": 76, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s1 = integrate(r^2/(l^2*r^4 + r^2 - 2*m), r, algorithm='fricas')\n", "s1" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(sqrt(2)*sqrt(8*l^2*m - sqrt(8*l^2*m + 1) + 1)*log((sqrt(2)*(8*l^2*m + 1)^(1/4)*l*r - sqrt(8*l^2*m - sqrt(8*l^2*m + 1) + 1))/(sqrt(2)*(8*l^2*m + 1)^(1/4)*l*r + sqrt(8*l^2*m - sqrt(8*l^2*m + 1) + 1))) + sqrt(2)*sqrt(-8*l^2*m - sqrt(8*l^2*m + 1) - 1)*log((sqrt(2)*(8*l^2*m + 1)^(1/4)*l*r + sqrt(-8*l^2*m - sqrt(8*l^2*m + 1) - 1))/(sqrt(2)*(8*l^2*m + 1)^(1/4)*l*r - sqrt(-8*l^2*m - sqrt(8*l^2*m + 1) - 1))))/((8*l^2*m + 1)^(3/4)*l)" ] }, "execution_count": 77, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s1 = s1.canonicalize_radical().simplify_log()\n", "s1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Check:" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "r^2/(l^2*r^4 + r^2 - 2*m)" ] }, "execution_count": 78, "metadata": { }, "output_type": "execute_result" } ], "source": [ "diff(s1, r).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Similarly, we evaluate $s_2$ by means of FriCAS:" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-1/4*sqrt(((8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) + 1)/(8*l^2*m^2 + m))*log(2*l^2*r + 1/2*(8*l^2*m - (8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) + 1)*sqrt(((8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) + 1)/(8*l^2*m^2 + m))) + 1/4*sqrt(((8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) + 1)/(8*l^2*m^2 + m))*log(2*l^2*r - 1/2*(8*l^2*m - (8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) + 1)*sqrt(((8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) + 1)/(8*l^2*m^2 + m))) - 1/4*sqrt(-((8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) - 1)/(8*l^2*m^2 + m))*log(2*l^2*r + 1/2*(8*l^2*m + (8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) + 1)*sqrt(-((8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) - 1)/(8*l^2*m^2 + m))) + 1/4*sqrt(-((8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) - 1)/(8*l^2*m^2 + m))*log(2*l^2*r - 1/2*(8*l^2*m + (8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) + 1)*sqrt(-((8*l^2*m^2 + m)/sqrt(8*l^2*m^3 + m^2) - 1)/(8*l^2*m^2 + m)))" ] }, "execution_count": 79, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2 = integrate(1/(l^2*r^4 + r^2 - 2*m), r, algorithm='fricas')\n", "s2" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(sqrt(-8*l^2*m + sqrt(8*l^2*m + 1) - 1)*log((4*(8*l^2*m + 1)^(1/4)*l^2*sqrt(m)*r - sqrt(-8*l^2*m + sqrt(8*l^2*m + 1) - 1)*(sqrt(8*l^2*m + 1) + 1))/(4*(8*l^2*m + 1)^(1/4)*l^2*sqrt(m)*r + sqrt(-8*l^2*m + sqrt(8*l^2*m + 1) - 1)*(sqrt(8*l^2*m + 1) + 1))) + sqrt(8*l^2*m + sqrt(8*l^2*m + 1) + 1)*log((4*(8*l^2*m + 1)^(1/4)*l^2*sqrt(m)*r - sqrt(8*l^2*m + sqrt(8*l^2*m + 1) + 1)*(sqrt(8*l^2*m + 1) - 1))/(4*(8*l^2*m + 1)^(1/4)*l^2*sqrt(m)*r + sqrt(8*l^2*m + sqrt(8*l^2*m + 1) + 1)*(sqrt(8*l^2*m + 1) - 1))))/((8*l^2*m + 1)^(3/4)*sqrt(m))" ] }, "execution_count": 80, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2 = s2.canonicalize_radical().simplify_log()\n", "s2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Check:" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/(l^2*r^4 + r^2 - 2*m)" ] }, "execution_count": 81, "metadata": { }, "output_type": "execute_result" } ], "source": [ "diff(s2, r).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "In the above expressions for $s_1(r)$ and $s_2(r)$ there appears the factor \n", "$$\\mathfrak{P} = \\sqrt{1 + 8\\ell^2 m},$$\n", "which we represent by the symbolic variable `B`" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "B = var('B')\n", "assume(B > 1)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Let us make $B$ appear in $s_1$:" ] }, { "cell_type": "code", "execution_count": 83, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(sqrt(2)*sqrt(B^2 - B)*log((sqrt(2)*sqrt(B)*l*r - sqrt(B^2 - B))/(sqrt(2)*sqrt(B)*l*r + sqrt(B^2 - B))) + sqrt(2)*sqrt(-B^2 - B)*log((sqrt(2)*sqrt(B)*l*r + sqrt(-B^2 - B))/(sqrt(2)*sqrt(B)*l*r - sqrt(-B^2 - B))))/(B^(3/2)*l)" ] }, "execution_count": 83, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s1 = s1.subs({l^2: (B^2 - 1)/(8*m)}).simplify_full()\n", "s1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "In this expression, there appears the term $\\sqrt{-B^2-B}$ which is imaginary since $B>1$. \n", "We there rewrite it as $i\\sqrt{B}\\sqrt{B+1}$:" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(I*sqrt(2)*sqrt(B + 1)*sqrt(B)*log((sqrt(2)*sqrt(B)*l*r + I*sqrt(B + 1)*sqrt(B))/(sqrt(2)*sqrt(B)*l*r - I*sqrt(B + 1)*sqrt(B))) + sqrt(2)*sqrt(B - 1)*sqrt(B)*log((sqrt(2)*sqrt(B)*l*r - sqrt(B - 1)*sqrt(B))/(sqrt(2)*sqrt(B)*l*r + sqrt(B - 1)*sqrt(B))))/(B^(3/2)*l)" ] }, "execution_count": 84, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s1 = s1.subs({sqrt(-B^2 - B): I*sqrt(B)*sqrt(B + 1), \n", " sqrt(B^2 - B): sqrt(B)*sqrt(B - 1)})\n", "s1" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(I*sqrt(2)*sqrt(B + 1)*log((sqrt(2)*l*r + I*sqrt(B + 1))/(sqrt(2)*l*r - I*sqrt(B + 1))) + sqrt(2)*sqrt(B - 1)*log((sqrt(2)*l*r - sqrt(B - 1))/(sqrt(2)*l*r + sqrt(B - 1))))/(B*l)" ] }, "execution_count": 85, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s1 = s1.simplify_log()\n", "s1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "In the first $\\log$, we recognize the $\\mathrm{arctan}$ function, via the identity\n", "$$\n", " \\mathrm{arctan}\\, x = \\frac{i}{2} \\ln\\left( \\frac{i + x}{i - x} \\right), \n", "$$\n", "which we use in the form\n", "$$\n", "i \\ln\\left( \\frac{x + i}{x - i} \\right) = 2 \\mathrm{arctan}(x) - \\pi\n", "$$\n", "as we can check:" ] }, { "cell_type": "code", "execution_count": 86, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0" ] }, "execution_count": 86, "metadata": { }, "output_type": "execute_result" } ], "source": [ "taylor(I*ln((x+I)/(x-I)) - 2*atan(x) + pi, x, 0, 10)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Thus, we set, disregarding the additive constant $-\\pi$," ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*sqrt(2)*(2*sqrt(B + 1)*arctan(sqrt(2)*l*r/sqrt(B + 1)) + sqrt(B - 1)*log((sqrt(2)*l*r/sqrt(B - 1) - 1)/(sqrt(2)*l*r/sqrt(B - 1) + 1)))/(B*l)" ] }, "execution_count": 87, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s1 = sqrt(2)/(4*B*l)*(2*sqrt(B+1)*atan(sqrt(2)*l/sqrt(B+1)*r)\n", " + sqrt(B-1)*ln((sqrt(2)*l/sqrt(B-1)*r - 1)/(sqrt(2)*l/sqrt(B-1)*r + 1)))\n", "s1" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Let us check that we have indeed a primitive of $r\\mapsto \\frac{r^2}{\\ell^2 r^4 + r^2 - 2m}$:" ] }, { "cell_type": "code", "execution_count": 88, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "4*l^2*r^2/(4*l^4*r^4 + 4*l^2*r^2 - B^2 + 1)" ] }, "execution_count": 88, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Ds1 = diff(s1, r).simplify_full()\n", "Ds1" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "r^2/(l^2*r^4 + r^2 - 2*m)" ] }, "execution_count": 89, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Ds1.subs({B: sqrt(1 + 8*l^2*m)}).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Similarly, we can express $s_2$ in terms of $B$:" ] }, { "cell_type": "code", "execution_count": 90, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(sqrt(B^2 + B)*log(((B + 1)*sqrt(B)*sqrt(m)*r - 2*sqrt(B^2 + B)*m)/((B + 1)*sqrt(B)*sqrt(m)*r + 2*sqrt(B^2 + B)*m)) + sqrt(-B^2 + B)*log(((B - 1)*sqrt(B)*sqrt(m)*r - 2*sqrt(-B^2 + B)*m)/((B - 1)*sqrt(B)*sqrt(m)*r + 2*sqrt(-B^2 + B)*m)))/(B^(3/2)*sqrt(m))" ] }, "execution_count": 90, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2 = s2.subs({l^2: (B^2 - 1)/(8*m)}).simplify_full()\n", "s2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Since $B>1$, we replace $\\sqrt{-B^2 + B}$ by $i\\sqrt{B}\\sqrt{B-1}$:" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(sqrt(B + 1)*sqrt(B)*log(((B + 1)*sqrt(B)*sqrt(m)*r - 2*sqrt(B + 1)*sqrt(B)*m)/((B + 1)*sqrt(B)*sqrt(m)*r + 2*sqrt(B + 1)*sqrt(B)*m)) + I*sqrt(B - 1)*sqrt(B)*log(((B - 1)*sqrt(B)*sqrt(m)*r - 2*I*sqrt(B - 1)*sqrt(B)*m)/((B - 1)*sqrt(B)*sqrt(m)*r + 2*I*sqrt(B - 1)*sqrt(B)*m)))/(B^(3/2)*sqrt(m))" ] }, "execution_count": 91, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2 = s2.subs({sqrt(-B^2 + B): I*sqrt(B)*sqrt(B - 1), \n", " sqrt(B^2 + B): sqrt(B)*sqrt(B + 1)})\n", "s2" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(sqrt(B + 1)*log(((B + 1)*sqrt(m)*r - 2*sqrt(B + 1)*m)/((B + 1)*sqrt(m)*r + 2*sqrt(B + 1)*m)) + I*sqrt(B - 1)*log(((B - 1)*sqrt(m)*r - 2*I*sqrt(B - 1)*m)/((B - 1)*sqrt(m)*r + 2*I*sqrt(B - 1)*m)))/(B*sqrt(m))" ] }, "execution_count": 92, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2 = s2.simplify_log()\n", "s2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Again, we use the identity\n", "$$\n", "i \\ln\\left( \\frac{x + i}{x - i} \\right) = 2 \\mathrm{arctan}(x) - \\pi\n", "$$\n", "to rewrite $s_2$ as" ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-1/4*(2*sqrt(B - 1)*arctan(1/2*sqrt(B - 1)*r/sqrt(m)) - sqrt(B + 1)*log((sqrt(B + 1)*r/sqrt(m) - 2)/(sqrt(B + 1)*r/sqrt(m) + 2)))/(B*sqrt(m))" ] }, "execution_count": 93, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s2 = 1/(4*B*sqrt(m))*(sqrt(B+1)*ln( (sqrt(B+1)/(2*sqrt(m))*r - 1)\n", " /(sqrt(B+1)/(2*sqrt(m))*r + 1) )\n", " - 2*sqrt(B-1)*atan(sqrt(B-1)/(2*sqrt(m))*r))\n", "s2" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Let us check that we have indeed a primitive of $r\\mapsto \\frac{1}{\\ell^2 r^4 + r^2 - 2m}$:" ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "8*m/((B^2 - 1)*r^4 + 8*m*r^2 - 16*m^2)" ] }, "execution_count": 94, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Ds2 = diff(s2, r).simplify_full()\n", "Ds2" ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/(l^2*r^4 + r^2 - 2*m)" ] }, "execution_count": 95, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Ds2.subs({B: sqrt(1 + 8*l^2*m)}).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Given the above expressions for $s_1(r)$ and $s_2(r)$ we rewrite the solution" ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "_K2 - integrate((((Mu0^3 - Mu0)*beta1^2 - (Mu0^3 - Mu0)*beta2^2 + 2*(Mu0^3 - Mu0)*beta1)*l^2*r + (Mu0^3 - Mu0)*integrate(-((beta1^2 - beta2^2 + 2*beta1)*l^2*r^2 + P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1)/(l^2*r^4 + r^2 - 2*m), r) - _K1)/(l^2*r^4 + r^2 - 2*m), r)" ] }, "execution_count": 96, "metadata": { }, "output_type": "execute_result" } ], "source": [ "mu1_sol(r)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "as " ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Instead of $K_1$ and $K_2$, let us introduce the same constants $C_1$ and $C_2$ as in Eq. (3.75) of 5dKerr-AdS-AGG-5-12:" ] }, { "cell_type": "code", "execution_count": 97, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "C1, C2 = var('C_1', 'C_2') " ] }, { "cell_type": "code", "execution_count": 98, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-C_2/(sqrt(-Mu0^2 + 1)*Mu0) + 1/4*(2*sqrt(B - 1)*arctan(1/2*sqrt(B - 1)*r/sqrt(m)) - sqrt(B + 1)*log((sqrt(B + 1)*r/sqrt(m) - 2)/(sqrt(B + 1)*r/sqrt(m) + 2)))*C_1/(sqrt(-Mu0^2 + 1)*B*Mu0*sqrt(m)) + integrate(1/4*(4*(beta1^2 - beta2^2 + 2*beta1)*l^2*r - sqrt(2)*(beta1^2 - beta2^2 + 2*beta1)*(2*sqrt(B + 1)*arctan(sqrt(2)*l*r/sqrt(B + 1)) + sqrt(B - 1)*log((sqrt(2)*l*r/sqrt(B - 1) - 1)/(sqrt(2)*l*r/sqrt(B - 1) + 1)))*l/B + (P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1)*(2*sqrt(B - 1)*arctan(1/2*sqrt(B - 1)*r/sqrt(m)) - sqrt(B + 1)*log((sqrt(B + 1)*r/sqrt(m) - 2)/(sqrt(B + 1)*r/sqrt(m) + 2)))/(B*sqrt(m)))/(l^2*r^4 + r^2 - 2*m), r)" ] }, "execution_count": 98, "metadata": { }, "output_type": "execute_result" } ], "source": [ "# mu1 / mu0(1-mu0^2) : \n", "mu1s0 = -C2/(Mu0*sqrt(1-Mu0^2)) - C1/(Mu0*sqrt(1-Mu0^2))*s2 \\\n", " + integrate(((beta1^2 + 2*beta1 - beta2^2)*l^2*r \n", " - (beta1^2 + 2*beta1 - beta2^2)*l^2 * s1\n", " - (P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1) * s2)\n", " / (l^2*r^4 + r^2 - 2*m), \n", " r, hold=True)\n", "mu1s0" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*(Mu0^2 - 1)*Mu0*(4*C_2/(sqrt(-Mu0^2 + 1)*Mu0) - (2*sqrt(B - 1)*arctan(1/2*sqrt(B - 1)*r/sqrt(m)) - sqrt(B + 1)*log((sqrt(B + 1)*r/sqrt(m) - 2)/(sqrt(B + 1)*r/sqrt(m) + 2)))*C_1/(sqrt(-Mu0^2 + 1)*B*Mu0*sqrt(m)) - 4*integrate(1/4*(4*(beta1^2 - beta2^2 + 2*beta1)*l^2*r - sqrt(2)*(beta1^2 - beta2^2 + 2*beta1)*(2*sqrt(B + 1)*arctan(sqrt(2)*l*r/sqrt(B + 1)) + sqrt(B - 1)*log((sqrt(2)*l*r/sqrt(B - 1) - 1)/(sqrt(2)*l*r/sqrt(B - 1) + 1)))*l/B + (P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1)*(2*sqrt(B - 1)*arctan(1/2*sqrt(B - 1)*r/sqrt(m)) - sqrt(B + 1)*log((sqrt(B + 1)*r/sqrt(m) - 2)/(sqrt(B + 1)*r/sqrt(m) + 2)))/(B*sqrt(m)))/(l^2*r^4 + r^2 - 2*m), r))" ] }, "execution_count": 99, "metadata": { }, "output_type": "execute_result" } ], "source": [ "mu1_sol(r) = mu1s0 * Mu0*(1-Mu0^2)\n", "mu1_sol(r)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Let us check that we do have a solution of the equation for $\\mu_1$:" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0 == 0" ] }, "execution_count": 100, "metadata": { }, "output_type": "execute_result" } ], "source": [ "eq_mu1.substitute_function(mu_1, mu1_sol).simplify_full().subs({B: sqrt(1 + 8*l^2*m)}).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Check of the solution (3.38)" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "sqrt(8*l^2*m + 1)" ] }, "execution_count": 101, "metadata": { }, "output_type": "execute_result" } ], "source": [ "Blm = sqrt(1 + 8*m*l^2)\n", "Blm" ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "beta1^2 - beta2^2 + 2*beta1" ] }, "execution_count": 102, "metadata": { }, "output_type": "execute_result" } ], "source": [ "A = beta1^2 - beta2^2 + 2*beta1\n", "A" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-2*P^2*beta1^2 + 2*Q^2*beta2^2 + 4*(beta1^2 - beta2^2)*l^2*m + beta1^2 - beta2^2 + 2*beta1 + 2" ] }, "execution_count": 103, "metadata": { }, "output_type": "execute_result" } ], "source": [ "J = 4*l^2*m*(beta1^2 - beta2^2) - 2*beta1^2*P^2 + 2*beta2^2*Q^2 + 2 + A \n", "J" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "From Eq. (3.38):" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-sqrt(-Mu0^2 + 1)*Mu0*integrate(1/2*(2*(beta1^2 - beta2^2 + 2*beta1)*l^2*r + sqrt(2)*((2*P^2*beta1^2 - 2*Q^2*beta2^2 - 4*(beta1^2 - beta2^2)*l^2*m - beta1^2 + beta2^2 - sqrt(8*l^2*m + 1)*(beta1^2 - beta2^2 + 2*beta1) - 2*beta1 - 2)*arctan(sqrt(2)*l*r/sqrt(sqrt(8*l^2*m + 1) + 1))/sqrt(sqrt(8*l^2*m + 1) + 1) - (2*P^2*beta1^2 - 2*Q^2*beta2^2 - 4*(beta1^2 - beta2^2)*l^2*m - beta1^2 + beta2^2 + sqrt(8*l^2*m + 1)*(beta1^2 - beta2^2 + 2*beta1) - 2*beta1 - 2)*arctan(sqrt(2)*l*r/sqrt(-sqrt(8*l^2*m + 1) + 1))/sqrt(-sqrt(8*l^2*m + 1) + 1))*l/sqrt(8*l^2*m + 1))/(l^2*r^4 + r^2 - 2*m), r) + C_1*integrate(1/(l^2*r^4 + r^2 - 2*m), r) + C_2" ] }, "execution_count": 104, "metadata": { }, "output_type": "execute_result" } ], "source": [ "theta1 = C2 + C1*integrate(1/(l^2*r^4 + r^2 - 2*m), r, hold=True) - Mu0*sqrt(1-Mu0^2)\\\n", " *integrate((A*l^2*r \n", " + l/(sqrt(2)*Blm)*(\n", " (J - A*Blm)/sqrt(1-Blm)*atan(sqrt(2)*l*r/sqrt(1-Blm)) \n", " - (J + A*Blm)/sqrt(1+Blm)*atan(sqrt(2)*l*r/sqrt(1+Blm)) ))\n", " /(l^2*r^4 + r^2 - 2*m), \n", " r, hold=True)\n", "theta1 " ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "0 == 0" ] }, "execution_count": 105, "metadata": { }, "output_type": "execute_result" } ], "source": [ "mu1_sol2(r) = - sinTh0 * theta1\n", "eq_mu1.substitute_function(mu_1, mu1_sol2).simplify_full()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Hence Eq. (3.38) provides a solution of the equation for $\\mu_1$." ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Conjugate momenta" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "def conjugate_momenta(lagr, qs, var):\n", " r\"\"\"\n", " Compute the conjugate momenta from a given Lagrangian.\n", "\n", " INPUT:\n", "\n", " - ``lagr`` -- symbolic expression representing the Lagrangian density\n", " - ``qs`` -- either a single symbolic function or a list/tuple of\n", " symbolic functions, representing the `q`'s; these functions must\n", " appear in ``lagr`` up to at most their first derivatives\n", " - ``var`` -- either a single variable, typically `t` (1-dimensional\n", " problem) or a list/tuple of symbolic variables; in the latter case the\n", " time coordinate must the first one\n", "\n", " OUTPUT:\n", "\n", " - list of conjugate momenta; if only one function is involved, the\n", " single conjugate momentum is returned instead.\n", "\n", " \"\"\"\n", " if not isinstance(qs, (list, tuple)):\n", " qs = [qs]\n", " if not isinstance(var, (list, tuple)):\n", " var = [var]\n", " n = len(qs)\n", " d = len(var)\n", " dqvt = [SR.var('qxxxx{}_t'.format(q)) for q in qs]\n", " subs = {diff(qs[i](*var), var[0]): dqvt[i] for i in range(n)}\n", " subs_inv = {dqvt[i]: diff(qs[i](*var), var[0]) for i in range(n)}\n", " lg = lagr.substitute(subs)\n", " ps = [diff(lg, dotq).simplify_full().substitute(subs_inv) for dotq in dqvt]\n", " if n == 1:\n", " return ps[0]\n", " return ps" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "[-(Mu0^2 - 1)*a^2*beta1^2*l^2*r^4*diff(phi_1(r), r) - (Mu0^2 - 1)*a^2*beta1^2*r^2*diff(phi_1(r), r) + 2*(Mu0^2 - 1)*a^2*beta1^2*m*diff(phi_1(r), r),\n", " Mu0^2*a^2*beta2^2*l^2*r^4*diff(psi_1(r), r) + Mu0^2*a^2*beta2^2*r^2*diff(psi_1(r), r) - 2*Mu0^2*a^2*beta2^2*m*diff(psi_1(r), r)]" ] }, "execution_count": 107, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pis = conjugate_momenta(L_a2, [phi_1, psi_1], r)\n", "pis" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Check of Eq. (3.45)" ] }, { "cell_type": "code", "execution_count": 108, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-(Mu0^2 - 1)*P*a*beta1" ] }, "execution_count": 108, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pi_phi_r = (pis[0]/(a*beta1)).substitute_function(phi_1, phi1_sol).simplify_full()\n", "pi_phi_r" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Check of Eq. (3.46)" ] }, { "cell_type": "code", "execution_count": 109, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "Mu0^2*Q*a*beta2" ] }, "execution_count": 109, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pi_psi_r = (pis[1]/(a*beta2)).substitute_function(psi_1, psi1_sol).simplify_full()\n", "pi_psi_r" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### Check of Eq. (3.44) " ] }, { "cell_type": "code", "execution_count": 110, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ "pis4 = conjugate_momenta(L_a4, [phi_1, psi_1, mu_1], r)" ] }, { "cell_type": "code", "execution_count": 111, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-(a^4*l^2*r^4*diff(mu_1(r), r) + a^4*r^2*diff(mu_1(r), r) - 2*a^4*m*diff(mu_1(r), r))/(Mu0^2 - 1)" ] }, "execution_count": 111, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pis4[2]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The quantity $\\pi_\\theta^r / (a^2 \\sin\\Theta_0\\cos\\Theta_0)$:" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*((2*(sqrt(2)*Mu0*beta1^2 - sqrt(2)*Mu0*beta2^2 + 2*sqrt(2)*Mu0*beta1)*l*sqrt(m)*arctan(sqrt(2)*l*r/sqrt(sqrt(8*l^2*m + 1) + 1)) + (Mu0*P^2*beta1^2 - Mu0*Q^2*beta2^2 - 2*(Mu0*beta1^2 - Mu0*beta2^2)*l^2*m - Mu0)*log((sqrt(m)*r*sqrt(sqrt(8*l^2*m + 1) + 1) - 2*m)/(sqrt(m)*r*sqrt(sqrt(8*l^2*m + 1) + 1) + 2*m)))*sqrt(-Mu0^2 + 1)*sqrt(sqrt(8*l^2*m + 1) + 1) + ((sqrt(2)*Mu0*beta1^2 - sqrt(2)*Mu0*beta2^2 + 2*sqrt(2)*Mu0*beta1)*l*sqrt(m)*log((sqrt(2)*l*r*sqrt(sqrt(8*l^2*m + 1) - 1) - sqrt(8*l^2*m + 1) + 1)/(sqrt(2)*l*r*sqrt(sqrt(8*l^2*m + 1) - 1) + sqrt(8*l^2*m + 1) - 1)) - 2*(Mu0*P^2*beta1^2 - Mu0*Q^2*beta2^2 - 2*(Mu0*beta1^2 - Mu0*beta2^2)*l^2*m - Mu0)*arctan(1/2*r*sqrt(sqrt(8*l^2*m + 1) - 1)/sqrt(m)))*sqrt(-Mu0^2 + 1)*sqrt(sqrt(8*l^2*m + 1) - 1) - 4*((Mu0*beta1^2 - Mu0*beta2^2 + 2*Mu0*beta1)*sqrt(-Mu0^2 + 1)*l^2*sqrt(m)*r - C_1*sqrt(m))*sqrt(8*l^2*m + 1))/(sqrt(8*l^2*m + 1)*sqrt(-Mu0^2 + 1)*Mu0*sqrt(m))" ] }, "execution_count": 112, "metadata": { }, "output_type": "execute_result" } ], "source": [ "pi_theta_r_a2sT0 = (- pis4[2] / (a^4*Mu0)).substitute_function(mu_1, mu1_sol).simplify_full()\n", "pi_theta_r_a2sT0 = pi_theta_r_a2sT0.subs({B: sqrt(1 + 8*l^2*m)}).simplify_full()\n", "pi_theta_r_a2sT0" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The quantity \n", "$$\\frac{\\pi_\\theta^r}{(a^2/2) \\sin 2\\Theta_0} + (\\beta_1^2 - \\beta_2^2 + 2 \\beta_1)\\ell^2 r - \\frac{C_1}{\\sin\\Theta_0\\cos\\Theta_0}$$" ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*((2*(sqrt(2)*beta1^2 - sqrt(2)*beta2^2 + 2*sqrt(2)*beta1)*l*sqrt(m)*arctan(sqrt(2)*l*r/sqrt(sqrt(8*l^2*m + 1) + 1)) + (P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1)*log((sqrt(m)*r*sqrt(sqrt(8*l^2*m + 1) + 1) - 2*m)/(sqrt(m)*r*sqrt(sqrt(8*l^2*m + 1) + 1) + 2*m)))*sqrt(sqrt(8*l^2*m + 1) + 1) + ((sqrt(2)*beta1^2 - sqrt(2)*beta2^2 + 2*sqrt(2)*beta1)*l*sqrt(m)*log((sqrt(2)*l*r*sqrt(sqrt(8*l^2*m + 1) - 1) - sqrt(8*l^2*m + 1) + 1)/(sqrt(2)*l*r*sqrt(sqrt(8*l^2*m + 1) - 1) + sqrt(8*l^2*m + 1) - 1)) - 2*(P^2*beta1^2 - Q^2*beta2^2 - 2*(beta1^2 - beta2^2)*l^2*m - 1)*arctan(1/2*r*sqrt(sqrt(8*l^2*m + 1) - 1)/sqrt(m)))*sqrt(sqrt(8*l^2*m + 1) - 1))/(sqrt(8*l^2*m + 1)*sqrt(m))" ] }, "execution_count": 113, "metadata": { }, "output_type": "execute_result" } ], "source": [ "part1 = - (beta1^2 - beta2^2 + 2*beta1)*l^2*r + C1/(Mu0*sqrt(1-Mu0^2))\n", "s = (pi_theta_r_a2sT0 - part1).simplify_full()\n", "s" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Let us perform an expansion in $1/r$ for $r\\rightarrow +\\infty$:" ] }, { "cell_type": "code", "execution_count": 114, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*((sqrt(2)*pi*beta1^2 - sqrt(2)*pi*beta2^2 + 2*sqrt(2)*pi*beta1)*l*sqrt(m)*sqrt(sqrt(8*l^2*m + 1) + 1) + (pi - pi*P^2*beta1^2 + pi*Q^2*beta2^2 + 2*(pi*beta1^2 - pi*beta2^2)*l^2*m)*sqrt(sqrt(8*l^2*m + 1) - 1))/(sqrt(8*l^2*m + 1)*sqrt(m)) - (beta1^2 - beta2^2 + 2*beta1)/r" ] }, "execution_count": 114, "metadata": { }, "output_type": "execute_result" } ], "source": [ "u = var('u')\n", "assume(u > 0)\n", "s = s.subs({r: 1/u}).simplify_log()\n", "assume(l>0)\n", "s = s.taylor(u, 0, 2)\n", "s = s.subs({u: 1/r})\n", "s" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "1/4*((sqrt(2)*pi*beta1^2 - sqrt(2)*pi*beta2^2 + 2*sqrt(2)*pi*beta1)*l*sqrt(m)*sqrt(sqrt(8*l^2*m + 1) + 1) + (pi - pi*P^2*beta1^2 + pi*Q^2*beta2^2 + 2*(pi*beta1^2 - pi*beta2^2)*l^2*m)*sqrt(sqrt(8*l^2*m + 1) - 1))/(sqrt(8*l^2*m + 1)*sqrt(m)) - (beta1^2 - beta2^2 + 2*beta1)/r" ] }, "execution_count": 115, "metadata": { }, "output_type": "execute_result" } ], "source": [ "s" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Final result for $\\frac{\\pi_\\theta^r}{(a^2/2) \\sin 2\\Theta_0}$:" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "-(beta1^2 - beta2^2 + 2*beta1)*l^2*r + 1/4*((sqrt(2)*pi*beta1^2 - sqrt(2)*pi*beta2^2 + 2*sqrt(2)*pi*beta1)*l*sqrt(m)*sqrt(sqrt(8*l^2*m + 1) + 1) + (pi - pi*P^2*beta1^2 + pi*Q^2*beta2^2 + 2*(pi*beta1^2 - pi*beta2^2)*l^2*m)*sqrt(sqrt(8*l^2*m + 1) - 1))/(sqrt(8*l^2*m + 1)*sqrt(m)) - (beta1^2 - beta2^2 + 2*beta1)/r + C_1/(sqrt(-Mu0^2 + 1)*Mu0)" ] }, "execution_count": 116, "metadata": { }, "output_type": "execute_result" } ], "source": [ "part1 + s" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The terms in $r$, $1/r$ and $C_1$ agree with Eq. (3.44) of the paper." ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.0", "language": "sagemath", "metadata": { "cocalc": { "description": "Open-source mathematical software system", "priority": 1, "url": "https://www.sagemath.org/" } }, "name": "sage-9.0" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }