yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #06718
Re: [Branch ~yade-dev/yade/trunk] Rev 2654: 1. HelixEngine updated, dublicated code deleted.
Hi,
After a quick look at rotation engine, one suggestion.
Better precision would be obtained by defining "secant" velocity instead
of "tangent".
(1) Currently ("tangent") : vel = spin.cross(l), then vel*dt is only
approximating the exact circular trajectory (if vel*dt is large, then
the object will go away from rotation axis.
(2) It could be something like ("secant") : vel =
(rotatedPos-currentPos)/dt = (q*(pos-axisPt)-pos)/dt
Then the integration would be exact and pos-axisPt length would be constant.
q is computed at KinematicEngines.cpp:90 but not used currently.
Bruno
Follow ups
References