← Back to team overview

yade-users team mailing list archive

Re: [Question #677865]: how to apply displacement on the DEM model

 

Question #677865 on Yade changed:
https://answers.launchpad.net/yade/+question/677865

    Status: Solved => Open

dan.wang is still having a problem:
hi Jan

when I try your method, it seems that the displacement is applied on the
top of the particles, but there is no interactions between particles,
why this happens?

the total code is:

###
from yade import plot,qt
from yade.pack import *
from yade import pack, plot, ymport

O.materials.append(CpmMat(damLaw=0,young=170e9,density=4800,frictionAngle=atan(0.8),poisson=0.4,sigmaT=20e8,epsCrackOnset=0.8e-4,relDuctility=300,label='cpm'))
kw={'material':'cpm'}
O.bodies.append(ymport.gengeoFile('geo_crack.geo',shift=Vector3(0.0,0.0,0.0),scale=1.0,**kw))


O.dt=1e-7 


EnlargeFactor=1.0
O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=EnlargeFactor,label='bo1s')]),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=EnlargeFactor,label='ig2ss')],
		[Ip2_CpmMat_CpmMat_CpmPhys()],[Law2_ScGeom_CpmPhys_Cpm()]),
	NewtonIntegrator(),
	

]
#only XY directions are needed
for b in O.bodies:
        b.state.blockedDOFs='zXY'
###
bottom = [b for b in O.bodies if b.state.pos[1] < 9.66] 
for b in bottom: b.state.blockedDOFs = 'xyzXYZ'

top = [b for b in O.bodies if b.state.pos[1] > 140.6]

for b in top:
        b.state.vel[1] = -1.0/ O.dt
        O.step()


#####

the geo_crack.geo file is shown in the original questions.

Thanks!

Lei

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