← Back to team overview

yade-users team mailing list archive

Re: [Question #690777]: Polyhedrons escaping the shear box walls during deposition

 

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

Ali HAIDAR gave more information on the question:
I  am really sorry.
This one will work for sure after defining the list of vertices.
The problem is that after waiting for the polyhedrons to deposit, several polyhedrons will start escaping out of the box.
It needs time to inspect the problem since the deposition process is a little bit long.


from yade import plot,polyhedra_utils

m = PolyhedraMat()
m.density = 2607 #kg/m^3
m.frictionAngle = 0.05 #rad
#m.young = 1E10 #Pa
#m.poisson = 20000/1E6
m2= PolyhedraMat()
m2.frictionAngle = 0.3 #rad
m2.young = 1E300
x=.3
y=.3
z=.2
a=b=0.04
i=0
while a<=(x-0.05):
  while b<=(y-0.05):
    O.bodies.append([
                     polyhedra_utils.polyhedra(material=m,v=v1),
                     polyhedra_utils.polyhedra(material=m,v=v2),
                     polyhedra_utils.polyhedra(material=m,v=v3),
                     polyhedra_utils.polyhedra(material=m,v=v4),
                     polyhedra_utils.polyhedra(material=m,v=v5),
                     polyhedra_utils.polyhedra(material=m,v=v6),
                     polyhedra_utils.polyhedra(material=m,v=v7),
                     polyhedra_utils.polyhedra(material=m,v=v8),
                     polyhedra_utils.polyhedra(material=m,v=v9),
                     polyhedra_utils.polyhedra(material=m,v=v10),
                     polyhedra_utils.polyhedra(material=m,v=v11),
                     polyhedra_utils.polyhedra(material=m,v=v12),
                     polyhedra_utils.polyhedra(material=m,v=v13),
                     polyhedra_utils.polyhedra(material=m,v=v14),
                     polyhedra_utils.polyhedra(material=m,v=v15),
      ]
     )
    if i==0 or i==5 or i==13 or i==10:
      O.bodies[-1].state.pos=(a,b,.04-z)
      O.bodies[-2].state.pos=(a,b,.12-z)
      O.bodies[-3].state.pos=(a,b,.2-z)
      O.bodies[-4].state.pos=(a,b,.28-z)
      O.bodies[-5].state.pos=(a,b,.36-z)
      O.bodies[-6].state.pos=(a,b,.44-z)
      O.bodies[-7].state.pos=(a,b,.52-z)
      O.bodies[-8].state.pos=(a,b,.6-z)
      O.bodies[-9].state.pos=(a,b,.68-z)
      O.bodies[-10].state.pos=(a,b,.76-z)
      O.bodies[-11].state.pos=(a,b,.84-z)
      O.bodies[-12].state.pos=(a,b,.92-z)
      O.bodies[-13].state.pos=(a,b,1-z)
      O.bodies[-14].state.pos=(a,b,1.08-z)
      O.bodies[-15].state.pos=(a,b,1.16-z)
    if i==1 or i==6 or i==12 or i==8:
      O.bodies[-15].state.pos=(a,b,.04-z)
      O.bodies[-14].state.pos=(a,b,.12-z)
      O.bodies[-13].state.pos=(a,b,.2-z)
      O.bodies[-12].state.pos=(a,b,.28-z)
      O.bodies[-11].state.pos=(a,b,.36-z)
      O.bodies[-10].state.pos=(a,b,.44-z)
      O.bodies[-9].state.pos=(a,b,.52-z)
      O.bodies[-8].state.pos=(a,b,.6-z)
      O.bodies[-7].state.pos=(a,b,.68-z)
      O.bodies[-6].state.pos=(a,b,.76-z)
      O.bodies[-5].state.pos=(a,b,.84-z)
      O.bodies[-4].state.pos=(a,b,.92-z)
      O.bodies[-3].state.pos=(a,b,1-z)
      O.bodies[-2].state.pos=(a,b,1.08-z)
      O.bodies[-1].state.pos=(a,b,1.16-z)
    if i==4 or i==15 or i==11 or i==9:
      O.bodies[-12].state.pos=(a,b,.04-z)
      O.bodies[-3].state.pos=(a,b,.12-z)
      O.bodies[-9].state.pos=(a,b,.2-z)
      O.bodies[-5].state.pos=(a,b,.28-z)
      O.bodies[-10].state.pos=(a,b,.36-z)
      O.bodies[-15].state.pos=(a,b,.44-z)
      O.bodies[-4].state.pos=(a,b,.52-z)
      O.bodies[-1].state.pos=(a,b,.6-z)
      O.bodies[-6].state.pos=(a,b,.68-z)
      O.bodies[-8].state.pos=(a,b,.76-z)
      O.bodies[-2].state.pos=(a,b,.84-z)
      O.bodies[-7].state.pos=(a,b,.92-z)
      O.bodies[-11].state.pos=(a,b,1-z)
      O.bodies[-14].state.pos=(a,b,1.08-z)
      O.bodies[-13].state.pos=(a,b,1.16-z)
    if i==3 or i==7 or i==2 or i==14:
      O.bodies[-13].state.pos=(a,b,.04-z)
      O.bodies[-14].state.pos=(a,b,.12-z)
      O.bodies[-11].state.pos=(a,b,.2-z)
      O.bodies[-7].state.pos=(a,b,.28-z)
      O.bodies[-2].state.pos=(a,b,.36-z)
      O.bodies[-8].state.pos=(a,b,.44-z)
      O.bodies[-6].state.pos=(a,b,.52-z)
      O.bodies[-1].state.pos=(a,b,.6-z)
      O.bodies[-4].state.pos=(a,b,.68-z)
      O.bodies[-15].state.pos=(a,b,.76-z)
      O.bodies[-10].state.pos=(a,b,.84-z)
      O.bodies[-5].state.pos=(a,b,.92-z)
      O.bodies[-9].state.pos=(a,b,1-z)
      O.bodies[-3].state.pos=(a,b,1.08-z)
      O.bodies[-12].state.pos=(a,b,1.16-z)
    b=b+0.07
    i=i+1
  a=a+0.07
  b=0.04

f1=utils.facet([(0,0,0),(0,0,z),(x,0,0)],material=m2)
f2=utils.facet([(x,0,z),(0,0,z),(x,0,0)],material=m2)
f3=utils.facet([(x,0,z),(x,y,z),(x,0,0)],material=m2)
f4=utils.facet([(x,y,0),(x,y,z),(x,0,0)],material=m2)
f5=utils.facet([(x,y,0),(x,y,z),(0,y,z)],material=m2)
f6=utils.facet([(x,y,0),(0,y,0),(0,y,z)],material=m2)
f7=utils.facet([(0,0,0),(0,y,0),(0,y,z)],material=m2)
f8=utils.facet([(0,0,0),(0,0,z),(0,y,z)],material=m2)
f9=utils.facet([(0,0,0),(0,-.5*y,0),(x,-.5*y,0)],material=m2)
f10=utils.facet([(0,0,0),(x,-.5*y,0),(x,0,0)],material=m2)
f11=utils.facet([(0,0,z),(0,0,5*z),(x,0,z)],material=m2)
f12=utils.facet([(x,0,5*z),(0,0,5*z),(x,0,z)],material=m2)
f13=utils.facet([(x,0,5*z),(x,y,5*z),(x,0,z)],material=m2)
f14=utils.facet([(x,y,z),(x,y,5*z),(x,0,z)],material=m2)
f15=utils.facet([(x,y,z),(x,y,5*z),(0,y,5*z)],material=m2)
f16=utils.facet([(x,y,z),(0,y,z),(0,y,5*z)],material=m2)
f17=utils.facet([(0,0,z),(0,y,z),(0,y,5*z)],material=m2)
f18=utils.facet([(0,0,z),(0,0,5*z),(0,y,5*z)],material=m2)
O.bodies.append([f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18])
f19=utils.facet([(0,y,0),(0,1.5*y,0),(x,y,0)],fixed=True,material=m2)
f20=utils.facet([(x,y,0),(x,1.5*y,0),(0,1.5*y,0)],fixed=True,material=m2)
f=0
t=0
n=0
A=.3*.3
V=0.1
F=-13500
O.bodies.append([
  utils.facet([(0,0,0),(0,0,-z),(x,0,0)],material=m2,fixed=True),
  utils.facet([(x,0,-z),(0,0,-z),(x,0,0)],material=m2,fixed=True),
  utils.facet([(x,0,-z),(x,y,-z),(x,0,0)],material=m2,fixed=True),
  utils.facet([(x,y,0),(x,y,-z),(x,0,0)],material=m2,fixed=True),
  utils.facet([(x,y,0),(x,y,-z),(0,y,-z)],material=m2,fixed=True),
  utils.facet([(x,y,0),(0,y,0),(0,y,-z)],material=m2,fixed=True),
  utils.facet([(0,0,0),(0,y,0),(0,y,-z)],material=m2,fixed=True),
  utils.facet([(0,0,0),(0,0,-z),(0,y,-z)],material=m2,fixed=True),
  utils.facet([(x,0,-z),(0,0,-z),(0,y,-z)],material=m2,fixed=True),
  utils.facet([(x,0,-z),(x,y,-z),(0,y,-z)],material=m2,fixed=True),f19,f20
        ])

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Polyhedra_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb()],verletDist=0.1),
 InteractionLoop(
   [Ig2_Polyhedra_Polyhedra_PolyhedraGeom(),Ig2_Facet_Polyhedra_PolyhedraGeom(),Ig2_Wall_Polyhedra_PolyhedraGeom()],
   [Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys()],
   [Law2_PolyhedraGeom_PolyhedraPhys_Volumetric()]
         ),
 NewtonIntegrator(gravity=(0,0,-9.81),damping=0.5),
   ]

O.dt=.05*polyhedra_utils.PWaveTimeStep()

yade.qt.View()
O.run()
O.saveTmp()

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