← Back to team overview

yade-users team mailing list archive

[Question #688950]: period triaxial test and apply shear stress

 

New question #688950 on Yade:
https://answers.launchpad.net/yade/+question/688950

Hello, everyone, my program runs out of some problems, I  want to consult.

My code is divided into three parts,  generate particles in the packing,consolidate the packing to reach the required confining pressure,shear the packing to have the required initial shear stress, respectively.

When I applied the shear stress in the third part of the code , I applied the shear speed O.cell.velGrad[0,2]=0.01 to reach the initial shear stress, but the shear strain(gamma) was always 0, and the speed(.cell.velGrad[0,2]) printed on the terminal was always 0, 
I don't know why.

Here is my code
############################################
###    generate particles in the packing   ###
############################################
from yade import plot
from yade import pack,qt

O.periodic=True
O.cell.setBox(.016,.016,.016)
radius=0.4e-3
O.materials.append(FrictMat(young=70e9,poisson=0.3,frictionAngle=0.13,density=2650*1e4,label='spheres'))
sp=pack.SpherePack()
sp.makeCloud(minCorner=(0,0,0),maxCorner=(.016,.016,.016),psdSizes=[0.00045,0.000525,0.0006,0.000675,0.00075,0.000825,0.0009],psdCumm=[0,0.167,.333,.5,.667,0.833,1],num=10000,distributeMass=True,periodic=True)
O.bodies.append([utils.sphere(s[0],s[1]) for s in sp])
V_sphere=utils.getSpheresVolume()#Compute the total volume of spheres in the simulation, mask parameter is considered
V_cell=O.cell.hSize[0,0] * O.cell.hSize[1,1] * O.cell.hSize[2,2]
print 'void ratio:',(V_cell-V_sphere)/V_sphere,'dt:',utils.PWaveTimeStep()
O.save('gen-ball.xml')
qt.View()


############################################
###    consolidate the packing to reach the required confining pressure ###
############################################
from yade import plot,qt
from yade.pack import *
O=Omega() 
O.load('gen-ball.xml')
radius=0.4e-3
for b in O.bodies:
  b.mat.frictionAngle=0.119

V_sphere=utils.getSpheresVolume() #the volume of the sphere
O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb()],verletDist=.05*radius),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom()],
		[Ip2_FrictMat_FrictMat_MindlinPhys()],
		[Law2_ScGeom_MindlinPhys_Mindlin(includeMoment=False)]
	),
	PeriTriaxController(dynCell=True,maxUnbalanced=2e-3,relStressTol=2e-5,goal=[-1e5,-1e5,-1e5],stressMask=7,globUpdate=5,maxStrainRate=[0.1,0.1,0.1],doneHook='triaxDone()',label='triax'),
	NewtonIntegrator(damping=.2),
]

def triaxDone():
	print 'Here we are: stress',triax.stress,'strain',triax.strain,'stiffness',triax.stiff
	O.pause()
		
O.dt=0.4*utils.PWaveTimeStep()
O.run()
O.wait()


for b in O.bodies:
  b.mat.frictionAngle=0.46364


for i in O.interactions:
  i.phys.tangensOfFrictionAngle=tan(0.46364)

O.engines[3].maxStrainRate=[0,0,0]
O.engines[3].maxUnbalanced=1e-6
O.engines[3].relStressTol=1e-3  #Relative stress tolerance

for i in O.interactions:
  un=i.geom.penetrationDepth
  i.phys.unMax=un
O.save('Phase1.xml.bz2')

#######################################
###  shear the packing to have the required initial shear stress  ###"
#######################################
from yade.pack import *

O=Omega() 

O.load('Phase1.xml.bz2')

O.engines=O.engines[0:5]
O.engines[3].maxStrainRate=[0.01,0.01,0.01]
O.engines[3].maxUnbalanced=2e-4
O.run(1,True)

V_sphere=utils.getSpheresVolume() #the volume of the sphere

Pn=10000
cycle=0
g0=O.cell.hSize[0,2]*100.0/O.cell.hSize[2,2]#shear strain is used in %

def triaxDone():
	print 'Here we are: stress',triax.stress,'strain',triax.strain,'stiffness',triax.stiff
	O.pause()

O.cell.velGrad[0,2]=0.01
O.dt=utils.PWaveTimeStep()

time=0
count=0
count1=0
zero=1
stop=0
while 1:
  #O.run(time*10,True)
  O.run(100,True)
  count=count+1
  count1=count1+1
  gamma=O.cell.hSize[0,2]*100/O.cell.hSize[2,2]-g0
  stress=utils.getStress()
  sigmazx=stress[0,2]/-1000
  sigmazz=stress[2,2]/1000.0
  if abs(sigmazx)>26:
    count=0
    count1=0
    O.cell.velGrad[0,2]=0
    O.save('Circular-x25-y0-m.xml.bz2')
    break

  print 'Speed:',O.cell.velGrad[0,2],'time:',O.realtime,'cycle:',cycle,'szx:',sigmazx,'stop:',stop
   

   
Thanks for your help




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