← Back to team overview

yade-users team mailing list archive

[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.