# polyhedra particle is passing the wall

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

here is my codes:

import os
import math
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

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

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

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))

for b in O.bodies:
b.state.blockedDOFs='zXY'
for b in O.bodies:
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()

I would appreciate if you can help me

## Question information

Language:
English Edit question
Status:
Solved
For:
Assignee:
No assignee Edit question
Solved by:
Jérôme Duriez
Solved:
2020-02-10
Last query:
2020-02-10
2020-02-05
 Jérôme Duriez (jduriez) said on 2020-02-05: #1

Hi,

It's because Yade is mercyless when you use something without knowing all underlying features.. (and the doc [*] could indeed be more explicit here).

With mask = 3 (= 11 in binary), your green particle has not any mask-bit in common with the "walls" (mask = 4 = 100 in binary) and they can not interact [**] => one passes across another without any problem.

PS: why did you use mask here ?...