in a realistic dark-energy dominated model, photons can't circumnavigate the universe.
But your definition of "a realistic dark-energy dominated model" is "the current best-fit model for our actual universe". Which is a much narrower definition than I think most physicists use when discussing theoretical models. I think most physicists mean by "a realistic model" a model that describes a physically possible universe, i.e., one that could have been produced by a process reasonably similar to the one that produced our universe. In some models, e.g., eternal inflation models, all such universes do in fact exist, we just can only observe the one we live in.
Jaime Rudas said:
Do you know of any dark-energy dominated model where photons circumnavigate the universe two or three times
In a model that is dark energy dominated for all time, photons can't circumnavigate the universe, because such a model is basically de Sitter spacetime, which is known to have that property.
I don't see why it wouldn't be possible to have a spatially finite model that becomes dark energy dominated at a late enough time (due to the dark energy density being small enough relative to the matter density) that photons could circumnavigate the universe. But I don't have a reference handy for such a model.
But your definition of "a realistic dark-energy dominated model" is "the current best-fit model for our actual universe". Which is a much narrower definition than I think most physicists use when discussing theoretical models. I think most physicists mean by "a realistic model" a model that describes a physically possible universe, i.e., one that could have been produced by a process reasonably similar to the one that produced our universe. In some models, e.g., eternal inflation models, all such universes do in fact exist, we just can only observe the one we live in.
I'm clearly not a physicist. In fact, I'm not even a scientist. That is why, as soon as I noticed that what I mean by "realistic" might be misinterpreted (in post #89), I tried to clarify this point (in posts #90 and #92).
PeterDonis said:
In a model that is dark energy dominated for all time, photons can't circumnavigate the universe, because such a model is basically de Sitter spacetime, which is known to have that property.
I don't see why it wouldn't be possible to have a spatially finite model that becomes dark energy dominated at a late enough time (due to the dark energy density being small enough relative to the matter density) that photons could circumnavigate the universe. But I don't have a reference handy for such a model.
Yes, that is, more or less, what I tried to explain in the P.S. of post #17 (there could be circumnavigation when, at a given moment, the event horizon is greater than the length of the maximum circumference of the universe at that moment), but while that would allow one circumnavigation, it would hardly allow two or three.
while that would allow one circumnavigation, it would hardly allow two or three.
That would depend on at what point the model became dark energy dominated. I don't think one can make a blanket statement like this that would apply to all possible models.
Let's see if I've got this right. References to Carroll are equations in chapter 8 of his notes unless otherwise stated.
I want to know the equation of motion for a light pulse in a closed FLRW spacetime containing a mix of matter and dark energy, in order to see how many times it can circumnavigate the universe. Obviously I'll need the scale factor, ##a##, for that.
If the densities of matter and dark energy when ##a=1## are ##\rho_{M0}## and ##\rho_{\Lambda 0}## respectively then at general ##a## (Carroll 8.24, 8.31):$$\begin{eqnarray}
\rho_M&=&\rho_{M0}a^{-3}\\
\rho_\Lambda&=&\rho_{\Lambda 0}
\end{eqnarray}$$from which we can state corresponding density parameters (Carroll 8.39)$$\begin{eqnarray}
\Omega_M&=&\frac{K\rho_{M0}}{a\dot{a}^2}\\
\Omega_\Lambda&=&\frac{K\rho_{\Lambda 0}a^2}{\dot{a}^2}
\end{eqnarray}$$where I have substituted for the Hubble parameter, ##H=\dot{a}/a## (Carroll 8.37) and defined ##K=8\pi G/3## for brevity.
There are several unknowns here. Let's stipulate that we are going to characterise our universes by specifying ##a_e## and ##\Omega_e## (e for equal), respectively the scale factor when ##\Omega_M=\Omega_\Lambda## and the density parameter of each component at that moment (i.e., the total density parameter then would be ##2\Omega_e##). Plugging these into (3) and (4) we can get expressions for the two ##\rho## parameters in terms of these initial conditions, and hence eliminate them from (3) and (4), getting expressions in terms of ##a_e## and ##\Omega_e## instead:$$\begin{eqnarray}
\Omega_M&=&\frac{\Omega_ea_e\dot{a}_e^2}{a\dot{a}^2}\\
\Omega_\Lambda&=&\frac{\Omega_ea^2\dot{a}_e^2}{a_e^2\dot{a}^2}
\end{eqnarray}$$where ##\dot{a}_e## is the value of ##\dot{a}## when ##a=a_e##. We can plug these expressions into the first Friedmann equation expressed in terms of ##\Omega## (Carrol 8.41) with ##k=1## for a positive curvature universe (Carroll, paragraph after equation 8.8) to get:$$\begin{equation}
\frac{\Omega_ea_e\dot{a}_e^2}{a\dot{a}^2}
+\frac{\Omega_ea^2\dot{a}_e^2}{a_e^2\dot{a}^2}
-1
=
\frac 1{\dot{a}^2}
\end{equation}$$where, again, I have substituted for ##H##. This is true at all times, but if we again plug in ##a=a_e## we can solve for ##\dot{a}_e## in terms of our initial conditions, eliminate it from (7), and solve for ##\dot{a}##:$$\begin{equation}
\dot{a}^2=-\frac{(\Omega_e-1)aa_e^3-\Omega_e(a^3+1)a_e+\Omega_ea}
{(\Omega_e-1)aa_e^3+\Omega_ea}
\end{equation}$$Numerical integrators and ##(dy/dt)^2=\mathrm{something}## are problematic because you don't know how to choose the sign of the square root, but (with thanks once again to @George Jones for pointing this out to me), you can work around it using ##\ddot{a}##, which we can obtain from differentiating (8):$$\begin{equation}
\ddot{a}=\frac{\Omega_e(2a^3-1)a_e}{2a^2(\Omega_e(a_e^3+1)-a_e^3)}
\end{equation}$$
The only other thing we need to note is that if we write the FLRW metric for a positive curvature universe as Carroll does in 8.7 and 8.10 then set ##\chi=\theta=\pi/2## for an equatorial path, a null path satisfies$$\begin{equation}\dot{\phi}=\frac 1a\end{equation}$$With (8), (9), (10) and a numerical integrator, we can now work out the ##\phi## coordinate of a light pulse as a function of cosmological time in a range of positive-curvature matter/dark energy FLRW universes.
I haven't been particularly systematic about this. I simply plugged in an arbitrary ##\Omega_e=0.9## (so the total density parameter at the change over to dark energy domination would be 1.8) and messed around with ##a_e## until I found interesting values. Here's a plot of the light pulse's angular coordinate, ##\phi(t)##, expressed as multiples of ##2\pi## so the vertical scale counts orbits, for a range of ##a_e## values:
At least according to my maths and programming, yes you can have multiple orbits. The best of my fairly arbitrary bunch manages four. Also interesting is the two distinct behaviours of the lines - the four to the left of the high purple line steepen and terminate, while the rest flatten out and run forever (on the graph they do terminate, but this is because I imposed an end to integration, rather than because it couldn't run further). You might guess that these behaviours have to do with the ultimate fate of the universe, and if you did you'd be correct. Plotting ##a(t)## for the four to the left shows that they collapse:
The rest don't:
Here's the code I used for the above - all comments welcome.
Python:
"""Modelling an FLRW universe with only matter and dark energy, based on
Carroll chapter 8 and some algebra."""
import math, matplotlib.pyplot, numpy, scipy.integrate
"""Compute da/dt when scale factor is a, given that the density parameter for
the two components is equal at a=aEq with value OMEq"""
def dadt(a, aEq, OMEq):
return numpy.sqrt(-((OMEq-1)*a*aEq**3-OMEq*(a**3+1)*aEq+OMEq*a)/((OMEq-1)*a*aEq**3+OMEq*a))
"""Differential equations governing the trajectory of light and development
of the universe"""
def diffs(t, y, args = None):
aEq, OMEq = args
phi, a, da = y
ans = [1/a,
da,
(2*OMEq*a**3-OMEq)*aEq/(2*((OMEq-1)*a**2*aEq**3+OMEq*a**2))]
return ans
"""Function that manages the numerical integration"""
def integrate(aEq, OMEq, dt = 1e-1, remember = False):
# Initial settings for the integrator
t0 = 0.01 # Cosmological time
a0 = 0.01 # Scale factor
phi0 = 0 # Angular coordinate of light pulse
da0 = dadt(a0, aEq, OMEq) # Time derivative of scale factor
# Set up the integrator...
I = scipy.integrate.ode(diffs).set_integrator("dopri5")
I.set_f_params([aEq, OMEq])
I.set_initial_value([phi0, a0, da0], t0)
# ...and storage space for the results (note extra value in the phi
# array to facilitate the first check in the while loop - it will be
# stripped out afterwards)
t,phi,a, da = [t0], [-500, phi0], [a0], [da0]
# Loop while the integrator is working, the light ray is making progress,
# and we haven't gone on too long
while I.successful() and (phi[-1] - phi[-2]) > dt * 1e-9 and I.t < 100:
# Integrate...
I.integrate(I.t + dt)
# ...and either record the new values or add them to the list
if remember:
t.append(I.t)
phi.append(I.y[0] / (2 * math.pi))
a.append(I.y[1])
da.append(I.y[2])
else:
t[0] = I.t
phi[0] = phi[1]
phi[1] = I.y[0] / (2 * math.pi)
a[0] = I.y[1]
da[0] = I.y[2]
# Strip out the extra value of phi
phi = phi[1:]
# Return the results
return t, phi, a, da
# Initial value of density parameter of each component when they are equal
OMEq = 0.9
# A range of values of the scale factor to try
amin, amax, asteps = 0.52083, 0.520830312, 10
# Run the integrations and add the results to a plot
for ai in range(asteps + 1):
print(ai, "/", asteps)
aEq = amin + (amax-amin) * ai / asteps
t, phi, a, da = integrate(aEq = aEq,
OMEq = OMEq,
dt = 1e-2,
remember = True)
matplotlib.pyplot.plot(t, phi)
# Set a few labels and display
matplotlib.pyplot.xlabel("t")
matplotlib.pyplot.ylabel(r"$phi/2\pi$")
matplotlib.pyplot.title(r"$\phi(t)$ for $\Omega_e="
+ str(OMEq) + "$, "
+ str(asteps + 1)
+ " values of $a$ between "
+ str(amin)
+ " and "
+ str(amax))
matplotlib.pyplot.show()