I Get geodesics & parallel transport on 2D surfaces (discrete timestep)

Tachytaenius
Messages
10
Reaction score
0
TL;DR Summary
I made a simulation/visualisation of an Ellis wormhole equatorial cross-section. I thought I had it right, but the geodesics don't look like the ones on Wikipedia. I need help with the maths for discrete timestep parallel transport and geodesics.
Hi, what I thought I'd managed to do some months ago was to create a 2D manifold movement simulation / visualisation on a catenoid, to make a traversable [cross section of an] Ellis wormhole.

I have noticed, though, that the geodesics on the Wikipedia page for the Ellis wormhole don't really look like mine. I don't know how they got them, but everything I'd found about differential geometry pointed me towards my implementation.

Their geodesics (https://upload.wikimedia.org/wikipe...1-256px-Ellis_wormhole_loop_geodesics.pdf.jpg) can go towards and then away from the wormhole throat without crossing. Mine, which I calculate by parallel transporting my velocity vector while moving along it (that does give geodesics, right?), seem to bend oppositely, going around the wormhole throat. Sometimes theirs even spiral around.


I think I'm using the Levi-Civita connection, which as far as I understand is basically the "normal" way to connect points on the surface that aligns with human intuition. And my understanding of the theory is that a particle/camera/whatever with constant velocity should trace out a geodesic by parallel-transporting its velocity along with it. So if I can move with velocity and also parallel transport velocity, I should be able to move along geodesics.
Here are my variables in the simulation:
  • Position (stored in terms of r and theta coordinates)
  • Velocity (stored in terms of change in r and theta coordinates per second)
  • Forwards direction (also stored in terms of r and theta. When converted from 2D intrinsic space to 3D embed space using the basis vectors, its length is always 1.)
Here is my process each timestep (the length of the timestep is dt):
  1. Accelerate and rotate the camera with keyboard input in the local tangent space at the current camera position.
  2. Get r and theta displacements for this timestep as velocity's components multiplied by dt.
  3. Add r and theta displacements to current position. Theta is confined within a full turn.
  4. Calculate the Christoffel symbols at the old position (it's still broken if I use the new position).
  5. Use my parallel transport function to bring the velocity along, and then to bring the forwards direction along (it is normalised every time to prevent accumulating floating point error).
The parallel transport function, given a vector in terms of r and theta in the current position's tangent space, returns the old vector's components minus the Christoffel symbol calculation Γ^i_jk for each component i (using the current r and theta displacements for j and the vector's components for k). It only considers the nonzero symbols for the Ellis wormhole.

Tools I have access to:
  • Parameterisation of the 2D manifold (i.e. a function to take from curved intrinsic r theta space to flat embedding cartesian space).
  • Function to get the r and theta basis vectors.
  • Function to take a tangent vector from embed space down into intrinsic r theta space using the basis vectors.
The only relevant constant in the wormhole simulation is the wormhole's throat radius.


If anything doesn't make sense, probably due to me not knowing all the terminology (which is because I'm self taught and have never been to uni), please do ask me about it. I'm more than happy to elaborate on all of this. I would really like to get to a solution...

The repository for my code (runnable with a 12.0 prerelease of the LÖVE framework) is https://github.com/Tachytaenius/wormhole-manifold-2d.
The code that contains the part where the camera moves around according to its velocity (which is accelerated in its local space tangent to the catenoid) and then parallel transports it is here: https://github.com/Tachytaenius/wor...275fb66ffc8ee147fa87bf4fd9/main.lua#L268-L287. I suspect something in those lines or the functions they call is what's causing the issue. Please note that the code does include some extra stuff about the wormhole being placed into a flat space, such that you can take the long way 'round to get from end to end.

I also tried to match the geodesic equations found in the Wikipedia article, but I after copying the maths I was ending up with negative radicands going into the square root function and other mishaps. I wanted to be able to move along any arbitrary manifold with a parameterisation and christoffel symbols, anyway.
 
Physics news on Phys.org
I managed to figure out an issue with the geodesics I move with not matching the geodesics shown in the visualisation; that was just numerical error. Fixed it by calculating the basis vectors analytically rather than numerically.

For the remaining issue: my current lead for the entirely different character of geodesics on the manifold in my simulation and on Wikipedia is something about lightlike (AKA null) and timelike (AKA intertial?) geodesics in General Relativity. The ones I've seen get called lightlike/null. I imagine I could be calculating the wrong ones!
 
Null geodesics are the free-fall paths of massless objects and are the generalisation of "light travels in straight lines always at ##c##" to curved spacetime. Timelike geodesics are the freefall paths of anything else, and are the generalisation of "anything with non-zero mass travels in straight lines at constant speed less than ##c##" to curved spacetime.

You seem to be using an Euler integrator (i.e. basically ##v_{i+1}=v_i+a_i\delta t##, albeit with corrections for curved spacetime), and these are well known for producing peculiar results - using one for Newtonian gravity simulations won't conserve energy, for example. Have you considered something more sophisticated?

Can you state or link to the metric you are using? Some spacetimes have more than one set of coordinates and then you get different functional forms of the metric.
 
Thank you for the reply!

Would timelike and null geodesics even look different in a spacetime that doesn't change with time?

For the Euler integrator, I actually changed it to a general system where both Euler and Runge-Kutta 4 can be specified, along with a number of steps (you can see it in the code in later commits.) RK4 occuring 32 times per tick improved accuracy. But after fixing the basis vectors, though, Euler seemed to work with any differences between it and RK4 being imperceptible. But maybe they're both wrong?

As for the metric. It is the same as the embedded wormhole idea in JB Hartle's Gravity (starting at page 148):
Screenshot_20250703_183948_Firefox.webp

Screenshot_20250703_184028_Firefox.webp

I'm using the final metric (my θ and φ are swapped) and I would've thought so was the person who calculated the geodesics on Wikipedia.

r is, in my variable naming (not the same across all sources), the distance along the manifold while ρ, equal to (r²+b²), is the top down, z-ignoring distance from the centre of the wormhole throat in ambient space. If that makes sense. Some sources seem to have them swapped.

Is more info required or has this been presented unhelpfully? Thanks again!
 
Last edited:
I might be being silly but it doesn't look like I can edit my post anymore. I was just going to fix that ρ²=(r²+b²), not ρ.
 
Apologies for any typos - I've just discovered that a couple of keys on my laptop don't work, so I'm partially using an on-screen keyboard by mouse...
Tachytaenius said:
But after fixing the basis vectors, though, Euler seemed to work with any differences between it and RK4 being imperceptible. But maybe they're both wrong?
Could be, but probably not. The integrator I've used in the past for geodesics in Schwarzschild and Kerr spacetime was the dopri5 one in python's scipy.integrate module. IIRC the documentation for that has proper references and you could try that if it's easy to do (edit: I see the module has changed since I did this - let me know if you want to look into it and can't make sense of my comment). However, I think it only really mattered near the horizon and you don't have one here, so it's probably not the issue.
Tachytaenius said:
I'm using the final metric (my θ and φ are swapped) and I would've thought so was the person who calculated the geodesics on Wikipedia.
What do you mean by "the final metric"? If you mean 7.40 or 7.41, geodesics of spatial slices aren't generally the same as the projection onto a spatial slice of the geodesics of spacetime, and that may be your problem.

The geodesic equations I get using Hartle's notation and assuming without loss of generality that we're on an equatorial path (constant ##\theta=\pi/2##) are:
$$\begin{eqnarray}
\frac{dt}{d\tau}&=&\mathrm{const}\\
\frac{d^2r}{d\tau^2}&=&r\left(\frac{d\phi}{d\tau}\right)^2\\
\frac{d^2\phi}{d\tau^2}&=&\frac{-2}{r^2+b^2}\frac{dr}{d\tau}\frac{d\phi}{d\tau}
\end{eqnarray}$$And you can simplify (i.e., eliminate the ##\phi## derivative from the ##r## equation and vice versa) using the constraint that $$-\left(\frac{dt}{d\tau}\right)^2+\left(\frac{dr}{d\tau}\right)^2+(b^2+r^2)\left(\frac{d\phi}{d\tau}\right)^2=\epsilon$$where ##\epsilon## is -1 for timelike geodesic or 0 for a null one. Note that if you used the spatial metric only (2) and (3) would be the same but (1) wouldn't exist, the constraint equation would not have the ##dt/d\tau## term, and ##\epsilon## isn't well defined.
 
Last edited:
Tachytaenius said:
I might be being silly but it doesn't look like I can edit my post anymore. I was just going to fix that ρ²=(r²+b²), not ρ.
There's a time limit for editing. If it's really important you can report your post and ask a mod to fix it, but in this case I wouldn't worry.
 
I tried the simulation with the equations mentioned for velocity, but the results did not seem to match either my or their geodesics. Would parallel transport of the forward vector, which relies on Christoffels in my case, work differently? I tried to modify the acceleration equations you mentioned to work for the forward vector but it seemed to make me accelerate above maximum speed a lot with all my combinations. I can get some videos etc with their corresponding equations if you like.

But I think that understanding the theory is my current task, so I may have to ask some more questions around there.

Ibix said:
What do you mean by "the final metric"? If you mean 7.40 or 7.41, geodesics of spatial slices aren't generally the same as the projection onto a spatial slice of the geodesics of spacetime, and that may be your problem.
By the final metric I did mean 7.41. Regarding time's inclusion/exclusion in the manifold (which I think you are saying is the problem), is it likely that whoever made the geodesics on Wikipedia had just used r, theta (or phi in your case), and time, and then "squashed together" all the points through time such that they lay on one 2D manifold? To create:
1751711335549.webp

...And that if they had only considered movement around a timeless catenoid they would have gotten my results?

In other words... is it possibly the case that my work is correct for a geodesic that doesn't need to consider moving through time as an extra dimension, and that their work is correct if you do consider that? I guess I really want to understand what it is, exactly, about the way that time specifically works in relativity that causes the paths on the catenoid to behave so differently when it is included. If that is the problem.

This is hard to work out without formal training, and I appreciate you having been answering my questions (and bearing with my overly verbal workings out) thus far.

(Also, I've been working on refining my understanding and not relying on the embedding or parameterisation or ambient space or whatever to get everything working. Just intrinsic qualities. E.g. normalising the forward vector in the simulation using the line element instead of going from intrinsic to extrinsic, normalising in 3D, then back again).
 
@Ibix I returned to working on this, and-- assuming you're okay with the ping-- I have a more specific question to ask about the differing null geodesics and the possibility you mentioned that the exclusion of time is the problem.

Do, in general, null geodesics through static spacetimes (like the Ellis wormhole)-- when projected into a constant-time slice of the spacetime-- look the same as geodesics through a constant-time slice of that spacetime?

I ask because what you said here:
Ibix said:
geodesics of spatial slices aren't generally the same as the projection onto a spatial slice of the geodesics of spacetime, and that may be your problem.
doesn't seem to apply to static spacetimes, like this one, in my intuition and with the tentative workings-out I've done?

Thanks :)
 
  • #10
Turns out, with enough precise configuration, my code is able to get geodesics that spiral into and out of the wormhole throat already. But I still can't work out the geodesics that come towards and then just turn away.
 
  • #11
I haven't time to look today, but I'll try to put something together tomorrow.
 
  • #12
Given that the Wikipedia page for the Ellis wormhole has some questionable claims about circular geodesics of constant rho which, on its talk page, have been contested... I'm beginning to wonder if the geodesics that turn around are at all accurate. I feel like I would never've predicted them based on everything else I know... so, maybe the article is just wrong.
 
  • #13
I haven't had as much time to look at this as I'd hoped, so this is just the setup. I'll have a look at doing the integration tomorrow.

OK, so the wormhole metric (7.39) in post #4 is$$ds^2=-dt^2+dr^2+(r^2+b^2)(d\theta^2+\sin^2\theta d\phi^2)$$We can immediately see from the spherical symmetry that we can simply assert that our orbits lie in the equatorial plane (##\theta = \pi/2##, ##d\theta=0##) and simplify to$$ds^2=-dt^2+dr^2+(r^2+b^2)d\phi^2$$Writing the Lagrangian$$\mathcal{L}=-\left(\frac{dt}{d\tau}\right)^2+\left(\frac{dr}{d\tau}\right)^2+(r^2+b^2)\left(\frac{d\phi}{d\tau}\right)^2$$we can write the Euler-Lagrange equations ##\frac{d}{dx_i}\mathcal{L}=\frac{d}{d\tau}\left(\frac{d}{d\dot{x}_i}\mathcal{L}\right)## for ##x_i## being ##t##, ##r##, and ##\phi##:$$\begin{eqnarray}
0&=&-2\frac{d}{d\tau}\frac{dt}{d\tau}\\
0&=&-2\frac{d^2r}{d\tau^2}+2r\left(\frac{d\phi}{d\tau}\right)^2\\
0&=&2\frac{d}{d\tau}\left((r^2+b^2)\frac{d\phi}{d\tau}\right)
\end{eqnarray}$$(4) and (6) equations are simple because there are Killing fields corresponding to time translation and rotation, and we can immediately write$$\begin{eqnarray}
\gamma&=&\frac{dt}{d\tau}\\
\frac{d^2r}{d\tau^2}&=&r\left(\frac{L}{r^2+b^2}\right)^2\\
L&=&(r^2+b^2)\frac{d\phi}{d\tau}
\end{eqnarray}$$where ##\gamma## and ##L## are constants of the motion and we have used (9) to eliminate ##d\phi/d\tau## from (5) to get (8). Furthermore, we can take the modulus of the four velocity and write $$\begin{eqnarray}
\epsilon&=&-\left(\frac{dt}{d\tau}\right)^2+\left(\frac{dr}{d\tau}\right)^2+(r^2+b^2)\left(\frac{d\phi}{d\tau}\right)^2\\
\left(\frac{dr}{d\tau}\right)^2&=&\epsilon + \gamma^2-\frac{L^2}{r^2+b^2}
\end{eqnarray}$$where ##\epsilon## is -1 for a timelike trajectory or 0 for a null trajectory. Since square roots are a pain for numerical integration we'll just use that as part of the initialisation, and use the following system for the integrator:$$\begin{eqnarray}
\frac{dt}{d\tau}&=&\gamma\\
\frac{dr}{d\tau}&=&p\\
\frac{dp}{d\tau}&=&r\left(\frac{L}{r^2+b^2}\right)^2\\
\frac{d\phi}{d\tau}&=&\frac{L}{r^2+b^2}
\end{eqnarray}$$where (13) is the definition of ##p## and only exists to make the system first order, and (12), (14) and (15) are just (7)-(9) restated.

To initialise the integrator we can state that the object has four velocity ##u^a## and passes an observer hovering at fixed ##r=r_0,\phi=0## (who has four velocity (1,0,0,0)) making an angle ##\psi## to the direction that observer calls "straight towards the wormhole". A unit vector "straight towards the wormhole" is manifestly (0,-1,0,0), and the component of ##u^a## orthogonal to the hovering observer's worldline is obviously ##(0,u^r,0,u^\phi)##. So we can write $$\cos\psi=\frac{-u^r}{\sqrt{(u^r)^2+L^2/(r_0^2+b^2)}}$$Solving that should give us ##u^r##, which is ##dr/d\tau##, as a function of ##L## which we can then plug into (11) to get a relationship between ##\gamma##, ##L## and ##\psi##. Then we just specify any two of them.

Now I just need to plug that into an integrator.
 
Last edited:

Similar threads

Replies
6
Views
4K
Replies
11
Views
3K
Replies
9
Views
7K
Replies
5
Views
1K
Replies
2
Views
2K
Replies
12
Views
2K
Replies
2
Views
3K
Back
Top