← Back to team overview

yade-users team mailing list archive

[Question #675377]: Straining rate in PeriTriaxController

 

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

Hi all,

I have a question regarding PeriTriaxController. In the following simple simulation, when I assign the same strain rate to exx, eyy, and exy, the increments of strain I measure at end () are NOT the same (which I think should be, unless I am not understanding the process clearly).

Now, if I reset the cell transformation by activating the following block in the script ....

#O.cell.trsf=Matrix3.Identity
#O.run(1,True)

... with this modification the increments become almost the same. 

My questions are:
1) why the same rates produce different strain increments?
2) why resetting the cell transformation changes the increments of strain afterwards? 
 

I really appreciate if you can help me understand what I am doing wrong. This has been bugging me for more than a week now.

Thanks a lot!

--------------------------------------------------


from yade import pack,qt

O.periodic=True
O.cell.setBox(.1,.1,.1)
sp=pack.SpherePack()
radius=5e-3
num=sp.makeCloud((0,0,0),(.1,.1,.1),radius,.2,500,periodic=True) 
O.bodies.append([sphere(s[0],s[1]) for s in sp])


O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb()],verletDist=.05*radius),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom()],
		[Ip2_FrictMat_FrictMat_FrictPhys()],
		[Law2_ScGeom_FrictPhys_CundallStrack()]
	),
	PeriTriaxController(dynCell=True,mass=0.2,maxUnbalanced=0.01,relStressTol=0.02,goal=[-1e4,-1e4,0],stressMask=3,globUpdate=5,maxStrainRate=[1.,1.,1.],label='triax'),
	NewtonIntegrator(damping=.2),
]
O.dt=PWaveTimeStep()

		
while 1:
  O.run(1000, True)
      
  unb=unbalancedForce()
  print 'unbalanced force:',unb,' xx stress=',triax.stressTensor[0,0], ' yy stress=',triax.stressTensor[1,1] 
  if unb<1e-3 and abs((-1e4-triax.stressTensor[0,0])/-1e4)<1e-3 and abs((-1e4-triax.stressTensor[1,1])/-1e4)<1e-3:
    break


rate = 1e-5

triax.stressMask=4
O.cell.velGrad=Matrix3(0,rate,0, 0,0,0, 0,0,0) # (du/dx, du/dy, du/dz, dv/dx, dv/dy, dv/dz, dw/dx, dw/dy, dw/dz)
triax.maxStrainRate = [rate,rate,0.0]  
#triax.growDamping = 0.0

########   to be activated for comparison

#O.cell.trsf=Matrix3.Identity
#O.run(1,True)

##############


eps_xx, eps_yy = triax.strain[0], triax.strain[1]  
#eps_xx, eps_yy = O.cell.trsf[0,0], O.cell.trsf[1,1] 
eps_xy = O.cell.trsf[0,1]

dummy_deps = -1
triax.goal=[-100,-100 ,triax.stressTensor[2,2]] #-100 is meaningless. Just to make sure straining is occurring in the right diretion 
nT = 100        
O.run(nT,True)

dexx = triax.strain[0] - eps_xx
deyy = triax.strain[1] - eps_yy
dexy = O.cell.trsf[0,1] - eps_xy

print 'dexx=', dexx, '   deyy=',deyy, '   dexy=',dexy

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