# Accelerating light-clock simulation

• B

## Summary:

I'm trying to simulate a super-sized accelerating light-clock in Python.

## Main Question or Discussion Point

So this what I found out: One cycle takes less coordinate time, and less proper time according to the lower mirror when the clock accelerates. Proper time per one cycle does not seem to get larger with more cycles, although coordinate time per one cycle does get larger.

So what do you think, is this a real phenomenon?

Output of low acceleration run:

Code:
accelerations are: 0.001   0.001

proper time and coordinate time are:

0.799840042654    0.799840127936
Output of higher acceleration run:

Code:
accelerations are: 1.0    0.7143

proper time and coordinate time are:

0.672944473242     0.724897959184

Python:
from math import sqrt ,asinh
c=1.0
def gamma(a,t):
return sqrt(  1 + (a*t/c)*(a*t/c)    )

def d(a,t):
return (c**2 / a) * (gamma(a,t) -1)

def T(a,t):
return (c/a)*asinh(a*t/c)

def v(a,t):
return a*t / gamma(a,t)

def properaccelerationatheight(a,h):
return  a / (1 + ( (a*h) / c**2 ) )

#tstep1 and tstep2 return a varying timestep

def tstep1():
global a2,t,h,p
dist = abs( d(a2,t) + h - p)
return dist / (10*c)

def tstep2():
global a1,t,p
dist = abs( d(a1,t) - p)
return dist / (20*c)

# h is the height of the light-clock, a1 and a2 are proper accelerations of the mirrors
h = 0.4 * c
for a1 in [0.001, 1.0]:
a2 = properaccelerationatheight(a1,h)

print '\naccelerations are:',round(a1,4),round(a2,4)

# t is coordinate time, p is the position of a light pulse
t=0.0
p=0.0
for i in xrange(44444):
dt=tstep1()
p += dt*c
t+=dt

for i in xrange(44444):
dt=tstep2()
p -= dt*c
t+=dt

print 'proper time and coordinate time are:'
print T(a1,t), t

Related Special and General Relativity News on Phys.org
Nugatory
Mentor
Proper time per one cycle does not seem to get larger with more cycles, although coordinate time per one cycle does get larger.
You can calculate the proper time for any cycle using the inertial frame in which the bottom of the clock is momentarily at rest at the start of the cycle. So yes, the proper time per cycle ought to be independent of the duration of the acceleration. (You can use any other frame as well, as in your simulation - it’s just more work and harder to see at a glance why you should expect the proper time to be the same).

The coordinate time does change if you choose to use a frame (as in your simulation) in which the speed of the bottom end of the clock is different for each cycle. That shouldn’t be surprising either - you’d expect different results for frame-dependent quantities when the clock is moving at different speeds relative to you.

(I haven’t looked at your code or checked the results for quantitative accuracy, just saying that the qualitative results you’re reporting are to be expected)

Ibix
I'm presuming that the proper length of the light clock doesn't change? You can just view this as gravitational time dilation, I think. Then yes, the lower clock ticks slower. The ratio of tick rates is constant from symmetry: nothing actually changes from the perspective of either mirror. The tick rate slowing with coordinate time is more or less standard kinetic time dilation.

Dale
Mentor
Summary:: I'm trying to simulate a super-sized accelerating light-clock in Python.

So what do you think, is this a real phenomenon?
Yes, what you describe is correct. This effect was one of the first lab experiments confirming GR. It was called the Pound Rebka experiment, although no attempt was made to measure the results in a free falling frame.

PeterDonis
Mentor
2019 Award
It was called the Pound Rebka experiment, although no attempt was made to measure the results in a free falling frame.
It probably would have been tough to get a research grant if they had had to say in their grant application that the apparatus--carefully designed to send its data by radio as it fell--would be destroyed by impact with the ground at the end of the experiment. • • etotheipi, vanhees71 and Dale
I'm presuming that the proper length of the light clock doesn't change? You can just view this as gravitational time dilation, I think. Then yes, the lower clock ticks slower. The ratio of tick rates is constant from symmetry: nothing actually changes from the perspective of either mirror. The tick rate slowing with coordinate time is more or less standard kinetic time dilation.

Just to make sure I understand correctly: Do you mean the lower clock clock ticks slower than the large light-clock, or do you mean the lower clock ticks slower then some clock higher up, or do you mean both of those things?
---------

Yes, my clock's proper length stays the same. It length-contracts correctly in an inertial frame.

PeterDonis
Mentor
2019 Award
Do you mean the lower clock clock ticks slower than the large light-clock, or do you mean the lower clock ticks slower then some clock higher up, or do you mean both of those things?
Since by definition you are making the large light clock large enough that time dilation is non-negligible from the bottom to the top, the large light clock does not have a well-defined "tick rate" at all.

Since by definition you are making the large light clock large enough that time dilation is non-negligible from the bottom to the top, the large light clock does not have a well-defined "tick rate" at all.
How about cycles per minute rate, which is what I meant by tick rate?

And by cycle I mean that light travels from lower mirror to upper mirror and then back to lower mirror.

PeterDonis
Mentor
2019 Award
How about cycles per minute rate, which is what I meant by tick rate?
Still not well-defined, since by construction a "minute" is not the same at the lower and upper ends of the big clock.

by cycle I mean that light travels from lower mirror to upper mirror and then back to lower mirror.
The time by a clock at the lower mirror for a round trip of light is well-defined. So is the time by a clock at the upper mirror. But if either of those is what you mean by "tick rate", then (a) you need to say so explicitly, and (b) you've made having the big clock pointless, since you are depending on some other clock to tell you what its "tick rate" is.

Ibix
How about cycles per minute rate, which is what I meant by tick rate?
Measured by who, is Peter's point. For a small light clock you can compare to a local clock. For a large one you need to compare to a small clock either at the top or bottom mirror - which you already did - and they will give different answers.

Edit: beaten to it, I see.

Measured by who, is Peter's point. For a small light clock you can compare to a local clock. For a large one you need to compare to a small clock either at the top or bottom mirror - which you already did - and they will give different answers.

Edit: beaten to it, I see.
Does a big (tall) accelerating light-clock tick (cycle) extra fast because of the acceleration, according to an observer at the lower mirror?

I could use an answer to that question.

Many answers from different people would be extra nice.

PeterDonis
Mentor
2019 Award
Does a big (tall) accelerating light-clock tick (cycle) extra fast because of the acceleration, according to an observer at the lower mirror?
Extra fast compared to what?

Ibix
Does a big (tall) accelerating light-clock tick (cycle) extra fast because of the acceleration, according to an observer at the lower mirror?
Ticks fast compared to what, as Peter asks? Compared to when it's not accelerating? Yes - trivially the tick time is 0.8s for your 0.4 light second clock in that case. But that's directly attributable to the velocity change of the lower mirror in an inertial frame - you can get it by writing down ##\gamma(t)## and calculating ##\int dt/\gamma## between reflection events. Which is what you did to get your function T() in fact.

I must say I don't understand your program, now I look at it. It seems to be using two loops to estimate the intercept time of light pulses with the mirrors by some iterative process. Yet to be able to have written the program you must have written down the location of the mirror as a function of coordinate time (I think that's what your function d() does). Why not solve this intercept calculation algebraically and skip the program altogether?

PeterDonis
Mentor
2019 Award
Compared to when it's not accelerating? Yes - trivially the tick time is 0.8s for your 0.4 light second clock in that case.
I don't think it's as simple as this. How are you making this comparison?

Ibix
I don't think it's as simple as this. How are you making this comparison?
I'm considering a clock whose length measured in its (possibly instantaneous) inertial rest frame is 0.4 (lifted from jartsa's program), and comparing the proper time between reflection events as measured by a small clock colocated with the lower mirror. That is, I'm comparing the arc length of the lower mirror's worldline between reflection events for different proper accelerations of the lower mirror.

PeterDonis
Mentor
2019 Award
I'm comparing the arc length of the lower mirror's worldline between reflection events for different proper accelerations of the lower mirror.
Ok, so in an inertial frame in which the lower clock is momentarily at rest at the instant the light pulse reflects off the upper mirror (this is the simplest way to take advantage of the symmetries involved), we have (in units where ##c = 1##, so we are measuring time in seconds and distance in light-seconds):

Coordinate time ##t_0## at the instant of the upper mirror reflection.

A lower mirror at ##x_0 = 1 / a## at coordinate time ##t_0##, where ##a## is the proper acceleration of the lower mirror.

An upper mirror at ##x_0 + L = L + 1 / a## at coordinate time ##t_0##, where ##L## is the mirror spacing (i.e., ##0.4## in the OP's formulation).

The lower mirror's worldline is then given by ##x = (1 / a) \sqrt{1 + a^2 t^2}##. The proper time along the worldline from ##t = 0## to coordinate time ##t## is given by ##\tau = (1 / a) \sinh^{-1} \left( a t \right) = (1 / a) \ln \left( a t + \sqrt{1 + a^2 t^2} \right)##.

We then simply calculate the point of intersection of the reflected light signal with the lower mirror's worldline; that gives us the value of ##t## we need to plug into the formula for ##\tau##. (The total round-trip time will then be just twice this.) The reflected light signal's worldline is simply ##x = (1 / a) + L - t##, so we have

$$\frac{1}{a} + L - t = \frac{1}{a} \sqrt{1 + a^2 t^2}$$

which gives, after some algebra,

$$t = \frac{L}{2} \frac{2 + a L}{1 + a L}$$

However, we can also rearrange the above equation for where the reflected signal meets the lower mirror to get this interesting equation:

$$1 + a L = a t + \sqrt{1 + a^2 t^2}$$

The expression on the LHS can then be substituted into the equation for ##\tau## to obtain

$$\tau = \frac{1}{a} \ln \left( 1 + a L \right)$$

We can then take the ratio ##\tau / t##:

$$\frac{\tau}{t} = \frac{1}{a} \ln \left( 1 + a L \right) \frac{2}{L} \frac{1 + a L}{2 + a L}$$

We can see the following general features from the above:

(1) For ##a = 0##, ##t = L##, as expected.

(2) As ##a## increases, ##t## decreases (because the factor multiplying ##L / 2## is ##2## at ##a = 0## and is strictly decreasing with increasing ##a##, as can be seen by taking its derivative with respect to ##a##). This is to be expected since as ##a## increases, the lower mirror accelerates more towards the reflected light signal, so it will take less coordinate time to meet it.

(3) As ##a## increases, ##\tau## decreases (because ##\tau## is a ratio of a term logarithmic in ##a## to a term linear in ##a##; taking the derivative gives a more complicated formula from which it's not easy to see that it must be strictly decreasing with increasing ##a##, but it can be shown).

(4) As ##a## increases, ##\tau / t## decreases, at least for small ##a##. This is simplest to see by taking the power series expansion of ##\ln \left( 1 + a L \right)## and plugging that into the above formula; this gives, keeping only terms up to those quadratic in ##a##,

$$\frac{\tau}{t} = \frac{2 + a L - a^2 L^2}{2 + a L}$$

Which is decreasing with ##a##. I think that remains true for ##a## not small, but I have not done a detailed computation to check.

• Ibix
Ibix
Which is decreasing with ##a##. I think that remains true for ##a## not small, but I have not done a detailed computation to check.
In the limit ##a\rightarrow\infty## the worldline of the lower mirror hugs the lightcone of its instantaneous rest event which, in the symmetric frame we are using, is simultaneous with the upper mirror reflection event. By inspection ##\tau\rightarrow 0## and ##t\rightarrow L/2##, so ##\tau/t\rightarrow 0##.

Last edited:
• Nugatory
PeterDonis
Mentor
2019 Award
In the limit ##a\rightarrow\infty## the worldline of the lower mirror hugs the lightcone of its instantaneous rest event which, in the symmetric frame we are using, is simultaneous with the upper mirror reflection event. By inspection ##\tau\rightarrow 0## and ##t\rightarrow L/2##, so ##\tau/t\rightarrow 0##.
Ah, yes, I figured there was a simpler way of looking at that case.

The other interesting thing to do is a similar calculation for the upper mirror, where we pick a frame in which the lower mirror reflection event is at ##t = 0## and the upper mirror is momentarily at rest in the frame at ##t = 0##. This calculation shows that for the upper mirror, ##t## and ##\tau## both increase as ##a## increases, although their ratio still decreases.

Ibix
The other interesting thing to do is a similar calculation for the upper mirror, where we pick a frame in which the lower mirror reflection event is at ##t = 0## and the upper mirror is momentarily at rest in the frame at ##t = 0##. This calculation shows that for the upper mirror, ##t## and ##\tau## both increase as ##a## increases, although their ratio still decreases.
Agreed. If you're feeling lazy, you can just reuse your maths from #16, but with ##-1/L<a<0## (for more extreme negative values the other mirror is below the Rindler horizon and the clock doesn't work any more).

• Nugatory
PeterDonis
Mentor
2019 Award
If you're feeling lazy, you can just reuse your maths from #16
Yes, the quick summary is:

$$t = \frac{L}{2} \frac{2 - a L}{1 - a L}$$

which is increasing in ##a## (and requires the limit ##a L < 1##),

$$\tau = \frac{1}{a} \ln \left( \frac{1}{1 - a L} \right)$$

which is increasing in ##a##,

$$\frac{\tau}{t} = \frac{1}{a} \ln \left( \frac{1}{1 - a L} \right) \frac{2}{L} \frac{1 - a L}{2 - a L}$$

And for small ##a##

$$\frac{\tau}{t} = \frac{2 - a L - a^2 L^2}{2 - a L}$$

which is decreasing in ##a##.

(2) As aa increases, tt decreases (because the factor multiplying L/2L / 2 is 22 at a=0a = 0 and is strictly decreasing with increasing aa, as can be seen by taking its derivative with respect to aa). This is to be expected since as aa increases, the lower mirror accelerates more towards the reflected light signal, so it will take less coordinate time to meet it.

I think coordinate time should start increasing when at some large accelerations the upper mirror's velocity becomes large, and because of that the first leg takes a long time.

For example, if the first leg takes time 3*L, and if we pretend that the second leg takes zero time, then the two legs take time 3*L.

Oh yes, aL < 1 . I guess that means that the upper mirror does not reach very high velocity during the first leg. Never mind then.

Last edited:
PeterDonis
Mentor
2019 Award
I think coordinate time should start increasing
Don't wave your hands. Do the math. You have coordinate time as a function of ##a##. If there is a range of ##a## for which ##t## increases, it should be easy to show mathematically.

Oh yes, aL < 1 .
Not for the case where the reflection at ##t = 0## is off the upper mirror, i.e,. where the return light signal whose path I was analyzing is from the upper to the lower mirror. There is no limit on the acceleration for that case.

For the case where the reflection at ##t = 0## is off the lower mirror, so the return light signal is from the lower to the upper mirror, there is a restriction ##aL < 1##, yes, because if ##a L \ge 1##, the lower mirror is behind the upper mirror's Rindler horizon and the return light signal will never catch up to the upper mirror.

Ibix
I think coordinate time should start increasing when at some large accelerations the upper mirror's velocity becomes large, and because of that the first leg takes a long time.
The maths Peter wrote down in #16 has the focus of the hyperbolae followed by the mirrors be at the origin. Since such hyperbolae are invariant under Lorentz transform (they're analogous to Euclidean circles centred at the origin, which are invariant under rotation about the origin) you can take the ##(x,t)## coordinates of the three reflection events he discusses (##t=0##, ##t=\pm L(2+aL)/2(1+aL)##) and boost them by ##-v## to get the coordinates of three reflection events where the upper mirror is travelling at ##+v## at its reflection event. Then you can see if your intuition is correct or not.

PeterDonis
Mentor
2019 Award
Since such hyperbolae are invariant under Lorentz transform (they're analogous to Euclidean circles centred at the origin, which are invariant under rotation about the origin) you can take the ##(x,t)## coordinates of the three reflection events he discusses (##t=0##, ##t=\pm L(2+aL)/2(1+aL)##) and boost them by ##-v## to get the coordinates of three reflection events where the upper mirror is travelling at ##+v## at its reflection event. Then you can see if your intuition is correct or not.
While this is a valid process, I'm not sure it addresses the point @jartsa was trying to make. I think he was talking about a case where the upper reflection is still at ##t = 0##, but the acceleration is very large so the velocity of either mirror goes from zero to close to the speed of light in the coordinate time it takes for a light signal to go between the mirrors. I think he forgot that for the case where the reflection is at the upper mirror, the light signal and the mirror are traveling towards each other on both legs, so increasing the acceleration just increases their effective approach speed, making ##t## smaller (approaching the limit of ##L / 2## that you gave earlier using a simple argument that I'm not sure @jartsa has read).

Ibix