← Back to team overview

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 
O.bodies.append(geom.facetBox((0.5e-3,0.5e-3,0.5e-3),(0.5e-3,0.5e-3,0.5e-3), wallMask=31, material=FMat))
Cylinder1IDs=O.bodies.append(geom.facetBox((0.5e-3,0.5e-3,0.15e-3),(0.5e-3,0.5e-3,0.2e-3), wallMask=63, color=(0,1,0), wire=False, material=FMat))

# spreading process motions first harmonic vibratiion then stop 
def change_motion():
    if O.time > 0.4:
        harmEngineP1.dead = False 
        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:
      	# handle sphere+sphere and facet+sphere collisions
    HarmonicMotionEngine(dead=True,label='harmEngineP1', A=(0.0,0.0,1.5e-5), f=(0.0,0.0,60.0), ids=Cylinder1IDs), 
    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) 
## time step 
O.dt = 0.85*utils.PWaveTimeStep()
O.usesTimeStepper = False



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