[ODE] Constraint theorizing
Sergio Valverde
svalverde at barcelona.ubisoft.es
Tue Feb 25 05:11:02 2003
Also it's possible to avoid the island construction
process entirely (see ProcessIsland subroutine).
Simply iterate for all constraints. Again, should
be possible to parallelize the computation of several
constraints (that is, several iterations) if they
involve different bodies.
Sergi
PD: Thanks but I din't realize this algorithm alone.
I would like to note that the main contributor
was Antonio Martini.
-----Original Message-----
From: Gary R. Van Sickle [mailto:g.r.vansickle@worldnet.att.net]
Sent: martes, 25 de febrero de 2003 7:29
To: ode@q12.org
Subject: RE: [ODE] Constraint theorizing
> 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.
_______________________________________________
ODE mailing list
ODE@q12.org
http://q12.org/mailman/listinfo/ode