I am trying to decide whether to use semi-implicit integration vs. explicit integration (particularly Position Verlet over Semi implicit Euler). Although the Verlet approach is widely used and is completely clear and easy to implement in a simulation, it still doesn't cut it in front of (pure) implicit methods. But these implicit methods do have some drawbacks: they require iterative solvers and Jacobian approximations, and nobody can guarantee that those Jacobians are not singular, hence one cannot use Newton-Raphson to recover unknowns in that way.

As far as my understanding goes, semi implicit Euler is like this:

$ v(t+\Delta t) = v(t) + a(t+\Delta t, v(t+ \Delta t)) \Delta t$

$x(t+ \Delta t) = x(t) + v(t+ \Delta t) \Delta t$

What these equations tell is that the velocity at time $t+\Delta t$ can be determined considering it as an unknown, finding the Jacobian of a function $G(v)$ and solving the equation $G(v+\Delta v) = 0$, where $G(v) = v(t) + a(t, v(t+ \Delta t)) - v(t+\Delta t)$, hence the sought after $\Delta v \approx -J_G(v(t))^{-1} \cdot G(v(t))$ (leading us to equate $v(t+\Delta t) = v(t) + \Delta v$).

To sum up, in my understanding, this method requires just to approximate once the $v(t+\Delta t)$ and plug it into the second, position equation. If I understood it correctly, is this in any way adding stability benefits to the system, as the pure implicit method would? I would like to use it in a particle system simulation and I don't know, unfortunately, if it's going to be more stable than Position Verlet (due to its high inherent damping/energy loss - though any other implicit method is said to incur natural damping due to its "backward tracing" approach). I'd like to mention that I already tried out the pure implicit method via the same Newton-Raphson solver and it didn't work nicely because of some singular Jacobians from time to time.

  • $\begingroup$ What I don't understand is that why the second formula holds without multiplying an $\Delta t$. $\endgroup$ – eccstartup Aug 5 '13 at 0:59
  • $\begingroup$ Oh, sorry, it was a type-o. I added the correction. $\endgroup$ – teodron Aug 5 '13 at 7:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.