[ODE] Constraints: position-, velocity-, or acceleration-based?
nlin@nlin.net
nlin at nlin.net
Sun Nov 18 16:59:02 MST 2001
>From russ at q12.org Mon Nov 19 03:37:38 2001
> > Does ODE use a time-stepping method?
>
> yes - by which we mean that the integrator is not expressed as an
> abstract module that can integrate any defferential equation, it
> is very much tied in to the system being integrated.
Based on some reading of Stewart and Trinkle, I understood "time-stepping"
to mean that integrals of force over the entire discrete timestep,
rather than instantaneous forces at the beginning or end of each timestep,
are evaluated over each timestep, thus allowing impulses to occur at any
time without collisions, thus resolving some friction paradoxes. Is this
the same thing?
> > 3. Some other systems appear to use position-based constraints (I
> > think Bart Barenburg's Dynamo library does this).
>
> i'm not quite sure what a "position-based" constraint is. do you mean
> where the constraint positions are enforced with an iterative
> position projection process every time step?
Yes and no. Iterative position projection seems to give good results
for many test cases I've tried, even if you totally ignore correcting
the accelerations (and thus forces) to be constraint-compatible (a
velocity-less Verlet/Stoermer integrator seems to help here since the
velocity is implicitly corrected by the projected positions). I assume
the problem with this approach is low accuracy?
However positional constraints seem to form the basis of the Dynamo
library, which uses a more advanced approach. Its URL is
http://www.win.tue.nl/~bartb/dynamo/. All of his constraints
are expressed in terms of the geometric position (not velocity or
acceleration) of the objects, returning a signed error vector. This signed
vector then produces a "correction vector", which then finally gets
transformed into an actual constraint force. Iteratively the system tries
to find the correct forces such that the error vector is zero. The point
here being that the system's constraints are expressed purely in terms
of the positions of the bodies, which seems much more natural in many
cases than using an equation involving velocity or acceleration. Brandenburg's
thesis goes into detail on this.
> depends on the application. for high accuracy systems you might prefer
> acceleration constraints, as then you can easily separate the
> integrator from the system being integrated. this allows you to plug in
> higher order integrators more easily.
This means that plugging in higher order integrators will fundamentally
be a complicated task with ODE because of the velocity-based time-stepping
formulation?
-Norman
More information about the ODE
mailing list