Multi-Zone Confined Compression Test with IMASS Model
Note
To view this project in FLAC3D, use the menu command . Choose “Imass/ ConfinedCompression” and select “ConfinedCompressionMultiZones.prj” to load. The project’s main data file is shown at the end of this example.
The overall behavior of a system of zones is dependent on but different than the behavior of each individual zone comprising that system under a similar stress path. In this example a confined compression test is performed on a prismatic specimen with a height-to-width ratio of 2:1 and a width of 40 m. The model is constructed with structured mesh, with edge lengths fixed at 1.5 m. A 1 MPa confinement is applied to the specimen prior to loading. The stress-strain response of the specimen is shown in Figure 1. At 0.5% axial strain the specimen behavior is characterized just past post-peak strength but well above its ultimate strength envelope. At this point strain is localized in some zones and shear bands are formed as shown by the maximum shear strain (radius of Mohr strain circle, or half of the difference between the maximum and minimum principal strains) in Figure 2 and accumulated plastic shear strain in Figure 3. In Figure 4 the corresponding contour of sloss is shown. Most of the zones forming the shear bands are in the close vicinity of the post-peak envelope at this stage of the test.
Data File
ConfinedCompressionMultiZones.dat
model new
model large-strain off
model configure imass
fish define size_input
global max_x = 40.
global max_y = 40.
global max_z = 80.
global nzone = 1.5 ; zone size
global nzxe = int(max_x/nzone)
global nzye = int(max_y/nzone)
global nzze = int(max_z/nzone)
end
[size_input]
;
zone create brick point 0 0 0 0 point 1 [max_x] 0 0 ...
point 2 0 [max_y] 0 point 3 0 0 [max_z]...
size [nzxe] [nzye] [nzze] group 'rock'
zone face skin
zone cmodel assign imass
[global conf = -1e6] ; confinement must be negative or zero
[global appliedVel = 1.e-5] ; loading velocity
zone initialize stress xx [conf] yy [conf] zz [conf] xy 0 xz 0 yz 0
zone face apply velocity-z [ appliedVel] range group 'Bottom'
zone face apply velocity-z [-appliedVel] range group 'Top'
zone face apply stress-normal [conf] range group 'South' or 'North'
zone face apply stress-normal [conf] range group 'West' or 'East'
[global gps_top = list(gp.list)(gp.isgroup(::gp.list,'Top'))]
[global area = max_y*max_x]
fish define stress_top
local force_top = list.sum(gp.force.unbal(::gps_top)->z)
global stress_top = force_top/area
end
[global gp_top1 = gp.near(max_x,max_y,max_z)]
[global zlength = max_z]
fish define strain_zz
global strain_zz = 100.0*2.0*gp.disp.z(gp_top1)/zlength
end
zone initialize density 2600
zone property in_stren_gsi 70.0
zone property in_stren_ucsi 100.0e6
zone property in_stren_mi 15.0
zone property in_mod_youngintact 40e9
zone property in_weak_multecrit 0.25
zone property flag_bulking_denadj on
history interval 100
fish history stress_top
fish history strain_zz
model cycle 20000
model save 'confinedCompressionMultiZones'
Was this helpful? ... | PFC © 2021, Itasca | Updated: Feb 25, 2024 |