# yade-users team mailing list archive

## [Question #681232]: Sphere goes through the facet wall in Harmonic vibration

```New question #681232 on Yade:

Hi, in my case there are lots of spheres in one box and a piston in the bottom of the box. Then the piston does harmonic vibration. I find when the vibration amplitude goes to high, the spheres go through the piston, which is constructed by facet. I want to know the reason and fix it. In addition, the density is amplified by a factor of 1e9 to increase the calculation speed. And also I want to know how to define the word of "rigid" in yade. In my case, the box is rigid and the spheres are relatively soft. Does it make sense if i set the young's modulus of the box material as 100 times of that of the sphere material?

Following is my code,

# PhysicalParameters
muS = 0.57735
muF = 0.17632
FricAngleS = math.atan(muS)
FricAngleF = math.atan(muF)
densitys_ac = 8150*1e9
densityw_ac = 2700*1e9
yongmodu = 195e9
poisn = 0.3

# material model
matSph = CohFrictMat(density=densitys_ac, young=yongmodu, poisson=poisn, frictionAngle=FricAngleS, momentRotationLaw=True)
SMat = O.materials.append(matSph)
matFacet = CohFrictMat(density=densityw_ac, young=yongmodu, poisson=poisn, frictionAngle=FricAngleF, momentRotationLaw=True)
FMat = O.materials.append(matFacet)

## box and piston

# spreading process motions first harmonic vibratiion then stop
def change_motion():
if O.time > 0.4:
harmEngineP1.A = (0.0,0.0,0.35e-3*0.25)
elif O.time > 0.5:
harmEngineP1.A = (0, 0, 0)
harmEngineP1.f = (0, 0, 0)

#define engines:
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
# handle sphere+sphere and facet+sphere collisions
[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Facet_Sphere_ScGeom6D()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]
),
PyRunner(iterPeriod=100,command='change_motion()'),
NewtonIntegrator(damping=0.75, exactAsphericalRot=True, gravity=(0,0,-9.81)),
#   	VTKRecorder(iterPeriod=2000, recorders=['spheres','colors'], fileName='./vtu/t3-SS316L_60um.vtu'),
]
## generation particles
sp = pack.SpherePack()
sp.makeCloud((0,0,0.35e-3), (1.0e-3,1.0e-3,1.2e-3), rMean=40e-6, rRelFuzz=40e-6)
sp.toSimulation(material=SMat)
## time step
O.dt = 0.85*utils.PWaveTimeStep()
O.usesTimeStepper = False

O.run()

Thanks,
Xuesong

--