How to reach target confining stress in triaxial test
Hi,
I am using [1] for simulating a triaxial test. The following MWE is from [1] and only some parameters are modified (damp, targetPorosity, stabilityThresh
My question is, after the confining process is completed, the confining pressure doesn't reach our desired pressure which is 10kPa, the mean stress and other 3 stresses are:
meanStress: 9997.34994518; top: 9649.20616727 ;right: 9842.19217112 ;front :10510.4130631.
It is very nice for meanStress, but the value of other 3 directions are far from the target goal, and this results in the stress-strain curve doesn't start from origin point.
Here is the MWE, it takes about 30 seconds to run it.
#####
from yade import pack, plot
nRead=readParam
num_spheres=2000,
compFricDegree = 30,
key='_
unknownOk=True
)
from yade.params import table
num_spheres=
key=table.key
targetPorosity = 0.7
compFricDegree = table.compFricD
finalFricDegree = 30
rate=-0.01
damp=0.4
stabilityThresh
young=5e7
confinement=10e3
mn,mx=Vector3(
O.materials.
O.materials.
## create walls around the packing
walls=aabbWalls
wallIds=
sp=pack.
sp.makeCloud(
O.bodies.
Gl1_Sphere.
triax=TriaxialS
maxMultiplier=
finalMaxMultip
thickness = 0,
stressMask = 7,
internalCompac
)
newton=
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
## We will use the global stiffness of each body to determine an optimal timestep (see https:/
GlobalStiffnes
triax,
TriaxialStateR
newton
]
Gl1_Sphere.
if nRead==0: yade.qt.
triax.goal1=
while 1:
O.run(1000, True)
unb=unbalance
print 'unbF:',unb,' meanStress: ',-triax.
if unb<stabilityTh
break
print "### Isotropic state saved ###"
##### below is what I tried, but it seems doesn't work
# while 1:
# O.run(100, True)
# print ' meanStress: ',-triax.
# 'right:
# if abs(-confinemen
# abs(-confinemen
# abs(-confinemen
# abs(-confinemen
# break
import sys
while triax.porosity>
# we decrease friction value and apply it to all the bodies and contacts
compFricDegree = 0.95*compFricDegree
setContactFric
print "\r Friction: ",compFricDegree," porosity:
sys.stdout.flush()
# while we run steps, triax will tend to grow particles as the packing
# keeps shrinking as a consequence of decreasing friction. Consequently
# porosity will decrease
O.run(500,1)
#O.save(
print "### Compacted state saved ###"
print 'meanStress: ',-triax.
triax.internalC
setContactFrict
triax.stressMask = 5
triax.goal2=rate
triax.goal1=
triax.goal3=
newton.damping=0.4
O.saveTmp()
def history():
plot.addData(
ev=-
s11=
s22=
s33=
dev=
i=O.iter)
def stopIfDamaged():
if -triax.
O.pause()
plot.
if 1:
O.engines=
plot.plots=
plot.labels=
plot.plot()
###########
The commented part of code is what I tried to let the stress reach our target value. but it seems doesn't work since the top, front and right stress doesn't change even after run it for several hours.
Could you please give some instruction about how to reach target confining stress?
Thanks
Leonard
[1]https:/
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Leonard
- Solved:
- Last query:
- Last reply: