Question #704090 on Yade changed:
https://answers.launchpad.net/yade/+question/704090

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hello,

TLTR: basically you cannot "blindly" copy-paste pieces of code and
expect them to work as you want.

please provide a MWE [1].
M = minimal, e.g. deleted commented parts of code (which is otherwise only 
confusing)

basically, in [2] (please link directly related questions) the provided MWE is 
the approach
- run something: O.step() or O.run(N,True)
- do something: O.cell.velGrad = ...

You are here using PyRunner. You then have to use completely different approach.
In PyRunner, first of all, do not use O.step() inside the "command" function.
Rather assign O.cell.velGrad based e.g. on O.iter or some similar condition. 
E.g.
###
O.engines = [
    ...
    PyRunner(iterPeriod=1,command="checkStress()", ...), # iterPeriod=1 (!!!)
]

def checkStress(): # checkStress name for function setting velGrad ???
    if O.iter == 1000:
        O.cell.velGrad = someValue1
    if O.iter == 2000:
        O.cell.velGrad = someValue2
    ...
###

Or you can use virtPeriod and use some counter, "remembering" which cycle it is 
in etc.
Or ... many options

a side note: do not use realPeriod for serious simulations

Cheers
Jan

[1] https://www.yade-dem.org/wiki/Howtoask
[2] https://answers.launchpad.net/yade/+question/703791

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

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

Reply via email to