← 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: Needs information => Open

dan.wang gave more information on the question:
hi

I summarized the questions as following:

when i want to apply the total displacement (e.g., 20) on the top
particles with dt=1e-5 and total step is 100000, i think after the
simulation, the displacement of the top particles are exactly 20,
however, when i use the method talked above, the displacement of the top
particles are not the same, also not 20. Why this happen, is there any
misunderstanding of the O.dt?


the code is :
from yade import plot,qt, pack, 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.periodic=True   ### note!!!  add
O.dt=1e-5 


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 example
for b in bottom: b.state.blockedDOFs = 'xyzXYZ'

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

steps=100000
totalDisplacement=20.0

for i in range(0,steps):
        displacement=totalDisplacement/steps
        for b in top:
               b.state.vel[1] = displacement/ O.dt
               O.step()
        for b in top:
               b.state.vel = Vector3.Zero


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

Thanks!


Lei

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