FLAC3D Theory and Background • Constitutive Models

Single-Zone Unconfined Compression Test with IMASS Model


To view this project in FLAC3D, use the menu command Help ► Examples…. The project’s main data file is shown at the end of this example.

This example is created for inspection of the IMASS constitutive behavior at zone scale. It allows for simulation of unconfined or confined compressive strength testing of a single zone. Try turning different flags on or off or changing some input properties such as in_weak_multecrit and see how it changes the stress-strain response of the zone under the specified loading condition.

The stress-strain response of a zone with the given input parameters in the example is shown in Figure 1. It can be seen that after yielding the zone quickly reaches its post-peak strength at approximately 0.8% axial strain but it requires further straining to reach the ultimate strength at a VSI of 0.67. In Figure 2 and Figure 3, the cohesion is observed to weaken and friction angle is mobilized, respectively as the zone reaches its post-peak strength. From that point the friction angle will decrease to reach the basic friction angle with further straining at VSI = 0.67.



Figure 1: Stress-strain response of the zone with given input parameters.


Figure 2: Evolution of cohesion with axial strain.


Figure 3: Evolution of friction with axial strain.

Data File


model new
model large-strain off
model configure imass
[global cofStress = 0.0] ; should be <= 0
[global appliedVelocity =  1.e-6]
zone create brick size 1 1 1
zone cmodel assign imass
zone initialize stress xx [cofStress] yy [cofStress] zz [cofStress]
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 
; boundary conditions
zone gridpoint initialize velocity (0,0,0)
zone gridpoint fix velocity-z range position-z 0.0
zone face apply stress-xx [cofStress] range position-x 0.0
zone face apply stress-xx [cofStress] range position-x 0.0
zone face apply stress-yy [cofStress] range position-y 1.0
zone face apply stress-yy [cofStress] range position-y 1.0
; histories
[global gpPtr = gp.near(1,1,1)]
[global znPtr = zone.head]
fish define axialStrain
  global axialStrain = -gp.disp.z(gpPtr)*100.0 ; percentage
  global sloss = zone.prop(zone.head, "emer_weak_sloss")
  global vsi = zone.prop(zone.head, "emer_bulking_totvsi")
  global coh = zone.prop(zone.head, "emer_stren_mccoh")
  global fric = zone.prop(zone.head, "emer_stren_mcfric")
  global dens = zone.prop(zone.head, "emer_bulking_den")
  global modulus = zone.prop(zone.head, "emer_mod_young")
  global s1 = zone.stress.zz(znPtr)
  global s3 = zone.stress.xx(znPtr)
; loading
zone face apply velocity-z [-appliedVelocity] range position-z 1.0
model history mechanical unbalanced-maximum
fish history axialStrain
fish history sloss
fish history vsi
fish history coh
fish history fric
fish history s1
fish history s3
fish history dens
fish history modulus
model cycle 100000
model save 'UnconfinedCompression.sav'