[ODE] Constraint theorizing
Gary R. Van Sickle
g.r.vansickle at worldnet.att.net
Mon Feb 24 23:29:02 2003
> There were some discussion about such things in this list
> (iterative schemes and the like) I have tested (succesfully)
> a straighforward iterative technique which solves *only*
> 1 constraint at each step (thanks Antonio). That is, if you
> have a system of say C= 10 constraints, then you solve
> every constraint separately without taking into account
> the other constraints. The idea is that the time step is
> subdivided into a sort of "microsimulations". Something
> like that:
>
> parameter: N substeps, C constraints, Dt (ODE timestep)
>
> for i=0..N-1 do
> for c = 0..C-1 do
> Solve constraint c-th
> Apply forces to constraint bodies
> next
> Integrate bodies by (Dt/N)
> next
>
> The idea is that as N->inf the movement of the bodies is
> very small so the effect of every constraint is very
> localized and this approach becomes exact just in the limit.
> In my tests a small number is iterations is enough to
> get decent results.
>
> Please note that the core of this scheme is to solve a
> very small (up to 6x6) LCP constraint system. I think
> this approach gives enough room to a lot of performance
> improvements. The next step should be to find a fast
> code able to solve the small system. Also, note that
> is no longer necessary to store a big matrix for the
> constraint coefficients.
This is like excellent to the third power! And believe it or not, I actually
thought of just this scheme during my run this evening, not that I'd have had
the ability to pull it off. So let me see if I can summarize. ODE as-is is
O(C^3). The new scheme is O(CN), with N a small integer. That improvement in
scalability alone is fabulous. PLUS, we lose the stack problems that have been
plagueing people.
You are a GOD!
--
Gary R. Van Sickle
Brewer. Patriot.