← Back to team overview

yade-users team mailing list archive

[Question #678742]: [PeriTriaxController]Unstable behavior of frictionangle

 

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

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()


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