← Back to team overview

yade-users team mailing list archive

Re: hello? -help with a spinning bucket!

 




one hope is that instead of saying O.run(1000), you say O.iter, then calculate the new location of the zero point of the minor axis, then iterate again. the calculations of the new zero point location would take place outside the definitions/declarations of the engines, but the engines would never-the-less have access to, and make reference to, the new calculated zero point of the minor axis.

What about adding a user setable variable in rotation engine that would be the velocity of the reference points (or also rotational velocity relative to one reference -- heh sounds like nested rotations)? That way you don't have to update position, run(1,True), update position, run(1,True)... The rotation engine would have a function updating itself. With RefPoint velocity = 0 (default), it would be fixed rotation, like now. But if user set velocity=(1,0,0), the rotation axis will be translated of (1,0,0)*dt at each step (for instance). It doesn't prevent large displacement in only one step since you can always write velocity=dispYouWant/dt.

Also, if you really need this run(1)+update in the end, there is a better trick : you can use PeriodicPythonRunner to execute a command from inside the calculation loop without stopping it. I'm sure it is in the documentation, you can also see example usage in scripts (e.g. scripts/test/shear.py).

Cheers.

Bruno




I will test this theory..

--- On *Thu, 7/15/10, Michael Jensen /<jenmichael2000@xxxxxxxx>/* wrote:


    From: Michael Jensen <jenmichael2000@xxxxxxxx>
    Subject: Re: [Yade-users] hello? -help with a spinning bucket!
    To: yade-users@xxxxxxxxxxxxxxxxxxx
    Received: Thursday, July 15, 2010, 1:05 PM

    salutations once more :-D

    I have another question for you, very interested to know what the
    answer will be..

    one of the partial engines is the RotationEngine.  This engine
takes several variables, notably a bolean, a point, and an axis. so far so good. with a point and axis defined, everybody is happy.

    what if I want my point itself to move?  for example, I want my
    thing to rotate around an axis whose direction is fixed in time,
    but I want the location of that axis, defined by the point, to
    itself rotate around another point and axis, a second point/axis
    pair.  this is the situation that occurs when you have one object
    rotating, attached to another one that is also rotating.

    that is the most direct way to approach what I want to do.  the
    other way is to introduce the manually the forces that result when
    my bucket spinns, so that I don't have to make it spinn at all,
    and I can go ahead and add my second spinning device.

    I will have to implement one of these two solutions, or something
    equivalent, if my simulations are ever to completely represent my
    device.

    it seems to me like the first option should be relatively easy to
    code, if it does not yet exist, and that it could be a powerful
    way to extend yade, in that a user would not be limited to two
    such spinning things, but could in theory simulate much more
    complex motion.

    -mike




_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


--
_______________
Bruno Chareyre
Associate Professor
ENSE³ - Grenoble INP
Lab. 3SR
BP 53 - 38041, Grenoble cedex 9 - France
Tél : +33 4 56 52 86 21
Fax : +33 4 76 82 70 43
________________


Follow ups

References