yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #18246
Re: [Question #675377]: Straining rate in PeriTriaxController
Question #675377 on Yade changed:
https://answers.launchpad.net/yade/+question/675377
Description changed to:
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.