[ODE] Russ: [..]making the iterative solver fully stable[...]

Erin Catto erincatto at sbcglobal.net
Sun Jul 3 15:10:33 MST 2005


Contact caching is used to provide the Projected Successive Over Relaxation
(PSOR) constraint solver (aka QuickStep) with a better initial guess. As it
stands now, ODE guesses that all contact forces are zero each step. This is
a poor guess. 

PSOR has great performance, but poor convergence. To get a good estimate of
the exact contact forces, it is necessary to amortize the computation over
several steps. This is precisely what is called for in dynamic simulation
for games:

- Slow moving bodies benefit from caching because they need accurate forces
to stack in a stable manner (less jitter).
- Fast moving bodies don't benefit from caching, but everything is moving so
fast that accurate forces are not needed.

I have written a paper on the matter:

http://www.gphysics.com/files/IterativeDynamics.pdf

Erin

-----Original Message-----
From: ode-bounces at q12.org [mailto:ode-bounces at q12.org] On Behalf Of
jnilson_99 at yahoo.com
Sent: Sunday, July 03, 2005 1:36 AM
To: Aras Pranckevicius; ode at q12.org
Subject: Re: [ODE] Russ: [..]making the iterative solver fully stable[...]

"How is warm starting (e.g. using part of previous
solution as an initial guess for the iterative solver)
relate to some "solver error and crashing"?"

because if you have to "warm start" you have
encountered an error somewhere, thus the data you are
working with are no longer valid.

if that's the case then ask the question: "how did i
get here?".....

if the answer is because of some sort of failure, then
ask "what caused the failure?"

otherwise how would you ever get into the position of
re-starting the solver?

john

--- Aras Pranckevicius <nearaz at gmail.com> wrote:

> > "so that the solver can be warm started."
> > 
> > doesn't that imply recovering from some sort of
> error
> > at run time? why not just find the error, fix it,
> > check in the source code and thus prevent the
> solver
> > from crashing?
> 
> How is warm starting (e.g. using part of previous
> solution as an
> initial guess for the iterative solver) relate to
> some "solver error
> and crashing"?
> 
> -- 
> Aras 'NeARAZ' Pranckevicius
> http://nesnausk.org/nearaz |
> http://nearaz.blogspot.com
> 
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
> 

_______________________________________________
ODE mailing list
ODE at q12.org
http://q12.org/mailman/listinfo/ode




More information about the ODE mailing list