adaptive Verlet integration scheme

edited January 2014 in Old versions
hi, DualSphysics team

Thanks for the new V3.0 code!!!

I followed your code a long time ago in V2.0. I happen to have a question today which I didn't realize before. I see that in the code we use the adaptive Verlet integration scheme with changing dt at each new time step. I understand the whole algorithm why we do that and how. However, the Verlet scheme is known as difficult to implement with changing dt, as for example V3=V1+2dt2*F2, where F2 and dt2 is computed at time step 2 corresponding to Position 2 and Velocity 2. So the time difference between V1 and F2 at step 2 is actually dt1, and time difference between V3 and F2 is dt2, so shall we use V3 = V1 + (dt1+dt2)*F2 instead of original form 2dt2. In addition, I don't think it's enough by just doing this too, and a detailed analysis is necessary I believe.

In general, I think if we use the adaptive Verlet, we need to do some correction. You can search "adaptive Verlet" or "variable dt Verlet" in google and you will find many paper about it. A simple example is this file for Position Verlet ( http://lonesock.net/article/verlet.html ), and you will know what I mean by reading it.

In addition, I have another small question. I see for every M=40 steps, you choose to use forward Euler and then resume to Verlet again. The reason given in Sphysics and Gomez' paper is that it no longer coupled after M steps. First of all, I tested it in my own solver, the result does blow up without implementing this intermediate Forward Euler step, which shows the use of this step. However, I didn't find this particular technique in any other reference, like wiki, other verlet paper, etc. Could you please refer to me a paper talking about the reason of doing this. Kind of interested to know.

Please let me know how you think especially on my question 1. Thanks very much!

Kai

Comments

  • edited January 2014
    Hi,
    Thanks pkpan,
    About your question on M steps in Verlet algorithm, I need that reference too! Because I didn't find the reason of this technique in other references too...
    It might have a numerical reason in equation terms discretization, which by implementing Forward Euler Step we could gain a stable field. Maybe the answer of our question about M steps is in what you said about difference between using dt1+dt2 instead of 2dt2!
    I appreciate if anyone could help us on that.

    Regards,
    Mojtaba
  • edited February 2014
    Can anyone answer Mojtaba and my question as why there is an extra "M step forward Euler" in the Verlet scheme? The forward Euler is only first order method which is worse than Verlet or leapfrog. If it already starts decouple, it doesn't make too much sense we can use a first order forward Euler to drag them back to the same phase.
  • This is Verlet original paper http://prola.aps.org/pdf/PR/v165/i1/p201_1
    And this is wiki about Verlet http://en.wikipedia.org/wiki/Verlet_integration
    I didn't see this "Forward Euler" synchronization in either of them.
Sign In or Register to comment.