FLAC3D Theory and Background • Constitutive Models

Drained Triaxial Tests of Erksak Sand using CASM

Note

The project file for this example is available to be viewed/run in FLAC3D. The project’s main data files are shown at the end of this example.

The Clay-and-Sand model is used to simulate the isotropiccaly consolidated triaxial drained (CD) tests for Erksak Sand. Three tests are selected: very dense sample with initial \(e_0\) = 0.59 and \(p_0\) = 130 kPa, medium dense sample with initial \(e_0\) = 0.677 and \(p_0\) = 60 kPa, and loose sample with initial \(e_0\) = 0.82 and \(p_0\) = 200 kPa.

The input parameters are based on Yu (1998). The material properties are summarized in the table:

critical-state-1

\(\Gamma\)

0.8167

critical-state-2

\(\lambda\)

0.0135

ratio-critical

\(M\)

1.2

pressure-reference

\(p_{ref}\)

100 (kPa)

kappa

\(\kappa\)

0.005

poisson

\(\nu\)

0.3

potential-exponent

\(m\)

2.0

yield-exponent

\(n\)

4.0

spacing-ratio

\(R\)

6792

break

../../../../../_images/casm-erksaksand-dense-etae1.png

Figure 1: Simulation of \(q/p\) vs. axial strain for drained triaxial tests for \(e_0\) = 0.59 and \(p_0\) = 130 kPa.

../../../../../_images/casm-erksaksand-dense-eve1.png

Figure 2: Simulation of volumetric strain vs. axial strain for drained triaxial tests for \(e_0\) = 0.59 and \(p_0\) = 130 kPa.

../../../../../_images/casm-erksaksand-medium-etae1.png

Figure 3: Simulation of \(q/p\) vs. axial strain for drained triaxial tests for \(e_0\) = 0.677 and \(p_0\) = 200 kPa.

../../../../../_images/casm-erksaksand-medium-eve1.png

Figure 4: Simulation of volumetric strain vs. axial strain for drained triaxial tests for \(e_0\) = 0.677 and \(p_0\) = 200 kPa.

../../../../../_images/casm-erksaksand-loose-etae1.png

Figure 5: Simulation of \(q/p\) vs. axial strain for drained triaxial tests for \(e_0\) = 0.82 and \(p_0\) = 60 kPa.

../../../../../_images/casm-erksaksand-loose-eve1.png

Figure 6: Simulation of volumetric strain vs. axial strain for drained triaxial tests for \(e_0\) = 0.82 and \(p_0\) = 60 kPa.

References

Yu, H.S. CASM: a unified state parameter model for clay and sand. International Journal for Numerical and Analytical Methods in Geomechanics, 22(8), 612-753 (1998).

Data File

main datafile:

program call "drained_loose.dat"
program call "drained_medium.dat"
program call "drained_dense.dat"
program call "check.dat"

drained_dense datafile:

model new
; Drained Triaxial Compression Test, Very Dense Sample
model large-strain off
zone create brick size 1 1 1
zone cmodel assign clay-and-sand
; 
zone property critical-state-1 0.8167
zone property critical-state-2 0.0135
zone property pressure-reference 100.0
zone property kappa 0.005
zone property ratio-critical 1.2
zone property yield-exponent 4
zone property potential-exponent 2
zone property spacing-ratio 6792
zone property poisson 0.3
zone property void-initial 0.59
;
[global cell = -130.0]
zone initialize stress xx [cell] yy [cell] zz [cell]
zone face apply stress-xx [cell] range position-x 1
zone face apply stress-yy [cell] range position-y 1

zone property stress-initial [tensor(cell,cell,cell,0,0,0)]
;
[global zvel = -1e-6]
zone face apply velocity-z [zvel] range position-z 1
zone face apply velocity-x 0 range position-x 0
zone face apply velocity-y 0 range position-y 0
zone face apply velocity-z 0 range position-z 0
;
[global zn = zone.near(0.5,0.5,0.5)]
[global gp = gp.near(1.0,1.0,1.0)]
fish define ev
    local str = zone.stress(zn)
    global q1 = str->xx - str->zz
    global p1 = -(str->xx + str->yy + str->zz)/3. - zone.pp(zn)
    global e1 = -gp.disp.z(gp)*100. 
    global ev = zone.strain.vol.inc(zn)*100
    global eta = q1/p1
end

;
fish history name '1' q1
fish history name '2' p1
fish history name '3' e1
fish history name '4' ev
fish history name '5' eta
;
history interval 200
model solve-static cycles 50000

model save "ErksakSand-Dense-Drained"

drained_medium datafile:

model new
; Drained Triaxial Compression Test, Medium Dense Sample
model large-strain off
zone create brick size 1 1 1
zone cmodel assign clay-and-sand
; 
zone property critical-state-1 0.8167
zone property critical-state-2 0.0135
zone property pressure-reference 100.0
zone property kappa 0.005
zone property ratio-critical 1.2
zone property yield-exponent 4
zone property potential-exponent 2
zone property spacing-ratio 6792
zone property poisson 0.3
zone property void-initial 0.677
;
[global cell = -60.0]
zone initialize stress xx [cell] yy [cell] zz [cell]
zone face apply stress-xx [cell] range position-x 1
zone face apply stress-yy [cell] range position-y 1

zone property stress-initial [tensor(cell,cell,cell,0,0,0)]
;
[global zvel = -1e-6]
zone face apply velocity-z [zvel] range position-z 1
zone face apply velocity-x 0 range position-x 0
zone face apply velocity-y 0 range position-y 0
zone face apply velocity-z 0 range position-z 0
;
[global zn = zone.near(0.5,0.5,0.5)]
[global gp = gp.near(1.0,1.0,1.0)]
fish define ev
    local str = zone.stress(zn)
    global q1 = str->xx - str->zz
    global p1 = -(str->xx + str->yy + str->zz)/3. - zone.pp(zn)
    global e1 = -gp.disp.z(gp)*100. 
    global ev = zone.strain.vol.inc(zn)*100
    global eta = q1/p1
end

;
fish history name '1' q1
fish history name '2' p1
fish history name '3' e1
fish history name '4' ev
fish history name '5' eta
;
history interval 200
model solve-static cycles 50000

model save "ErksakSand-Medium-Drained"

drained_loose datafile:

model new
; Drained Triaxial Compression Test, Loose Sample
model large-strain off
zone create brick size 1 1 1
zone cmodel assign clay-and-sand
; 
zone property critical-state-1 0.8167
zone property critical-state-2 0.0135
zone property pressure-reference 100.0
zone property kappa 0.005
zone property ratio-critical 1.2
zone property yield-exponent 4
zone property potential-exponent 2
zone property spacing-ratio 6792
zone property poisson 0.3
zone property void-initial 0.82
;
[global cell = -200.0]
zone initialize stress xx [cell] yy [cell] zz [cell]
zone face apply stress-xx [cell] range position-x 1
zone face apply stress-yy [cell] range position-y 1

zone property stress-initial [tensor(cell,cell,cell,0,0,0)]
;
[global zvel = -1e-6]
zone face apply velocity-z [zvel] range position-z 1
zone face apply velocity-x 0 range position-x 0
zone face apply velocity-y 0 range position-y 0
zone face apply velocity-z 0 range position-z 0
;
[global zn = zone.near(0.5,0.5,0.5)]
[global gp = gp.near(1.0,1.0,1.0)]
fish define ev
    local str = zone.stress(zn)
    global q1 = str->xx - str->zz
    global p1 = -(str->xx + str->yy + str->zz)/3. - zone.pp(zn)
    global e1 = -gp.disp.z(gp)*100. 
    global ev = zone.strain.vol.inc(zn)*100
    global eta = q1/p1
end

;
fish history name '1' q1
fish history name '2' p1
fish history name '3' e1
fish history name '4' ev
fish history name '5' eta
;
history interval 200
model solve-static cycles 50000

model save "ErksakSand-Loose-Drained"