particle get through the facet

Asked by lip

hello
i have created a box by yade.utils.facet, but the particle always get through the boundary consist of facet and only a part of particle collision with the facet. i thought it maybe bacouse i set the value of timestep is too high, so i change it to a more low value, but it did not work. what confused me is that when i change the boundary to wall, everything is just fine. here is my code:

from yade import polyhedra_utils,pack,plot,utils
import random

m = PolyhedraMat()
m.density = 2600 # kg/m^3
m.young = 1E6 # Pa
m.poisson = 20000 / 1E6
m.frictionAngle = 0.6 # rad\

v1=((0,0,0),(0,0,10),(20,0,10))
v2=((0,0,0),(20,0,0),(20,0,10))
v3=((20,0,0),(20,10,10),(20,10,0))
v4=((20,0,0),(20,10,10),(20,0,10))
v5=((20,10,0),(0,10,10),(20,10,10))
v6=((20,10,0),(0,10,10),(0,10,0))
v7=((0,0,0),(0,10,10),(0,0,10))
v8=((0,0,0),(0,10,10),(0,10,0))
v9=((0,0,0),(20,10,0),(0,10,0))
v10=((0,0,0),(20,10,0),(20,0,0))

O.bodies.append(utils.facet(v1,material=m))
O.bodies.append(utils.facet(v2,material=m))
O.bodies.append(utils.facet(v3,material=m))
O.bodies.append(utils.facet(v4,material=m))
O.bodies.append(utils.facet(v5,material=m))
O.bodies.append(utils.facet(v6,material=m))
O.bodies.append(utils.facet(v7,material=m))
O.bodies.append(utils.facet(v8,material=m))
O.bodies.append(utils.facet(v9,material=m))
O.bodies.append(utils.facet(v10,material=m))

O.bodies.append(utils.wall(10, axis=0, sense=1, material=m))

O.bodies.append(utils.wall(-2, axis=2, sense=1, material=m))
polyhedra_utils.fillBox((0,0,0),(10,10,40),m,seed=1)

O.engines = [
    ForceResetter(),
    InsertionSortCollider([Bo1_Polyhedra_Aabb(), Bo1_Wall_Aabb(), Bo1_Facet_Aabb()]),
    InteractionLoop(
        [Ig2_Wall_Polyhedra_PolyhedraGeom(), Ig2_Polyhedra_Polyhedra_PolyhedraGeom(),
         Ig2_Facet_Polyhedra_PolyhedraGeom()],
        [Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys()], # collision "physics"
        [Law2_PolyhedraGeom_PolyhedraPhys_Volumetric()] # contact law -- apply forces
    ),
    # GravityEngine(gravity=(0,0,-9.81)),
    NewtonIntegrator(damping=0.5, gravity=(0, 0, -9.81)),
    PyRunner(command='checkUnbalanced()', realPeriod=3, label='checker')
]
O.dt=1e-2

# enable energy tracking; any simulation parts supporting it
# can create and update arbitrary energy types, which can be
# accessed as O.energy['energyName'] subsequently
O.trackEnergy=True
# if the unbalanced forces goes below .05, the packing
# is considered stabilized, therefore we stop collected
# data history and stop
def checkUnbalanced():
   if unbalancedForce()<.05:
      O.pause()
      O.bodies.erase(1)
      O.run()
      #plot.saveDataTxt('bbb.txt.bz2')
      # plot.saveGnuplot('bbb') is also possible

# collect history of data which will be plotted
def addPlotData():
   # each item is given a names, by which it can be the unsed in plot.plots
   # the **O.energy converts dictionary-like O.energy to plot.addData arguments
   plot.addData(i=O.iter,unbalanced=unbalancedForce(),**O.energy)

# define how to plot data: 'i' (step number) on the x-axis, unbalanced force
# on the left y-axis, all energies on the right y-axis
# (O.energy.keys is function which will be called to get all defined energies)
# None separates left and right y-axis
plot.plots={'i':('unbalanced',None,O.energy.keys)}

# show the plot on the screen, and update while the simulation runs
plot.plot()

O.saveTmp()

i would appreciate if you can help me

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

> m.young = 1E6

One reason could be that the stiffness is too low and interaction forces are not high enough to prevent particles passing through the cylinder. Try to increase the stiffness (young parameter)

> when i change the boundary to wall, everything is just fine

What happens if you use one big facet instead of two for the bottom?

cheers
Jan

Can you help with this problem?

Provide an answer of your own, or ask lip for more information if necessary.

To post a message you must log in.