← Back to team overview

yade-users team mailing list archive

Re: [Question #688994]: pore pressure in periodic triaxial test

 

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

Chareyre proposed the following answer:
Hello, pore pressure refers to the pressure of a pore fluid. You are not
simulating a pore fluid, and therefore the notion is irrelevant. Effective
stress is nothing but total stress. And there is no «consolidation» in the
sense of Terzaghi (reason why I was confused when you used that name for
isotropic confinment).
Bruno



Le mer. 26 févr. 2020 09:14, yangsiyuan <
question688994@xxxxxxxxxxxxxxxxxxxxx> a écrit :

> New question #688994 on Yade:
> https://answers.launchpad.net/yade/+question/688994
>
> Hello everyone:
>
> In the numerical simulation of the periodic triaxial undrained test, the
> effective stress remains unchanged after cyclic shear stress is applied
> again. I want to know why the effective stress does not decrease and how
> the pore pressure is considered in the periodic triaxial test. Here's my
> code, hoping to get some advice.
>
> ############################################
> ###    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()
> 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()
> 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()
> O.save('Phase1.xml.bz2')
>
> #######################################
> ###  cyclic shear   ###"
> #######################################
> from yade.pack import *
> O=Omega()
> O.load('Phase1.xml.bz2')
> cycle=0
> g0=O.cell.hSize[0,2]*100.0/O.cell.hSize[2,2]
>
> O.dt=utils.PWaveTimeStep()
> O.cell.velGrad=Matrix3(0,0,-0.01,0,0,0,0,0,0)
> time=0
> count=0
> count1=0
> zero=1
> stop=0
> count2=0
> while 1:
>   O.run(100,True)
>   count=count+1
>   count1=count1+1
>   gamma=O.cell.hSize[0,1]*100/O.cell.hSize[1,1]-g0
>   if count==32:
>     count=0
>
>   stress=utils.getStress()
>   sigmazx=stress[0,2]/-1000
>   sigmazz=stress[2,2]/1000.0
>   if sigmazx>25:
>     count=0
>     count1=0
>     count2=count2+1
>     O.cell.velGrad=Matrix3(0,0,0.01,0,0,0,0,0,0)
>   if sigmazx<-25:
>     count=0
>     count1=0
>     count2=count2+1
>     O.cell.velGrad=Matrix3(0,0,-0.01,0,0,0,0,0,0)
>
>   print
> 'Speed:',O.cell.velGrad[0,2],'time:',O.realtime,'cycle:',cycle,'szx:',sigmazx,'stop:',stop
>   if count2==2:
>     cycle=cycle+1
>     count2=0
>   if count1==4:
>     defData(cycle)
>     count1=0
>   if gamma>2:
>     O.save('gamma3.xml.bz2')
>     break
>
>
> Thank you very much!
>
>
> --
> You received this question notification because your team yade-users is
> an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>
>
>

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