[ODE] stepfast beta 2
David Whittaker
david at csworkbench.com
Fri Apr 18 22:19:02 2003
They are going to react differently, no doubt about that. The stepfast
solver isn't meant to be a drop-in perfect replacement regular solver,
it's meant to be a high speed, low memory alternative if you can deal with
the different measure of accuracy. CFM is actually useless (except for
creating the "spongy" effect) in the iterative solver... All joints are
solved individually, so there can be no singularities.
"The stack is less stable" could mean a few things...
A) it's more "spongy". Try increasing iterations... at somewhere around
50 for a pretty big stack, they seem about the same. I'm not suggesting
you run all your simulations at 50 iterations (though, with a big enough
system, it'll still be faster), I'm just pointing out that accuracy is
based on the number of iterations.
B) stuff tends to slide out from under other stuff if the stuff above or
below it is (even slightly) angled differently. This phenomenon is caused
by the fact that the top joints are solved, pushing it down at an angle,
then the bottom joints are solved, pushing it up at a different angle, for
a net reaction of sliding out from in between the top and bottom stuff.
Physically, this shouldn't happen with infinite friction, but it does.
The only way I can think to fix this behavior is to solve for all the
joints surrounding each body simultaneously, i.e. a box in a box wall may
have 16 joints (4 for each inner face)... but it's still cheaper than
computing the whole wall at once. But you basically end up calculating
each joint twice... I'll have to do some experimenting with that
approach... If it turns out that we get good stability increases for only
a minor speed hit, It might become yet another good alternative... a
compromise between the iterative single-joint method and the normal
entire-island-at-once method.
I'm not sure what you mean by "the bigger boxes are dragged by the smaller
ones" but if you meant the smaller ones slide out from under the bigger
ones, I know about that "bug" (and addressed it in B above).
David
> Hi David,
> I don't know weather or not you know about this
> issues, so I'll be brief:
> - comparing the regular solver and the stepfast looks
> like the stepfast reacts differently to stacks of
> boxes (see code)
> - the stack is less stable (but I think someone
> already posted something about that).
>
> To run the test_boxstack I attached please compile it
> as always and press 'g' to generate the plates
> (generate a new one when the old one gets to the
> ground) and ']' to switch between regular and
> stepfast. You will notice that the the bigger boxes
> are dragged by the smaller ones using the stepfast
> while using the regular solver they don't (a bug in
> the regular solver, maybe ?)
>
> I hope this helps,
>
> Best,
> Shaul.
>
> __________________________________________________
> Do you Yahoo!?
> The New Yahoo! Search - Faster. Easier. Bingo
> http://search.yahoo.com