yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #21953
[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.