yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #10607
Re: [Question #258679]: Non conservation of energy when, simulation is loaded after saving
Question #258679 on Yade changed:
https://answers.launchpad.net/yade/+question/258679
Status: Open => Answered
Janek Kozicki proposed the following answer:
1. do you check energy at the end of first iteration, or at the beginning of first iteration?
2. do you have correct energy in 2nd iteration?
ipemath said: (by the date of Fri, 05 Dec 2014 18:06:52 -0000)
> Question #258679 on Yade changed:
> https://answers.launchpad.net/yade/+question/258679
>
> Description changed to:
> 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 pseudocode.
> **********************************************************************************************************
> 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 fet.write('%g\n'%(etotal))
>
> def stopCond():
> if O.iter>10000
> O.pause
> fet.close()
> O.save("1.xml.bz2")
> O.exitNoBacktrace()
>
> O.run()
> #######################################################
> Second Script:
> O.load("1.xml.bz2")
> ----------------------------
> Mindlin.calcEnergy=True
> fet=open('egtotal.dat','a') #Append to the existing values
> -------------------------------
> 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 fet.write('%g\n'%(etotal)) def stopCond():
> if O.iter>20000
> O.pause
> fet.close()
> O.save("1.xml.bz2")
> O.exitNoBacktrace()
>
> O.run()
> ****************************************************************************************
> The above given are excerpts from the script I am using and this
> strategy doesnt conserve the energy. It dips sharply when the
> second script starts running.
>
> I request the help of the yade experts in finding a solution to this
> problem.
>
> --
> 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 : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>
--
Janek Kozicki http://janek.kozicki.pl/ |
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.