yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #26578
[Question #699362]: The uniaxial compression experiment fails to reach the critical state
New question #699362 on Yade:
https://answers.launchpad.net/yade/+question/699362
After isotropic consolidation, the confining pressure remains unchanged in the X and Y directions, and the axial compression in the Z-axis direction is 40%, which has not yet reached the critical state. Usually, the critical state can be reached at 25% of the axial strain. Why is this? The procedure is as follows:
from __future__ import print_function
from yade import pack, qt, plot
from math import *
nRead=readParamsFromTable(
## model parameters
num_spheres=30000,
targetPorosity= .32,
confiningPressure=-50000,
## material parameters
compFricDegree=25,#contact friction during the confining phase
finalFricDegree=30,#contact friction during the deviatoric loading
young=2e8,
poisson=.2,
density=2650,
alphaKr=7.5,
alphaKtw=0,
competaRoll=.1,
finaletaRoll=.1,
etaTwist=0,
normalCohesion=0,
shearCohesion=0,
## fluid parameters
fluidDensity=1000,
dynamicViscosity=.001,
## control parameters
damp=0,
stabilityThreshold=.001,
## output specifications
filename='suffusion',
unknowOk=True
)
from yade.params.table import *
O.load('compactedStatesuffusion25.yade.gz')
##__________________________________third section, deviatoric loading__________________________
triax.width0=aabbDim()[0]
triax.height0=aabbDim()[1]
triax.depth0=aabbDim()[2]
# change control type: keep constant confinement in x,y, 40% compression in z
triax.stressMask=3
triax.goal3=-.1
triax.goal1=confiningPressure
triax.goal2=confiningPressure
# enable energy tracking in the code
O.trackEnergy=True
# define function to record history
def history():
sig_xx=-triax.stress(triax.wall_right_id)[0]
sig_yy=-triax.stress(triax.wall_top_id)[1]
sig_zz=-triax.stress(triax.wall_front_id)[2]
plot.addData(unbalanced=unbalancedForce(),i=O.iter,exx=-triax.strain[0],
eyy=-triax.strain[1], ezz=-triax.strain[2],
sxx=sig_xx,syy=sig_yy,szz=sig_zz,
ev=-triax.strain[0]-triax.strain[1]-triax.strain[2],
dsratio=(-sig_zz+sig_xx)/((-sig_xx-sig_yy-sig_zz)/3.0),
porosity=porosity(),Etot=O.energy.total(),**O.energy# save all available energy data
)
O.engines=O.engines+[PyRunner(command='history()',iterPeriod=500)]
t0=O.time
while True:
O.run(1000,True)
print('running',-triax.strain[2])
unb=unbalancedForce()
if unb<stabilityThreshold and abs(-.4-triax.strain[2])/0.4<0.001:
break
# define what to plot
plot.plots={'i':('unbalanced','porosity'),' i':('sxx','syy','szz',None,'exx','eyy','ezz'),' ezz':('dsratio'),'ezz':('ev')}
# show the plot
plot.plot()
# save plot data
plot.saveDataTxt('uneroded_soil.txt')
The calculation result is shown in the figure in the link:
https://ibb.co/Yc7jbbQ
Obviously the volumetric strain is still changing and has not reached the critical state
--
You received this question notification because your team yade-users is
an answer contact for Yade.