[ODE] small-large timestep problem
Russ Smith
russ at q12.org
Sun Apr 14 13:02:02 2002
> Could you describe in more detail what this "good fix" does? You've
> piqued my interest...
briefly: a constraint performs error reduction by imposing a relative
velocity between the bodies to try and bring them back to the correct
configuration. this is a "real" velocity, in the sense that if all the
system joints were removed, the bodies would still have that velocity.
normally this imposed velocity acts against some force that is trying to
increase the constraint error, so it does not result in some directly
observable extra velocity (e.g. you push two bodies into each other,
the contact joint imposes a velocity to reduce the penetration to zero).
also, setting ERP << 1 means that the extra velocity is reduced markedly
as the eror approaches zero - another reason it is not often observed.
however, sometimes it becomes obvious, such as when the time step is
increased (and the extra velocity has an inappropriately large scale).
a solution is to adjust the system velocities after the time step to
take away this error-reducing velocity. this will make the error
reduction scheme similar to a pure position projection. a second solve
for a different right-hand-side (RHS) will have to be performed. the
joints currently return a single RHS vector "c", this will have to be
split up into its"normal" and "error reducing" components.
i'll write a more detailed description later, when i have a chance.
russ.
--
Russell Smith
http://www.q12.org