yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #19101
[Question #678796]: Periodic triaxial test
New question #678796 on Yade:
https://answers.launchpad.net/yade/+question/678796
hello all,
1. How can I control strain in the "PeriTriaxController"?
2.Is it possible to add shear on the boundary condition with this engine?
3. another question is that I can not draw diagram of Stress in compaction direction vs strain in compaction direction. what is the problem in your opinion?
my code is:
from yade import utils, plot
from yade import pack, qt
from datetime import datetime
O.periodic=True
O.cell.refSize=(2e-1,2e-1,2e-1)
O.materials.append(CohFrictMat(normalCohesion= 1e20, shearCohesion= 1e20, isCohesive= True, young=6.81e8, density=1377.5, poisson=0.3, frictionAngle= 0.31, fragile=False, label='Coke'))
nums=['t']
mats=['Coke']
coke=(5e-3,1000)
nums=pack.SpherePack()
nums.makeCloud((0,0,0),(2e-1,2e-1,2e-1),rMean=coke[0],rRelFuzz=1e-4,num=coke[1])
O.bodies.append([utils.sphere(c,r,material=mats[0]) for c,r in nums])
sigmaIso=-1e5
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=(10,10,10),
maxUnbalanced=.1,relStressTol=1e-3,
doneHook='compactionFinished()'
),
NewtonIntegrator(damping=0.4),
PyRunner(command='addPlotData()',iterPeriod=100),
]
O.dt=0.5*PWaveTimeStep()
def addPlotData():
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])
# print 'normal stress', triax.stress[2]
# print 'normal strain', triax.strain[2]
plot.plots={('ezz'):('szz')}
plot.plot()
def compactionFinished():
O.cell.trsf=Matrix3.Identity
triax.goal=(sigmaIso,sigmaIso,-.2)
triax.stressMask=3
triax.maxStrainRate=(10,10,10)
triax.doneHook='triaxFinished()'
triax.maxUnbalanced=10
def triaxFinished():
print 'Finished'
O.pause()
The code does not draw "plot.plots={('ezz'):('szz')}". I was wondering if you could help me to fix this problem. Thank you very much for your help in advance.
Best Regards
Alireza
--
You received this question notification because your team yade-users is
an answer contact for Yade.