Skip to content

Instantly share code, notes, and snippets.

@indutny
Created May 19, 2020 17:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save indutny/3501dfbfabf715e3e1dd8b613b64a0b1 to your computer and use it in GitHub Desktop.
Save indutny/3501dfbfabf715e3e1dd8b613b64a0b1 to your computer and use it in GitHub Desktop.
baumgarte-2.32.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Baumgarte - Numerical Relativity\n",
"## Problem 2.32"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's define useful symbols first"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from sympy import *\n",
"init_printing(use_unicode=True)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"r, theta, phi = symbols('r, \\\\theta, \\phi')\n",
"M = symbols('M')\n",
"psi = Function(Symbol('\\psi', real=True))\n",
"coords = [ r, theta, phi ]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and specify general conformally flat metric:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}\\psi^{4}{\\left(r \\right)} & 0 & 0\\\\0 & r^{2} \\psi^{4}{\\left(r \\right)} & 0\\\\0 & 0 & r^{2} \\psi^{4}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)}\\end{matrix}\\right]$"
],
"text/plain": [
"⎡ 4 ⎤\n",
"⎢\\psi (r) 0 0 ⎥\n",
"⎢ ⎥\n",
"⎢ 2 4 ⎥\n",
"⎢ 0 r ⋅\\psi (r) 0 ⎥\n",
"⎢ ⎥\n",
"⎢ 2 4 2 ⎥\n",
"⎣ 0 0 r ⋅\\psi (r)⋅sin (\\theta)⎦"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"conf_metric = (psi(r) ** 4) * Matrix([[1, 0, 0], [0, r ** 2, 0], [ 0, 0, r ** 2 * sin(theta) ** 2 ]])\n",
"conf_metric"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}\\frac{1}{\\psi^{4}{\\left(r \\right)}} & 0 & 0\\\\0 & \\frac{1}{r^{2} \\psi^{4}{\\left(r \\right)}} & 0\\\\0 & 0 & \\frac{1}{r^{2} \\psi^{4}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)}}\\end{matrix}\\right]$"
],
"text/plain": [
"⎡ 1 ⎤\n",
"⎢──────── 0 0 ⎥\n",
"⎢ 4 ⎥\n",
"⎢\\psi (r) ⎥\n",
"⎢ ⎥\n",
"⎢ 1 ⎥\n",
"⎢ 0 ─────────── 0 ⎥\n",
"⎢ 2 4 ⎥\n",
"⎢ r ⋅\\psi (r) ⎥\n",
"⎢ ⎥\n",
"⎢ 1 ⎥\n",
"⎢ 0 0 ────────────────────────⎥\n",
"⎢ 2 4 2 ⎥\n",
"⎣ r ⋅\\psi (r)⋅sin (\\theta)⎦"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"conf_metric.inv()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def compute_christoffel(metric):\n",
" if metric.shape != (3, 3):\n",
" raise Exception(\"Invalid dimensions\")\n",
"\n",
" inv_metric = metric.inv()\n",
" \n",
" out = []\n",
" for i in range(0, 3):\n",
" rows = []\n",
" for j in range(0, 3):\n",
" row = []\n",
" for k in range(0, 3):\n",
" res = 0.0\n",
" for l in range(0, 3):\n",
" res += inv_metric[i, l] * (\n",
" Derivative(metric[l, j], coords[k]) +\n",
" Derivative(metric[l, k], coords[j]) -\n",
" Derivative(metric[j, k], coords[l]))\n",
" row.append(res / 2)\n",
" rows.append(row)\n",
" out.append(Matrix(rows).applyfunc(simplify))\n",
" return out"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def compute_ricci(christoffel):\n",
" if len(christoffel) != 3 or christoffel[0].shape != (3, 3):\n",
" raise Exception(\"Invalid dimensions\")\n",
" rows = []\n",
" for i in range(0, 3):\n",
" row = []\n",
" for j in range(0, 3):\n",
" res = 0.0\n",
" for k in range(0, 3):\n",
" res += Derivative(christoffel[k][i, j], coords[k])\n",
" res -= Derivative(christoffel[k][k, j], coords[i])\n",
" for l in range(0, 3):\n",
" res += christoffel[k][i, j] * christoffel[l][k, l]\n",
" res -= christoffel[k][i, l] * christoffel[l][j, k]\n",
" row.append(res)\n",
" rows.append(row)\n",
" return Matrix(rows).applyfunc(simplify) "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def compute_trace(matrix_lo, inv_metric):\n",
" return simplify(matrix_lo[0, 0] * inv_metric[0, 0] +\n",
" matrix_lo[1, 1] * inv_metric[1, 1] +\n",
" matrix_lo[2, 2] * inv_metric[2, 2])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"conf_christoffel = compute_christoffel(conf_metric)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"conf_ricci = compute_ricci(conf_christoffel)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"conf_ricci_scalar = compute_trace(conf_ricci, conf_metric.inv())"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[ \\left[\\begin{matrix}\\frac{2 \\frac{d}{d r} \\psi{\\left(r \\right)}}{\\psi{\\left(r \\right)}} & 0 & 0\\\\0 & \\frac{- 2 r^{2} \\psi^{3}{\\left(r \\right)} \\frac{d}{d r} \\psi{\\left(r \\right)} - r \\psi^{4}{\\left(r \\right)}}{\\psi^{4}{\\left(r \\right)}} & 0\\\\0 & 0 & \\frac{- 2 r^{2} \\psi^{3}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)} \\frac{d}{d r} \\psi{\\left(r \\right)} - r \\psi^{4}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)}}{\\psi^{4}{\\left(r \\right)}}\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & \\frac{4 r^{2} \\psi^{3}{\\left(r \\right)} \\frac{d}{d r} \\psi{\\left(r \\right)} + 2 r \\psi^{4}{\\left(r \\right)}}{2 r^{2} \\psi^{4}{\\left(r \\right)}} & 0\\\\\\frac{4 r^{2} \\psi^{3}{\\left(r \\right)} \\frac{d}{d r} \\psi{\\left(r \\right)} + 2 r \\psi^{4}{\\left(r \\right)}}{2 r^{2} \\psi^{4}{\\left(r \\right)}} & 0 & 0\\\\0 & 0 & - \\sin{\\left(\\theta \\right)} \\cos{\\left(\\theta \\right)}\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & 0 & \\frac{4 r^{2} \\psi^{3}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)} \\frac{d}{d r} \\psi{\\left(r \\right)} + 2 r \\psi^{4}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)}}{2 r^{2} \\psi^{4}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)}}\\\\0 & 0 & \\frac{\\cos{\\left(\\theta \\right)}}{\\sin{\\left(\\theta \\right)}}\\\\\\frac{4 r^{2} \\psi^{3}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)} \\frac{d}{d r} \\psi{\\left(r \\right)} + 2 r \\psi^{4}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)}}{2 r^{2} \\psi^{4}{\\left(r \\right)} \\sin^{2}{\\left(\\theta \\right)}} & \\frac{\\cos{\\left(\\theta \\right)}}{\\sin{\\left(\\theta \\right)}} & 0\\end{matrix}\\right]\\right]$"
],
"text/plain": [
"⎡⎡ d \n",
"⎢⎢2⋅──(\\psi(r)) \n",
"⎢⎢ dr \n",
"⎢⎢───────────── 0 \n",
"⎢⎢ \\psi(r) \n",
"⎢⎢ \n",
"⎢⎢ 2 3 d 4 \n",
"⎢⎢ - 2⋅r ⋅\\psi (r)⋅──(\\psi(r)) - r⋅\\psi (r) \n",
"⎢⎢ dr \n",
"⎢⎢ 0 ──────────────────────────────────────── \n",
"⎢⎢ 4 \n",
"⎢⎢ \\psi (r) \n",
"⎢⎢ \n",
"⎢⎢ 2 3 \n",
"⎢⎢ - 2⋅r ⋅\\psi (r)⋅sin\n",
"⎢⎢ \n",
"⎢⎢ 0 0 ───────────────────\n",
"⎢⎢ \n",
"⎣⎣ \n",
"\n",
" ⎤ \n",
" ⎥ \n",
" ⎥ ⎡ \n",
" 0 ⎥ ⎢ \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ 0 \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ \n",
" 0 ⎥, ⎢ 2 3 d \n",
" ⎥ ⎢4⋅r ⋅\\psi (r)⋅──(\\psi(r)) +\n",
" ⎥ ⎢ dr \n",
" ⎥ ⎢───────────────────────────\n",
"2 d 4 2 ⎥ ⎢ 2 4 \n",
" (\\theta)⋅──(\\psi(r)) - r⋅\\psi (r)⋅sin (\\theta)⎥ ⎢ 2⋅r ⋅\\psi (r) \n",
" dr ⎥ ⎢ \n",
"───────────────────────────────────────────────⎥ ⎣ 0 \n",
" 4 ⎥ \n",
" \\psi (r) ⎦ \n",
"\n",
" \n",
" \n",
" 2 3 d 4 \n",
" 4⋅r ⋅\\psi (r)⋅──(\\psi(r)) + 2⋅r⋅\\psi (r) \n",
" dr \n",
" ──────────────────────────────────────── 0 \n",
" 2 4 \n",
" 2⋅r ⋅\\psi (r) \n",
" \n",
" 4 \n",
" 2⋅r⋅\\psi (r) \n",
" \n",
"───────────── 0 0 \n",
" \n",
" \n",
" \n",
" 0 -sin(\\theta)⋅cos(\\the\n",
" \n",
" \n",
"\n",
" \n",
" ⎡ \n",
" ⎤ ⎢ \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ 0 \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ \n",
" ⎥, ⎢ 0 \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ \n",
" ⎥ ⎢ 2 3 2 d 4 2 \n",
" ⎥ ⎢4⋅r ⋅\\psi (r)⋅sin (\\theta)⋅──(\\psi(r)) + 2⋅r⋅\\psi (r)⋅sin (\\theta) \n",
" ⎥ ⎢ dr cos\n",
" ⎥ ⎢────────────────────────────────────────────────────────────────── ───\n",
"ta)⎦ ⎢ 2 4 2 sin\n",
" ⎣ 2⋅r ⋅\\psi (r)⋅sin (\\theta) \n",
" \n",
"\n",
" ⎤\n",
" 2 3 2 d 4 2 ⎤⎥\n",
" 4⋅r ⋅\\psi (r)⋅sin (\\theta)⋅──(\\psi(r)) + 2⋅r⋅\\psi (r)⋅sin (\\theta)⎥⎥\n",
" dr ⎥⎥\n",
" 0 ──────────────────────────────────────────────────────────────────⎥⎥\n",
" 2 4 2 ⎥⎥\n",
" 2⋅r ⋅\\psi (r)⋅sin (\\theta) ⎥⎥\n",
" ⎥⎥\n",
" cos(\\theta) ⎥⎥\n",
" 0 ─────────── ⎥⎥\n",
" sin(\\theta) ⎥⎥\n",
" ⎥⎥\n",
" ⎥⎥\n",
" ⎥⎥\n",
"(\\theta) ⎥⎥\n",
"──────── 0 ⎥⎥\n",
"(\\theta) ⎥⎥\n",
" ⎦⎥\n",
" ⎦"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"conf_christoffel"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Isotropic"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}- \\frac{8 M}{4 M^{2} r + 4 M r^{2} + r^{3}} & 0 & 0\\\\0 & \\frac{4 M r}{4 M^{2} + 4 M r + r^{2}} & 0\\\\0 & 0 & \\frac{4 M r \\sin^{2}{\\left(\\theta \\right)}}{4 M^{2} + 4 M r + r^{2}}\\end{matrix}\\right]$"
],
"text/plain": [
"⎡ -8⋅M ⎤\n",
"⎢──────────────────── 0 0 ⎥\n",
"⎢ 2 2 3 ⎥\n",
"⎢4⋅M ⋅r + 4⋅M⋅r + r ⎥\n",
"⎢ ⎥\n",
"⎢ 4⋅M⋅r ⎥\n",
"⎢ 0 ───────────────── 0 ⎥\n",
"⎢ 2 2 ⎥\n",
"⎢ 4⋅M + 4⋅M⋅r + r ⎥\n",
"⎢ ⎥\n",
"⎢ 2 ⎥\n",
"⎢ 4⋅M⋅r⋅sin (\\theta)⎥\n",
"⎢ 0 0 ──────────────────⎥\n",
"⎢ 2 2 ⎥\n",
"⎣ 4⋅M + 4⋅M⋅r + r ⎦"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"conf_ricci.replace(psi, lambda r: 1 + 2 * M /r).applyfunc(simplify).applyfunc(cancel)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0UlEQVQoFXWR0Q2CQBBEhVgAwQ60BLUCsQO0A+3BP/4MJWgLWgIdGCmBDiB2gG+OW0PIuckyO3Ozu5cj6vt+ZlEURenrFlyRJVojLTIjwht+BZ86ABNA2p66ib14BhMzee0Dqukm7ozggawlTOIFzzTdjBlCNzGJaqoii/1dBvr/m2pi6s+te2y3Lb/V48NQvdBE6woZbFurO9rKJOA0bXhHDBW5DBhtYmXP88C0CRjXaLW2OiPFHaEDczNTa+2RPEmb6+ND3RcMdoUtfAd3f+wLrOY/XeyA6s8AAAAASUVORK5CYII=\n",
"text/latex": [
"$\\displaystyle 0$"
],
"text/plain": [
"0"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"conf_ricci_scalar.replace(psi, lambda r: 1 + 2 * M /r).simplify().cancel()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Painlevé–Gullstrand "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}\\frac{2 M}{r} - 1 & \\sqrt{2} \\sqrt{\\frac{M}{r}} & 0 & 0\\\\\\sqrt{2} \\sqrt{\\frac{M}{r}} & 1 & 0 & 0\\\\0 & 0 & r^{2} & 0\\\\0 & 0 & 0 & r^{2} \\sin^{2}{\\left(\\theta \\right)}\\end{matrix}\\right]$"
],
"text/plain": [
"⎡ ___ ⎤\n",
"⎢ 2⋅M ╱ M ⎥\n",
"⎢ ─── - 1 √2⋅ ╱ ─ 0 0 ⎥\n",
"⎢ r ╲╱ r ⎥\n",
"⎢ ⎥\n",
"⎢ ___ ⎥\n",
"⎢ ╱ M ⎥\n",
"⎢√2⋅ ╱ ─ 1 0 0 ⎥\n",
"⎢ ╲╱ r ⎥\n",
"⎢ ⎥\n",
"⎢ 2 ⎥\n",
"⎢ 0 0 r 0 ⎥\n",
"⎢ ⎥\n",
"⎢ 2 2 ⎥\n",
"⎣ 0 0 0 r ⋅sin (\\theta)⎦"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pg_metric_full = Matrix([\n",
" [-1 + 2 * M / r,sqrt(2 * M / r), 0, 0 ],\n",
" [sqrt(2 * M / r), 1, 0, 0], [ 0, 0, r ** 2, 0],\n",
" [ 0, 0, 0, r ** 2 * sin(theta) ** 2]\n",
"])\n",
"pg_metric_full"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [],
"source": [
"# Compute covariant derivative of rank-0 tensor\n",
"def compute_diff_scalar(s, christoffel):\n",
" if len(christoffel) != 3:\n",
" raise Exception('Invalid dimensions')\n",
"\n",
" return Matrix([ diff(s, x) for x in coords ]).applyfunc(simplify)\n",
"\n",
"# Compute covariant derivative of rank-1 covariant tensor\n",
"def compute_diff_vec_lo(t, christoffel):\n",
" if len(t) != 3 or len(christoffel) != 3:\n",
" raise Exception('Invalid dimensions')\n",
"\n",
" rows = []\n",
" for i in range(0, 3):\n",
" row = []\n",
" for j in range(0, 3):\n",
" res = diff(t[i], coords[j])\n",
" for k in range(0, 3):\n",
" res -= christoffel[k][i, j] * t[k]\n",
" row.append(res)\n",
" rows.append(row)\n",
" return Matrix(rows).applyfunc(simplify)\n",
"\n",
"# Compute covariant derivative of rank-2 covariant tensor\n",
"def compute_diff_matrix_lo(m, christoffel):\n",
" if m.shape != (3, 3) or len(christoffel) != 3:\n",
" raise Exception('Invalid dimensions')\n",
"\n",
" out = []\n",
" for i in range(0, 3):\n",
" rows = []\n",
" for j in range(0, 3):\n",
" row = []\n",
" for k in range(0, 3):\n",
" res = diff(m[j, k], coords[i])\n",
" for l in range(0, 3):\n",
" res -= christoffel[l][i, j] * m[l, k]\n",
" res -= christoffel[l][i, k] * m[j, l]\n",
" row.append(res)\n",
" rows.append(row)\n",
" out.append(Matrix(rows).applyfunc(simplify))\n",
" return out\n",
"\n",
"# Compute lapse, shift, and K\n",
"def compute_factors(metric_full):\n",
" metric_spat = metric_full[1:, 1:]\n",
" inv_metric_full = metric_full.inv()\n",
" \n",
" alpha = sqrt(-inv_metric_full[0, 0].simplify())\n",
" beta_hi = (inv_metric_full[0, 1:] * (alpha ** 2)).applyfunc(simplify)\n",
" beta_lo = metric_full[0, 1:]\n",
" \n",
" inv_metric_spat = inv_metric_full[1:, 1:] + (1 / alpha ** 2) * Matrix([\n",
" [ beta_hi[i] * beta_hi[j] for i in range(0, 3) ]\n",
" for j in range(0, 3)\n",
" ])\n",
" christoffel = compute_christoffel(metric_spat)\n",
" \n",
" diff_beta_lo = compute_diff_vec_lo(beta_lo, christoffel)\n",
" K_lo = Matrix([\n",
" [ diff_beta_lo[i, j] + diff_beta_lo[j, i] for j in range(0, 3) ]\n",
" for i in range(0, 3)\n",
" ])\n",
" K_lo /= (2 * alpha)\n",
" K_lo = K_lo.applyfunc(simplify)\n",
" \n",
" K_hi = inv_metric_spat * K_lo * inv_metric_spat.T\n",
" \n",
" KK = Trace(K_lo * K_hi)\n",
" K = compute_trace(K_lo, inv_metric_spat).simplify()\n",
" \n",
" ricci = compute_ricci(christoffel)\n",
" R = compute_trace(ricci, inv_metric_spat)\n",
"\n",
" return {\n",
" 'alpha': alpha,\n",
" 'beta_hi': beta_hi,\n",
" 'beta_lo': beta_lo,\n",
" 'K_lo': K_lo,\n",
" 'K_hi': K_hi,\n",
" 'KK': KK.simplify(),\n",
" 'K': K,\n",
" \n",
" 'christoffel': christoffel,\n",
" \n",
" 'metric_spat': metric_spat,\n",
" 'inv_metric_spat': inv_metric_spat,\n",
" \n",
" 'ricci': ricci,\n",
" 'R': R,\n",
" }"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"pg_factors = compute_factors(pg_metric_full)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( 1, \\ \\left[\\begin{matrix}\\sqrt{2} \\sqrt{\\frac{M}{r}} & 0 & 0\\end{matrix}\\right], \\ \\left[\\begin{matrix}\\sqrt{2} \\sqrt{\\frac{M}{r}} & 0 & 0\\end{matrix}\\right]\\right)$"
],
"text/plain": [
"⎛ ⎡ ___ ⎤ ⎡ ___ ⎤⎞\n",
"⎜ ⎢ ╱ M ⎥ ⎢ ╱ M ⎥⎟\n",
"⎜1, ⎢√2⋅ ╱ ─ 0 0⎥, ⎢√2⋅ ╱ ─ 0 0⎥⎟\n",
"⎝ ⎣ ╲╱ r ⎦ ⎣ ╲╱ r ⎦⎠"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pg_factors['alpha'], pg_factors['beta_lo'], pg_factors['beta_hi']"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}0 & 0 & 0\\\\0 & 0 & 0\\\\0 & 0 & 0\\end{matrix}\\right], \\ 0\\right)$"
],
"text/plain": [
"⎛⎡0 0 0⎤ ⎞\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢0 0 0⎥, 0⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎝⎣0 0 0⎦ ⎠"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pg_factors['ricci'].applyfunc(simplify), pg_factors['R']"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left[ \\left[\\begin{matrix}0 & 0 & 0\\\\0 & - r & 0\\\\0 & 0 & - r \\sin^{2}{\\left(\\theta \\right)}\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & \\frac{1}{r} & 0\\\\\\frac{1}{r} & 0 & 0\\\\0 & 0 & - \\sin{\\left(\\theta \\right)} \\cos{\\left(\\theta \\right)}\\end{matrix}\\right], \\ \\left[\\begin{matrix}0 & 0 & \\frac{1}{r}\\\\0 & 0 & \\frac{\\cos{\\left(\\theta \\right)}}{\\sin{\\left(\\theta \\right)}}\\\\\\frac{1}{r} & \\frac{\\cos{\\left(\\theta \\right)}}{\\sin{\\left(\\theta \\right)}} & 0\\end{matrix}\\right]\\right]$"
],
"text/plain": [
"⎡ ⎡ \n",
"⎢ ⎡ 1 ⎤ ⎢0 0 \n",
"⎢⎡0 0 0 ⎤ ⎢0 ─ 0 ⎥ ⎢ \n",
"⎢⎢ ⎥ ⎢ r ⎥ ⎢ \n",
"⎢⎢0 -r 0 ⎥ ⎢ ⎥ ⎢ \n",
"⎢⎢ ⎥, ⎢1 ⎥, ⎢0 0 \n",
"⎢⎢ 2 ⎥ ⎢─ 0 0 ⎥ ⎢ \n",
"⎢⎣0 0 -r⋅sin (\\theta)⎦ ⎢r ⎥ ⎢ \n",
"⎢ ⎢ ⎥ ⎢1 cos(\\theta) \n",
"⎢ ⎣0 0 -sin(\\theta)⋅cos(\\theta)⎦ ⎢─ ─────────── \n",
"⎣ ⎣r sin(\\theta) \n",
"\n",
" 1 ⎤⎤\n",
" ─ ⎥⎥\n",
" r ⎥⎥\n",
" ⎥⎥\n",
"cos(\\theta)⎥⎥\n",
"───────────⎥⎥\n",
"sin(\\theta)⎥⎥\n",
" ⎥⎥\n",
" ⎥⎥\n",
" 0 ⎥⎥\n",
" ⎦⎦"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pg_factors['christoffel']"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/latex": [
"$\\displaystyle \\left( \\left[\\begin{matrix}- \\frac{\\sqrt{2} \\sqrt{\\frac{M}{r}}}{2 r} & 0 & 0\\\\0 & \\sqrt{2} r \\sqrt{\\frac{M}{r}} & 0\\\\0 & 0 & \\sqrt{2} r \\sqrt{\\frac{M}{r}} \\sin^{2}{\\left(\\theta \\right)}\\end{matrix}\\right], \\ \\frac{3 \\sqrt{2} \\sqrt{\\frac{M}{r}}}{2 r}\\right)$"
],
"text/plain": [
"⎛⎡ ___ ⎤ ⎞\n",
"⎜⎢ ╱ M ⎥ ⎟\n",
"⎜⎢-√2⋅ ╱ ─ ⎥ ⎟\n",
"⎜⎢ ╲╱ r ⎥ ⎟\n",
"⎜⎢──────────── 0 0 ⎥ ___⎟\n",
"⎜⎢ 2⋅r ⎥ ╱ M ⎟\n",
"⎜⎢ ⎥ 3⋅√2⋅ ╱ ─ ⎟\n",
"⎜⎢ ___ ⎥ ╲╱ r ⎟\n",
"⎜⎢ ╱ M ⎥, ────────────⎟\n",
"⎜⎢ 0 √2⋅r⋅ ╱ ─ 0 ⎥ 2⋅r ⎟\n",
"⎜⎢ ╲╱ r ⎥ ⎟\n",
"⎜⎢ ⎥ ⎟\n",
"⎜⎢ ___ ⎥ ⎟\n",
"⎜⎢ ╱ M 2 ⎥ ⎟\n",
"⎜⎢ 0 0 √2⋅r⋅ ╱ ─ ⋅sin (\\theta)⎥ ⎟\n",
"⎝⎣ ╲╱ r ⎦ ⎠"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pg_factors['K_lo'], pg_factors['K']"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"def compute_ham_constraint(factors):\n",
" return factors['R'] + factors['K'] ** 2 - factors['KK']"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"def compute_mom_constraint(factors):\n",
" dK_lo = compute_diff_matrix_lo(factors['K_lo'], factors['christoffel'])\n",
" # Contract\n",
" t = []\n",
" for i in range(0, 3):\n",
" res = 0\n",
" for j in range(0, 3):\n",
" for k in range(0, 3):\n",
" res += factors['inv_metric_spat'][j, k] * dK_lo[j][i, k]\n",
" t.append(res.simplify() - diff(factors['K'], coords[i]))\n",
" return t"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [],
"source": [
"def compute_K_evolution(factors):\n",
" christoffel = factors['christoffel']\n",
" \n",
" t1 = -compute_diff_vec_lo(compute_diff_scalar(factors['alpha'], christoffel), christoffel)\n",
" \n",
" t2 = factors['alpha'] * (\n",
" factors['ricci'] -\n",
" 2 * factors['K_lo'] * factors['K_hi'] * factors['inv_metric_spat'] +\n",
" factors['K'] * factors['K_lo']\n",
" )\n",
" \n",
" dK_lo = compute_diff_matrix_lo(factors['K_lo'], factors['christoffel'])\n",
" dbeta_lo = compute_diff_vec_lo(factors['beta_lo'], factors['christoffel'])\n",
" \n",
" t3 = zeros(3, 3)\n",
" for i in range(0, 3):\n",
" t3 += factors['beta_hi'][i] * dK_lo[i]\n",
" \n",
" t4 = dbeta_lo * factors['K_hi'] * factors['inv_metric_spat']\n",
" t5 = t4.T\n",
" \n",
" t1 = t1.applyfunc(simplify)\n",
" t2 = t2.applyfunc(simplify)\n",
" t3 = t3.applyfunc(simplify)\n",
" t4 = t4.applyfunc(simplify)\n",
" t5 = t5.applyfunc(simplify)\n",
" \n",
" return (t1 + t2 + t3 + t4 + t5).applyfunc(simplify)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA0UlEQVQoFXWR0Q2CQBBEhVgAwQ60BLUCsQO0A+3BP/4MJWgLWgIdGCmBDiB2gG+OW0PIuckyO3Ozu5cj6vt+ZlEURenrFlyRJVojLTIjwht+BZ86ABNA2p66ib14BhMzee0Dqukm7ozggawlTOIFzzTdjBlCNzGJaqoii/1dBvr/m2pi6s+te2y3Lb/V48NQvdBE6woZbFurO9rKJOA0bXhHDBW5DBhtYmXP88C0CRjXaLW2OiPFHaEDczNTa+2RPEmb6+ND3RcMdoUtfAd3f+wLrOY/XeyA6s8AAAAASUVORK5CYII=\n",
"text/latex": [
"$\\displaystyle 0$"
],
"text/plain": [
"0"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compute_ham_constraint(pg_factors)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAAAVCAYAAAAU9vPjAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACB0lEQVRYCe1Y0VHDMAxNuQ7Qgw3aEaAT0BFINwA2oMdX81s2gBVgA9igR0dgA0pH4L006jmN3MaO0U/RnWNbdvSkF9lnpzefzx+yLLtHoeRFUay2zdN7IvYaFz2QswAN7xj4OD069IjBRclJXx/eaqtJ7HyjjFAW0H1RkVKscOhzCNaZL0gY+cTYEvUM5QntGQozbOh7J0ZvhUPfQrFUcmDkDrYGqN8kYLQ3aLP/LLqutRUO/YzBUsmBrRxF25iX0E8ANECdQqxw6Gswlo+cCYytleiZPRSOpxArHPoajNUgp2VWnHdlxgqHfsZiNciBLQlcssTlQbIpxbKywqH/UVgaOS4ZvvaFbyCx3gqHbjewNHIkO7Q45Qvw3NNVrHDoZxRWgxysT1lO2tIRXeeDoBUOmYnFapBDYxBeJYZlq/6QzEl11bDCYRTBWD5yXmHsqs5L2bvEc+V8CX4VySZl+lGVFQ4daY0lXqvkIOAXTFijvpGJFQlT9G/3dD8Y41UjWKxw6FhbLDeIvtvZazNLHmFUltcY/Wv0VzIP7Q0K9x9eNVhkv5IpbWorHPpyFMt12EtOFSgvmwcF80Youww7OFkZtMIhdFsscVNdVjIYUI8r4IBXoqZa4ZTOdSYHpHBDTnHuOciWFY7rRGdyYGwKx/m/56/FCmcXh/wmlT3j/x/y9n86z3P5L1ZgACIHDccvAAAAAElFTkSuQmCC\n",
"text/latex": [
"$\\displaystyle \\left[ 0, \\ 0, \\ 0\\right]$"
],
"text/plain": [
"[0, 0, 0]"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compute_mom_constraint(pg_factors)"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAFgAAABLCAYAAAD010ABAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD+klEQVR4Ae2d7W0UMRCGLyi/UQQSBYQO+KiA0AHQAVBCxK+7v6GD0ALpADqIuA5CAUhEiAp4h/NIvr3xetZrn86n19LG9tg7c348N7cfI+VkuVw+WywWP3BY5Wa1Wr21BijbEACfO7TOLR4YOzmNBj6jLZPj8jPusG0SuDKkryF7I/IY8DWIE6hBa0wEZl+G45CJaAfwcN5OHyfqbv3G4FMcV/valF5tP9ihmBBggRKnb1Ff4pBwconjG9pm/EmoKRL3bNsFGAv8ADJnqG+UENp/0Jb+tcpa1L3bdgEGOLmSWBsAbyG7AIQzY6yWqGvbXsAXoHVvEBMvliLjrUrXtrOAnd75qAXdY7CdBQxwCk+9NWapXt0qRHRv2wM4BppqP04N7EF+0LY9gNVLLVbqYXJd3KJ0bzsLGHFQQ4MVBlTW5A7wGGxnAQe3/I763HBR9WAZb1W6tu0F/BX0XhgEn0O2jjzNmDJb1LVtF2AAlAca96j/P8AQZGhLeHiH4730W5XebZ9OACPe+gkL1lDxEv1X6K8n6Cid2q1tN2CAlB87ecCz99KzbVeI2DvRIzJIwI03k4AJuDGBxurpwQTcmEBj9fRgAm5MoLF6ejABNybQWL37Vlk+B25ZmXgyMeHGHSIAl4knBQk3LsCAy8STEErAQh56uRNuXIChsOvkj8CmpJq9bi/grpM/SsiGc2avOwsYXwl9sTn2OfXd3NicyWPHYDsLGFQUnsSeYdHX6p5NGJ7r6Xdv2wPYA+Kgkz88Cyick123B7B6qfUZ1MOYeGLRgUwAPwxjWm9NDZclIrPCgMqYeLJFbfFEuwL4b+horWNx3XXyR7yQie3Sdf9SO54QIXO7Tv7QxRbUs9ftAowwwcSTsDvh0tGdcDPlYU+3yR8FnhufMmvdbsDhx46JJzF6R9sVIhx6OCVBgIATYGqJCbgWyYQeAk6AqSUm4FokE3oIOAGmlpiAa5FM6CHgBJhaYgKuRTKhh4ATYGqJ3bfKYhC3y0w8YeJJLd/b6IFTzUq4cYUIGGHiSdg3sJCXv0w8qeTHTDwBSEkOaVVEt/XSV7xYStZ2NkTgK6EvNjcq7b/6dtkeLZQeg+0sYLBReLprMS7dXc8mxOd5293b9gD2wMgmYHiUFM45aNsewOql1vrVw5h4YtGBLAs4XJbI6VYYUBkTT0oBh/NKEzASZieJu7ad9eCAYnYCxiSk25O7tu0CjDDBxJOw6eHSkYkn21+CWT0mnszClzk5/MgXJ9y4QkTmM3B4hAABj8CpMUTANSiO6CDgETg1hgi4BsURHfE7uTv8Yg6n8h+VDIkM+mCW/EclMlUAy3OEj9IxSpNnDIadnkX6Ithcwz/HxT4KV1UqBAAAAABJRU5ErkJggg==\n",
"text/latex": [
"$\\displaystyle \\left[\\begin{matrix}0 & 0 & 0\\\\0 & 0 & 0\\\\0 & 0 & 0\\end{matrix}\\right]$"
],
"text/plain": [
"⎡0 0 0⎤\n",
"⎢ ⎥\n",
"⎢0 0 0⎥\n",
"⎢ ⎥\n",
"⎣0 0 0⎦"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compute_K_evolution(pg_factors)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment