{ "cells": [ { "cell_type": "markdown", "id": "edb08847", "metadata": {}, "source": [ "# Reissner-Nordström black hole with a magnetic monopole" ] }, { "cell_type": "code", "execution_count": 1, "id": "5f9014a4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'SageMath version 10.0.beta2, Release Date: 2023-02-23'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version()" ] }, { "cell_type": "code", "execution_count": 2, "id": "e92d84cd", "metadata": {}, "outputs": [], "source": [ "%display latex" ] }, { "cell_type": "markdown", "id": "7dcaac51", "metadata": {}, "source": [ "## Spacetime manifold" ] }, { "cell_type": "markdown", "id": "c223a4fe", "metadata": {}, "source": [ "We declare the Lorentzian manifold $M$ and the **ingoing null Eddington-Finkelstein coordinates** $(v,r,\\theta,\\phi)$ as a chart on $M$:" ] }, { "cell_type": "code", "execution_count": 3, "id": "5a7729b8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(M,(v, r, {\\theta}, {\\phi})\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(M,(v, r, {\\theta}, {\\phi})\\right)$" ], "text/plain": [ "Chart (M, (v, r, th, ph))" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "M = Manifold(4, 'M', structure='Lorentzian')\n", "X. = M.chart(r'v r:(0,+oo) th:(0,pi):\\theta ph:(0,2*pi):\\phi')\n", "X" ] }, { "cell_type": "markdown", "id": "ccf86e11-4c7c-4770-a7a6-f993770e8d62", "metadata": {}, "source": [ "We shall use the ingoing null Eddington-Finkelstein coordinates for they are regular on the black hole event horizon." ] }, { "cell_type": "markdown", "id": "8e584e9a", "metadata": {}, "source": [ "### Metric tensor" ] }, { "cell_type": "markdown", "id": "5a1ad992", "metadata": {}, "source": [ "We introduce the parameters $m$, $q$ and $p$, where $m$ is the ADM (= Komar) mass and $q$ and $p$ are related to the electric charge $Q$ and the magnetic charge $P$ via \n", "$$ q = \\sqrt{\\frac{\\mu_0}{4\\pi}} Q \\quad\\mbox{and}\\quad p = \\sqrt{\\frac{\\mu_0}{4\\pi}} P$$\n", "We are using SI units and in the following we set $\\mu_0 = 1$ (in addition to $c=1$ and $G=1$)." ] }, { "cell_type": "code", "execution_count": 4, "id": "2b77ea00-42b3-4ec4-8405-74141c2e10c0", "metadata": {}, "outputs": [], "source": [ "m = var('m') \n", "q = var('q')\n", "p = var('p')\n", "assume(m>0)\n", "assume(m^2 - q^2 - p^2 >= 0)" ] }, { "cell_type": "code", "execution_count": 5, "id": "0ae3eb36", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle g = \\left( \\frac{2 \\, m}{r} - \\frac{p^{2} + q^{2}}{r^{2}} - 1 \\right) \\mathrm{d} v\\otimes \\mathrm{d} v +\\mathrm{d} v\\otimes \\mathrm{d} r +\\mathrm{d} r\\otimes \\mathrm{d} v + r^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + r^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle g = \\left( \\frac{2 \\, m}{r} - \\frac{p^{2} + q^{2}}{r^{2}} - 1 \\right) \\mathrm{d} v\\otimes \\mathrm{d} v +\\mathrm{d} v\\otimes \\mathrm{d} r +\\mathrm{d} r\\otimes \\mathrm{d} v + r^{2} \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + r^{2} \\sin\\left({\\theta}\\right)^{2} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}$" ], "text/plain": [ "g = (2*m/r - (p^2 + q^2)/r^2 - 1) dv⊗dv + dv⊗dr + dr⊗dv + r^2 dth⊗dth + r^2*sin(th)^2 dph⊗dph" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = M.metric()\n", "g[0,0] = - (1 - 2*m/r + (q^2 + p^2)/r^2)\n", "g[0,1] = 1\n", "g[2,2] = r^2\n", "g[3,3] = r^2*sin(th)^2\n", "g.display()" ] }, { "cell_type": "markdown", "id": "2853dc40-e262-4963-b6b8-d5bbc3ad58f6", "metadata": {}, "source": [ "The event horizon $\\mathscr{H}$ is located at $r=r_H$, with $r_H = m + \\sqrt{m^2 - q^2 - p^2}$:" ] }, { "cell_type": "code", "execution_count": 6, "id": "5be6db3b-aea2-4f0c-a47d-603a90cdb7d5", "metadata": {}, "outputs": [], "source": [ "rH = m + sqrt(m^2 - q^2 - p^2)" ] }, { "cell_type": "markdown", "id": "1785dcbf-91ee-4091-ac79-d9a1af9f6e08", "metadata": {}, "source": [ "A generic point on $\\mathscr{H}$:" ] }, { "cell_type": "code", "execution_count": 7, "id": "cb228e7a-0cec-4eb9-8ec4-277810665e8a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Point on the 4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "pH = M((v, rH, th, ph))\n", "print(pH)" ] }, { "cell_type": "code", "execution_count": 8, "id": "a7db2faf-f34d-44e0-a3db-2cd304c3ca76", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(v, m + \\sqrt{m^{2} - p^{2} - q^{2}}, {\\theta}, {\\phi}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(v, m + \\sqrt{m^{2} - p^{2} - q^{2}}, {\\theta}, {\\phi}\\right)$" ], "text/plain": [ "(v, m + sqrt(m^2 - p^2 - q^2), th, ph)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X(pH)" ] }, { "cell_type": "markdown", "id": "fb573c0c", "metadata": {}, "source": [ "### Ricci tensor" ] }, { "cell_type": "code", "execution_count": 9, "id": "5c8c50c4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{Ric}\\left(g\\right) = \\left( \\frac{p^{4} + 2 \\, p^{2} q^{2} + q^{4} + {\\left(p^{2} + q^{2}\\right)} r^{2} - 2 \\, {\\left(m p^{2} + m q^{2}\\right)} r}{r^{6}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} v + \\left( -\\frac{p^{2} + q^{2}}{r^{4}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} r + \\left( -\\frac{p^{2} + q^{2}}{r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} v + \\left( \\frac{p^{2} + q^{2}}{r^{2}} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{r^{2}} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{Ric}\\left(g\\right) = \\left( \\frac{p^{4} + 2 \\, p^{2} q^{2} + q^{4} + {\\left(p^{2} + q^{2}\\right)} r^{2} - 2 \\, {\\left(m p^{2} + m q^{2}\\right)} r}{r^{6}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} v + \\left( -\\frac{p^{2} + q^{2}}{r^{4}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} r + \\left( -\\frac{p^{2} + q^{2}}{r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} v + \\left( \\frac{p^{2} + q^{2}}{r^{2}} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{r^{2}} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}$" ], "text/plain": [ "Ric(g) = (p^4 + 2*p^2*q^2 + q^4 + (p^2 + q^2)*r^2 - 2*(m*p^2 + m*q^2)*r)/r^6 dv⊗dv - (p^2 + q^2)/r^4 dv⊗dr - (p^2 + q^2)/r^4 dr⊗dv + (p^2 + q^2)/r^2 dth⊗dth + (p^2 + q^2)*sin(th)^2/r^2 dph⊗dph" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ric = g.ricci()\n", "Ric.display()" ] }, { "cell_type": "code", "execution_count": 10, "id": "b4add03a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\begin{array}{rrrr}\n", "\\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{r^{6}} & -\\frac{p^{2} + q^{2}}{r^{4}} & 0 & 0 \\\\\n", "-\\frac{p^{2} + q^{2}}{r^{4}} & 0 & 0 & 0 \\\\\n", "0 & 0 & \\frac{p^{2} + q^{2}}{r^{2}} & 0 \\\\\n", "0 & 0 & 0 & \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{r^{2}}\n", "\\end{array}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\begin{array}{rrrr}\n", "\\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{r^{6}} & -\\frac{p^{2} + q^{2}}{r^{4}} & 0 & 0 \\\\\n", "-\\frac{p^{2} + q^{2}}{r^{4}} & 0 & 0 & 0 \\\\\n", "0 & 0 & \\frac{p^{2} + q^{2}}{r^{2}} & 0 \\\\\n", "0 & 0 & 0 & \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{r^{2}}\n", "\\end{array}\\right)$" ], "text/plain": [ "[(p^2 + q^2 - 2*m*r + r^2)*(p^2 + q^2)/r^6 -(p^2 + q^2)/r^4 0 0]\n", "[ -(p^2 + q^2)/r^4 0 0 0]\n", "[ 0 0 (p^2 + q^2)/r^2 0]\n", "[ 0 0 0 (p^2 + q^2)*sin(th)^2/r^2]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ric.apply_map(factor)\n", "Ric[:]" ] }, { "cell_type": "markdown", "id": "153ede68", "metadata": {}, "source": [ "The Ricci scalar vanishes indentically:" ] }, { "cell_type": "code", "execution_count": 11, "id": "86df8cc8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\mathrm{r}\\left(g\\right):& M & \\longrightarrow & \\mathbb{R} \\\\ & \\left(v, r, {\\theta}, {\\phi}\\right) & \\longmapsto & 0 \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\mathrm{r}\\left(g\\right):& M & \\longrightarrow & \\mathbb{R} \\\\ & \\left(v, r, {\\theta}, {\\phi}\\right) & \\longmapsto & 0 \\end{array}$" ], "text/plain": [ "r(g): M → ℝ\n", " (v, r, th, ph) ↦ 0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "R = g.ricci_scalar()\n", "R.display()" ] }, { "cell_type": "markdown", "id": "8b030773", "metadata": {}, "source": [ "### Einstein tensor" ] }, { "cell_type": "code", "execution_count": 12, "id": "f4fd9a5b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle G = \\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{r^{6}} \\mathrm{d} v\\otimes \\mathrm{d} v + \\left( -\\frac{p^{2} + q^{2}}{r^{4}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} r + \\left( -\\frac{p^{2} + q^{2}}{r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} v + \\left( \\frac{p^{2} + q^{2}}{r^{2}} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{r^{2}} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle G = \\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{r^{6}} \\mathrm{d} v\\otimes \\mathrm{d} v + \\left( -\\frac{p^{2} + q^{2}}{r^{4}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} r + \\left( -\\frac{p^{2} + q^{2}}{r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} v + \\left( \\frac{p^{2} + q^{2}}{r^{2}} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{r^{2}} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}$" ], "text/plain": [ "G = (p^2 + q^2 - 2*m*r + r^2)*(p^2 + q^2)/r^6 dv⊗dv - (p^2 + q^2)/r^4 dv⊗dr - (p^2 + q^2)/r^4 dr⊗dv + (p^2 + q^2)/r^2 dth⊗dth + (p^2 + q^2)*sin(th)^2/r^2 dph⊗dph" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G = Ric - R/2*g\n", "G.set_name('G')\n", "G.display()" ] }, { "cell_type": "markdown", "id": "6c98d5f6", "metadata": {}, "source": [ "## Electromagnetic field" ] }, { "cell_type": "markdown", "id": "7eefeafb", "metadata": {}, "source": [ "To form the electromagnetic field 2-form $F$, we shall need the 1-forms $\\mathrm{d}v$, $\\mathrm{d}r$, $\\mathrm{d}\\theta$, and $\\mathrm{d}\\phi$. We get them from the coframe associated to the coordinate chart `X`: " ] }, { "cell_type": "code", "execution_count": 13, "id": "995cd2b9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(M, \\left(\\mathrm{d} v,\\mathrm{d} r,\\mathrm{d} {\\theta},\\mathrm{d} {\\phi}\\right)\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(M, \\left(\\mathrm{d} v,\\mathrm{d} r,\\mathrm{d} {\\theta},\\mathrm{d} {\\phi}\\right)\\right)$" ], "text/plain": [ "Coordinate coframe (M, (dv,dr,dth,dph))" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.coframe()" ] }, { "cell_type": "code", "execution_count": 14, "id": "e98037ef", "metadata": {}, "outputs": [], "source": [ "dv, dr, dth, dph = X.coframe()[:]" ] }, { "cell_type": "code", "execution_count": 15, "id": "f6741fec", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{d} v = \\mathrm{d} v\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{d} v = \\mathrm{d} v$" ], "text/plain": [ "dv = dv" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dv.display()" ] }, { "cell_type": "code", "execution_count": 16, "id": "e6feb435", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1-form dv on the 4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "print(dv)" ] }, { "cell_type": "markdown", "id": "19c190bd", "metadata": {}, "source": [ "We can then write the electromagnetic field in terms of wedge products as:" ] }, { "cell_type": "code", "execution_count": 17, "id": "fd514855", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle F = -\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} v\\wedge \\mathrm{d} r + \\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\mathrm{d} {\\theta}\\wedge \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle F = -\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} v\\wedge \\mathrm{d} r + \\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\mathrm{d} {\\theta}\\wedge \\mathrm{d} {\\phi}$" ], "text/plain": [ "F = -1/2*q/(sqrt(pi)*r^2) dv∧dr + 1/2*p*sin(th)/sqrt(pi) dth∧dph" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F = 1/sqrt(4*pi) * (- q/r^2*dv.wedge(dr) + p*sin(th)*dth.wedge(dph) )\n", "F.set_name('F')\n", "F.display()" ] }, { "cell_type": "code", "execution_count": 18, "id": "e4a8d45f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-form F on the 4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "print(F)" ] }, { "cell_type": "code", "execution_count": 19, "id": "6f184c51", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\begin{array}{rrrr}\n", "0 & -\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 \\\\\n", "\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 & 0 \\\\\n", "0 & 0 & 0 & \\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\\\\n", "0 & 0 & -\\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} & 0\n", "\\end{array}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\begin{array}{rrrr}\n", "0 & -\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 \\\\\n", "\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 & 0 \\\\\n", "0 & 0 & 0 & \\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\\\\n", "0 & 0 & -\\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} & 0\n", "\\end{array}\\right)$" ], "text/plain": [ "[ 0 -1/2*q/(sqrt(pi)*r^2) 0 0]\n", "[ 1/2*q/(sqrt(pi)*r^2) 0 0 0]\n", "[ 0 0 0 1/2*p*sin(th)/sqrt(pi)]\n", "[ 0 0 -1/2*p*sin(th)/sqrt(pi) 0]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F[:]" ] }, { "cell_type": "code", "execution_count": 20, "id": "f1c71ee2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\star F = \\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} v\\wedge \\mathrm{d} r + \\frac{q \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\mathrm{d} {\\theta}\\wedge \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle \\star F = \\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} v\\wedge \\mathrm{d} r + \\frac{q \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\mathrm{d} {\\theta}\\wedge \\mathrm{d} {\\phi}$" ], "text/plain": [ "*F = 1/2*p/(sqrt(pi)*r^2) dv∧dr + 1/2*q*sin(th)/sqrt(pi) dth∧dph" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "star_F = F.hodge_dual(g)\n", "star_F.display()" ] }, { "cell_type": "code", "execution_count": 21, "id": "ace1cb30", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\begin{array}{rrrr}\n", "0 & \\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 \\\\\n", "-\\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 & 0 \\\\\n", "0 & 0 & 0 & \\frac{q \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\\\\n", "0 & 0 & -\\frac{q \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} & 0\n", "\\end{array}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\begin{array}{rrrr}\n", "0 & \\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 \\\\\n", "-\\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 & 0 \\\\\n", "0 & 0 & 0 & \\frac{q \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\\\\n", "0 & 0 & -\\frac{q \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} & 0\n", "\\end{array}\\right)$" ], "text/plain": [ "[ 0 1/2*p/(sqrt(pi)*r^2) 0 0]\n", "[ -1/2*p/(sqrt(pi)*r^2) 0 0 0]\n", "[ 0 0 0 1/2*q*sin(th)/sqrt(pi)]\n", "[ 0 0 -1/2*q*sin(th)/sqrt(pi) 0]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "star_F[:]" ] }, { "cell_type": "markdown", "id": "4d0bfcd7", "metadata": {}, "source": [ "### Maxwell equations\n", "\n", "Let us check that $F$ obeys the source-free Maxwell equations:" ] }, { "cell_type": "code", "execution_count": 22, "id": "173d2a7c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{d}F = 0\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{d}F = 0$" ], "text/plain": [ "dF = 0" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(F).display()" ] }, { "cell_type": "code", "execution_count": 23, "id": "4fed5ddc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{d}\\star F = 0\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{d}\\star F = 0$" ], "text/plain": [ "d*F = 0" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(star_F).display()" ] }, { "cell_type": "markdown", "id": "4d367bef", "metadata": {}, "source": [ "An equivalent check is the vanishing of the divergences $\\nabla_a F^a_{\\ \\, b}$ and $\\nabla_a \\star F^a_{\\ \\, b}$ :" ] }, { "cell_type": "code", "execution_count": 24, "id": "b26b418e", "metadata": {}, "outputs": [], "source": [ "nabla = g.connection()" ] }, { "cell_type": "code", "execution_count": 25, "id": "128d9198", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 0\\)" ], "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div_F = nabla(F.up(g, 0)).trace(0, 2)\n", "div_F.display()" ] }, { "cell_type": "code", "execution_count": 26, "id": "cafac13d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 0\\)" ], "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div_star_F = nabla(star_F.up(g, 0)).trace(0, 2)\n", "div_star_F.display()" ] }, { "cell_type": "markdown", "id": "733a4c4a", "metadata": {}, "source": [ "### Energy-momentum tensor of the electromagnetic field" ] }, { "cell_type": "markdown", "id": "cdb8c7ea", "metadata": {}, "source": [ "To evaluate the energy-momentum tensor, we need the scalar $F_{ab}F^{ab}$, which we compute as follows:" ] }, { "cell_type": "code", "execution_count": 27, "id": "158484e1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Scalar field on the 4-dimensional Lorentzian manifold M\n" ] } ], "source": [ "Fuu = F.up(g)\n", "F2 = F['_ab']*Fuu['^ab']\n", "print(F2)" ] }, { "cell_type": "code", "execution_count": 28, "id": "ba046414", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} & M & \\longrightarrow & \\mathbb{R} \\\\ & \\left(v, r, {\\theta}, {\\phi}\\right) & \\longmapsto & \\frac{p^{2} - q^{2}}{2 \\, \\pi r^{4}} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} & M & \\longrightarrow & \\mathbb{R} \\\\ & \\left(v, r, {\\theta}, {\\phi}\\right) & \\longmapsto & \\frac{p^{2} - q^{2}}{2 \\, \\pi r^{4}} \\end{array}$" ], "text/plain": [ "M → ℝ\n", "(v, r, th, ph) ↦ 1/2*(p^2 - q^2)/(pi*r^4)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F2.display()" ] }, { "cell_type": "code", "execution_count": 29, "id": "bbe85b52", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{p^{2} - q^{2}}{2 \\, \\pi r^{4}}\\)" ], "text/latex": [ "$\\displaystyle \\frac{p^{2} - q^{2}}{2 \\, \\pi r^{4}}$" ], "text/plain": [ "1/2*(p^2 - q^2)/(pi*r^4)" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F2.expr()" ] }, { "cell_type": "markdown", "id": "71e9d195", "metadata": {}, "source": [ "The type-(1,1) tensor $F^a_{\\ \\, b}$:" ] }, { "cell_type": "code", "execution_count": 30, "id": "a7ab560d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\begin{array}{rrrr}\n", "\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 & 0 \\\\\n", "\\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} q}{2 \\, \\sqrt{\\pi} r^{4}} & -\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 \\\\\n", "0 & 0 & 0 & \\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi} r^{2}} \\\\\n", "0 & 0 & -\\frac{p}{2 \\, \\sqrt{\\pi} r^{2} \\sin\\left({\\theta}\\right)} & 0\n", "\\end{array}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\begin{array}{rrrr}\n", "\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 & 0 \\\\\n", "\\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} q}{2 \\, \\sqrt{\\pi} r^{4}} & -\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} & 0 & 0 \\\\\n", "0 & 0 & 0 & \\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi} r^{2}} \\\\\n", "0 & 0 & -\\frac{p}{2 \\, \\sqrt{\\pi} r^{2} \\sin\\left({\\theta}\\right)} & 0\n", "\\end{array}\\right)$" ], "text/plain": [ "[ 1/2*q/(sqrt(pi)*r^2) 0 0 0]\n", "[1/2*(p^2 + q^2 - 2*m*r + r^2)*q/(sqrt(pi)*r^4) -1/2*q/(sqrt(pi)*r^2) 0 0]\n", "[ 0 0 0 1/2*p*sin(th)/(sqrt(pi)*r^2)]\n", "[ 0 0 -1/2*p/(sqrt(pi)*r^2*sin(th)) 0]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Fud = F.up(g, 0)\n", "Fud.apply_map(factor)\n", "Fud[:]" ] }, { "cell_type": "markdown", "id": "8799023f", "metadata": {}, "source": [ "The energy-momentum tensor of the electromagnetic field:" ] }, { "cell_type": "code", "execution_count": 31, "id": "735524c5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{8 \\, \\pi r^{6}} \\mathrm{d} v\\otimes \\mathrm{d} v + \\left( -\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} r + \\left( -\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} v + \\left( \\frac{p^{2} + q^{2}}{8 \\, \\pi r^{2}} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{8 \\, \\pi r^{2}} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle \\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{8 \\, \\pi r^{6}} \\mathrm{d} v\\otimes \\mathrm{d} v + \\left( -\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} \\right) \\mathrm{d} v\\otimes \\mathrm{d} r + \\left( -\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} \\right) \\mathrm{d} r\\otimes \\mathrm{d} v + \\left( \\frac{p^{2} + q^{2}}{8 \\, \\pi r^{2}} \\right) \\mathrm{d} {\\theta}\\otimes \\mathrm{d} {\\theta} + \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{8 \\, \\pi r^{2}} \\mathrm{d} {\\phi}\\otimes \\mathrm{d} {\\phi}$" ], "text/plain": [ "1/8*(p^2 + q^2 - 2*m*r + r^2)*(p^2 + q^2)/(pi*r^6) dv⊗dv - 1/8*(p^2 + q^2)/(pi*r^4) dv⊗dr - 1/8*(p^2 + q^2)/(pi*r^4) dr⊗dv + 1/8*(p^2 + q^2)/(pi*r^2) dth⊗dth + 1/8*(p^2 + q^2)*sin(th)^2/(pi*r^2) dph⊗dph" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T = F['_k.']*Fud['^k_.'] - 1/4*F2 * g\n", "T.apply_map(factor)\n", "T.display()" ] }, { "cell_type": "code", "execution_count": 32, "id": "01359f80", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(\\begin{array}{rrrr}\n", "\\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{8 \\, \\pi r^{6}} & -\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} & 0 & 0 \\\\\n", "-\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} & 0 & 0 & 0 \\\\\n", "0 & 0 & \\frac{p^{2} + q^{2}}{8 \\, \\pi r^{2}} & 0 \\\\\n", "0 & 0 & 0 & \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{8 \\, \\pi r^{2}}\n", "\\end{array}\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(\\begin{array}{rrrr}\n", "\\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{8 \\, \\pi r^{6}} & -\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} & 0 & 0 \\\\\n", "-\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} & 0 & 0 & 0 \\\\\n", "0 & 0 & \\frac{p^{2} + q^{2}}{8 \\, \\pi r^{2}} & 0 \\\\\n", "0 & 0 & 0 & \\frac{{\\left(p^{2} + q^{2}\\right)} \\sin\\left({\\theta}\\right)^{2}}{8 \\, \\pi r^{2}}\n", "\\end{array}\\right)$" ], "text/plain": [ "[1/8*(p^2 + q^2 - 2*m*r + r^2)*(p^2 + q^2)/(pi*r^6) -1/8*(p^2 + q^2)/(pi*r^4) 0 0]\n", "[ -1/8*(p^2 + q^2)/(pi*r^4) 0 0 0]\n", "[ 0 0 1/8*(p^2 + q^2)/(pi*r^2) 0]\n", "[ 0 0 0 1/8*(p^2 + q^2)*sin(th)^2/(pi*r^2)]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T[:]" ] }, { "cell_type": "markdown", "id": "dcba189e", "metadata": {}, "source": [ "### Check of the Einstein equation" ] }, { "cell_type": "code", "execution_count": 33, "id": "a0756b19", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G == 8*pi*T" ] }, { "cell_type": "markdown", "id": "51f4568e", "metadata": {}, "source": [ "## Pseudo-electric field $E$ and pseudo-magnetic field $B$" ] }, { "cell_type": "markdown", "id": "00b73286-cb5a-4fb7-a38e-f41e0df61766", "metadata": {}, "source": [ "The stationary Killing vector field $\\xi$:" ] }, { "cell_type": "code", "execution_count": 34, "id": "07f01b11", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\xi = \\frac{\\partial}{\\partial v }\\)" ], "text/latex": [ "$\\displaystyle \\xi = \\frac{\\partial}{\\partial v }$" ], "text/plain": [ "xi = ∂/∂v" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xi = M.vector_field(1, 0, 0, 0, name='xi', latex_name=r'\\xi')\n", "xi.display()" ] }, { "cell_type": "markdown", "id": "bbd0918d-1828-44d1-a207-bb823a5eb4c9", "metadata": {}, "source": [ "$\\xi$ is null on $\\mathscr{H}$:" ] }, { "cell_type": "code", "execution_count": 35, "id": "251d0998-1229-4564-94e6-8946232d7245", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 0\\)" ], "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(xi,xi)(pH)" ] }, { "cell_type": "markdown", "id": "420ffa07-c8ec-4d69-b85a-3fe7d4690cf7", "metadata": {}, "source": [ "The pseudo-electric field 1-form is defined by $E := F(.,\\xi)$. It would be the electric field measured by the observer of 4-velocity $\\xi$ if $\\xi$ would be a unit timelike vector, which it is not, except for $r\\to +\\infty$. " ] }, { "cell_type": "code", "execution_count": 36, "id": "c3cb11d3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle E = \\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} r\\)" ], "text/latex": [ "$\\displaystyle E = \\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} r$" ], "text/plain": [ "E = 1/2*q/(sqrt(pi)*r^2) dr" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E = F.contract(xi)\n", "E.set_name('E')\n", "E.display()" ] }, { "cell_type": "markdown", "id": "60e9b906", "metadata": {}, "source": [ "$E$ is a closed 1-form:" ] }, { "cell_type": "code", "execution_count": 37, "id": "4ac4bcd6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{d}E = 0\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{d}E = 0$" ], "text/plain": [ "dE = 0" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(E).display()" ] }, { "cell_type": "markdown", "id": "c93fc57e-62d9-4d45-9e91-b31f7f43e1ed", "metadata": {}, "source": [ "$E$ is actually an exact 1-form:" ] }, { "cell_type": "code", "execution_count": 38, "id": "68c70db7-17de-4d78-bd85-7debcb6d721a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Phi:& M & \\longrightarrow & \\mathbb{R} \\\\ & \\left(v, r, {\\theta}, {\\phi}\\right) & \\longmapsto & \\frac{q}{2 \\, \\sqrt{\\pi} r} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Phi:& M & \\longrightarrow & \\mathbb{R} \\\\ & \\left(v, r, {\\theta}, {\\phi}\\right) & \\longmapsto & \\frac{q}{2 \\, \\sqrt{\\pi} r} \\end{array}$" ], "text/plain": [ "Phi: M → ℝ\n", " (v, r, th, ph) ↦ 1/2*q/(sqrt(pi)*r)" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi = M.scalar_field(1/sqrt(4*pi) * q/r, name='Phi', \n", " latex_name=r'\\Phi')\n", "Phi.display()" ] }, { "cell_type": "code", "execution_count": 39, "id": "3e528442-8bf4-4316-8239-f82d97a61b3c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "E == - diff(Phi)" ] }, { "cell_type": "markdown", "id": "a47b31ab-4ed6-497d-aac8-003677629bd3", "metadata": {}, "source": [ "The vector field $\\vec{E}$ associated to $E$ by metric duality:" ] }, { "cell_type": "code", "execution_count": 40, "id": "cb67ed0e-b582-4a67-bd66-8f4533f14341", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\vec{E} = \\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} \\frac{\\partial}{\\partial v } + \\left( \\frac{p^{2} q + q^{3} - 2 \\, m q r + q r^{2}}{2 \\, \\sqrt{\\pi} r^{4}} \\right) \\frac{\\partial}{\\partial r }\\)" ], "text/latex": [ "$\\displaystyle \\vec{E} = \\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} \\frac{\\partial}{\\partial v } + \\left( \\frac{p^{2} q + q^{3} - 2 \\, m q r + q r^{2}}{2 \\, \\sqrt{\\pi} r^{4}} \\right) \\frac{\\partial}{\\partial r }$" ], "text/plain": [ "vE = 1/2*q/(sqrt(pi)*r^2) ∂/∂v + 1/2*(p^2*q + q^3 - 2*m*q*r + q*r^2)/(sqrt(pi)*r^4) ∂/∂r" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vE = E.up(g)\n", "vE.set_name('vE', latex_name = r'\\vec{E}')\n", "vE.display()" ] }, { "cell_type": "markdown", "id": "115c5a40-b92e-4910-b2eb-abb9df7f011d", "metadata": {}, "source": [ "We note that $\\vec{E}$ is collinear to $\\xi$ on the event horizon $\\mathscr{H}$:" ] }, { "cell_type": "code", "execution_count": 41, "id": "942809b0-047b-462d-85e8-ea8cc17ceb74", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\vec{E} = \\frac{q}{2 \\, {\\left(2 \\, \\sqrt{\\pi} \\sqrt{m^{2} - p^{2} - q^{2}} m + \\sqrt{\\pi} {\\left(2 \\, m^{2} - p^{2} - q^{2}\\right)}\\right)}} \\frac{\\partial}{\\partial v }\\)" ], "text/latex": [ "$\\displaystyle \\vec{E} = \\frac{q}{2 \\, {\\left(2 \\, \\sqrt{\\pi} \\sqrt{m^{2} - p^{2} - q^{2}} m + \\sqrt{\\pi} {\\left(2 \\, m^{2} - p^{2} - q^{2}\\right)}\\right)}} \\frac{\\partial}{\\partial v }$" ], "text/plain": [ "vE = 1/2*q/(2*sqrt(pi)*sqrt(m^2 - p^2 - q^2)*m + sqrt(pi)*(2*m^2 - p^2 - q^2)) ∂/∂v" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vE.at(pH).display()" ] }, { "cell_type": "code", "execution_count": 42, "id": "7eb41a6d-f08f-466e-9534-e595fd756999", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle 0\\)" ], "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(vE,vE)(pH)" ] }, { "cell_type": "markdown", "id": "33ec4be4-781c-4d40-a703-1ab4a824064e", "metadata": {}, "source": [ "The pseudo-magnetic field 1-form is defined by $B := \\star F(\\xi,.)$; as for $E$ it fails to be a genuine magnetic field because $\\xi$ is not a unit timelike vector. " ] }, { "cell_type": "code", "execution_count": 43, "id": "bf10699e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle B = \\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} r\\)" ], "text/latex": [ "$\\displaystyle B = \\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} r$" ], "text/plain": [ "B = 1/2*p/(sqrt(pi)*r^2) dr" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B = xi.contract(star_F)\n", "B.set_name('B')\n", "B.display()" ] }, { "cell_type": "markdown", "id": "467d200f", "metadata": {}, "source": [ "We note that $B$ is collinear to $E$ and that it is a closed 1-form as well:" ] }, { "cell_type": "code", "execution_count": 44, "id": "a683c9c0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{d}B = 0\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{d}B = 0$" ], "text/plain": [ "dB = 0" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(B).display()" ] }, { "cell_type": "markdown", "id": "ab0e8812-b7ca-4ce0-a561-b62e08009d2c", "metadata": {}, "source": [ "As $E$, $B$ is actually an exact 1-form:" ] }, { "cell_type": "code", "execution_count": 45, "id": "be466345-51c5-4d60-9c4d-38193dd38cd0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\begin{array}{llcl} \\Psi:& M & \\longrightarrow & \\mathbb{R} \\\\ & \\left(v, r, {\\theta}, {\\phi}\\right) & \\longmapsto & \\frac{p}{2 \\, \\sqrt{\\pi} r} \\end{array}\\)" ], "text/latex": [ "$\\displaystyle \\begin{array}{llcl} \\Psi:& M & \\longrightarrow & \\mathbb{R} \\\\ & \\left(v, r, {\\theta}, {\\phi}\\right) & \\longmapsto & \\frac{p}{2 \\, \\sqrt{\\pi} r} \\end{array}$" ], "text/plain": [ "Psi: M → ℝ\n", " (v, r, th, ph) ↦ 1/2*p/(sqrt(pi)*r)" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Psi = M.scalar_field(1/sqrt(4*pi) * p/r, name='Psi', \n", " latex_name=r'\\Psi')\n", "Psi.display()" ] }, { "cell_type": "code", "execution_count": 46, "id": "06b2bcaf-391e-453f-aacb-56a500675dd0", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B == - diff(Psi)" ] }, { "cell_type": "markdown", "id": "1c7dd607-e928-4528-83d0-c743b8ffd92c", "metadata": {}, "source": [ "The vector field $\\vec{B}$ associated to $B$ by metric duality:" ] }, { "cell_type": "code", "execution_count": 47, "id": "44da2a6e-9218-4c8d-b40a-479d554539a1", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\vec{B} = \\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} \\frac{\\partial}{\\partial v } + \\left( \\frac{p^{3} + p q^{2} - 2 \\, m p r + p r^{2}}{2 \\, \\sqrt{\\pi} r^{4}} \\right) \\frac{\\partial}{\\partial r }\\)" ], "text/latex": [ "$\\displaystyle \\vec{B} = \\frac{p}{2 \\, \\sqrt{\\pi} r^{2}} \\frac{\\partial}{\\partial v } + \\left( \\frac{p^{3} + p q^{2} - 2 \\, m p r + p r^{2}}{2 \\, \\sqrt{\\pi} r^{4}} \\right) \\frac{\\partial}{\\partial r }$" ], "text/plain": [ "vB = 1/2*p/(sqrt(pi)*r^2) ∂/∂v + 1/2*(p^3 + p*q^2 - 2*m*p*r + p*r^2)/(sqrt(pi)*r^4) ∂/∂r" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vB = B.up(g)\n", "vB.set_name('vB', latex_name = r'\\vec{B}')\n", "vB.display()" ] }, { "cell_type": "code", "execution_count": 48, "id": "78bd13d0-a401-4e23-ae87-ca72007f6bbc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\vec{B} = \\frac{p}{2 \\, {\\left(2 \\, \\sqrt{\\pi} \\sqrt{m^{2} - p^{2} - q^{2}} m + \\sqrt{\\pi} {\\left(2 \\, m^{2} - p^{2} - q^{2}\\right)}\\right)}} \\frac{\\partial}{\\partial v }\\)" ], "text/latex": [ "$\\displaystyle \\vec{B} = \\frac{p}{2 \\, {\\left(2 \\, \\sqrt{\\pi} \\sqrt{m^{2} - p^{2} - q^{2}} m + \\sqrt{\\pi} {\\left(2 \\, m^{2} - p^{2} - q^{2}\\right)}\\right)}} \\frac{\\partial}{\\partial v }$" ], "text/plain": [ "vB = 1/2*p/(2*sqrt(pi)*sqrt(m^2 - p^2 - q^2)*m + sqrt(pi)*(2*m^2 - p^2 - q^2)) ∂/∂v" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vB.at(pH).display()" ] }, { "cell_type": "markdown", "id": "db8ad77b", "metadata": {}, "source": [ "## Electromagnetic potential $A$" ] }, { "cell_type": "markdown", "id": "38d22c11", "metadata": {}, "source": [ "Since $F$ obeys the source-free Maxwell equation $\\mathrm{d}F = 0$, we may introduce locally a 1-form $A$ such that $F = \\mathrm{d}A$. However, unless $p=0$, $A$ cannot be a globally regular 1-form, as we shall discuss below." ] }, { "cell_type": "code", "execution_count": 49, "id": "09601de9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle A = -\\frac{q}{2 \\, \\sqrt{\\pi} r} \\mathrm{d} v -\\frac{p \\cos\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle A = -\\frac{q}{2 \\, \\sqrt{\\pi} r} \\mathrm{d} v -\\frac{p \\cos\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\mathrm{d} {\\phi}$" ], "text/plain": [ "A = -1/2*q/(sqrt(pi)*r) dv - 1/2*p*cos(th)/sqrt(pi) dph" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = - 1/sqrt(4*pi) * (q/r * dv + p*cos(th)*dph )\n", "A.set_name('A')\n", "A.display()" ] }, { "cell_type": "code", "execution_count": 50, "id": "8f91b114", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{d}A = -\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} v\\wedge \\mathrm{d} r + \\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\mathrm{d} {\\theta}\\wedge \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{d}A = -\\frac{q}{2 \\, \\sqrt{\\pi} r^{2}} \\mathrm{d} v\\wedge \\mathrm{d} r + \\frac{p \\sin\\left({\\theta}\\right)}{2 \\, \\sqrt{\\pi}} \\mathrm{d} {\\theta}\\wedge \\mathrm{d} {\\phi}$" ], "text/plain": [ "dA = -1/2*q/(sqrt(pi)*r^2) dv∧dr + 1/2*p*sin(th)/sqrt(pi) dth∧dph" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(A).display()" ] }, { "cell_type": "code", "execution_count": 51, "id": "7ecacef9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F == diff(A)" ] }, { "cell_type": "markdown", "id": "c0b14fa6-dc47-4ac9-89b9-d8031b70ab62", "metadata": {}, "source": [ "We have actually $\\Phi = - \\langle A, \\xi \\rangle$:" ] }, { "cell_type": "code", "execution_count": 52, "id": "d06b0fb5-20a1-4e7c-8b2f-e3db8c7ae808", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi == - A(xi)" ] }, { "cell_type": "markdown", "id": "4ee346e4-907d-4699-ba17-c37f8494e992", "metadata": {}, "source": [ "The 1-form \n", "$$ \\Omega = \\Phi F + \\frac{1}{2} \\, \\underline{\\xi} \\wedge (A\\cdot F)$$ \n", "which appears in the proof of the generalized Smarr formula without magnetic monopole:" ] }, { "cell_type": "code", "execution_count": 53, "id": "6dbe01d7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle -\\frac{q^{2}}{4 \\, \\pi r^{3}} \\mathrm{d} v + \\frac{p^{2} \\cos\\left({\\theta}\\right)}{4 \\, \\pi r^{2} \\sin\\left({\\theta}\\right)} \\mathrm{d} {\\theta}\\)" ], "text/latex": [ "$\\displaystyle -\\frac{q^{2}}{4 \\, \\pi r^{3}} \\mathrm{d} v + \\frac{p^{2} \\cos\\left({\\theta}\\right)}{4 \\, \\pi r^{2} \\sin\\left({\\theta}\\right)} \\mathrm{d} {\\theta}$" ], "text/plain": [ "-1/4*q^2/(pi*r^3) dv + 1/4*p^2*cos(th)/(pi*r^2*sin(th)) dth" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "AF = A['_b']*Fud['^b_a']\n", "AF.display()" ] }, { "cell_type": "code", "execution_count": 54, "id": "80a4e197", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left( \\frac{2 \\, m}{r} - \\frac{p^{2} + q^{2}}{r^{2}} - 1 \\right) \\mathrm{d} v +\\mathrm{d} r\\)" ], "text/latex": [ "$\\displaystyle \\left( \\frac{2 \\, m}{r} - \\frac{p^{2} + q^{2}}{r^{2}} - 1 \\right) \\mathrm{d} v +\\mathrm{d} r$" ], "text/plain": [ "(2*m/r - (p^2 + q^2)/r^2 - 1) dv + dr" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xif = xi.down(g)\n", "xif.display()" ] }, { "cell_type": "code", "execution_count": 55, "id": "35ff4788", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\Omega = -\\frac{q^{2}}{8 \\, \\pi r^{3}} \\mathrm{d} v\\wedge \\mathrm{d} r -\\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} p^{2} \\cos\\left({\\theta}\\right)}{8 \\, \\pi r^{4} \\sin\\left({\\theta}\\right)} \\mathrm{d} v\\wedge \\mathrm{d} {\\theta} + \\frac{p^{2} \\cos\\left({\\theta}\\right)}{8 \\, \\pi r^{2} \\sin\\left({\\theta}\\right)} \\mathrm{d} r\\wedge \\mathrm{d} {\\theta} + \\frac{p q \\sin\\left({\\theta}\\right)}{4 \\, \\pi r} \\mathrm{d} {\\theta}\\wedge \\mathrm{d} {\\phi}\\)" ], "text/latex": [ "$\\displaystyle \\Omega = -\\frac{q^{2}}{8 \\, \\pi r^{3}} \\mathrm{d} v\\wedge \\mathrm{d} r -\\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} p^{2} \\cos\\left({\\theta}\\right)}{8 \\, \\pi r^{4} \\sin\\left({\\theta}\\right)} \\mathrm{d} v\\wedge \\mathrm{d} {\\theta} + \\frac{p^{2} \\cos\\left({\\theta}\\right)}{8 \\, \\pi r^{2} \\sin\\left({\\theta}\\right)} \\mathrm{d} r\\wedge \\mathrm{d} {\\theta} + \\frac{p q \\sin\\left({\\theta}\\right)}{4 \\, \\pi r} \\mathrm{d} {\\theta}\\wedge \\mathrm{d} {\\phi}$" ], "text/plain": [ "Omega = -1/8*q^2/(pi*r^3) dv∧dr - 1/8*(p^2 + q^2 - 2*m*r + r^2)*p^2*cos(th)/(pi*r^4*sin(th)) dv∧dth + 1/8*p^2*cos(th)/(pi*r^2*sin(th)) dr∧dth + 1/4*p*q*sin(th)/(pi*r) dth∧dph" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Omega = Phi*F + 1/2*xif.wedge(AF)\n", "Omega.set_name('Omega', latex_name=r'\\Omega')\n", "Omega.apply_map(factor)\n", "Omega.display()" ] }, { "cell_type": "code", "execution_count": 56, "id": "728f0561", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{8 \\, \\pi r^{6}} \\mathrm{d} v + \\left( -\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} \\right) \\mathrm{d} r\\)" ], "text/latex": [ "$\\displaystyle \\frac{{\\left(p^{2} + q^{2} - 2 \\, m r + r^{2}\\right)} {\\left(p^{2} + q^{2}\\right)}}{8 \\, \\pi r^{6}} \\mathrm{d} v + \\left( -\\frac{p^{2} + q^{2}}{8 \\, \\pi r^{4}} \\right) \\mathrm{d} r$" ], "text/plain": [ "1/8*(p^2 + q^2 - 2*m*r + r^2)*(p^2 + q^2)/(pi*r^6) dv - 1/8*(p^2 + q^2)/(pi*r^4) dr" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "div_Omega = nabla(Omega).up(g, 2).trace(0, 2)\n", "div_Omega.apply_map(factor)\n", "div_Omega.display()" ] }, { "cell_type": "code", "execution_count": 57, "id": "09f6ae7b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\mathrm{True}\\)" ], "text/latex": [ "$\\displaystyle \\mathrm{True}$" ], "text/plain": [ "True" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "T.contract(xi) == div_Omega" ] }, { "cell_type": "markdown", "id": "66712f50-54af-49f8-bacb-3aef544e62c9", "metadata": {}, "source": [ "## Regularity of the fields $F$, $A$, $\\Omega$, $\\Phi$ and $\\Psi$\n", "\n", "To assess the regularity of the fields on the axis $\\theta=0$ or $\\pi$, we introduce a Cartesian-like coordinate system:" ] }, { "cell_type": "code", "execution_count": 58, "id": "d00da3af", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left(M,(v, x, y, z)\\right)\\)" ], "text/latex": [ "$\\displaystyle \\left(M,(v, x, y, z)\\right)$" ], "text/plain": [ "Chart (M, (v, x, y, z))" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Y. = M.chart()\n", "Y" ] }, { "cell_type": "code", "execution_count": 59, "id": "e22691a6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left\\{\\begin{array}{lcl} v & = & v \\\\ x & = & r \\cos\\left({\\phi}\\right) \\sin\\left({\\theta}\\right) \\\\ y & = & r \\sin\\left({\\phi}\\right) \\sin\\left({\\theta}\\right) \\\\ z & = & r \\cos\\left({\\theta}\\right) \\end{array}\\right.\\)" ], "text/latex": [ "$\\displaystyle \\left\\{\\begin{array}{lcl} v & = & v \\\\ x & = & r \\cos\\left({\\phi}\\right) \\sin\\left({\\theta}\\right) \\\\ y & = & r \\sin\\left({\\phi}\\right) \\sin\\left({\\theta}\\right) \\\\ z & = & r \\cos\\left({\\theta}\\right) \\end{array}\\right.$" ], "text/plain": [ "v = v\n", "x = r*cos(ph)*sin(th)\n", "y = r*sin(ph)*sin(th)\n", "z = r*cos(th)" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_to_Y = X.transition_map(Y, (v, \n", " r*sin(th)*cos(ph), \n", " r*sin(th)*sin(ph),\n", " r*cos(th)))\n", "X_to_Y.display()" ] }, { "cell_type": "code", "execution_count": 60, "id": "9071a502", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Check of the inverse coordinate transformation:\n", " v == v *passed*\n", " r == r *passed*\n", " th == arctan2(r*sin(th), r*cos(th)) **failed**\n", " ph == arctan2(r*sin(ph)*sin(th), r*cos(ph)*sin(th)) **failed**\n", " v == v *passed*\n", " x == x *passed*\n", " y == y *passed*\n", " z == z *passed*\n", "NB: a failed report can reflect a mere lack of simplification.\n" ] } ], "source": [ "X_to_Y.set_inverse(v, sqrt(x^2 + y^2 + z^2), atan2(sqrt(x^2+y^2),z), atan2(y, x))" ] }, { "cell_type": "code", "execution_count": 61, "id": "952a9fad", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\left\\{\\begin{array}{lcl} v & = & v \\\\ r & = & \\sqrt{x^{2} + y^{2} + z^{2}} \\\\ {\\theta} & = & \\arctan\\left(\\sqrt{x^{2} + y^{2}}, z\\right) \\\\ {\\phi} & = & \\arctan\\left(y, x\\right) \\end{array}\\right.\\)" ], "text/latex": [ "$\\displaystyle \\left\\{\\begin{array}{lcl} v & = & v \\\\ r & = & \\sqrt{x^{2} + y^{2} + z^{2}} \\\\ {\\theta} & = & \\arctan\\left(\\sqrt{x^{2} + y^{2}}, z\\right) \\\\ {\\phi} & = & \\arctan\\left(y, x\\right) \\end{array}\\right.$" ], "text/plain": [ "v = v\n", "r = sqrt(x^2 + y^2 + z^2)\n", "th = arctan2(sqrt(x^2 + y^2), z)\n", "ph = arctan2(y, x)" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_to_Y.inverse().display()" ] }, { "cell_type": "markdown", "id": "91ed901d-e5d3-4e45-a19b-0a58475006a2", "metadata": {}, "source": [ "$F$ is perfectly regular in all the region $r>0$:" ] }, { "cell_type": "code", "execution_count": 62, "id": "1f8b9474", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle F = -\\frac{q x}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} x -\\frac{q y}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} y -\\frac{q z}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} z + \\left( \\frac{\\sqrt{x^{2} + y^{2} + z^{2}} p z}{2 \\, \\sqrt{\\pi} {\\left(x^{4} + 2 \\, x^{2} y^{2} + y^{4} + z^{4} + 2 \\, {\\left(x^{2} + y^{2}\\right)} z^{2}\\right)}} \\right) \\mathrm{d} x\\wedge \\mathrm{d} y -\\frac{p y}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} x\\wedge \\mathrm{d} z + \\frac{p x}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} y\\wedge \\mathrm{d} z\\)" ], "text/latex": [ "$\\displaystyle F = -\\frac{q x}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} x -\\frac{q y}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} y -\\frac{q z}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} z + \\left( \\frac{\\sqrt{x^{2} + y^{2} + z^{2}} p z}{2 \\, \\sqrt{\\pi} {\\left(x^{4} + 2 \\, x^{2} y^{2} + y^{4} + z^{4} + 2 \\, {\\left(x^{2} + y^{2}\\right)} z^{2}\\right)}} \\right) \\mathrm{d} x\\wedge \\mathrm{d} y -\\frac{p y}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} x\\wedge \\mathrm{d} z + \\frac{p x}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} y\\wedge \\mathrm{d} z$" ], "text/plain": [ "F = -1/2*q*x/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dv∧dx - 1/2*q*y/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dv∧dy - 1/2*q*z/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dv∧dz + 1/2*sqrt(x^2 + y^2 + z^2)*p*z/(sqrt(pi)*(x^4 + 2*x^2*y^2 + y^4 + z^4 + 2*(x^2 + y^2)*z^2)) dx∧dy - 1/2*p*y/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dx∧dz + 1/2*p*x/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dy∧dz" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F.display(Y)" ] }, { "cell_type": "code", "execution_count": 63, "id": "4fb05900-469f-485f-ab46-1838f4d95219", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle F = -\\frac{q x}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} x -\\frac{q y}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} y -\\frac{q z}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} z + \\frac{p z}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} x\\wedge \\mathrm{d} y -\\frac{p y}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} x\\wedge \\mathrm{d} z + \\frac{p x}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} y\\wedge \\mathrm{d} z\\)" ], "text/latex": [ "$\\displaystyle F = -\\frac{q x}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} x -\\frac{q y}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} y -\\frac{q z}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} v\\wedge \\mathrm{d} z + \\frac{p z}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} x\\wedge \\mathrm{d} y -\\frac{p y}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} x\\wedge \\mathrm{d} z + \\frac{p x}{2 \\, \\sqrt{\\pi} {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{3}{2}}} \\mathrm{d} y\\wedge \\mathrm{d} z$" ], "text/plain": [ "F = -1/2*q*x/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dv∧dx - 1/2*q*y/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dv∧dy - 1/2*q*z/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dv∧dz + 1/2*p*z/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dx∧dy - 1/2*p*y/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dx∧dz + 1/2*p*x/(sqrt(pi)*(x^2 + y^2 + z^2)^(3/2)) dy∧dz" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "F.apply_map(factor, frame=Y.frame(), chart=Y, keep_other_components=True)\n", "F.display(Y)" ] }, { "cell_type": "markdown", "id": "be381b8b-dd0a-49fb-8de5-0f701bcfcecc", "metadata": {}, "source": [ "while $A$ is singular on the axis $\\theta=0$ or $\\pi$ $\\iff$ $x^2 + y^2 = 0$ if $p\\neq 0$:" ] }, { "cell_type": "code", "execution_count": 64, "id": "81e550d6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle A = \\left( -\\frac{q}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}}} \\right) \\mathrm{d} v + \\left( \\frac{p y z}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}} {\\left(x^{2} + y^{2}\\right)}} \\right) \\mathrm{d} x + \\left( -\\frac{p x z}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}} {\\left(x^{2} + y^{2}\\right)}} \\right) \\mathrm{d} y\\)" ], "text/latex": [ "$\\displaystyle A = \\left( -\\frac{q}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}}} \\right) \\mathrm{d} v + \\left( \\frac{p y z}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}} {\\left(x^{2} + y^{2}\\right)}} \\right) \\mathrm{d} x + \\left( -\\frac{p x z}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}} {\\left(x^{2} + y^{2}\\right)}} \\right) \\mathrm{d} y$" ], "text/plain": [ "A = -1/2*q/(sqrt(pi)*sqrt(x^2 + y^2 + z^2)) dv + 1/2*p*y*z/(sqrt(pi)*sqrt(x^2 + y^2 + z^2)*(x^2 + y^2)) dx - 1/2*p*x*z/(sqrt(pi)*sqrt(x^2 + y^2 + z^2)*(x^2 + y^2)) dy" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.display(Y)" ] }, { "cell_type": "markdown", "id": "604110a8-eb03-45a8-9afb-6dcb290848ef", "metadata": {}, "source": [ "$\\Omega$ is singular there as well:" ] }, { "cell_type": "code", "execution_count": 65, "id": "1ac68851", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\Omega = -\\frac{{\\left(q^{2} x^{4} + 2 \\, q^{2} x^{2} y^{2} + q^{2} y^{4} + p^{4} z^{2} + p^{2} q^{2} z^{2} + p^{2} x^{2} z^{2} + q^{2} x^{2} z^{2} + p^{2} y^{2} z^{2} + q^{2} y^{2} z^{2} + p^{2} z^{4} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} m p^{2} z^{2}\\right)} x}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{3} {\\left(x^{2} + y^{2}\\right)}} \\mathrm{d} v\\wedge \\mathrm{d} x -\\frac{{\\left(q^{2} x^{4} + 2 \\, q^{2} x^{2} y^{2} + q^{2} y^{4} + p^{4} z^{2} + p^{2} q^{2} z^{2} + p^{2} x^{2} z^{2} + q^{2} x^{2} z^{2} + p^{2} y^{2} z^{2} + q^{2} y^{2} z^{2} + p^{2} z^{4} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} m p^{2} z^{2}\\right)} y}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{3} {\\left(x^{2} + y^{2}\\right)}} \\mathrm{d} v\\wedge \\mathrm{d} y + \\frac{{\\left(p^{4} + p^{2} q^{2} + p^{2} x^{2} - q^{2} x^{2} + p^{2} y^{2} - q^{2} y^{2} + p^{2} z^{2} - q^{2} z^{2} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} m p^{2}\\right)} z}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{3}} \\mathrm{d} v\\wedge \\mathrm{d} z + \\frac{p q z}{4 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{2}} \\mathrm{d} x\\wedge \\mathrm{d} y -\\frac{{\\left(p x^{3} z + p x y^{2} z + p x z^{3} + 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} q x^{2} y + 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} q y^{3}\\right)} p}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{5}{2}} {\\left(x^{2} + y^{2}\\right)}} \\mathrm{d} x\\wedge \\mathrm{d} z -\\frac{{\\left(p x^{2} y z + p y^{3} z + p y z^{3} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} q x^{3} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} q x y^{2}\\right)} p}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{5}{2}} {\\left(x^{2} + y^{2}\\right)}} \\mathrm{d} y\\wedge \\mathrm{d} z\\)" ], "text/latex": [ "$\\displaystyle \\Omega = -\\frac{{\\left(q^{2} x^{4} + 2 \\, q^{2} x^{2} y^{2} + q^{2} y^{4} + p^{4} z^{2} + p^{2} q^{2} z^{2} + p^{2} x^{2} z^{2} + q^{2} x^{2} z^{2} + p^{2} y^{2} z^{2} + q^{2} y^{2} z^{2} + p^{2} z^{4} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} m p^{2} z^{2}\\right)} x}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{3} {\\left(x^{2} + y^{2}\\right)}} \\mathrm{d} v\\wedge \\mathrm{d} x -\\frac{{\\left(q^{2} x^{4} + 2 \\, q^{2} x^{2} y^{2} + q^{2} y^{4} + p^{4} z^{2} + p^{2} q^{2} z^{2} + p^{2} x^{2} z^{2} + q^{2} x^{2} z^{2} + p^{2} y^{2} z^{2} + q^{2} y^{2} z^{2} + p^{2} z^{4} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} m p^{2} z^{2}\\right)} y}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{3} {\\left(x^{2} + y^{2}\\right)}} \\mathrm{d} v\\wedge \\mathrm{d} y + \\frac{{\\left(p^{4} + p^{2} q^{2} + p^{2} x^{2} - q^{2} x^{2} + p^{2} y^{2} - q^{2} y^{2} + p^{2} z^{2} - q^{2} z^{2} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} m p^{2}\\right)} z}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{3}} \\mathrm{d} v\\wedge \\mathrm{d} z + \\frac{p q z}{4 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{2}} \\mathrm{d} x\\wedge \\mathrm{d} y -\\frac{{\\left(p x^{3} z + p x y^{2} z + p x z^{3} + 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} q x^{2} y + 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} q y^{3}\\right)} p}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{5}{2}} {\\left(x^{2} + y^{2}\\right)}} \\mathrm{d} x\\wedge \\mathrm{d} z -\\frac{{\\left(p x^{2} y z + p y^{3} z + p y z^{3} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} q x^{3} - 2 \\, \\sqrt{x^{2} + y^{2} + z^{2}} q x y^{2}\\right)} p}{8 \\, \\pi {\\left(x^{2} + y^{2} + z^{2}\\right)}^{\\frac{5}{2}} {\\left(x^{2} + y^{2}\\right)}} \\mathrm{d} y\\wedge \\mathrm{d} z$" ], "text/plain": [ "Omega = -1/8*(q^2*x^4 + 2*q^2*x^2*y^2 + q^2*y^4 + p^4*z^2 + p^2*q^2*z^2 + p^2*x^2*z^2 + q^2*x^2*z^2 + p^2*y^2*z^2 + q^2*y^2*z^2 + p^2*z^4 - 2*sqrt(x^2 + y^2 + z^2)*m*p^2*z^2)*x/(pi*(x^2 + y^2 + z^2)^3*(x^2 + y^2)) dv∧dx - 1/8*(q^2*x^4 + 2*q^2*x^2*y^2 + q^2*y^4 + p^4*z^2 + p^2*q^2*z^2 + p^2*x^2*z^2 + q^2*x^2*z^2 + p^2*y^2*z^2 + q^2*y^2*z^2 + p^2*z^4 - 2*sqrt(x^2 + y^2 + z^2)*m*p^2*z^2)*y/(pi*(x^2 + y^2 + z^2)^3*(x^2 + y^2)) dv∧dy + 1/8*(p^4 + p^2*q^2 + p^2*x^2 - q^2*x^2 + p^2*y^2 - q^2*y^2 + p^2*z^2 - q^2*z^2 - 2*sqrt(x^2 + y^2 + z^2)*m*p^2)*z/(pi*(x^2 + y^2 + z^2)^3) dv∧dz + 1/4*p*q*z/(pi*(x^2 + y^2 + z^2)^2) dx∧dy - 1/8*(p*x^3*z + p*x*y^2*z + p*x*z^3 + 2*sqrt(x^2 + y^2 + z^2)*q*x^2*y + 2*sqrt(x^2 + y^2 + z^2)*q*y^3)*p/(pi*(x^2 + y^2 + z^2)^(5/2)*(x^2 + y^2)) dx∧dz - 1/8*(p*x^2*y*z + p*y^3*z + p*y*z^3 - 2*sqrt(x^2 + y^2 + z^2)*q*x^3 - 2*sqrt(x^2 + y^2 + z^2)*q*x*y^2)*p/(pi*(x^2 + y^2 + z^2)^(5/2)*(x^2 + y^2)) dy∧dz" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Omega.apply_map(factor, frame=Y.frame(), chart=Y, keep_other_components=True)\n", "Omega.display(Y)" ] }, { "cell_type": "markdown", "id": "6ba08944-5f07-45af-bfe0-fa60b01a6aed", "metadata": {}, "source": [ "The scalar potentials $\\Phi$ and $\\Psi$ are regular in all the region $r>0$:" ] }, { "cell_type": "code", "execution_count": 66, "id": "3935c5af", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{q}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}}}\\)" ], "text/latex": [ "$\\displaystyle \\frac{q}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}}}$" ], "text/plain": [ "1/2*q/(sqrt(pi)*sqrt(x^2 + y^2 + z^2))" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Phi.expr(Y)" ] }, { "cell_type": "code", "execution_count": 67, "id": "4e3c9d6a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\\(\\displaystyle \\frac{p}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}}}\\)" ], "text/latex": [ "$\\displaystyle \\frac{p}{2 \\, \\sqrt{\\pi} \\sqrt{x^{2} + y^{2} + z^{2}}}$" ], "text/plain": [ "1/2*p/(sqrt(pi)*sqrt(x^2 + y^2 + z^2))" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Psi.expr(Y)" ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 10.0.beta2", "language": "sage", "name": "sagemath" }, "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.10.6" } }, "nbformat": 4, "nbformat_minor": 5 }