FLAC3D Theory and Background • Constitutive Models

Drained and Undrained Triaxial Tests of Weald Clay 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) and undrained (CU) tests under normally consolidated (NC) condition (OCR = 1) and overly consolidated (OC) condition (OCR = 14.4) for Weald Clay. The input parameters are based on Yu (1998) except the potential-exponent is now 2.15 to use the modified version by Arroyo and Gens (2021). The material properties are summarized in the table:

critical-state-1

\(\Gamma\)

1.06

critical-state-2

\(\lambda\)

0.093

ratio-critical

\(M\)

0.9

pressure-reference

\(p_{ref}\)

100 (kPa)

kappa

\(\kappa\)

0.025

poisson

\(\nu\)

0.3

potential-exponent

\(m\)

2.15

yield-exponent

\(n\)

4.5

spacing-ratio

\(R\)

2.714

For the NC case, the initial isotropic consolidation pressure is 207 kPa, with the initial condition \(OCR_0\) = 1.0 or \(e_0\) = 0.632. For the OC case, the initial isotropic consolidation pressure is 34.5 kPa, with the initial condition \(OCR_0\) = 14.44 or \(e_0\) = 0.617.

Drained Condition

Figure 1 to Figure 4 present the results of drained cases for both NC and OC clays.

break

../../../../../_images/casm-wealdclay-nc-drained-qe1.png

Figure 1: Simulation of \(q\) vs. axial strain for drained triaxial tests for \(OCR_0\) = 1.0 and \(p_0\) = 207 kPa.

../../../../../_images/casm-wealdclay-nc-drained-eve1.png

Figure 2: Simulation of volumetric strain vs. axial strain for drained triaxial tests for \(OCR_0\) = 1.0 and \(p_0\) = 207 kPa.

../../../../../_images/casm-wealdclay-oc-drained-qe1.png

Figure 3: Simulation of \(q\) vs. axial strain for drained triaxial tests for \(OCR_0\) = 14.44 and \(p_0\) = 34.5 kPa.

../../../../../_images/casm-wealdclay-oc-drained-eve1.png

Figure 4: Simulation of volumetric strain vs. axial strain for drained triaxial tests for \(OCR_0\) = 14.44 and \(p_0\) = 34.5 kPa.

Undrained Condition

Figure 5 to Figure 8 present the results of undrained cases for both NC and OC clays.

../../../../../_images/casm-wealdclay-nc-undrained-qe1.png

Figure 5: Simulation of \(q\) vs. axial strain for undrained triaxial tests for \(OCR_0\) = 1.0 and \(p_0\) = 207 kPa.

../../../../../_images/casm-wealdclay-nc-undrained-ue1.png

Figure 6: Simulation of excess pore pressure vs. axial strain for undrained triaxial tests for \(OCR_0\) = 1.0 and \(p_0\) = 207 kPa.

../../../../../_images/casm-wealdclay-oc-undrained-qe1.png

Figure 7: Simulation of \(q\) vs. axial strain for undrained triaxial tests for \(OCR_0\) = 14.44 and \(p_0\) = 34.5 kPa.

../../../../../_images/casm-wealdclay-oc-undrained-ue1.png

Figure 8: Simulation of excess pore pressure vs. axial strain for undrained triaxial tests for \(OCR_0\) = 14.44 and \(p_0\) = 34.5 kPa.

References

Arroyo, M. and Gens, A. Computational analyses of Dam I failure at the Corrego de Feijao mine in Brumadinho. Final Report for VALE SA. (2021)

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_nc.dat"
program call "drained_oc.dat"
program call "undrained_nc.dat"
program call "undrained_oc.dat"
program call "check.dat"

drained-nc datafile:

model new
; Drained Triaxial Compression Test, Normally Consolidated Sample
model large-strain off
zone create brick size 1 1 1
zone cmodel assign clay-and-sand
; 
zone property critical-state-1 1.06
zone property critical-state-2 0.093
zone property pressure-reference 100.0
zone property kappa 0.025
zone property ratio-critical 0.9
zone property yield-exponent 4.5
zone property potential-exponent 2.15
zone property spacing-ratio 2.714
zone property poisson 0.3
zone property ocr-initial 1.0
;
[global cell = -207.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 q1
    local str = zone.stress.eff(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
end

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

model save "WealdClay-NC-Drained"

drained-oc datafile:

model new
; Drained Triaxial Compression Test, Overly Consolidated Sample
model large-strain off
zone create brick size 1 1 1
zone cmodel assign clay-and-sand
; 
zone property critical-state-1 1.06
zone property critical-state-2 0.093
zone property pressure-reference 100.0
zone property kappa 0.025
zone property ratio-critical 0.9
zone property yield-exponent 4.5
zone property potential-exponent 2.15
zone property spacing-ratio 2.714
zone property poisson 0.3
zone property ocr-initial 14.44
;
[global cell = -34.5]
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 q1
    local str = zone.stress.eff(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
end

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

model save "WealdClay-OC-Drained"

undrained-nc datafile:

model new
; Undrained Triaxial Compression Test, Normally Consolidated Sample
model large-strain off
zone create brick size 1 1 1
zone cmodel assign clay-and-sand
; 
zone property critical-state-1 1.06
zone property critical-state-2 0.093
zone property pressure-reference 100.0
zone property kappa 0.025
zone property ratio-critical 0.9
zone property yield-exponent 4.5
zone property potential-exponent 2.15
zone property spacing-ratio 2.714
zone property poisson 0.3
zone property ocr-initial 1.0
;
[global cell = -207.0]
zone initialize stress xx [cell] yy [cell] zz [cell]
zone property stress-initial [tensor(cell,cell,cell,0,0,0)]
;
model configure fluid-flow
zone fluid property effective-cutoff -1e20
zone fluid property porosity 0.3 fluid-modulus 6e4
zone fluid property pore-pressure-generation on
;
[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
zone face apply stress-xx [cell] range position-x 1
zone face apply stress-yy [cell] range position-y 1
;
[global zn = zone.near(0.5,0.5,0.5)]
[global gp = gp.near(1.0,1.0,1.0)]
fish define q1
    local str = zone.stress.eff(zn)
    global q1 = str->xx - str->zz
    global pp = zone.pp(zn)
    global p1 = -(str->xx + str->yy + str->zz)/3. - pp
    global e1 = -gp.disp.z(gp)*100. 
    global ev = zone.strain.vol.inc(zn)*100
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' pp
;
history interval 200
model solve-static cycles 200000

model save "WealdClay-NC-Undrained"

undrained-oc datafile:

model new
; Undrained Triaxial Compression Test, Overly Consolidated Sample
model large-strain off
zone create brick size 1 1 1
zone cmodel assign clay-and-sand
; 
zone property critical-state-1 1.06
zone property critical-state-2 0.093
zone property pressure-reference 100.0
zone property kappa 0.025
zone property ratio-critical 0.9
zone property yield-exponent 4.5
zone property potential-exponent 2.15
zone property spacing-ratio 2.714
zone property poisson 0.3
zone property ocr-initial 14.44
;
[global cell = -34.5]
zone initialize stress xx [cell] yy [cell] zz [cell]
zone property stress-initial [tensor(cell,cell,cell,0,0,0)]
;
model configure fluid-flow
zone fluid property effective-cutoff -1e20
zone fluid property porosity 0.3 fluid-modulus 6e4
zone fluid property pore-pressure-generation on
;
[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
zone face apply stress-xx [cell] range position-x 1
zone face apply stress-yy [cell] range position-y 1
;
[global zn = zone.near(0.5,0.5,0.5)]
[global gp = gp.near(1.0,1.0,1.0)]
fish define q1
    local str = zone.stress.eff(zn)
    global q1 = str->xx - str->zz
    global pp = zone.pp(zn)
    global p1 = -(str->xx + str->yy + str->zz)/3. - pp
    global e1 = -gp.disp.z(gp)*100. 
    global ev = zone.strain.vol.inc(zn)*100
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' pp
;
history interval 200
model solve-static cycles 200000

model save "WealdClay-OC-Undrained"