← Back to team overview

yade-users team mailing list archive

[Question #688512]: polyhedra particle is passing the wall

 

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

Hi everyone
My code has 4 polyhedra particles, 2 of them are wall and fix, the other 2 particles should fall down and stay on walls but one of particles (green one) passes through the wall. The second particle does not pass the wall.
Why the green one passes the wall?What is its problem?
For testing,I has tried different properties of material, I mean increasing or decreasing density, young module, poisson ratio or frictionAngle, but none of them solve this problem.


ubuntu : 18.04
yade 2018.02b

here is my codes:

from yade import export,polyhedra_utils
import os
from yade import plot
import math
from yade import utils
import pylab
import matplotlib; matplotlib.rc('axes',grid=True)
from matplotlib import pyplot
import numpy as np
from numpy import *
from yade import export as expt

Dolomite = PolyhedraMat()
Dolomite.density = 2870 #kg/m^3 
Dolomite.young = 24.36e9 #Pa 
Dolomite.poisson = 0.2
Dolomite.frictionAngle = radians(55.12) #rad

Bound = PolyhedraMat()
Bound.density = 2870 #kg/m^3 
Bound.young = 60e10 #Pa 
Bound.poisson = 0.2
Bound.frictionAngle = radians(55.12) #rad

Shale = PolyhedraMat()
Shale.density = 2750 #kg/m^3 
Shale.young = 6e9 #Pa 
Shale.poisson = 0.23
Shale.frictionAngle = radians(42) #rad

v1=((3.80840249343969,4.0071,0.25),(4.10168443073866,4.00514568612972,0.25),(4.11564519594573,4.22873373182142,0.25),(3.83010741406799,4.13535598124846,0.25),(3.80840249343969,4.0071,0.25),(3.80840249343969,4.0071,-0.25),(4.10168443073866,4.00514568612972,-0.25),(4.11564519594573,4.22873373182142,-0.25),(3.83010741406799,4.13535598124846,-0.25),(3.80840249343969,4.0071,-0.25))
v2=((-2.49931484958066,-0.00101851609184,2),(-2.49931484958066,-1.05811862984014,2),(4.57134039401409,-1.05085707517961,2),(4.57126196395075,-0.00106929522008,2),(-2.49931484958066,-0.00101851609184,2),(-2.49931484958066,-0.00101851609184,-2),(-2.49931484958066,-1.05811862984014,-2),(4.57134039401409,-1.05085707517961,-2),(4.57126196395075,-0.00106929522008,-2),(-2.49931484958066,-0.00101851609184,-2))
v3=((6.74060748379946,3.00253856551901,2),(7.59942175653549,2.40210859046904,2),(5.30871392306244,-0.7578625393839,2),(4.57622461111727,0.00588266389075,2),(6.74060748379946,3.00253856551901,2),(6.74060748379946,3.00253856551901,-2),(7.59942175653549,2.40210859046904,-2),(5.30871392306244,-0.7578625393839,-2),(4.57622461111727,0.00588266389075,-2),(6.74060748379946,3.00253856551901,-2))
v4=((5.65881645402257,3.06264016950990,0.25),(5.87183172458837,3.21786437273975,0.25),(5.88119170365426,3.54514975549388,0.25),(5.83257618949696,3.6667153017607,0.25),(5.63774404261507,3.626888811484,0.25),(5.58705877827044,3.34599484278801,0.25),(5.65881645402257,3.0626401695099,0.25),(5.65881645402257,3.06264016950990,-0.25),(5.87183172458837,3.21786437273975,-0.25),(5.88119170365426,3.54514975549388,-0.25),(5.83257618949696,3.6667153017607,-0.25),(5.63774404261507,3.626888811484,-0.25),(5.58705877827044,3.34599484278801,-0.25),(5.65881645402257,3.0626401695099,-0.25))
O.bodies.append(polyhedra_utils.polyhedra(Dolomite,v=v1,fixed=False, color=(0.1,0.5,0.2), mask=3))
O.bodies.append(polyhedra_utils.polyhedra(Bound,v=v2,fixed=True, color=(1,0,1), mask=4))
O.bodies.append(polyhedra_utils.polyhedra(Bound,v=v3,fixed=True, color=(1,0,1), mask=4))
O.bodies.append(polyhedra_utils.polyhedra(Shale,v=v4,fixed=False, color=(0.9,0.81,0.45), mask=5))

for b in O.bodies:
    if b.mask is 3:
        b.state.blockedDOFs='zXY'
for b in O.bodies:
    if b.mask is 5:
        b.state.blockedDOFs='zXY'

def calm():
    for c in O.bodies:
        c.state.vel=Vector3(0,0,0)    
        c.state.angVel=Vector3(0,0,0)

O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Polyhedra_Aabb(),],verletDist=0.05), 
   InteractionLoop(
      [Ig2_Polyhedra_Polyhedra_PolyhedraGeom(),], 
      [Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys()], 
      [Law2_PolyhedraGeom_PolyhedraPhys_Volumetric()]   
   ),
   NewtonIntegrator(gravity=(0,-9.81,0),damping=0.2),
]

utils.calm()
O.engines=O.engines+[PyRunner(iterPeriod=20,command='calm()',label="calmRunner")]  
O.dt=50e-7
O.run(50000,True)
O.run()
calmRunner.dead=True


I would appreciate if you can help me


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