# Velocity verlet versus other integration techniques

1. Jul 12, 2011

### cephron

Re: Physics Simulation

Out of curiosity, do you mean to basic Verlet or the Velocity Verlet?

I've been doing something like the OP's simulation using the velocity Verlet, and yes, it seems to preserve energy pretty nicely...but I've noticed that elliptical orbits tend to show "apsidal precession" (like Mercury's orbit tracing out a rosette) ... which they shouldn't in a purely classical simulation, right?

Are there any common errors that lead to this, or corrections to deal with it? Or is it an unavoidable artifact of using discrete timesteps?

Thanks!

Last edited by a moderator: Jul 13, 2011
2. Jul 12, 2011

### edguy99

Re: Physics Simulation

No, I get elliptical orbits with discrete timesteps. One thing that appears to be missing in the original question is the initial speed and direction of the earth and the sun (ie. the position of the earth on the next timestep not only depends on the force from the sun, but the momentum of the earth in the last timestep). I am not sure how you are accounting for this as it ends up being very important.

3. Jul 12, 2011

### cephron

Re: Physics Simulation

Oh, I do give initial position and velocity to all bodies involved, for sure.

About the orbit - sorry, I wasn't meaning that you can watch it trace out a rosette with its orbit. For any given single orbit, it's elliptic. It's just that if you walked away for five minutes and came back, the major axis would be pointing in a slighty, but visibly, different direction. Over hours the major axis will do full rotations around the 'sun'. Maybe I should check how many orders of magnitude of timesteps it takes to do one rotation; that would give a better idea of the level of the issue...

4. Jul 12, 2011

### edguy99

Re: Physics Simulation

Interesting, how accurate is a single orbit? Ie, given the correct masses and initial conditions does one orbit come out to pretty close to 365 1/4 days and does the orbit have the correct close point and far point?

5. Jul 12, 2011

### cephron

Re: Physics Simulation

I haven't tried an actual, unit-correct earth-sun system yet (I actually just got the simulator working last night, tbh). But I have played around with realistic units in this kinda thing before. I'll see if I can give it a shot and post some interesting info tomorrow.

6. Jul 12, 2011

### D H

Staff Emeritus
Re: Physics Simulation

TBH, velocity verlet is a pretty lousy integrator. People legitimately use a lousy integrator such as velocity verlet in an N-body simulations when they realistically can't use a better choice (e.g., N or the time scale is extremely large). In this case, N is not "very, very large", and much better integrators can be used.

7. Jul 12, 2011

### cephron

Re: Physics Simulation

Ok - so, is Velocity Verlet, like, the top one of its class (in computational expense), and to do better requires a higher class of integrator (ie. more computationally expensive)?

My instinct would have been to look at RK4 next, but there seem to be some concerns circulating the nets that it loses energy...
http://www.gamedev.net/topic/387065-runge-kutta-unstable-in-some-situations/
(I also noted: this person's experiments also found that Velocity Verlet orbits tend to precess)

If one were assuming the goals of (1) maintaining energy and stability, and (2) improving accuracy over Velocity Verlet, what integrators might be next in line? How much more computationally expensive are they?

I'm interested in any input.(and to the original poster, let me know if you consider this to be hijacking your thread beyond your purposes; I'll apologize and start a new one...)

8. Jul 13, 2011

### edguy99

Re: Physics Simulation

I am not sure what you are trying to simulate, but if we stick to the sun/earth system for the moment, there is a very important comment to make when dealing with descrete timesteps. Do NOT use the tangent to the line as shown in the Euler example. DO use the proper prior position of your objects from the previous timestep that you MUST calculate by hand.

To illustrate this, assuming you choose the mass of the earth and sun to say 6 digits accuracy, you then choose the distance between the earth and sun on some particular day to start at say 6 digits accuracy. Using the tangent to calculate the momentum will result in an orbit that is days out from a proper 365 day orbit (ie, it will not even be within 2 digits accurate even if you did a calculation for every second of the year) and the wiki page illustrates how that error is propagated. If you calculate by hand where the earth and sun would be prior to the first timestep to the same accuracy (6 digits) to get the proper momentum rather then using the tangent value, you will be able to get the orbit to within minutes of being correct, even if you only use hours or days as calculation timesteps.

Also note that if you switch from daily calculation timesteps to hourly calculation timesteps, you cannot divide your momentum by 24 and use the same direction, you must recalculate your first prior position (and hence the direction of the momentum of the earth) based on the new timesteps. In summary, the direction of the momentum of the Earth to start is dependent on the timeframe you choose to do your calculations. Using the tangent, does not take this into account.

Switching to this method causes the opposite problem compared to what you are seeing. You will not be able to simulate a precessing orbit as all orbits, no matter how you start them or what masses you use, will turn into perfect ellipses (samples http://www.animatedphysics.com/videos/planets.htm" [Broken]).

Hope this post is of some help.

Last edited by a moderator: May 5, 2017
9. Jul 13, 2011