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