← Back to team overview

yade-users team mailing list archive

[Question #660155]: Final velocity

 

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

I am in doubt as to the plot of a clump. I want to plot the speed of an object falling freely in different output positions. However in different positions the final speed is the same, as follows the scripts:

from yade import pack, plot, qt, utils
import sys
raio=0.0015 
global angulo
angulo=0


materialsoja=CohFrictMat(density=788,young=10.9e6,poisson=0.3,alphaKr=0.05,frictionAngle=radians(31.8),label="milho")
idsoja=O.materials.append(materialsoja)

O.bodies.appendClumped([
#camada1
sphere([0,-2*raio,10*raio],raio,material=idsoja),
sphere([0,-1*raio,9.95*raio],raio,material=idsoja),
sphere([0,2*raio,10*raio],raio,material=idsoja),
sphere([0,1*raio,9.95*raio],raio,material=idsoja),
sphere([0,0,9.95*raio],raio,material=idsoja),

#camada2
sphere([0,-1.95*raio,9*raio],raio,material=idsoja),
sphere([0,1.95*raio,9*raio],raio,material=idsoja),
sphere([0,-0.95*raio,9*raio],raio,material=idsoja),
sphere([0,0.95*raio,9*raio],raio,material=idsoja),
sphere([0,0,9*raio],raio,material=idsoja),

#camada3
sphere([0,-1.9*raio,8*raio],raio,material=idsoja),
sphere([0,1.9*raio,8*raio],raio,material=idsoja),
sphere([0,-0.9*raio,8*raio],raio,material=idsoja),
sphere([0,0.9*raio,8*raio],raio,material=idsoja),
sphere([0,0,8*raio],raio,material=idsoja),

#camada4
sphere([0,-1.85*raio,7*raio],raio,material=idsoja),
sphere([0,1.85*raio,7*raio],raio,material=idsoja),
sphere([0,-0.85*raio,7*raio],raio,material=idsoja),
sphere([0,0.85*raio,7*raio],raio,material=idsoja),
sphere([0,0,7*raio],raio,material=idsoja),

#camada5
sphere([0,-1.8*raio,6*raio],raio,material=idsoja),
sphere([0,1.8*raio,6*raio],raio,material=idsoja),
sphere([0,-0.8*raio,6*raio],raio,material=idsoja),
sphere([0,0.8*raio,6*raio],raio,material=idsoja),
sphere([0,0,6*raio],raio,material=idsoja),


#camada6
sphere([0,-1.75*raio,5*raio],raio,material=idsoja),
sphere([0,1.75*raio,5*raio],raio,material=idsoja),
sphere([0,-0.75*raio,5*raio],raio,material=idsoja),
sphere([0,0.75*raio,5*raio],raio,material=idsoja),
sphere([0,0,5*raio],raio,material=idsoja),

#camada7
sphere([0,-1.7*raio,4*raio],raio,material=idsoja),
sphere([0,1.7*raio,4*raio],raio,material=idsoja),
sphere([0,-0.7*raio,4*raio],raio,material=idsoja),
sphere([0,0.7*raio,4*raio],raio,material=idsoja),
sphere([0,0,4*raio],raio,material=idsoja),

#camada8
sphere([0,-1.65*raio,3*raio],raio,material=idsoja),
sphere([0,1.65*raio,3*raio],raio,material=idsoja),
sphere([0,-0.7*raio,3*raio],raio,material=idsoja),
sphere([0,0.7*raio,3*raio],raio,material=idsoja),
sphere([0,0,3*raio],raio,material=idsoja),

#camada9
sphere([0,-1.6*raio,2*raio],raio,material=idsoja),
sphere([0,1.6*raio,2*raio],raio,material=idsoja),
sphere([0,-0.7*raio,2*raio],raio,material=idsoja),
sphere([0,0.7*raio,2*raio],raio,material=idsoja),
sphere([0,0,2*raio],raio,material=idsoja),

#camada10
sphere([0,-1.55*raio,raio],raio,material=idsoja),
sphere([0,1.55*raio,raio],raio,material=idsoja),
sphere([0,-0.7*raio,raio],raio,material=idsoja),
sphere([0,0.7*raio,raio],raio,material=idsoja),
sphere([0,0,raio],raio,material=idsoja)
])

O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
   InteractionLoop(
      [Ig2_Sphere_Sphere_L3Geom(),Ig2_Facet_Sphere_L3Geom()],
      [Ip2_FrictMat_FrictMat_FrictPhys()],
      [Law2_L3Geom_FrictPhys_ElPerfPl()]
   ),
   DragEngine(ids=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],Cd=0.6, Rho=1.225),
   NewtonIntegrator(damping=0.05,gravity=(0,0,-9.81),label="NI"),
   PyRunner(command='para()',iterPeriod=10000),
   PyRunner(iterPeriod=1000,command="plotAddData()"),
  
]

def para():
	if O.time>=7:
		O.pause()


O.dt=utils.PWaveTimeStep()

O.saveTmp()

#O.run()

def plotAddData():
   v = O.bodies[0].state.vel
   vz = v[2]
   plot.addData(
      iter = O.iter,
      time = O.time,
      vz = vz,
   )
plot.plots = {'time':'vz'}
plot.plot()



and now modificad

from yade import pack, plot, qt, utils
import sys
raio=0.0015 
global angulo
angulo=0


materialsoja=CohFrictMat(density=788,young=10.9e6,poisson=0.3,alphaKr=0.05,frictionAngle=radians(31.8),label="milho")
idsoja=O.materials.append(materialsoja)

O.bodies.appendClumped([
#camada1
sphere([0,-2*raio,10*raio],raio,material=idsoja),
sphere([0,-1*raio,9.95*raio],raio,material=idsoja),
sphere([0,2*raio,10*raio],raio,material=idsoja),
sphere([0,1*raio,9.95*raio],raio,material=idsoja),
sphere([0,0,9.95*raio],raio,material=idsoja),

#camada2
sphere([0,-1.95*raio,9*raio],raio,material=idsoja),
sphere([0,1.95*raio,9*raio],raio,material=idsoja),
sphere([0,-0.95*raio,9*raio],raio,material=idsoja),
sphere([0,0.95*raio,9*raio],raio,material=idsoja),
sphere([0,0,9*raio],raio,material=idsoja),

#camada3
sphere([0,-1.9*raio,8*raio],raio,material=idsoja),
sphere([0,1.9*raio,8*raio],raio,material=idsoja),
sphere([0,-0.9*raio,8*raio],raio,material=idsoja),
sphere([0,0.9*raio,8*raio],raio,material=idsoja),
sphere([0,0,8*raio],raio,material=idsoja),

#camada4
sphere([0,-1.85*raio,7*raio],raio,material=idsoja),
sphere([0,1.85*raio,7*raio],raio,material=idsoja),
sphere([0,-0.85*raio,7*raio],raio,material=idsoja),
sphere([0,0.85*raio,7*raio],raio,material=idsoja),
sphere([0,0,7*raio],raio,material=idsoja),

#camada5
sphere([0,-1.8*raio,6*raio],raio,material=idsoja),
sphere([0,1.8*raio,6*raio],raio,material=idsoja),
sphere([0,-0.8*raio,6*raio],raio,material=idsoja),
sphere([0,0.8*raio,6*raio],raio,material=idsoja),
sphere([0,0,6*raio],raio,material=idsoja),


#camada6
sphere([0,-1.75*raio,5*raio],raio,material=idsoja),
sphere([0,1.75*raio,5*raio],raio,material=idsoja),
sphere([0,-0.75*raio,5*raio],raio,material=idsoja),
sphere([0,0.75*raio,5*raio],raio,material=idsoja),
sphere([0,0,5*raio],raio,material=idsoja),

#camada7
sphere([0,-1.7*raio,4*raio],raio,material=idsoja),
sphere([0,1.7*raio,4*raio],raio,material=idsoja),
sphere([0,-0.7*raio,4*raio],raio,material=idsoja),
sphere([0,0.7*raio,4*raio],raio,material=idsoja),
sphere([0,0,4*raio],raio,material=idsoja),

#camada8
sphere([0,-1.65*raio,3*raio],raio,material=idsoja),
sphere([0,1.65*raio,3*raio],raio,material=idsoja),
sphere([0,-0.7*raio,3*raio],raio,material=idsoja),
sphere([0,0.7*raio,3*raio],raio,material=idsoja),
sphere([0,0,3*raio],raio,material=idsoja),

#camada9
sphere([0,-1.6*raio,2*raio],raio,material=idsoja),
sphere([0,1.6*raio,2*raio],raio,material=idsoja),
sphere([0,-0.7*raio,2*raio],raio,material=idsoja),
sphere([0,0.7*raio,2*raio],raio,material=idsoja),
sphere([0,0,2*raio],raio,material=idsoja),

#camada10
sphere([0,-1.55*raio,raio],raio,material=idsoja),
sphere([0,1.55*raio,raio],raio,material=idsoja),
sphere([0,-0.7*raio,raio],raio,material=idsoja),
sphere([0,0.7*raio,raio],raio,material=idsoja),
sphere([0,0,raio],raio,material=idsoja)
])

O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
   InteractionLoop(
      [Ig2_Sphere_Sphere_L3Geom(),Ig2_Facet_Sphere_L3Geom()],
      [Ip2_FrictMat_FrictMat_FrictPhys()],
      [Law2_L3Geom_FrictPhys_ElPerfPl()]
   ),
   DragEngine(ids=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],Cd=0.6, Rho=1.225),
   NewtonIntegrator(damping=0.05,gravity=(-9.81,0,0),label="NI"),
   PyRunner(command='para()',iterPeriod=10000),
   PyRunner(iterPeriod=1000,command="plotAddData()"),
  
]

def para():
	if O.time>=7:
		O.pause()


O.dt=utils.PWaveTimeStep()

O.saveTmp()

#O.run()

def plotAddData():
   v = O.bodies[0].state.vel
   vz = v[0]
   plot.addData(
      iter = O.iter,
      time = O.time,
      vz = vz,
   )
plot.plots = {'time':'vz'}
plot.plot()

I believe that Yade is not calculating the projection area of the whole clump, but of only one sphere. Is it possible to make the Yade calculate velocities considering the different potions of the falling particle?

Thank you very much.

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