simulation problem between sphere and polyhedra

Asked by lip on 2019-05-17

hello
i was simulating the contact between sphere and polyhedra, but there is a problem:when the particle When particles come into contact with the boundary which formed by polyhedra with fixed position, it It bounces up and then fly away,moreover, the polyhedra paticle just get though the boundary, and finally only a few sphere left in the contain form by polyhedron boundary.
below is part of my code:
from yade import polyhedra_utils,pack,plot,utils
import random

n = FrictMat(young=1e9,poisson=.2)

O.materials.append(n)

#the boundary of particle flow
v1=((0,0,0),(0,3.2,0),(0,0,6),(0,3.2,6),(-0.1,0,0),(-0.1,3.2,0),(-0.1,0,6),(-0.1,3.2,6))
v2=((0,0,0),(0,0,6),(18,0,0),(18,0,6),(0,0.1,0),(0,0.1,6),(18,0.1,0),(18,0.1,6))
v3=((0,3.1,0),(0,3.1,6),(18,3.1,0),(18,3.1,6),(0,3.2,0),(0,3.2,6),(18,3.2,0),(18,3.2,6))
v4=((0,0,0),(0,3.2,0),(18,3.2,0),(18,0,0),(0,0,-0.1),(0,3.2,-0.1),(18,3.2,-0.1),(18,0,-0.1))
v5=((3,0.1,0),(3,3.1,0),(3,0.1,6),(3,3.1,6),(3.1,0.1,0),(3.1,3.1,0),(3.1,0.1,6),(3.1,3.1,6))
b1 = polyhedra_utils.polyhedra(material=n,v=v1,fixed=True) # you can set wire at
b2 = polyhedra_utils.polyhedra(material=n,v=v2,fixed=True)
b3 = polyhedra_utils.polyhedra(material=n,v=v3,fixed=True)
b4 = polyhedra_utils.polyhedra(material=n,v=v4,fixed=True)
wall = polyhedra_utils.polyhedra(material=n,v=v5,fixed=True)
b2.shape.wire=True

O.bodies.append((b1,b2,b3,b4,wall))

#polyhedra_utils.fillBox((0,0,0),(10,10,20),m,seed=1)

#sphere particles mixed with polyhedra
sp=pack.SpherePack()
sp.makeCloud((0,0,10),(3,3,30),psdSizes=[0.1,0.5,0.8],psdCumm=(0.5,0.8,1),seed=1)

for center,radius in sp:
    if radius >= 0.3:
        t = polyhedra_utils.polyhedra(n,(radius,radius,radius))
        t.state.pos = center # sets polyhedron position according to sphere position
        O.bodies.append(t)
    else:
        t = sphere(center,radius,material=n)
        O.bodies.append(t)
#simulation
O.engines = [
    ForceResetter(),
    InsertionSortCollider([Bo1_Polyhedra_Aabb(),Bo1_Sphere_Aabb()]),
    InteractionLoop(
        [Ig2_Polyhedra_Polyhedra_ScGeom(),
         Ig2_Sphere_Polyhedra_ScGeom(),
         Ig2_Sphere_Sphere_ScGeom()],
        [Ip2_FrictMat_FrictMat_FrictPhys()],
        [Law2_ScGeom_FrictPhys_CundallStrack()] # 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=5e-5

i would appreciate if if you can help me

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
2019-05-17
Last reply:
2019-06-02
Launchpad Janitor (janitor) said : #1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Jan Stránský (honzik) said : #2

Hello, sorry for late answer.

> When particles come into contact with the boundary which formed by polyhedra with fixed position, it It bounces up and then fly away,moreover, the polyhedra paticle just get though the boundary, and finally only a few sphere left in the contain form by polyhedron boundary.

all the symptoms might be from too long time step. What happens if you use lower (2x, 10x, 100x) value?

cheers
Jan