The Alcubierre Metric
Interstellar travel is slow, because the distances between the stars are so long. Even our nearest star, Proxima Centauri, is over 4 light-years away - meaning that light, the fastest thing in the universe, would take more than 4 years to travel there. Our fastest spacecraft today would take hundreds of thousands of years to arrive at Proxima Centauri.
But what if we could take a ride on spacetime itself? We know from cosmological research that spacetime isn’t itself subject to the cosmic speed limit, : in fact, the most distant galaxies are receding from us faster than the speed of light. In theory, a spacetime geometry (albeit one unlike anything we see naturally in the universe) could allow for the possibility of faster-than-light interstellar travel. One such metric is the Alcubierre metric. By causing the expansion of spacetime in front of, and the contraction of spacetime behind, an isolated “shell region” of spacetime, the metric allows the “shell region” to move at an arbritrary speed. We will explore the mathematics of the Alcubierre metric in this chapter: both as a way to better understand general relativity, and to answer the question: is it possible to build a warp drive in reality?
Derivation of the Alcubierre Metric¶
It is important to note here that this derivation is not a “derivation” in the strictest sense. This is because the Alcubierre Metric is more so a constructed rather than derived metric found by solving the Einstein Field Equations for a specific stress-energy tensor.
Alcubierre constructed his metric from the general form of all metrics in the ADM formalism:
Then, by choosing , , where is the ship speed, , and setting to the Euclidean metric tensor , we arrive at:
Where is a function of the spacecraft’s position over time, and is a “top hat” shaping function to modify the metric such that it would vanish where , and “push” the spacecraft forward:
Calculations using the Alcubierre metric¶
We start with the general form of the Alcubierre metric, as it is typically presented in papers:
If we expand out the second term, we have:
We can rearrange to find:
Now, we can factor the first term to get:
But how do we write this in matrix form? Remember that the line element is given by:
Expanding the 16 terms of the summation for a 4D spacetime metric, we have:
We can group the terms that have products of the same differentials together, using :
As the metric is symmetric, , and naturally , we can say that , so our sum simplifies to:
Finally, as the Alcubierre metric has no other terms other than the ones shown explictly in the sum, we can set all other terms in the sum to zero, so:
Note how this perfectly corresponds term by term with:
So from there, we can determine that:
Which results in the following matrix form of the metric:
From there, we can do our necessary calculations.
York Time and Energy Density¶
Here, we’ll derive the the spacetime expansion/contraction and energy density associated with the (original) Alcubierre metric. The magnitude of the expansion and contraction of space resultant from the metric is called the York Time. We can derive the York Time from the extrinsic curvature tensor, which is given by:
The York Time is the trace (another word for contraction contraction) of the extrinsic curvature tensor is given by:
For the Alcubierre metric, this would be:
The above expression for the York Time gives the magnitude of the spacetime expansion and contraction, and we will refer to it with from this point on:
Below, a plot of the York time with , and a 2-meter radius warp shell is shown:
import numpy as np
import matplotlib.pyplot as pltdef f_rs(r_s, sigma=8, R=2):
return (np.tanh(sigma * (r_s + R)) - np.tanh(sigma * (r_s - R)))/(2 * np.tanh(sigma * R))
def df_rs(r_s, sigma=8, R=2):
return (sigma * (np.tanh(sigma * (R - r_s)) ** 2 - np.tanh(sigma * (R + r_s)) ** 2)) / (2 * np.tanh(sigma * R))
def d_rs(x, rho, x_s=2.5):
# rho is y and z "squashed together"
return ((x - x_s)**2 + rho**2)**(1/2)
def theta(x, rho, x_s=2.5, v_s=1, sigma=8, R=2):
drs = d_rs(x, rho, x_s)
dfrs = df_rs(drs, sigma, R)
return v_s * ((x - x_s) / drs) * dfrs
def alcubierre_plt(width, height, samples=160):
x = np.linspace(1.0, 8.0, num=samples)
p = np.linspace(-4.0, 4.0, num=samples)
# Generate coordinate matrices from coordinate vectors.
X, P = np.meshgrid(x, p)
# Get york time
Z = theta(X, P, x_s = 5)
# Create the Figure.
fig = plt.figure(figsize=(width, height))
ax = plt.axes(projection='3d')
# Set the angle of the camera
ax.view_init(25, -45)
# Add latex math labels.
ax.set_xlabel(r'$x$')
ax.set_ylabel(r'$\rho$')
ax.set_zlabel(r'$\theta$')
# Set the axis limits
ax.set_xlim(1.0, 8.0)
ax.set_ylim(-4, 4)
ax.set_zlim(-4.2, 4.2)
# Plot the Surface.
ax.plot_wireframe(X, P, Z, rstride=2, cstride=2, linewidth=0.5, antialiased=True, color='gray')
plt.show()alcubierre_plt(12, 6)Here, we can see that the metric induces a contraction of spacetime in front and an expansion of spacetime behind the spacecraft.
Now, we can calculate the energy density. Returning to the metric, we know that we can calculate the stress-energy tensor from the metric. Taking the first component of the stress-energy tensor - that is, - yields the energy density:
Doing the tedious calculations of the metric to find the Einstein tensor, from which we can find the stress-energy tensor, will result in:
The energy density distribution is orthogonal to the direction of the spacecraft’s movement, as shown in the plot below:
def energy_density(x, rho, x_s=2.5, v_s=1, sigma=8, R=1):
r_s = ((x - x_s)**2 + rho**2)**(1/2)
drs = d_rs(x, rho, x_s)
dfrs = df_rs(drs, sigma, R)
return (-1/(8 * np.pi)) * ((v_s ** 2 * rho ** 2)/(4 * r_s ** 2)) * ((dfrs / drs) ** 2)
def energy_density_plt(width, height, samples=160):
x = np.linspace(1.0, 8.0, num=samples)
p = np.linspace(-4.0, 4.0, num=samples)
# Generate coordinate matrices from coordinate vectors.
X, P = np.meshgrid(x, p)
# Get york time
Z = energy_density(X, P, x_s = 5)
# Create the Figure.
fig = plt.figure(figsize=(width, height))
ax = plt.axes(projection='3d')
# Set the angle of the camera
ax.view_init(25, -45)
# Add latex math labels.
ax.set_xlabel(r'$x$')
ax.set_ylabel(r'$\rho$')
ax.set_zlabel(r'$T_{00}$')
# Set the axis limits
ax.set_xlim(1.0, 8.0)
ax.set_ylim(-4, 4)
ax.set_zlim(-4, 4)
# Plot the Surface.
ax.plot_surface(X, P, Z, alpha=1, cstride=2, rstride=2, linewidth=0.1, cmap=plt.cm.coolwarm)
plt.show()energy_density_plt(12, 6, samples=320)The energy density graph, unfortunately, disguises perhaps the most important issue with the Alcubierre metric: energy requirements. I will spare a full calculation of the energy requirements, but past research has shown that a 100-meter radius warp shell would require a total negative energy of:
For perspective, let’s consider an idealized version of the Casimir effect of quantum mechanics, which has been shown to produce negative energy densities in an experimental setting.
Given that is the distance between the plates, we may calculate the force caused by the Casimir effect with:
While the Casimir effect is measured in , this is equivalent to , so the negative energy density of two plates separated by a distance of 1 micrometer would be approximately equal to:
Thus, a 60+ order-of-magnitude reduction is necessary to allow a functioning Alcubierre warp shell to be built, even assuming a large number of Casimir cavities arrayed together on the spacecraft.