[PeriTriaxController]Unstable behavior of frictionangle

Asked by jamespaul on 2019-02-23

Hi,

1. I use isotropic compression of particles with different frictionAngles to obtain different porosity.
2. After the completion of isotropic compression, the particles are changed into the same frictionAngle3 for one-dimensional compression, that is, only the z-axis surface is in motion.
3. My purpose is to observe the stress transformation in one-dimensional compression of samples with different porosity.

My question is:
If I use frictionAngle1, greater friction, the stress curve is smooth.
But if I use frictionAngle1, which is less friction, the stress curve has some frictional wobble.
Since the final particle properties are the same, why is the stress curve unstable?

Thanks a lot.

James

#################
# encoding: utf-8
from yade import pack, qt, plot

sigmaIso=-25000

O.periodic=True

frictionAngle1=0.0286
frictionAngle9=12.1339

frictionAngle11=14.03624347

sphere=O.materials.append(FrictMat(young=64e6,poisson=0.12,density=2650,frictionAngle=radians(frictionAngle1),label='sphere'))

length=.04

sp=pack.SpherePack()
sp.makeCloud((0,0,0),(length,length,length),rMean=.0025,rRelFuzz=.2,periodic=True)
n=sp.toSimulation(material=sphere)

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb()]),
 InteractionLoop(
  [Ig2_Sphere_Sphere_ScGeom()],
  [Ip2_FrictMat_FrictMat_FrictPhys()],
  [Law2_ScGeom_FrictPhys_CundallStrack()]
 ),
 PeriTriaxController(label='triax',
  goal=(sigmaIso,sigmaIso,sigmaIso),stressMask=7,
  dynCell=True,maxStrainRate=(1000,1000,1000),
  maxUnbalanced=3e-3,relStressTol=1e-3,
  growDamping=0,
  doneHook='compactionFinished()'
 ),
 NewtonIntegrator(damping=.1),
 PyRunner(command='num()',initRun=1,nDo=1),
]
O.dt=.5*PWaveTimeStep()
qt.Controller()
O.run()

def num():
    print(O.bodies[-1].id)

def addPlotData1():
 plot.addData(unbalanced=unbalancedForce(),i=O.iter,
  sxx=-triax.stress[0],syy=-triax.stress[1],szz=-triax.stress[2],
  exx=-triax.strain[0],eyy=-triax.strain[1],ezz=-triax.strain[2],
  q=-triax.stress[2]+0.5*(triax.stress[0]+triax.stress[1]),
  p=-(triax.stress[0]+triax.stress[1]+triax.stress[2])/3,
 )
 print('sxx=',-triax.stress[0],'syy=',-triax.stress[1],'szz=',-triax.stress[2])
 print('exx=',-triax.strain[0],'eyy=',-triax.strain[1],'ezz=',-triax.strain[2])
 print('p=',-(triax.stress[1]+triax.stress[0]+triax.stress[2])/3,'q=',triax.stress[1]-triax.stress[2])

plot.plots={'i':('unbalanced',),'i ':('sxx','syy','szz'),' i':('exx','eyy','ezz'),' p ':('q'),}
plot.plot()

def compactionFinished():
    print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
 print(porosity())
 O.engines += [PyRunner(command='addPlotData1()',iterPeriod=500)];
 for i in n:
         O.bodies[i].material.frictionAngle=radians(frictionAngle11)
 O.cell.trsf=Matrix3.Identity
 triax.dynCell=True
 triax.growDamping=0
 triax.goal=(0,0,-1000000)
 triax.maxStrainRate=(0,0,.1)
 triax.stressMask=4
 triax.maxUnbalanced=3e-3
 triax.doneHook='triaxFinished()'

def triaxFinished():
    print 'Finished'
    O.pause()

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
jamespaul
Solved:
2019-03-01
Last query:
2019-03-01
Last reply:
jamespaul (jamespauljames) said : #1

Solved

Jan Stránský (honzik) said : #2

For people coming here in the future, how did you solve it / what was the problem?

jamespaul (jamespauljames) said : #3

Sorry Jan,

In fact, the problem has not been solved. But since a lot of time has passed and no one has answered, I think it may not be an easy problem to solve. So I turned off the problem and didn't want to cause trouble to anyone else.