← Back to team overview

yade-users team mailing list archive

Re: Combining engines prescribing movement


is it possible to combine more engines prescribing movement? for example (I know there is HelixEngine implemented, but suppose for a while it is not :-) if I want to combine translation and rotation to create a helix, can I somehow combine them, or for every such combination would I need to implement new engine?
Hi Jan, you could combine engines, just put the one after another in O.engines, with the same ids.

Though looking at the code it is not clear to me how they work. E.g. TranslationEngine updates position and changes velocity as well. That means that the motion will be applied twice, unless the body is non-dynamic...?! Someone could comment on that? Am I overlooking something?

If I see it right, the combination would work "fine" on non-dynamic bodies (such as facets, which carry no mass), except for the velocity which would be bogus (the second engine would overwrite velocity of the first one).

Clearly, to make combination of such engines seamless, they would have to change velocity, but in such a way that this change only applies in the current step -- say adding vel and angVel to ForceContainer -- beside force, torque, displacement and rotation that we have already. Or perhaps displacement and rotation could be replaced by vel and angVel value, since displacement and rotation can always be obtained by vel=du/dt. What about that?

Cheers, v.

Follow ups