Visualizing the beauty in physics and mathematics
🎯 Visualization of space-time curvature
🧠 Original idea and code by M. Ryston (Department of Physics Education)
📌 Described in Interactive animations as a tool in teaching general relativity […]
📌 See also Spacetime Embedding Diagrams for Black Holes
👉 The closer to the sun, the greater the difference between
red and orange!
The Schwarzschild metric describes a gravitational field of a non-rotating spherical mass (and without electric charge), see Wikipedia:
\[\begin{equation} ds^2=cd\tau^2=\left(1-\dfrac{r_s}{r}\right)c^2dt^2-\left(1-\dfrac{r_s}{r}\right)^{-1}dr^2-r^2d\Omega^2 \end{equation}\]where
\[\begin{equation} d\Omega^2=\left(d\theta^2 + \sin^2\theta d\phi^2\right) \text{, } r_s=\dfrac{2GM}{c^2} \end{equation}\]and $G$ is Newton’s gravitational constant, $c$ the speed of light and $M$ is the mass of the non-rotating spherical object.
When we assume the time to be constant ($dt=0$), we get:
\[\begin{equation} ds^2 = \dfrac{dr^2}{1 - \dfrac{2GM}{c^2r}} +r^2d\phi^2 \end{equation}\]Now, according to Ryston's article:
In order to visualize the curvature in the 𝑟 direction, we embed this surface into the three-dimensional Cartesian space (where 𝑟 and 𝜑 are identical to polar coordinates and the third, vertical Cartesian coordinate 𝑧 is used to visualize the actual curvature – see figure 1 below). As a result, we get an equation for the 𝑧 coordinate as a function of 𝑟: \(z(r)=\sqrt{\dfrac{8GMr}{c^2} - \dfrac{16M^2g^2}{c^4}}\) Of course, this equation 𝑟 and 𝑧 are in meters, which is not very convenient for visualizing large regions of space. For this reason, geometricized units where 𝑐 = 𝐺 = 1 are often used. Then we get the simpler form: \(z(r) = \sqrt{8Mr - 16M^2}\)
This is the quintessential formula that is used in this visualization:
class SchwarzschildSurfaceDefinition extends SurfaceDefinition {
static zAsFunctionOf = (r, M) => Math.sqrt(Math.max(0, 8 * M * r - 16 * M * M));
// ...
sample(u, v, target) {
const eps = 0.01;
const r = (this.rMin + eps) + u * (this.rMax - (this.rMin + eps));
const phi = v * 2 * Math.PI;
target.set(
r * Math.cos(phi),
SchwarzschildSurfaceDefinition.zAsFunctionOf(r, this.M),
r * Math.sin(phi)
);
}
}
A real circular orbit implies:
So:
We only need one equation: radiale acceleration = 0
The following equation is used:
\[\begin{equation} \ddot r = -\frac{M}{r^3}(r-2M) {\dot t}^2 + \frac{M}{r(r-2M)} {\dot r}^2 + (r-2M) {\dot \phi}^2 \end{equation}\]For a circular orbit we have $\dot r = 0$, so all terms with $\dot r$ vanish:
\[\begin{equation} 0 = -\frac{M}{r^3}(r-2M) {\dot t}^2 + (r-2M) {\dot \phi}^2 \end{equation}\]Factor $(r-2M) \neq 0$:
\[\begin{equation} 0 = -\frac{M}{r^3} {\dot t}^2 + {\dot \phi}^2 \Rightarrow \frac{M}{r^3} {\dot t}^2 = {\dot \phi}^2 \Rightarrow \boxed{ \dot\phi = \frac{\dot t}{r^{3/2}} \sqrt{M} } \end{equation}\]In order to obtain $\dot t$, we note that in Schwarzschild we have the normalization:
\[\begin{equation} -1 = -(1 - 2M/r) {\dot t}^2 + r^2 {\dot \phi}^2 \end{equation}\]Substitution of $\dot \phi$ gives us:
\[\begin{equation} -1 = -(1 - 2M/r) {\dot t}^2 + r^2 \frac{M}{r^3} {\dot t}^2 = -(1 - 2M/r) {\dot t}^2 + \frac{M}{r} {\dot t}^2 \end{equation}\]Pulling ${\dot t}^2$ out of the brackets we get:
\[\begin{equation} -1 = -{\dot t}^2 (1 - \frac{2M}{r} - \frac{M}{r} ) = -{\dot t}^2 (1 - \frac{3M}{r} ) \end{equation}\]The solution for $\dot t$ is therefore:
\[\begin{equation} \boxed{ \dot t = \frac{1}{\sqrt{1 - 3M/r}} } \end{equation}\]As a consequence, for $\dot \phi$ we obtain:
\[\begin{equation} \boxed{ \dot \phi = \frac{\sqrt{M}}{r^{3/2} \sqrt{1 - 3M/r}} } \end{equation}\]A stable circular orbit only exists if $r > 3M$!
For:
const tDot = 1 / Math.sqrt(1 - 3 * sun.mass / r);
const rDot = 0;
const phiDot = Math.sqrt(sun.mass) /
(r ** 1.5 * Math.sqrt(1 - 3 * sun.mass / r));