yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #12983
[Question #295592]: Problems for allowBiggerThanPeriod
New question #295592 on Yade:
https://answers.launchpad.net/yade/+question/295592
hi, everyone.
allowBiggerThanPeriod can be used for large deformation. However, i found that if the shear strain is largger than a specific value (e.g. 2.8 in the following script), the contact stress would decrease to zero. Initially, i thought shear dilation cause this phenomenon. So i checked the volume fraction, which kept constant in the shear process since the spheres were frictionless. So, how to explain this. Here is my script.
/****************************/
O.periodic=True
O.cell.refSize=(2,2,2)
from yade import pack,plot,qt
O.bodies.append(pack.regularHexa(pack.inAlignedBox((0,0,0),(2,2,2)),radius=.1,gap=0,color=(0,0,1)))
O.materials[0].frictionAngle=0
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()],allowBiggerThanPeriod=True,verletDist=0.01),
InteractionLoop(
[Ig2_Sphere_Sphere_L3Geom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_L3Geom_FrictPhys_ElPerfPl()]
),
NewtonIntegrator(damping=.4),
PyRunner(command='checkStress()',realPeriod=1,label='checker'),
PyRunner(command='addData()',iterPeriod=100)
]
O.dt=.2*PWaveTimeStep()
O.cell.velGrad=Matrix3(-.1,0,0, 0,-.1,0, 0,0,-.1)
limitMeanStress=-5e5
def checkStress():
stress=sum(normalShearStressTensors(),Matrix3.Zero)
print 'mean stress',stress.trace()/3.
if abs(stress.trace()/3.) > abs(limitMeanStress):
O.cell.velGrad=Matrix3(0,0,.1, 0,0,0, 0,0,0)
checker.command='checkDistorsion()'
O.materials[0].frictionAngle=.5 # radians
for i in O.interactions: i.phys.tangensOfFrictionAngle=tan(.5)
def checkDistorsion():
if abs(O.cell.trsf[0,2])> 3.0:
plot.saveDataTxt(O.tags['id']+'.txt')
O.pause()
def addData():
stress=sum(normalShearStressTensors(),Matrix3.Zero)
plot.addData(exz=O.cell.trsf[0,2],szz=stress[2,2],sxz=stress[0,2],tanPhi=stress[0,2]/stress[2,2],i=O.iter,vf=1-utils.porosity(),z=utils.avgNumInteractions())
plot.plots={'i':('exz'),'exz':('szz','sxz'),'i ':('tanPhi'), 'i':('z')}
Gl1_Sphere.stripes=True
plot.plot()
O.saveTmp()
/****************************/
--
You received this question notification because your team yade-users is
an answer contact for Yade.