← Back to team overview

yade-dev team mailing list archive

Re: Questions about Leap-Frog position integrator.

 

The answer is (just for the record, I discussed that with Vincent) :

In a 2nd order finite difference scheme for Newtons law, positions and forces are defined at times t+Ndt, while velocities are defined at times t+(N+1/2)dt. If everything was defined at times Ndt, it would be a first order sheme.

v(t+0.5*dt) = v(t-0.5*dt) + a(t)*dt
p(t+dt) = p(t) + v(t+0.5*dt)*dt

Bruno



Vincent Richefeu a écrit :
(I re-send this mail because it didn't appear in yade-dev list... sorry if you receive it for a second time)


Hi everybody,

This morning I had a look at the file LeapFrogPositionIntegrator.cpp and I a little scarred of what I saw (I exaggerate of course).
Can someone enlighten me on that point:
If I translate the c++ code into human readable operations, I've got:

v(t+dt) = v(t) + a(t)*dt
p(t+dt) = p(t) + v(t+dt)*dt + getMove

1. The first thing that seems odd to me is the use of v(t+dt) in the evaluation of p(t+dt). There's no great danger if the displacements are small and slow. However, it is know that even a quasistatic load may be accompanied by small localized dynamic crises. If there is indeed a problem here, no big deal because reducing the time step is enough to correct it. But it's a pity!

2. The second that I don't understand is the method getMove that seems to return a force (!) I know, I am probably wrong. Can anyone give me details on what this function returns ?

Thank you in advance for your helpful comments,
VR

_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp



--

_______________
Chareyre Bruno
Maître de Conférences

Grenoble INP
Laboratoire 3SR - bureau E145
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 43
________________




Follow ups

References