← Back to team overview

yade-dev team mailing list archive

Re: [Bug 1026073] [NEW] "calm function" inside source code

 

Hello Christian,

I would say it will be faster in c++ (as almost anything :-). Esepcially
here you can save a lot of time by changing allocation of new Vector3r
object for each particle to just rewriting doubles.

As the place I would use Shop.*pp file for c++ code and utils module for
python interface (if nobody else disagree).

regards
Jan


2012/7/18 Christian Jakob <1026073@xxxxxxxxxxxxxxxxxx>

> Public bug reported:
>
> Hi,
>
> I need a "calm function" for my generation process. In python code it
> looks like this:
>
> def calm():
>         for b in O.bodies:
>                 if isinstance(b.shape,Sphere) or b.isClump:
>                         b.state.vel             = Vector3(0,0,0)
>                         b.state.angVel  = Vector3(0,0,0)
>                         b.state.angMom  = Vector3(0,0,0)
>
> I detected, that it is very slow in the case it is called by PyRunner
> for e.g. every 2 steps.
>
> O.engines=O.engines+[PyRunner(iterPeriod=2,command='calm()')]
>
> Would it be faster, when it is implemented inside C++ source code?
> If yes, where can I implement it (which file)?
>
> Regards,
>
> Christian
>
> ** Affects: yade
>      Importance: Wishlist
>          Status: New
>
> --
> You received this bug notification because you are a member of Yade
> developers, which is the registrant for Yade.
> https://bugs.launchpad.net/bugs/1026073
>
> Title:
>   "calm function" inside source code
>
> Status in Yet Another Dynamic Engine:
>   New
>
> Bug description:
>   Hi,
>
>   I need a "calm function" for my generation process. In python code it
>   looks like this:
>
>   def calm():
>         for b in O.bodies:
>                 if isinstance(b.shape,Sphere) or b.isClump:
>                         b.state.vel             = Vector3(0,0,0)
>                         b.state.angVel  = Vector3(0,0,0)
>                         b.state.angMom  = Vector3(0,0,0)
>
>   I detected, that it is very slow in the case it is called by PyRunner
>   for e.g. every 2 steps.
>
>   O.engines=O.engines+[PyRunner(iterPeriod=2,command='calm()')]
>
>   Would it be faster, when it is implemented inside C++ source code?
>   If yes, where can I implement it (which file)?
>
>   Regards,
>
>   Christian
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/yade/+bug/1026073/+subscriptions
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev
> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-dev
> More help   : https://help.launchpad.net/ListHelp
>

References