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