
Newtonian Gravity with Velocity Verlet and OpenGL (2016) - aroman_ro
https://compphys.go.ro/newtonian-gravity/
======
jules
> I had an old program where I implemented the Leapfrog method, but for this
> post I decided to use the Verlet integration.

Those are mathematically equivalent methods though...aren't they?

~~~
aroman_ro
I guess you may call them that way. They are very similar and although you can
discuss some tiny details, in the end for such project it's a matter of taste,
really.

~~~
mrspeaker
What are the tiny details?!

~~~
aroman_ro
The biggest is that in real molecular dynamics simulation you need the
position and velocity at the same time. If you want to calculate the total
energy, for example, you need both positions and velocity at one time moment.
It's not a big deal for a simple project to simply average the 'before' and
'after' velocities... but again, those are tiny details. There is the initial
state issue, again, a tiny detail. You may find more...

~~~
jules
With leapfrog you can use x + v dt/2 for the positions to calculate the
energy. Or use this update rule:

    
    
        x += v*dt/2
        v += a(x)*dt
        x += v*dt/2
    

This gives you the x,v at the same time, yet still doesn't require storing the
accelerations. The acceleration calculation can imperatively update v :)

In fact, if you call that update leapfrog(dt), then you can get a fourth order
symplectic method like so:

    
    
        leapfrog(c1*dt)
        leapfrog(c2*dt)
        leapfrog(c1*dt)
    

Where c1,c2 are particular coefficients which you have to ask Yoshida.

~~~
aroman_ro
As I said, tiny details :)

