[ODE] world update - best practices?
Hendrix_ at gmx.net
Thu May 24 16:11:42 MST 2007
AFAIK there is exactly one optimal "W" to a matrix that you solve by
SOR, it is between 1.0 and 2.0.
The convergence speed varies if you deviate from this optimal "W".
Most of the time, a rule-of-thumb "W" is known for that particular
problem (or someone found out about it by trial-and-error), and you
should use just that.
It is a good idea to underestimate the "W", because convergence speed
drops very quickly if you use a larger value than the optimal "W".
Wikipedia is very technical:
And the linked article is okay:
Note: you can set a "W" smaller than 1.0. This is not "foolish" as
stated in the linked articel - it is called "underrelaxation". But
you dont need that for constant matrices.
The iterations of SOR are very cheap (and time is linear to the
number SOR iterations). So if you have idle time in your game, it is
best spent there.
You can have ODE print the "error" of the solution if you make that
"#if"-statement true at the end of the SOR function. I dont know how
that "error" relates to the error in the body-velocities in your
On 25. May 2007, at 0:34 Uhr, Mark Williams wrote:
>> Also, the dWorldStep integrator uses no iterations, if that's what
>> want (note: AFAICT they are iterations in the over-relaxation solver,
>> not sub-steps).
> What's the relationship (if any) between the "SOR over-relaxation
> parameter" set by dWorldSetQuickStepW and the number of iterations?
> not too experienced with the internals of solvers but would like to be
> able to tweak these parameters in a meaningful way to yield better
> ODE mailing list
> ODE at ode.org
More information about the ODE