In diesem Python Jupyter Notebook werden die grundlegenden Größen der allgemeinen Relativitätstheorie (z.B. die Metrik der Raumzeit, Christoffel Symbole, Ricci- und Einstein-Tensor) am Beispiel einer allgemeinen statischen und isotropen Raumzeit in Python berechnet. Die oft komplizierten und zeitaufwendigen Berechnungen der tensoriellen Gleichungen der Allgemeinen Relativitätstheorie (ART) können mithilfe von Computeralgebra-Systemen erleichtert werden. Diverse Anwendungen der Einstein- und Geodätengleichung sind in schon vordefinierten Python Modulen implementiert, und analytische Berechnungen können durchgeführt und entsprechende Lösungen berechnet und visualisiert werden.
Mittlerweile gibt es in Python mehrere leistungsstarke Bibliotheken/Module, die Berechnungen der ART durchführen können. In vergangenen Vorlesungen verwendeten wir das Python-Modul Gravipy (siehe Vorlesung im Sommersemester 2020) bzw. das Python-Modul EinsteinPy (siehe Vorlesung im Sommersemester 2023). Beide Module basieren auf dem Modul SymPy welches symbolische Berechnungen mit Python vereinfacht. In der aktuellen Vorlesung werden wir zusätzlich zu EinsteinPy das Python-Modul OGRePy: An Object-Oriented General Relativity Package for Python verwenden, welches ebenfalls auf der Bibliothek SymPy basiert.
In diesem Jupyter Notebook stellen wir die Verwendung des Moduls "OGRePy" dar, wohingegen das Modul "EinsteinPy" in dem Jupyter Notebook Allgemeinen Relativitätstheorie mit Python und EinsteinPy vorgestellt wird (Download Notebook EinsteinPy.ipynb).
Allgemeinen Relativitätstheorie mit Python und OGRePy¶
Im Folgenden werden einige grundlegende Größen der allgemeinen Relativitätstheorie mit dem Python Modul "OGRePy" berechnet. Eine ausführliche Einführung in das Modul "OGRePy" finden sie unter dem folgenden Link: OGRePy-Documentation. Das Modul können Sie einfach mit dem Befehl "pip install OGRePy" in einem Terminal installieren.
Kurze Einführung in die spezielle Relativitätstheorie mit OGRePy¶
Zunächst befassen wir uns mit einer kurzen Einführung in die spezielle Relativitätstheorie (SRT: flache Raumzeit $\eta_{\mu\nu}$) unter Verwendung des Moduls "OGRePy". Da wir später mit dem Modul auch Berechnungen in der allgemeinen Relativitätstheorie (ART, engl. general relativity: gekrümmte Raumzeit) machen werden, importieren wir es mit dem Befehl "import OGRePy as gr".
import OGRePy as gr
By Barak Shoshany (baraksh@gmail.com) (baraksh.com)
v2.0.0 (2026-05-11)
GitHub repository: https://github.com/bshoshany/OGRePy
Documentation: .ipynb, .pdf, .html
Koordinatensystem und Metrik¶
Um symbolische Rechnungen in einer flachen oder gekrümmten Raumzeit machen zu können, müssen wir zunächst das verwendete Koordinatensystem und die Metrik der Raumzeit definieren.
In der speziellen Relativitätstheorie beschreibt man raumzeitliche Ereignisse im flachen, vierdimensionalen Minkowski-Raum $\eta_{\mu\nu}$, in welchem Raum und Zeit zu einem Vierer-Ortsvektor $x^\mu=(x^0,x^1,x^2,x^3)=(c \cdot t,x,y,z)=(t,x,y,z)$ vereint sind. Im vorigen Ausdruck wurden kartesische Raumkoordinaten verwendet und der Wert der Lichtgeschwindigkeit auf Eins gesetzt ($c=1$).
Die kovariante, pseudo-euklidische Minkowski-Metrik besitzt das folgende Aussehen:
\begin{equation} \eta_{\mu\nu} = \left( \begin{array}{ccc} 1 & 0 & 0 & 0\\ 0& -1& 0&0 \\ 0& 0& -1& 0\\ 0& 0& 0& -1\\ \end{array} \right) \end{equation}
Wir definieren zunächst das verwendete kartesische Koordinatensystem, wobei wir $t,x,y,z$ als OGRePy-Variablen definieren (entspricht SymPy-Symbolen).
from OGRePy.abc import t, x, y, z
Cartesian = gr.Coordinates(t, x, y, z)
In OGRePy werden Koordinaten als Objekte der Klasse Coordinates dargestellt. Im oberen Ausdruck wurde der Konstruktor der Klasse Coordinates verwendet, welcher wie folgt definiert ist:
gr.doc(gr.Coordinates)
Coordinates(*components: s.Symbol | str) -> None
Construct a new coordinate object.
Parameters:¶
components: One or more strings or SymPySymbolobjects specifying the coordinates. Strings should be in the same format as the argument to SymPy'ssymbols(), e.g."t x y z", and it is possible to enter just one string for all the coordinates.
Wir definieren nun die Minkowski-Metrik, indem wir den Konstruktor der Klasse Metric verwenden.
Minkowski = gr.Metric(
coords = Cartesian,
components = gr.diag(1, -1, -1, -1),
symbol = r"\eta",
)
Die definierten Größen kann man sich mit dem Befehl ".show()" darstellen
Minkowski.show()
$$\eta{}_{\mu}{}_{\nu}\Bigg|_{\left(t, x, y, z\right)} = \left(\begin{matrix}1 & 0 & 0 & 0\\0 & -1 & 0 & 0\\0 & 0 & -1 & 0\\0 & 0 & 0 & -1\end{matrix}\right)$$
bzw. die nichtverschwindenden Komponenten mit dem Befehl ".list()" auflisten.
Minkowski.list()
$$\begin{align*} \eta{}_{t}{}_{t} = -\eta{}_{x}{}_{x} = -\eta{}_{y}{}_{y} = -\eta{}_{z}{}_{z} &= 1 \end{align*}$$
Kovariante oder kontravariante Tensoren¶
Anhand der oberen grafischen Ausgabe kann man sehen ob der definierte Metrische-Tensor kovariante oder kontravariante Index-Komponenten hat (hier beide Indices unten (-1,-1)). Weitere Eigenschaften des Objektes erhält man mit dem Befehl "Minkowski.info()"
Minkowski.info()
- Name:
Minkowski - Class:
Metric - Symbol: $\eta{}_{\mu}{}_{\nu}$
- Rank: 2
- Dimensions: 4
- Default Coordinates:
Cartesian - Default Indices: (-1, -1)
- Associated Metric For: None
Möchte man sich die definierte Metrik in einer anderen Index-Kombination ansehen (z.B. mit gemischt-kontra-kovarianter Indexstellung) so verwendet man die folgende Schreibweise:
Minkowski.show(indices=(1, -1))
$$\eta{}^{\mu}{}_{\nu}\Bigg|_{\left(t, x, y, z\right)} = \left(\begin{matrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{matrix}\right)$$
Nachdem die Koordinaten und die Metrik definiert sind, kann man weitere Vektoren und Tensoren definieren, indem man den Konstruktor der Klasse Tensor verwendet. Man definiert z.B. den kontravarianten Vierer-Ortsvektor $x^\mu=(t,x,y,z)$ wie folgt (Tensor vom Rang 1).
FourPosition = gr.Tensor(
metric = Minkowski,
coords = Cartesian,
indices = (1,),
components = [t, x, y, z],
symbol = "x",
)
FourPosition.show()
$$x{}^{\mu}\Bigg|_{\left(t, x, y, z\right)} = \left(\begin{matrix}t\\x\\y\\z\end{matrix}\right)$$
Der Vierer-Ortsvektor $x^\mu=(t,x,y,z)$ beschreibt ein Ereignis als Punkt in der vierdimensionalen Raumzeit.
Beispiel: Die Lorentz-Transformation¶
Wir definieren im Folgenden die Lorentz-Transformationsmatrix $\Lambda^{\mu}\,_{\!\!\nu}$ (ein Tensor zweiter Stufe, (Rang 2)-Tensor mit gemischtvarianter kontra-kovarianter-Indexstellung). Wir betrachten dabei zwei Inertialsysteme, die sich mit einer konstanten relativen Geschwindigkeit $v$ in $x$-Richtung voneinander weg bewegen (Standard-Boost in $x$-Richtung). Der Lorentz-Tensor hat die folgende Gestalt:
\begin{equation} \Lambda^{\mu}\,_{\!\!\nu} = \left( \begin{array}{ccc} \gamma & -\beta\gamma & 0 & 0\\ -\beta\gamma& \gamma& 0&0 \\ 0& 0& 1& 0\\ 0& 0& 0& 1\\ \end{array} \right) \stackrel{c\,=1}{=} \left( \begin{array}{ccc} \frac{1}{\sqrt{1-v^2}} & -\frac{v}{\sqrt{1-v^2}} & 0 & 0\\ -\frac{v}{\sqrt{1-v^2}}& \frac{1}{\sqrt{1-v^2}}& 0&0 \\ 0& 0& 1& 0\\ 0& 0& 0& 1\\ \end{array} \right) \quad \hbox{mit:} \quad \beta=\frac{v}{c} \, , \,\, \gamma=\frac{1}{\sqrt{1-\beta^2}} \end{equation}
Bei der Definition der einzelnen Komponenten des Tensor verwendeten wir die Wurzelfunktion "sqrt(...)" des SymPy-Moduls. Allgemein können SymPy-Funktionen im OGRePy-Modul direkt mittels "gr.s." angesprochen werden.
from OGRePy.abc import v
Lorentz = gr.Tensor(
metric = Minkowski,
coords = Cartesian,
indices = (1, -1),
components = [[1/gr.s.sqrt(1 - v**2), -v/gr.s.sqrt(1 - v**2), 0, 0],
[-v/gr.s.sqrt(1 - v**2), 1/gr.s.sqrt(1 - v**2), 0, 0],
[0, 0, 1, 0],[0, 0, 0, 1]],
symbol=r"\Lambda",
)
Lorentz.show()
$$\Lambda{}^{\mu}{}_{\nu}\Bigg|_{\left(t, x, y, z\right)} = \left(\begin{matrix}\frac{1}{\sqrt{1 - v^{2}}} & - \frac{v}{\sqrt{1 - v^{2}}} & 0 & 0\\- \frac{v}{\sqrt{1 - v^{2}}} & \frac{1}{\sqrt{1 - v^{2}}} & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{matrix}\right)$$
Multiplikation und Verjüngung von Tensoren¶
Der Übergang vom ruhenden Inertialsystem $x^\mu=(t,x,y,z)$ hin zum gleichförmig bewegten Inertialsystem $x^{\mu^\prime}=(t^\prime,x^\prime,y^\prime,z^\prime)$ wird durch eine Multiplikation und Verjüngung der Tensoren $\Lambda^{\mu}\,_{\!\!\nu}$ und $x^\nu$ (eine sogenannte Überschiebung) erreicht. Wir benutzen dabei stets die Einsteinsche Summenkonvention:
\begin{equation} x^{\mu^\prime} = \Lambda^{\mu^\prime}\,_{\!\!\!\nu} \, x^\nu \end{equation}
Eine solche Berechnung lässt sich wie folgt mit dem OGRePy-Modul durchführen.
from OGRePy.abc import mu, nu
Lorentz(mu,nu) @ FourPosition(nu)
OGRePy: You have the latest version of the package.
$$\Lambda{}^{\mu}{}_{\nu} x{}^{\nu}\Bigg|_{\left(t, x, y, z\right)} = \left(\begin{matrix}\frac{t - v x}{\sqrt{1 - v^{2}}}\\\frac{- t v + x}{\sqrt{1 - v^{2}}}\\y\\z\end{matrix}\right)$$
Man kann nun den entstehenden Tensor vom Rang 1 mittels der Komponenten des berechneten Vierer-Vektors definieren.
FourPosition_s_c = (Lorentz(mu,nu) @ FourPosition(nu)).components(coords=Cartesian, indices=(1,))
FourPosition_s = gr.Tensor(
metric = Minkowski,
coords = Cartesian,
indices = (1,),
components = FourPosition_s_c,
symbol = r"x^|",
)
FourPosition_s
$$x^{|}{}^{\mu}\Bigg|_{\left(t, x, y, z\right)} = \left(\begin{matrix}\frac{t - v x}{\sqrt{1 - v^{2}}}\\\frac{- t v + x}{\sqrt{1 - v^{2}}}\\y\\z\end{matrix}\right)$$
Das Linien- und Volumenelement¶
Der Abstand zweier infinitesimal benachbarter Ereignisse $(t,x,y,z)$ und $(t+dt,x+dx,y+dy,z+dz)$ ist das sogenannte Linienelment $ds$ des Minkowski-Raums. Für sein Quadrat gilt
\begin{equation} ds^2 = \eta_{\mu\nu} dx^\mu dx^\nu = dt^2 - dx^2 - dy^2 - dz^2 \quad. \end{equation}
Berechnen kann man es sich einfach mit dem folgenden Befehl:
Minkowski.line_element()
bzw. per Rechnung mittels
dt, dx, dy, dz = gr.s.symbols("dt, dx, dy, dz")
dx_T = gr.Tensor(
metric = Minkowski,
coords = Cartesian,
indices = (1,),
components = [dt, dx, dy, dz],
symbol = "dx",
)
(Minkowski(mu,nu) @ dx_T(mu) @ dx_T(nu))
$$\eta{}_{\mu}{}_{\nu} dx{}^{\mu} dx{}^{\nu}\Bigg|_{\left(t, x, y, z\right)} = dt^{2} - dx^{2} - dy^{2} - dz^{2}$$
Das Volumenelement $dV$ berechnet sich zu
Minkowski.volume_element()
Partielle Ableitung von Tensoren¶
Die partielle Ableitung von Tensoren wird mittels einer Multiplikation des Operators $\partial_\nu = \frac{\partial}{\partial x^\nu}$ mit dem jeweiligen Tensor erzeugt. Der Gradient des Ortsvektors berechnet sich z.B. mittels
gr.PartialD(nu) @ FourPosition(mu)
$$\partial{}_{\nu} x{}^{\mu}\Bigg|_{\left(t, x, y, z\right)} = \left(\begin{matrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{matrix}\right)$$
und seine Divergenz mittels
gr.PartialD(mu) @ FourPosition(mu)
$$\partial{}_{\mu} x{}^{\mu}\Bigg|_{\left(t, x, y, z\right)} = 4$$
Grundlegende Größen der Allgemeinen Relativitätstheorie mit OGRePy¶
Um symbolische Rechnungen in einer gekrümmten Raumzeit machen zu können, müssen wir zunächst wieder das verwendete Koordinatensystem und die gekrümmte Metrik der Raumzeit definieren. Wir verwenden im Folgenden sphärische Raumzeitkoordinaten $(t,r,\theta,\phi)$ und beschreiben Ereignisse in der Raumzeit mit dem Vierer-Ortsvektor $x^\mu=(t,r,\theta,\phi)$. Des Weiteren nehmen wir eine allgemeine statische und isotrope Metrik an:
\begin{equation} g_{\mu\nu}=\left( \begin{array}{ccc} A(r) & 0 & 0 & 0\\ 0& -B(r)& 0&0 \\ 0& 0& -r^2& 0\\ 0& 0& 0& -r^2 \hbox{sin}^2(\theta)\\ \end{array} \right) \end{equation}
Bei der Definition des sphärischen Koordinatensystems verwenden wir die OGRePy-Variablen $t, \phi$ und $\theta$, definieren die Koordinate $r$ jedoch als positives SymPy-Symbol. Die Funktionen $A(r)$ und $B(r)$ werden als OGRePy-Funktionen definiert und den alten kontravarianten Vierer-Ortsvektor überschreiben wir mit dem neuen $x^\mu=(t,r,\theta,\phi)$.
Koordinatensystem und Metrik¶
from OGRePy.abc import phi, theta
r = gr.sym("r", nonnegative=True)
Spherical = gr.Coordinates(t, r, theta, phi)
A_r = gr.func("A")(r)
B_r = gr.func("B")(r)
g = gr.Metric(
coords = Spherical,
components = gr.diag(A_r, -B_r, -r**2, -r**2 * gr.s.sin(theta)**2),
)
FourPosition = gr.Tensor(
metric = g,
coords = Spherical,
indices = (1,),
components = [t, r, theta, phi],
symbol = "x",
)
FourPosition.show()
$$x{}^{\mu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}t\\r\\\theta\\\phi\end{matrix}\right)$$
g.show()
$$g{}_{\mu}{}_{\nu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}A & 0 & 0 & 0\\0 & - B & 0 & 0\\0 & 0 & - r^{2} & 0\\0 & 0 & 0 & - r^{2} \sin^{2}{\left(\theta \right)}\end{matrix}\right)$$
Durch die obere grafische Ausgabe kann man wieder sehen, dass der definierte Metrische-Tensor kovariante Index-Komponenten hat. Weitere Eigenschaften erhält man wieder mit dem Befehl "g.info()"
g.info()
- Name:
g - Class:
Metric - Symbol: $g{}_{\mu}{}_{\nu}$
- Rank: 2
- Dimensions: 4
- Default Coordinates:
Spherical - Default Indices: (-1, -1)
- Associated Metric For:
FourPosition
Die kontravariante Form der Metrik
$$ g^{\mu\nu}=\left( \begin{array}{ccc} \frac{1}{A(r)} & 0 & 0 & 0\\ 0& -\frac{1}{B(r)}& 0&0 \\ 0& 0& -\frac{1}{r^2}& 0\\ 0& 0& 0& -\frac{1}{r^2 \hbox{sin}^2(\theta)}\\ \end{array} \right)$$
erhält man wieder einfach mit:
g.show(indices=(1,1))
$$g{}^{\mu}{}^{\nu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}\frac{1}{A} & 0 & 0 & 0\\0 & - \frac{1}{B} & 0 & 0\\0 & 0 & - \frac{1}{r^{2}} & 0\\0 & 0 & 0 & - \frac{1}{r^{2} \sin^{2}{\left(\theta \right)}}\end{matrix}\right)$$
und die gemischt kontra-kovariante Form mit:
g.show(indices=(1,-1))
$$g{}^{\mu}{}_{\nu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}1 & 0 & 0 & 0\\0 & 1 & 0 & 0\\0 & 0 & 1 & 0\\0 & 0 & 0 & 1\end{matrix}\right)$$
Dies gilt, da das kontrahierte Tensorprodukt der kovarianten Metrik mit der kontravarianten Metrik die vierdimensionale Einheitsmatrix ergibt:
$$g^{\mu\alpha} \, g_{\alpha\nu} = \eta^{\mu}\,_{\!\!\nu} = \delta^{\mu}\,_{\!\!\nu} = \left( \begin{array}{ccc} 1 & 0 & 0 & 0\\ 0& 1& 0&0 \\ 0& 0& 1& 0\\ 0& 0& 0& 1\\ \end{array} \right)$$
Das Linien- und Volumenelement¶
Das Quadrat des Linienelment $ds^2 = g_{\mu\nu} dx^\mu dx^\nu$ berechnet sich zu
g.line_element()
und das Volumenelement zu
g.volume_element()
Die Partielle Ableitung¶
Die nichtverschwindenden partiellen Ableitungen der Metrik
$$ g_{\mu\nu| \alpha} := \partial_\alpha g_{\mu\nu} = \frac{\partial }{\partial x^\alpha}g_{\mu\nu} $$
berechnen sich zu
from OGRePy.abc import alpha, sigma
(gr.PartialD(alpha) @ g(mu,nu)).list()
$$\begin{align*} \partial{}_{r} g{}_{t}{}_{t} &= \partial_{r} A \\ \partial{}_{r} g{}_{r}{}_{r} &= - \partial_{r} B \\ \partial{}_{r} g{}_{\theta}{}_{\theta} &= - 2 r \\ \partial{}_{r} g{}_{\phi}{}_{\phi} &= - 2 r \sin^{2}{\left(\theta \right)} \\ \partial{}_{\theta} g{}_{\phi}{}_{\phi} &= - 2 r^{2} \sin{\left(\theta \right)} \cos{\left(\theta \right)} \end{align*}$$
und für die Kontraktion erhält man
(gr.PartialD(nu) @ g(mu,nu)).show()
$$\partial{}_{\nu} g{}_{\mu}{}^{\nu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}0\\0\\0\\0\end{matrix}\right)$$
Die Christoffel Symbole¶
Die Christoffel Symbole in kovarianter Form (erster Art) sind wie folgt definiert:
$$ \Gamma_{\mu \nu \sigma} = \frac{1}{2} \left( g_{\nu \sigma| \mu} + g_{\mu \sigma| \nu} - g_{\mu \nu| \sigma} \right)$$
Die nichtverschwindenden Komponenten der Christoffel Symbole berechnet man sich explizite wie folgt
Chistoffel_1 = gr.s.Rational(1, 2) * (gr.PartialD(mu) @ g(nu,sigma) +
gr.PartialD(nu) @ g(mu,sigma) -
gr.PartialD(sigma) @ g(mu,nu))
Chistoffel_1.list()
$$\begin{align*} \frac{1}{2} ((\partial{}_{t} g{}_{t}{}_{r} + \partial{}_{t} g{}_{t}{}_{r} - \partial{}_{r} g{}_{t}{}_{t})) = -\frac{1}{2} ((\partial{}_{t} g{}_{r}{}_{t} + \partial{}_{r} g{}_{t}{}_{t} - \partial{}_{t} g{}_{t}{}_{r})) = -\frac{1}{2} ((\partial{}_{r} g{}_{t}{}_{t} + \partial{}_{t} g{}_{r}{}_{t} - \partial{}_{t} g{}_{r}{}_{t})) &= - \frac{\partial_{r} A}{2} \\ \frac{1}{2} ((\partial{}_{r} g{}_{r}{}_{r} + \partial{}_{r} g{}_{r}{}_{r} - \partial{}_{r} g{}_{r}{}_{r})) &= - \frac{\partial_{r} B}{2} \\ \frac{1}{2} ((\partial{}_{r} g{}_{\theta}{}_{\theta} + \partial{}_{\theta} g{}_{r}{}_{\theta} - \partial{}_{\theta} g{}_{r}{}_{\theta})) = \frac{1}{2} ((\partial{}_{\theta} g{}_{r}{}_{\theta} + \partial{}_{r} g{}_{\theta}{}_{\theta} - \partial{}_{\theta} g{}_{\theta}{}_{r})) = -\frac{1}{2} ((\partial{}_{\theta} g{}_{\theta}{}_{r} + \partial{}_{\theta} g{}_{\theta}{}_{r} - \partial{}_{r} g{}_{\theta}{}_{\theta})) &= - r \\ \frac{1}{2} ((\partial{}_{r} g{}_{\phi}{}_{\phi} + \partial{}_{\phi} g{}_{r}{}_{\phi} - \partial{}_{\phi} g{}_{r}{}_{\phi})) = \frac{1}{2} ((\partial{}_{\phi} g{}_{r}{}_{\phi} + \partial{}_{r} g{}_{\phi}{}_{\phi} - \partial{}_{\phi} g{}_{\phi}{}_{r})) = -\frac{1}{2} ((\partial{}_{\phi} g{}_{\phi}{}_{r} + \partial{}_{\phi} g{}_{\phi}{}_{r} - \partial{}_{r} g{}_{\phi}{}_{\phi})) &= - r \sin^{2}{\left(\theta \right)} \\ \frac{1}{2} ((\partial{}_{\theta} g{}_{\phi}{}_{\phi} + \partial{}_{\phi} g{}_{\theta}{}_{\phi} - \partial{}_{\phi} g{}_{\theta}{}_{\phi})) = \frac{1}{2} ((\partial{}_{\phi} g{}_{\theta}{}_{\phi} + \partial{}_{\theta} g{}_{\phi}{}_{\phi} - \partial{}_{\phi} g{}_{\phi}{}_{\theta})) = -\frac{1}{2} ((\partial{}_{\phi} g{}_{\phi}{}_{\theta} + \partial{}_{\phi} g{}_{\phi}{}_{\theta} - \partial{}_{\theta} g{}_{\phi}{}_{\phi})) &= - \frac{r^{2} \sin{\left(2 \theta \right)}}{2} \end{align*}$$
bzw. einfacher mit dem folgenden Befehl:
g.christoffel().list(indices=(-1,-1,-1))
$$\begin{align*} \Gamma{}_{t}{}_{t}{}_{r} = \Gamma{}_{t}{}_{r}{}_{t} = -\Gamma{}_{r}{}_{t}{}_{t} &= \frac{\partial_{r} A}{2} \\ \Gamma{}_{r}{}_{r}{}_{r} &= - \frac{\partial_{r} B}{2} \\ \Gamma{}_{r}{}_{\theta}{}_{\theta} = -\Gamma{}_{\theta}{}_{r}{}_{\theta} = -\Gamma{}_{\theta}{}_{\theta}{}_{r} &= r \\ \Gamma{}_{r}{}_{\phi}{}_{\phi} = -\Gamma{}_{\phi}{}_{r}{}_{\phi} = -\Gamma{}_{\phi}{}_{\phi}{}_{r} &= r \sin^{2}{\left(\theta \right)} \\ \Gamma{}_{\theta}{}_{\phi}{}_{\phi} = -\Gamma{}_{\phi}{}_{\theta}{}_{\phi} = -\Gamma{}_{\phi}{}_{\phi}{}_{\theta} &= \frac{r^{2} \sin{\left(2 \theta \right)}}{2} \end{align*}$$
Die Christoffel Symbole (zweiter Art) sind wie folgt definiert:
$$ \Gamma^{\sigma}_{\mu \nu} := \Gamma_{\mu \nu}{}^{\sigma} = g^{\sigma \alpha} \Gamma_{\mu \nu \alpha} = \frac{1}{2}g^{\sigma \alpha} \left( g_{\nu \alpha| \mu} + g_{\mu \alpha| \nu} - g_{\mu \nu| \alpha} \right)$$
Die nichtverschwindenden Komponenten der dieser Christoffel Symbole lauten
g.christoffel().list(indices=(-1,-1,1))
$$\begin{align*} \Gamma{}_{t}{}_{t}{}^{r} &= - \frac{\partial_{r} A}{2 B} \\ \Gamma{}_{t}{}_{r}{}^{t} = -\Gamma{}_{r}{}_{t}{}^{t} &= \frac{\partial_{r} A}{2 A} \\ \Gamma{}_{r}{}_{r}{}^{r} &= \frac{\partial_{r} B}{2 B} \\ \Gamma{}_{r}{}_{\theta}{}^{\theta} = \Gamma{}_{r}{}_{\phi}{}^{\phi} = -\Gamma{}_{\theta}{}_{r}{}^{\theta} = -\Gamma{}_{\phi}{}_{r}{}^{\phi} &= - \frac{1}{r} \\ \Gamma{}_{\theta}{}_{\theta}{}^{r} &= \frac{r}{B} \\ \Gamma{}_{\theta}{}_{\phi}{}^{\phi} = -\Gamma{}_{\phi}{}_{\theta}{}^{\phi} &= - \frac{1}{\tan{\left(\theta \right)}} \\ \Gamma{}_{\phi}{}_{\phi}{}^{r} &= \frac{r \sin^{2}{\left(\theta \right)}}{B} \\ \Gamma{}_{\phi}{}_{\phi}{}^{\theta} &= \frac{\sin{\left(2 \theta \right)}}{2} \end{align*}$$
bzw.
Chistoffel_1.list(indices=(-1,-1,1))
$$\begin{align*} \frac{1}{2} ((\partial{}_{t} g{}_{t}{}^{r} + \partial{}_{t} g{}_{t}{}^{r} - \partial{}^{r} g{}_{t}{}_{t})) &= \frac{\partial_{r} A}{2 B} \\ \frac{1}{2} ((\partial{}_{t} g{}_{r}{}^{t} + \partial{}_{r} g{}_{t}{}^{t} - \partial{}^{t} g{}_{t}{}_{r})) = \frac{1}{2} ((\partial{}_{r} g{}_{t}{}^{t} + \partial{}_{t} g{}_{r}{}^{t} - \partial{}^{t} g{}_{r}{}_{t})) &= \frac{\partial_{r} A}{2 A} \\ \frac{1}{2} ((\partial{}_{r} g{}_{r}{}^{r} + \partial{}_{r} g{}_{r}{}^{r} - \partial{}^{r} g{}_{r}{}_{r})) &= \frac{\partial_{r} B}{2 B} \\ \frac{1}{2} ((\partial{}_{r} g{}_{\theta}{}^{\theta} + \partial{}_{\theta} g{}_{r}{}^{\theta} - \partial{}^{\theta} g{}_{r}{}_{\theta})) = \frac{1}{2} ((\partial{}_{r} g{}_{\phi}{}^{\phi} + \partial{}_{\phi} g{}_{r}{}^{\phi} - \partial{}^{\phi} g{}_{r}{}_{\phi})) = \frac{1}{2} ((\partial{}_{\theta} g{}_{r}{}^{\theta} + \partial{}_{r} g{}_{\theta}{}^{\theta} - \partial{}^{\theta} g{}_{\theta}{}_{r})) = \frac{1}{2} ((\partial{}_{\phi} g{}_{r}{}^{\phi} + \partial{}_{r} g{}_{\phi}{}^{\phi} - \partial{}^{\phi} g{}_{\phi}{}_{r})) &= \frac{1}{r} \\ \frac{1}{2} ((\partial{}_{\theta} g{}_{\theta}{}^{r} + \partial{}_{\theta} g{}_{\theta}{}^{r} - \partial{}^{r} g{}_{\theta}{}_{\theta})) &= - \frac{r}{B} \\ \frac{1}{2} ((\partial{}_{\theta} g{}_{\phi}{}^{\phi} + \partial{}_{\phi} g{}_{\theta}{}^{\phi} - \partial{}^{\phi} g{}_{\theta}{}_{\phi})) = \frac{1}{2} ((\partial{}_{\phi} g{}_{\theta}{}^{\phi} + \partial{}_{\theta} g{}_{\phi}{}^{\phi} - \partial{}^{\phi} g{}_{\phi}{}_{\theta})) &= \frac{1}{\tan{\left(\theta \right)}} \\ \frac{1}{2} ((\partial{}_{\phi} g{}_{\phi}{}^{r} + \partial{}_{\phi} g{}_{\phi}{}^{r} - \partial{}^{r} g{}_{\phi}{}_{\phi})) &= - \frac{r \sin^{2}{\left(\theta \right)}}{B} \\ \frac{1}{2} ((\partial{}_{\phi} g{}_{\phi}{}^{\theta} + \partial{}_{\phi} g{}_{\phi}{}^{\theta} - \partial{}^{\theta} g{}_{\phi}{}_{\phi})) &= - \frac{\sin{\left(2 \theta \right)}}{2} \end{align*}$$
Die kovariante Ableitung¶
Die kovariante Ableitung eines kontravarianten Tensors erster Stufe (z.B des Vierer-Ortsvektors $x^\mu$) ist wie folgt definiert
$$ x^\mu{}_{|| \nu} := \nabla\!_\nu x^\mu = \partial_\nu x^\mu + \Gamma^\mu_{\nu \rho} x^\rho $$
bzw. eines kovarianten Tensors erster Stufe (z.B. $x_\mu$)
$$ x_\mu{}_{|| \nu} := \nabla\!_\nu x_\mu = \partial_\nu x_\mu - \Gamma^\rho_{\mu \nu} x_\rho $$
Die kovariante Ableitung berechnet sich mit dem folgenden Befehl.
gr.CovariantD(nu) @ FourPosition(mu)
$$\nabla{}_{\nu} x{}^{\mu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}1 + \frac{r \partial_{r} A}{2 A} & \frac{t \partial_{r} A}{2 B} & 0 & 0\\\frac{t \partial_{r} A}{2 A} & 1 + \frac{r \partial_{r} B}{2 B} & \frac{\theta}{r} & \frac{\phi}{r}\\0 & - \frac{\theta r}{B} & 2 & \frac{\phi}{\tan{\left(\theta \right)}}\\0 & - \frac{\phi r \sin^{2}{\left(\theta \right)}}{B} & - \frac{\phi \sin{\left(2 \theta \right)}}{2} & \frac{\theta}{\tan{\left(\theta \right)}} + 2\end{matrix}\right)$$
Dies wollen wir anhand einer expliziten Berechnung überprüfen:
from OGRePy.abc import rho
gr.PartialD(nu) @ FourPosition(mu) + g.christoffel(mu,rho,nu) @ FourPosition(rho)
$$\partial{}_{\nu} x{}^{\mu} + \Gamma{}^{\mu}{}_{\rho}{}_{\nu} x{}^{\rho}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}1 + \frac{r \partial_{r} A}{2 A} & \frac{t \partial_{r} A}{2 B} & 0 & 0\\\frac{t \partial_{r} A}{2 A} & 1 + \frac{r \partial_{r} B}{2 B} & \frac{\theta}{r} & \frac{\phi}{r}\\0 & - \frac{\theta r}{B} & 2 & \frac{\phi}{\tan{\left(\theta \right)}}\\0 & - \frac{\phi r \sin^{2}{\left(\theta \right)}}{B} & - \frac{\phi \sin{\left(2 \theta \right)}}{2} & \frac{\theta}{\tan{\left(\theta \right)}} + 2\end{matrix}\right)$$
bzw. die kovariante Ableitung eines kontravarianten Tensors erster Stufe (z.B. $x_\mu$):
(gr.CovariantD(nu) @ FourPosition(mu)).show(indices=(-1,-1))
$$\nabla{}_{\nu} x{}_{\mu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}A + \frac{r \partial_{r} A}{2} & - \frac{t \partial_{r} A}{2} & 0 & 0\\\frac{t \partial_{r} A}{2} & - B - \frac{r \partial_{r} B}{2} & - \theta r & - \phi r \sin^{2}{\left(\theta \right)}\\0 & \theta r & - 2 r^{2} & - \frac{\phi r^{2} \sin{\left(2 \theta \right)}}{2}\\0 & \phi r \sin^{2}{\left(\theta \right)} & \frac{\phi r^{2} \sin{\left(2 \theta \right)}}{2} & r^{2} \left(- \frac{\theta \sin{\left(2 \theta \right)}}{2} + \cos{\left(2 \theta \right)} - 1\right)\end{matrix}\right)$$
Dies wollen wir auch anhand einer expliziten Berechnung überprüfen:
(gr.PartialD(nu) @ FourPosition(mu) + g.christoffel(mu,rho,nu) @ FourPosition(rho)).show(indices=(-1,-1))
$$\partial{}_{\nu} x{}_{\mu} + \Gamma{}_{\mu}{}_{\rho}{}_{\nu} x{}^{\rho}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}A + \frac{r \partial_{r} A}{2} & - \frac{t \partial_{r} A}{2} & 0 & 0\\\frac{t \partial_{r} A}{2} & - B - \frac{r \partial_{r} B}{2} & - \theta r & - \phi r \sin^{2}{\left(\theta \right)}\\0 & \theta r & - 2 r^{2} & - \frac{\phi r^{2} \sin{\left(2 \theta \right)}}{2}\\0 & \phi r \sin^{2}{\left(\theta \right)} & \frac{\phi r^{2} \sin{\left(2 \theta \right)}}{2} & r^{2} \left(- \frac{\theta \sin{\left(2 \theta \right)}}{2} + \cos{\left(2 \theta \right)} - 1\right)\end{matrix}\right)$$
Die Kontraktion ergibt $x^\mu{}_{|| \mu} = \nabla\!_\mu x^\mu$
gr.CovariantD(mu) @ FourPosition(mu)
$$\nabla{}_{\mu} x{}^{\mu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \frac{\theta}{\tan{\left(\theta \right)}} + 6 + \frac{r \partial_{r} B}{2 B} + \frac{r \partial_{r} A}{2 A}$$
Die kovariante Ableitung eines Tensors zweiter Stufe (z.B der Metrik $g_{\mu \nu}$) ist wie folgt definiert
$$ g_{\mu \nu || \alpha} := \nabla\!_\alpha g_{\mu \nu} = \partial_\alpha g_{\mu \nu} - \Gamma^\rho_{\mu \alpha} g_{\rho \nu} - \Gamma^\rho_{\nu \alpha} g_{\mu \rho} \quad . $$
und berechnet sich mit dem folgenden Befehl.
gr.CovariantD(alpha) @ g(mu,nu)
$$\nabla{}_{\alpha} g{}_{\mu}{}_{\nu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}\left(\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right) & \left(\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right) & \left(\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right) & \left(\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right)\end{matrix}\right)$$
Dies wollen wir auch anhand einer expliziten Berechnung überprüfen:
(gr.PartialD(alpha) @ g(mu,nu)).list()
$$\begin{align*} \partial{}_{r} g{}_{t}{}_{t} &= \partial_{r} A \\ \partial{}_{r} g{}_{r}{}_{r} &= - \partial_{r} B \\ \partial{}_{r} g{}_{\theta}{}_{\theta} &= - 2 r \\ \partial{}_{r} g{}_{\phi}{}_{\phi} &= - 2 r \sin^{2}{\left(\theta \right)} \\ \partial{}_{\theta} g{}_{\phi}{}_{\phi} &= - 2 r^{2} \sin{\left(\theta \right)} \cos{\left(\theta \right)} \end{align*}$$
(-g.christoffel(mu,alpha,rho) @ g(rho,nu) - g.christoffel(nu,alpha,rho) @ g(mu,rho)).list(indices=(-1,-1,-1))
$$\begin{align*} - \Gamma{}_{t}{}_{r}{}_{\mu} g{}^{\mu}{}_{t} - \Gamma{}_{t}{}_{r}{}_{\mu} g{}_{t}{}^{\mu} &= - \partial_{r} A \\ - \Gamma{}_{r}{}_{r}{}_{\mu} g{}^{\mu}{}_{r} - \Gamma{}_{r}{}_{r}{}_{\mu} g{}_{r}{}^{\mu} &= \partial_{r} B \\ - \Gamma{}_{\theta}{}_{r}{}_{\mu} g{}^{\mu}{}_{\theta} - \Gamma{}_{\theta}{}_{r}{}_{\mu} g{}_{\theta}{}^{\mu} &= 2 r \\ - \Gamma{}_{\phi}{}_{r}{}_{\mu} g{}^{\mu}{}_{\phi} - \Gamma{}_{\phi}{}_{r}{}_{\mu} g{}_{\phi}{}^{\mu} &= 2 r \sin^{2}{\left(\theta \right)} \\ - \Gamma{}_{\phi}{}_{\theta}{}_{\mu} g{}^{\mu}{}_{\phi} - \Gamma{}_{\phi}{}_{\theta}{}_{\mu} g{}_{\phi}{}^{\mu} &= r^{2} \sin{\left(2 \theta \right)} \end{align*}$$
und somit
gr.PartialD(alpha) @ g(mu,nu) - g.christoffel(mu,alpha,rho) @ g(rho,nu) - g.christoffel(nu,alpha,rho) @ g(mu,rho)
$$\partial{}_{\alpha} g{}_{\mu}{}_{\nu} - \Gamma{}_{\mu}{}_{\alpha}{}_{\rho} g{}^{\rho}{}_{\nu} - \Gamma{}_{\nu}{}_{\alpha}{}_{\rho} g{}_{\mu}{}^{\rho}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}\left(\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right) & \left(\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right) & \left(\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right) & \left(\begin{matrix}0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\\0 & 0 & 0 & 0\end{matrix}\right)\end{matrix}\right)$$
Der Riemann und Ricci Tensor¶
Der Riemann Tensor ist wie folgt definiert:
$$ R^{\mu}{}\!_{\nu \rho \sigma} = \frac{\partial \Gamma^{\mu}_{\nu \sigma}}{\partial x^{\rho}} - \frac{\partial \Gamma^{\mu}_{\nu \rho}}{\partial x^{\sigma}} + \Gamma^{\alpha}_{\nu \sigma}\Gamma^{\mu}_{\rho \alpha} - \Gamma^{\alpha}_{\nu \rho}\Gamma^{\mu}_{\sigma \alpha} $$
Die nichtverschwindenden Komponenten des Riemann Tensors berechnen sich einfach mit dem folgenden Befehl, wobei der Zusatz "exact=True" alle gleiche Komponenten zusammen darstellt:
g.riemann().list(exact=True)
$$\begin{align*} R{}^{t}{}_{r}{}_{t}{}_{r} = -R{}^{t}{}_{r}{}_{r}{}_{t} &= - \frac{\partial_{r}^{2} A}{2 A} + \frac{\partial_{r} A \partial_{r} B}{4 A B} + \frac{\left(\partial_{r} A\right)^{2}}{4 A^{2}} \\ R{}^{t}{}_{\theta}{}_{t}{}_{\theta} = -R{}^{t}{}_{\theta}{}_{\theta}{}_{t} &= - \frac{r \partial_{r} A}{2 A B} \\ R{}^{t}{}_{\phi}{}_{t}{}_{\phi} = -R{}^{t}{}_{\phi}{}_{\phi}{}_{t} &= - \frac{r \sin^{2}{\left(\theta \right)} \partial_{r} A}{2 A B} \\ R{}^{r}{}_{t}{}_{t}{}_{r} = -R{}^{r}{}_{t}{}_{r}{}_{t} &= - \frac{\partial_{r}^{2} A}{2 B} + \frac{\partial_{r} A \partial_{r} B}{4 B^{2}} + \frac{\left(\partial_{r} A\right)^{2}}{4 A B} \\ R{}^{r}{}_{\theta}{}_{r}{}_{\theta} = -R{}^{r}{}_{\theta}{}_{\theta}{}_{r} &= \frac{r \partial_{r} B}{2 B^{2}} \\ R{}^{r}{}_{\phi}{}_{r}{}_{\phi} = -R{}^{r}{}_{\phi}{}_{\phi}{}_{r} &= \frac{r \sin^{2}{\left(\theta \right)} \partial_{r} B}{2 B^{2}} \\ R{}^{r}{}_{\phi}{}_{\phi}{}_{\theta} &= \frac{r \left(\sin{\left(2 \theta \right)} \tan{\left(\theta \right)} + \cos{\left(2 \theta \right)} - 1\right)}{2 B \tan{\left(\theta \right)}} \\ R{}^{\theta}{}_{t}{}_{t}{}_{\theta} = -R{}^{\theta}{}_{t}{}_{\theta}{}_{t} = R{}^{\phi}{}_{t}{}_{t}{}_{\phi} = -R{}^{\phi}{}_{t}{}_{\phi}{}_{t} &= - \frac{\partial_{r} A}{2 B r} \\ R{}^{\theta}{}_{r}{}_{r}{}_{\theta} = -R{}^{\theta}{}_{r}{}_{\theta}{}_{r} = R{}^{\phi}{}_{r}{}_{r}{}_{\phi} = -R{}^{\phi}{}_{r}{}_{\phi}{}_{r} &= - \frac{\partial_{r} B}{2 B r} \\ R{}^{\theta}{}_{\phi}{}_{\theta}{}_{\phi} = -R{}^{\theta}{}_{\phi}{}_{\phi}{}_{\theta} &= \frac{\left(B - 1\right) \sin^{2}{\left(\theta \right)}}{B} \\ R{}^{\phi}{}_{\theta}{}_{\theta}{}_{\phi} = -R{}^{\phi}{}_{\theta}{}_{\phi}{}_{\theta} &= -1 + \frac{1}{B} \end{align*}$$
Der Ricci Tensor berechnet sich wie folgt mittels einer Kontraktion zweier Indices aus dem Riemann Tensor:
$$ R_{\mu \nu} = R^{\sigma}{}\!_{\mu \sigma \nu} = \frac{\partial \Gamma^{\sigma}_{\mu \nu}}{\partial x^{\sigma}} - \frac{\partial \Gamma^{\sigma}_{\mu \sigma}}{\partial x^{\nu}} + \Gamma^{\rho}_{\mu \nu}\Gamma^{\sigma}_{\rho \sigma} - \Gamma^{\sigma}_{\mu \rho}\Gamma^{\rho}_{\nu \sigma} $$
g.riemann(sigma,mu,sigma,nu).list()
$$\begin{align*} R{}_{\mu}{}_{t}{}^{\mu}{}_{t} &= \frac{\partial_{r}^{2} A}{2 B} + \frac{\partial_{r} A}{B r} - \frac{\partial_{r} A \partial_{r} B}{4 B^{2}} - \frac{\left(\partial_{r} A\right)^{2}}{4 A B} \\ R{}_{\mu}{}_{r}{}^{\mu}{}_{r} &= \frac{\partial_{r} B}{B r} - \frac{\partial_{r}^{2} A}{2 A} + \frac{\partial_{r} A \partial_{r} B}{4 A B} + \frac{\left(\partial_{r} A\right)^{2}}{4 A^{2}} \\ R{}_{\mu}{}_{\theta}{}^{\mu}{}_{\theta} &= 1 - \frac{1}{B} + \frac{r \partial_{r} B}{2 B^{2}} - \frac{r \partial_{r} A}{2 A B} \\ R{}_{\mu}{}_{\phi}{}^{\mu}{}_{\phi} &= \frac{\sin^{2}{\left(\theta \right)} \left(2 A B \left(B - 1\right) + A r \partial_{r} B - B r \partial_{r} A\right)}{2 A B^{2}} \end{align*}$$
bzw. einfacher mit dem folgenden Befehl:
g.ricci_tensor()
$$R{}_{\mu}{}_{\nu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}\frac{\partial_{r}^{2} A}{2 B} + \frac{\partial_{r} A}{B r} - \frac{\partial_{r} A \partial_{r} B}{4 B^{2}} - \frac{\left(\partial_{r} A\right)^{2}}{4 A B} & 0 & 0 & 0\\0 & \frac{\partial_{r} B}{B r} - \frac{\partial_{r}^{2} A}{2 A} + \frac{\partial_{r} A \partial_{r} B}{4 A B} + \frac{\left(\partial_{r} A\right)^{2}}{4 A^{2}} & 0 & 0\\0 & 0 & 1 - \frac{1}{B} + \frac{r \partial_{r} B}{2 B^{2}} - \frac{r \partial_{r} A}{2 A B} & 0\\0 & 0 & 0 & \frac{\sin^{2}{\left(\theta \right)} \left(2 A B \left(B - 1\right) + A r \partial_{r} B - B r \partial_{r} A\right)}{2 A B^{2}}\end{matrix}\right)$$
g.ricci_tensor().list()
$$\begin{align*} R{}_{t}{}_{t} &= \frac{\partial_{r}^{2} A}{2 B} + \frac{\partial_{r} A}{B r} - \frac{\partial_{r} A \partial_{r} B}{4 B^{2}} - \frac{\left(\partial_{r} A\right)^{2}}{4 A B} \\ R{}_{r}{}_{r} &= \frac{\partial_{r} B}{B r} - \frac{\partial_{r}^{2} A}{2 A} + \frac{\partial_{r} A \partial_{r} B}{4 A B} + \frac{\left(\partial_{r} A\right)^{2}}{4 A^{2}} \\ R{}_{\theta}{}_{\theta} &= 1 - \frac{1}{B} + \frac{r \partial_{r} B}{2 B^{2}} - \frac{r \partial_{r} A}{2 A B} \\ R{}_{\phi}{}_{\phi} &= \frac{\sin^{2}{\left(\theta \right)} \left(2 A B \left(B - 1\right) + A r \partial_{r} B - B r \partial_{r} A\right)}{2 A B^{2}} \end{align*}$$
Der Ricci Skalar ergibt sich aus der Kontraktion des Ricci Tensors: $R = R^{\mu}{}_{\!\mu} = g^{\mu \nu}R_{\nu \mu}$
g.ricci_tensor(mu,mu)
$$R{}_{\mu}{}^{\mu}\Bigg|_{\left(t, r, \theta, \phi\right)} = - \frac{2}{r^{2}} + \frac{2}{B r^{2}} - \frac{2 \partial_{r} B}{B^{2} r} + \frac{\partial_{r}^{2} A}{A B} + \frac{2 \partial_{r} A}{A B r} - \frac{\partial_{r} A \partial_{r} B}{2 A B^{2}} - \frac{\left(\partial_{r} A\right)^{2}}{2 A^{2} B}$$
bzw.
g.ricci_tensor(nu,mu) @ g(mu,nu)
$$R{}_{\nu}{}_{\mu} g{}^{\mu}{}^{\nu}\Bigg|_{\left(t, r, \theta, \phi\right)} = - \frac{2}{r^{2}} + \frac{2}{B r^{2}} - \frac{2 \partial_{r} B}{B^{2} r} + \frac{\partial_{r}^{2} A}{A B} + \frac{2 \partial_{r} A}{A B r} - \frac{\partial_{r} A \partial_{r} B}{2 A B^{2}} - \frac{\left(\partial_{r} A\right)^{2}}{2 A^{2} B}$$
bzw. einfach mit dem folgenden Befehl.
g.ricci_scalar()
$$R\Bigg|_{\left(t, r, \theta, \phi\right)} = - \frac{2}{r^{2}} + \frac{2}{B r^{2}} - \frac{2 \partial_{r} B}{B^{2} r} + \frac{\partial_{r}^{2} A}{A B} + \frac{2 \partial_{r} A}{A B r} - \frac{\partial_{r} A \partial_{r} B}{2 A B^{2}} - \frac{\left(\partial_{r} A\right)^{2}}{2 A^{2} B}$$
Der Einstein Tensor¶
Der Einstein Tensor ist wie folgt definiert:
$$ G_{\mu \nu} = R_{\mu \nu} - \frac{1}{2}g_{\mu \nu}R $$
Die nichtverschwindenden Komponenten des Einstein Tensors berechnen sich einfach mit dem folgenden Befehl.
g.einstein()
$$G{}_{\mu}{}_{\nu}\Bigg|_{\left(t, r, \theta, \phi\right)} = \left(\begin{matrix}\frac{A \left(B^{2} - B + r \partial_{r} B\right)}{B^{2} r^{2}} & 0 & 0 & 0\\0 & - \frac{B}{r^{2}} + \frac{1}{r^{2}} + \frac{\partial_{r} A}{A r} & 0 & 0\\0 & 0 & \frac{r \left(- 2 A^{2} \partial_{r} B + 2 A B r \partial_{r}^{2} A + 2 A B \partial_{r} A - A r \partial_{r} A \partial_{r} B - B r \left(\partial_{r} A\right)^{2}\right)}{4 A^{2} B^{2}} & 0\\0 & 0 & 0 & \frac{r \sin^{2}{\left(\theta \right)} \left(- 2 A^{2} \partial_{r} B + 2 A B r \partial_{r}^{2} A + 2 A B \partial_{r} A - A r \partial_{r} A \partial_{r} B - B r \left(\partial_{r} A\right)^{2}\right)}{4 A^{2} B^{2}}\end{matrix}\right)$$
g.einstein().list()
$$\begin{align*} G{}_{t}{}_{t} &= \frac{A \left(B^{2} - B + r \partial_{r} B\right)}{B^{2} r^{2}} \\ G{}_{r}{}_{r} &= - \frac{B}{r^{2}} + \frac{1}{r^{2}} + \frac{\partial_{r} A}{A r} \\ G{}_{\theta}{}_{\theta} &= \frac{r \left(- 2 A^{2} \partial_{r} B + 2 A B r \partial_{r}^{2} A + 2 A B \partial_{r} A - A r \partial_{r} A \partial_{r} B - B r \left(\partial_{r} A\right)^{2}\right)}{4 A^{2} B^{2}} \\ G{}_{\phi}{}_{\phi} &= \frac{r \sin^{2}{\left(\theta \right)} \left(- 2 A^{2} \partial_{r} B + 2 A B r \partial_{r}^{2} A + 2 A B \partial_{r} A - A r \partial_{r} A \partial_{r} B - B r \left(\partial_{r} A\right)^{2}\right)}{4 A^{2} B^{2}} \end{align*}$$
Der Einsteintensor $G_{\mu \nu}$ ist der entscheidende Tensor der allgemeinen Relativitätstheorie. Die Einsteingleichung (in natürlichen Einheiten c=G=1) lautet
$$ R_{\mu\nu} - \frac{1}{2} g_{\mu\nu} R ~=~ -8 \pi \, T_{\mu\nu} \quad, $$ wobei $T_{\mu\nu}$ der Energie-Impuls-Tensor der Materie ist. A. Einstein stellte im Jahre 1915 seine revolutionäre allgemeine Relativitätstheorie der wissenschaftlichen Öffentlichkeit vor (siehe Einstein, A. 1915, Preuss. Akad.Wiss. Berlin, Sitzungsber., 778-786. und Einstein, A. 1915, Preuss. Akad.Wiss. Berlin, Sitzungsber., 844-847.). Seine Feldgleichungen leitete er mittels eines allgemeinen Kovarianzprinzips her und über seine neue Theorie schrieb er selbst "Dem Zauber der Theorie wird sich kaum jemand entziehen können, der sie wirklich erfasst hat;...".
Die Schönheit der Einstein Gleichung liegt neben ihrem zugrunde liegenden Kovarianzprinzip in der Einfachheit ihrer fundamentalen Aussage. Nach Einstein verbiegt jede Energieansammlung (Energie-Impuls-Tensor, rechte Seite der Gleichung) die Struktur der Raumzeit (Einstein Tensor, linke Seite der Gleichung) und diese gekrümmte Raumzeit ist der ursächliche Grund der Gravitation. Nach Einstein fällt der Apfel vom Baum zu Boden, da der große Energiegehalt der Erde die raumzeitliche Struktur so stark verbiegt, dass der Apfel sich in dieser gekrümmten Raumzeit nach geodätischen Gesetzen zu Boden bewegen muss.