[ODE] world update - best practices?

Patrick Enoch 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  
>> you
>> 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?  
> I'm
> 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
> simulations.
> Cheers,
> Mark
> _______________________________________________
> ODE mailing list
> ODE at ode.org
> http://ode.org/mailman/listinfo/ode

More information about the ODE mailing list