New question #258679 on Yade:
https://answers.launchpad.net/yade/+question/258679

Hai everyone,

This is my first post in this forum. I am also a relatively new user. I am 
presently trying to understand yade by solving a problem of projectile 
impingement on a particle bed. Because of the restriction in SuperComuputer 
usage time, I have to save and reload the interval after certain fixed number 
of iterations. Hence I am using multiple python scripts. The first one sets the 
problem, runs the problem for a fixed no of iterations and saves it. Then the 
second script reopens the saved simulation and runs it futher for some more 
steps. In the course of simulation I am monitoring kinematic variables and 
total energy of the system. In the case of the strategy mentioned 
above(multiple scripts), the energy is not conserved. There is a sharp drop in 
energy when the second script is run. But if I used a single python script to 
run the simulation for the same number of steps, the energy is conserved. Below 
I would like to give below the important points of my scripts in the form of a 
pseudoc
 ode.

First Script.

#Create the spheres(Uniform sized ones for the bed, a bigger on with an initial 
velocity as projectile)
#Create the enclosing walls for the bed
O.engine[
ForceResetter(),
.........................................
InteractionLoop(
.........................................
........................................
[Law2_ScGeom_MindlinPhys_Mindlin(label='Mindlin')]
),
PyRunner(initRun=True,iterPeriod=50,command='myFunction()'),
PyRunner(initRun=True,iterPeriod=50,command='stopCond()'),
]   
-------------------------
Mindlin.calcEnergy=True
fet=open('egtotal.dat','w')
------------------------------
def myFunction():
        pe_normal  = Mindlin.normElastEnergy() # normal PE
        pe_shear  = Mindlin.shearEnergy # shear PE
        norm_damp_dissip = Mindlin.normDampDissip # normal diss
        shear_damp_dissip = Mindlin.shearDampDissip # shear diss
        fric_dissip = Mindlin.frictionDissipation # loss due to friction
        E_tracker         = dict(O.energy.items())
        E_kin_trans = E_tracker['kinTrans']
        E_kin_rotation = E_tracker['kinRot']
        etotal =  pe_normal + pe_shear + E_kin_trans + E_kin_rotation + 
fric_dissip + norm_damp_dissip + shear_damp_dissip # total energy


-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to