FLAC3D Theory and Background • Constitutive Models
Uniaxial Compression and Extension Tests with Concrete Model
Note
To view this project in FLAC3D, use the menu command . The project’s main data file is shown at the end of this example.
In this example to test the Concrete model, a 1 m x 1 m single zone is generated, and the material properties are listed in Table 1.
Parameter |
Value |
---|---|
\(E\) (MPa) |
3.14e4 |
\(\nu\) |
0.18 |
\(f_t^m\) (MPa) |
3.48 |
\(f_t^0\) (MPa) |
3.48 |
\(G_t\) (MN/m) |
40e-6 |
\(l_t\) (m) |
0.0826 |
\(D_t^{half}\) |
0.5 |
\(f_c^m\) (MPa) |
27.6 |
\(f_c^0\) (MPa) |
16.04 |
\(G_c\) (MN/m) |
5690e-6 |
\(l_c\) (m) |
0.0826 |
\(D_c^{peak}\) |
0.4 |
\(f_b^0/f_c^0\) |
1.16 |
\(a_p\) |
0.2 |
\(s_0\) |
0.2 |
The first test is the uniaxial compression loading. the numerical result is shown in Figure 1. The numerical model correctly duplicated the whole loading, which can be verified by the elastic slope (Young’s modulus), initial and peak compression yield stress.
![../../../../../_images/modelconcrete-stress-strain-compression.png](../../../../../_images/modelconcrete-stress-strain-compression.png)
Figure 1: Uniaxial stress vs. uniaxial strain in compression.
The second test is the uniaxial tension loading. the numerical result is shown in Figure 2. Since \(f_t^0=f_t^m\), the uniaxial tension stress vs train curve has immediate softening, which has been correctly simulated by the numerical model the whole loading.
![../../../../../_images/modelconcrete-stress-strain-tension.png](../../../../../_images/modelconcrete-stress-strain-tension.png)
Figure 2: Uniaxial stress vs. uniaxial strain in extension.
Data File
uniaxialCompression.dat
model new
model large-strain off
;
fish define parameters
global young = 3.1e4 ; MPa
global poisson = 0.18
global ft = 3.48 ; MPa
global Gt = 40e-6 ; MN/m
global Lt = 0.0826 ; m
global fc = 27.6 ; MPa
global ft = 3.48 ; MPa
global Gc = 5690e-6 ; MN/m
global Lc = 0.0826 ; m
global kbc0 = 1.16
global fc0 = 16.04 ; MPa
global ft0 = 3.48 ; MPa
global dc = 800 ; dc
global dt = 3000 ; dt
end
[parameters]
;
[global dim = 1]
zone create brick size 1 1 1 edge [dim]
zone face skin
[global gpsTop = list(gp.list)(gp.isgroup(::gp.list,"top"))]
zone cmodel assign concrete
zone property young [young] poisson [poisson]
zone property compression-strength [fc] compression-initial [fc0] compression-energy-fracture [Gc]
zone property compression-length-reference [Lc] compression-d [dc]
zone property tension-strength [ft] tension-initial [ft0] tension-energy-fracture [Gt]
zone property tension-length-reference [Lt] tension-d [dt]
zone property ratio-biaxial [kbc0] tension-recovery 0.2
zone property dilation 20
zone face apply velocity-z 0 range group 'bottom'
[zptr = zone.head]
[gptr = gp.near(dim,dim,dim)]
fish define szz
strain = gp.disp(gptr)->z / dim
szz = list.sum(gp.force.unbal(::gpsTop)->z)/(dim*dim)
end
history interval 200
fish history name 'strain' strain
fish history name 'szz' szz
zone face apply velocity-z -1e-7 range group 'top'
model step [50000]
history export 'szz' vs 'strain' table 'stess-strain-compression'
table 'stess-strain-compression' export 'stess-strain-compression' truncate
model save 'uniaxial-Compression'
uniaxialTension.dat
model new
model large-strain off
;
fish define parameters
global young = 3.1e4 ; MPa
global poisson = 0.18
global ft = 3.48 ; MPa
global Gt = 40e-6 ; MN/m
global Lt = 0.0826 ; m
global fc = 27.6 ; MPa
global ft = 3.48 ; MPa
global Gc = 5690e-6 ; MN/m
global Lc = 0.0826 ; m
global kbc0 = 1.16
global fc0 = 16.04 ; MPa
global ft0 = 3.48 ; MPa
global dc = 800 ; dc
global dt = 3000 ; dt
end
[parameters]
;
[global dim = 1]
zone create brick size 1 1 1 edge [dim]
zone face skin
[global gpsTop = list(gp.list)(gp.isgroup(::gp.list,"top"))]
zone cmodel assign concrete
zone property young [young] poisson [poisson]
zone property compression-strength [fc] compression-initial [fc0] compression-energy-fracture [Gc]
zone property compression-length-reference [Lc] compression-d [dc]
zone property tension-strength [ft] tension-initial [ft0] tension-energy-fracture [Gt]
zone property tension-length-reference [Lt] tension-d [dt]
zone property ratio-biaxial [kbc0] tension-recovery 0.2
zone property dilation 20
zone face apply velocity-z 0 range group 'bottom'
[zptr = zone.head]
[gptr = gp.near(dim,dim,dim)]
fish define szz
strain = gp.disp(gptr)->z / dim
szz = list.sum(gp.force.unbal(::gpsTop)->z)/(dim*dim)
end
history interval 100
fish history name 'strain' strain
fish history name 'szz' szz
zone face apply velocity-z 2e-8 range group 'top'
model step [25000]
history export 'szz' vs 'strain' table 'stess-strain-tension'
table 'stess-strain-tension' export 'stess-strain-tension' truncate
model save 'uniaxial-Tension'
Was this helpful? ... | Itasca Software © 2024, Itasca | Updated: Aug 13, 2024 |