Iterative solver (again) [Was: Re: [ODE] Russ' plans for ODE?]

Antonio_Martini at scee.net Antonio_Martini at scee.net
Tue Apr 27 10:33:33 MST 2004





you may me interested in:

http://www.shaderx2.com/shaderx.PDF

where a projected Jacobi method is mentioned.

and also in:

http://vcg.isti.cnr.it/people/vcgpeople/mendoza/jnrr.pdf

if you look carefully the first jacobi iteration started with force=0 is the same as step fast where off diagonal elements disappear. so it looks
like that step fast is like running the first iteration, setting the force to zero and running the first iteration again.

Antonio









Nguyen Binh <ngbinh at glassegg.com>@q12.org on 27/04/2004 04:30:08

Please respond to Nguyen Binh <ngbinh at glassegg.com>

Sent by:    ode-bounces at q12.org


To:    Antonio_Martini at scee.net
cc:    ODE at q12.org
Subject:    Re[2]: Iterative solver (again) [Was: Re: [ODE] Russ' plans for
       ODE?]


        Guys!

        I think ODE iterative solver is OK. We can optimize it a
        little : use more specialized solver for small matrix as we
        just need 1X1 to 6x6 matrix.

        The problem now is some of us didn't use StepFast1 properly.
        After playing with Novodex, I found out that they use a
        iterative solver like StepFast1(old story, every one know).
        Of course, Novodex's solver is much more well designed, they
        employ many optimizations like : Auto disable (But maybe much
        more better than ODE's), contacts filter and a very robust
        collision code. But beside that, they also have a different
        use of time step in simulation. Generally, they divided a
        single step to many small steps, each small step is about 1/60
        (their default value). It's really different from what many of
        ODE's users (including me) had done. We use much more small
        tiny step. For example, if I wished my simulation ran at 60Hz,
        I will :

            dWorldStepFast1 (world,REAL(1.0)/60, 5);

         So, out tiny step will be 1/600!!! I think it's too small to
         make "logical" and useful simulation. It will be much better
         if :

            dWorldStepFast1 (world,REAL(1.0)/60*5, 5);

         I had tested this thing, it works pretty believable and damn
         fast. But to make this approach useable, we need much more
         robust collider. We need collider that can survive from very
         "dangerous" situation, i.e : a sphere completely stuck inside
         a box but then safely "slide" out or else the simulation may
         explode.

         FYI : Here is code excerpt from Novodex Personal SDK.
         ( Adam and Pierre! Please don't shoot me if I violates some
         licences)

        /**
        Advances the simulation by an elapsedTime time.  If elapsedTime is
        large, it is internally
        subdivided into up to maxIter integration steps no larger than
        maxTimestep. The timestep method of
        TIMESTEP_FIXED is strongly preferred for stable, reproducible
        simulation.
        */
        virtual void  runFor(NxF32 elapsedTime, NxF32
        maxTimestep=1.0f/60.0f, NxU32 maxIter=8, NxTimeStepMethod
        method=NX_TIMESTEP_FIXED) = 0;


--
Best regards,

---------------------------------------------------------------------
   Nguyen Binh
   Software Engineer
   Glass Egg Digital Media

   E.Town Building
   7th Floor, 364 CongHoa Street
   Tan Binh District,
   HoChiMinh City,
   VietNam,

   Phone : +84 8 8109018
   Fax   : +84 8 8109013

     www.glassegg.com
---------------------------------------------------------------------

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








**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
postmaster at scee.net

This footnote also confirms that this email message has been checked
for all known viruses.

**********************************************************************
 SCEE 2004



More information about the ODE mailing list