FLAC3D Theory and Background • Constitutive Models
Undrained Triaxial Test with NorSand Model
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 NorSand model is used to simulate the triaxial consolidated-undrained (CU) tests with with the initial isotropic stress at 395 kPa and OCR = 1.1 without and with the additional softening term (\(S\) = 0 and 1). The initial state parameters are \(\psi_0=-0.025\) and \(\psi_0=0.10\). The material properties are listed in Table 1. Note that in these tests, the state-parameter-dependent hardening modulus (\(H \ne 0\)) and nonlinear stress dependent elastic shear modulus (\(m \ne 1\)) are adopted. Also, a slightly over-consolidated ratio (\(OCR = 1.1\)) is used. The input parameters are summarized in the table:
\(C_1\)
1.2
\(C_2\)
0.06
\(C_3\)
0
\(S\)
0 and 1
\(M_{tc}\)
1.47
\(\chi_{tc}\)
3.2
\(N\)
0.5
\(H_0\)
75
\(H_y\)
400
\(G_{ref}\)
20970
\(m\)
0.47
\(p_{ref}\)
100
\(\nu\)
0.15
OCR
1.1
Figure 1 and Figure 2 plot the results of simulation by FLAC3D for \(\psi_0=-0.025\) (dense side of the critical state line) and \(\psi_0=0.10\) (loose side of the critical state line), respectively. The shear hardening for dense sand and shear softening for loose sand are captured with the same parameters and loading conditions except the initial void ratios.
break
Data File
Dense sand datafile:
model new
model large-strain off
;
[global psi = -0.025]
;
zone create brick size 1 1 1
zone face skin
zone cmodel assign norsand
;
zone property density 1.6
zone property shear-reference 2.097e4 exponent 0.47 poisson 0.15
zone property critical-state-1 1.2 critical-state-2 0.06
zone property ratio-critical 1.47 hardening-0 75.0 hardening-y 400.0
zone property factor-dilatancy 3.2 factor-coupling 0.5
zone property state-parameter-initial [psi] over-consolidation-ratio 1.1
;
zone initialize stress xx -395 yy -395 zz -395
;
program call "ini-stress"
[ini_stress(::zone.list, "norsand")]
;
;
model configure fluid-flow
zone fluid property pore-pressure-generation on
zone fluid property porosity 0.3 fluid-modulus 2e8
zone fluid property effective-cutoff -1e20
;
[global _zvel = -2e-6]
zone face apply velocity-z 0.0 range group 'bottom'
zone face apply velocity-z [_zvel] range group 'top'
zone face apply stress-normal -395 range group 'east' ...
or 'west' or 'north' or 'south'
;
[global _z1 = zone.near(0.5,0.5,0.5)]
fish define q1
local sxx = zone.stress.xx(_z1)
local syy = zone.stress.yy(_z1)
local szz = zone.stress.zz(_z1)
global q1 = sxx - szz
global p1 = -(sxx+syy+szz)/3. - zone.pp(_z1)
global eps_a1 = -gp.disp.z(gp.near(1,1,1))*100. ; axial strain (%)
end
;
fish history name '1' q1
fish history name '2' p1
fish history name '3' eps_a1
;
history interval 50
model solve-static cycles 100000
;
history export '1' vs '2' table "dense_qp"
table "dense_qp" export "dense_qp" truncate
history export '1' vs '3' table "dense_qe"
table "dense_qe" export "dense_qe" truncate
;
model save "dense"
Loose sand datafile:
model new
model large-strain off
;
[global psi = 0.10]
;
zone create brick size 1 1 1
zone face skin
zone cmodel assign norsand
;
zone property density 1.6
zone property shear-reference 2.097e4 exponent 0.47 poisson 0.15
zone property critical-state-1 1.2 critical-state-2 0.06
zone property ratio-critical 1.47 hardening-0 75.0 hardening-y 400.0
zone property factor-dilatancy 3.2 factor-coupling 0.5
zone property state-parameter-initial [psi] over-consolidation-ratio 1.1
;
zone initialize stress xx -395 yy -395 zz -395
;
program call "ini-stress"
[ini_stress(::zone.list, "norsand")]
;
model configure fluid-flow
zone fluid property effective-cutoff -1e20
zone fluid property porosity 0.3 fluid-modulus 2e8
zone fluid property pore-pressure-generation on
;
[global _zvel = -2e-6]
zone face apply velocity-z 0.0 range group 'bottom'
zone face apply velocity-z [_zvel] range group 'top'
zone face apply stress-normal -395 range group 'east' ...
or 'west' or 'north' or 'south'
;
[global _z1 = zone.near(0.5,0.5,0.5)]
fish define q1
local sxx = zone.stress.xx(_z1)
local syy = zone.stress.yy(_z1)
local szz = zone.stress.zz(_z1)
global q1 = sxx - szz
global p1 = -(sxx+syy+szz)/3. - zone.pp(_z1)
global eps_a1 = -gp.disp.z(gp.near(1,1,1))*100. ; axial strain (%)
end
;
fish history name '1' q1
fish history name '2' p1
fish history name '3' eps_a1
;
history interval 50
model solve-static cycles 100000
;
history export '1' vs '2' table "loose_qp"
table "loose_qp" export "loose_qp" truncate
history export '1' vs '3' table "loose_qe"
table "loose_qe" export "loose_qe" truncate
;
model save "loose"
⇐ Undrained Triaxial Test with Soft-Soil Model | Uniaxial Compression and Extension Tests with Concrete Model ⇒
Was this helpful? ... | Itasca Software © 2024, Itasca | Updated: Dec 03, 2024 |