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

Hello,

I have done several tests with the two bouncing balls simulation, which I 
modified a little for the saving of the energies. 
I wanted to see the behaviour of the energy saved under 
O.energy['nonviscdamping'], and if it corresponds to the energy dissipated with 
the damping given in the NewtonIntegrator. 
My results seems to show that the energy 'nonviscdamping' is related to the 
energies linked to a contact (so here elastic and plastic energies but not 
gravity) ...
Could you enlighten me about what is saved under O.energy['nonviscdamping'] ? I 
can't find any answer in the Yade Doc.
Thanks in advance !

The script : 
# basic simulation showing sphere falling ball gravity,
# bouncing against another sphere representing the support
from yade import plot

# DATA COMPONENTS

file_name='BB_d0.001'

# add 2 particles to the simulation
# they the default material (utils.defaultMat)
O.bodies.append([sphere(center=(0,0,0),radius=.5,fixed=True),sphere((0,0,2),.5)])

O.trackEnergy=True

# FUNCTIONAL COMPONENTS

# simulation loop -- see presentation for the explanation
O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb()]),
   InteractionLoop(
      [Ig2_Sphere_Sphere_ScGeom()],        # collision geometry
      [Ip2_FrictMat_FrictMat_FrictPhys()], # collision "physics"
      [Law2_ScGeom_FrictPhys_CundallStrack()]   # contact law -- apply forces
   ),
   # Apply gravity force to particles. damping: numerical dissipation of energy.
   NewtonIntegrator(gravity=(0,0,-9.81),damping=0.001),
   PyRunner(command='addData()',iterPeriod=100)
]

def addData():
    #print 'Ee : %.5f'%(O.energy['elastPotential'])
    plot.addData(i=O.iter,time=O.time,pos=O.bodies[1].state.pos[2],
                 vel=O.bodies[1].state.vel[2],Ec=O.energy['kinetic'],
                 Eg=O.energy['gravWork'],Ee=O.energy['elastPotential'],
                 Damp=O.energy['nonviscDamp'])
    if O.iter>3*10**6:
        plot.saveDataTxt(file_name+'.txt')
        O.pause()
        
# set timestep to a fraction of the critical timestep
# the fraction is very small, so that the simulation is not too fast
# and the motion can be observed
O.dt=5*10**-5

# save the simulation, so that it can be reloaded later, for experimentation
O.saveTmp()


-- 
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