By applying different model loading conditions at different stages of an analysis, it is possible to simulate changes in physical loading, such as sequences of excavation and construction. Changes in loading may be specified in a number of ways (e.g., by applying new stress or displacement boundaries, by changing the material model in blocks to either a null material or to a different material model, or by changing material properties).

It is important to recognize that sequential modeling follows the stages of an engineering work. In most analyses, each work stage corresponds to a different static solution following a loading change (i.e., physical time is not a parameter). 3DEC can perform calculations for heat transfer and dynamic mechanical analysis as well (see Dynamic Analysis and Thermal Option). In these cases, a static solution for an equilibrium stress state may be followed, for example, by a dynamic calculation for an applied explosive excitation or a transient calculation for flow through joints.

Time-dependent behavior, on the other hand, cannot be simulated directly. Some engineering judgment must be used to estimate the effects of time. For example, a model parameter may be changed after a predetermined amount of displacement or strain has occurred. This displacement may be estimated to have occurred over a given period of time.

A loading change must cause unbalanced forces to develop in order to effect a change in model response. Therefore, changing the elastic properties will have no effect; changing strength properties will, if the change causes the current stress state to exceed the failure limit.

The recommended approach to sequential modeling is demonstrated by the following example. This problem involves the stability analysis of an underground opening in jointed rock, and includes the evaluation of different types of support measures. The stages to be analyzed are:

1. equilibration at the in-situ stress state;
2. excavation of the tunnel; and
3. application of the tunnel support.

The objective is to investigate the stability of the excavation under in-situ conditions, and assess the effect of the support measures. Two types of support are evaluated: cable bolts and a continuous concrete liner. Note that this model is greatly simplified for rapid execution, but it still illustrates the recommended steps for loading and sequential modeling.

The tunnel is located in rock containing three major faults: one dipping at 65◦ with a dip direction of 40◦; the second dipping at 70◦ with a dip direction of 270◦; and the third dipping at 60◦ with a dip direction of 130◦. The tunnel is horseshoe-shaped and is centered along the y-axis of the model. The tunnel is created with the block cut tunnel command. The model is created with the following series of commands:

tunnel_geom.dat

model new
model random 10000
model large-strain on

; ---- set up tunnel geometry ----

block create brick -10 10  -10 10  -10 10

; --- tunz: FISH function to define tunnel geometry parameters --------
; ... tunnel along Y axis
; ... semi-circular roof, centered at (0,0)
;
fish define tunz

; Fill table with x and z coordinates for cutting tunnel
local tab = table.create('tunnel')

; --- coordinates for bottom ---
; start from bottom left corner and go around counter-clockwise
table.x(tab,1) = -4
table.y(tab,1) = -4
table.x(tab,2) = 4
table.y(tab,2) = -4
;
; center and radius of circular arc
local txc =  0.0
local tzc =  0.0
local tr  =  4.0

; 8 segments
local seg = 8
loop i (1,seg)
local theta = 180.0/(seg-1)*(i-1)*math.degrad
table.x(tab,i+2) = txc + tr*math.cos(theta)
table.y(tab,i+2) = tzc + tr*math.sin(theta)
end_loop

end
;
; ---------------------------------------------------------------------
; (execute function)
[tunz]
;
block group 'rock'
;
; create outer surface
block cut tunnel  radial ...
table-1 'tunnel' axis 0,-10,0 0,10,0 group 'exc'
;
; --- joints ---  3 joints to form a wedge in the roof
;
block cut joint-set dip-direction 270 dip 70 origin 0 0,5.7  jointset-id 10
block cut joint-set dip-direction 40  dip 65 origin 0 0,5.7  jointset-id 10
block cut joint-set dip-direction 130 dip 60 origin 0 0,5.7  jointset-id 10
;
; --- mesh generation ---
; rock blocks
block hide range group 'exc'
block zone generate edgelength 2.5
block hide off
;
; tunnel
block zone generate edgelength 1
;
model save 'tunnel_zoned'


Figure 1 shows the resulting model configuration. The tunnel geometry parameters are defined in the FISH function tunz. The inner region of the tunnel is assigned group sexc. Note that the tunnel is created first, and then the physical joint set is generated. Blocks are joined automatically with the block cut tunnel command. Zone generation is performed separately for the rock blocks, and the interior region of the tunnel to create smaller zones in the region of interest (in and around the tunnel).

Next, constitutitve models and material properties are assigned to the zones and the joints. Note that stress/stiffness units of MPa are used, therefore density in kg/m^3 must be divided by 1e6.

The in-situ stress state and boundary conditions are applied, assuming the tunnel is at a depth of 200 m and the ratio of horizontal to vertical stress is 0.5. Note that for a practical simulation, the boundaries are too close to the tunnel excavation and should be moved to a greater distance to minimize their influence on the model results.

Finally, gravity is turned on and the model is solved to initial equilibrium. The commands to assign material properties and achieve the initial stress state are shown below.

tunnel_ini.dat

; ---- Bring to initial stress state ---
;
model restore 'tunnel_zoned'
;
; --- properties - stress units are MPa ---
;
; --- rock ---
; density = 2700 kg/m3 -> 0.0027
; E=50 GPa, Poisson's ratio=0.2
block zone cmodel assign el
block zone prop dens 0.0027 young 50000 poiss 0.2
;
; --- joints ---
block contact jmodel assign mohr
block contact prop stiffness-normal 10000 stiffness-shear 2000 fric 25
block contact material-table default prop stiffness-normal 10000 stiffness-shear 2000 fric 25

; gravity
model gravity 0 0 -10
;
; --- insitu stress state ---
; assume center of tunnel at 200 m depth, top of model is at is at 190 m
block insitu topography ratio-x 0.5 ratio-y 0.5 overburden [-190*0.0027*9.81]
;
; --- boundary conditions for insitu stress state ---
block face apply stress 0 0 [-190*0.0027*10]  0 0 0 range pos-z 10.0
; bottom
block gridpoint apply vel-z 0 range pos-z -10.0
; sides
block gridpoint apply vel-x 0 range pos-x -10.0
block gridpoint apply vel-x 0 range pos-x  10.0
block gridpoint apply vel-y 0 range pos-y -10.0
block gridpoint apply vel-y 0 range pos-y  10.0
;
; --- histories to monitor convergence ---
hist interval=1
model his mechanical unbal-max
; top of model
block hist dis-x pos 0 0 10
block hist dis-y pos 0 0 10
block hist dis-z pos 0 0 10
;
model cycle 1000
model save 'tunnel_ini'


The maximum unbalanced force in the model and displacements at the top boundary are monitored to help make sure that an initial equilibrium stress state is reached within 1000 cycles. Figure 2 shows the x-, y- and z-displacement histories for the gridpoint (x = 0, y = 0, z = 10) at the top of the model.

tunnel_exc.dat

model restore 'tunnel_ini'

; excavate interior blocks
block excavate range group 'exc'
;
; history point at tunnel roof
block gridpoint ini disp 0 0 0
model mech time-total 0
history delete

; history of point in wedge
block hist name 'Vertical Displacement' dis-z pos 0 -0.2 4.3

;
model cycle 5000
;
model save 'tunnel_exc'

block hide range plane dip 60 dip-direction 130 or 0 0 5.7 above


If the tunnel is excavated without support, a rock wedge detaches and falls from the roof. This is shown by running tunnel_exc.dat; the tunnel is excavated with the block excavate command, and the z-displacement at a location in the roof is monitored while the model is cycled. Figure 3 plots the z-displacement history and indicates that the position is moving downward. Figure 4 shows a close-up view of the detached wedge, with surrounding blocks hidden for better viewing.

Next, the effect of rock bolt support is evaluated. Fully bonded cable elements are installed using the structure cable create command. See Cable Structural Elements for a detailed description of this type of structural support.

tunnel_cables.dat lists the commands to excavate the tunnel and install the cable elements. Note that we use thje block excavate command rather than the block delete command so we can view the excavated region. Figure 5 shows the location of the cable elements around the excavation.

tunnel_cables.dat

model restore 'tunnel_ini'
;
; delete interior blocks
block excavate range group 'exc'
;
;
; --- install cable elements ---
struct cable create  by-line -8 -5 -2   -4.05 -5 -2  seg 4
struct cable create  by-line -8  0 -2   -4.05  0 -2  seg 4
struct cable create  by-line -8  5 -2   -4.05  5 -2  seg 4
struct cable create  by-line -6.8 -5  6.8   -2.85 -5  2.85  seg 4
struct cable create  by-line -6.8  0  6.8   -2.85  0  2.85  seg 4
struct cable create  by-line -6.8  5  6.8   -2.85  5  2.85  seg 4
;
struct cable create  by-line 8 -5 -2   4.05 -5 -2  seg 4
struct cable create  by-line 8  0 -2   4.05  0 -2  seg 4
struct cable create  by-line 8  5 -2   4.05  5 -2  seg 4
struct cable create  by-line 6.8 -5  6.8   2.85 -5  2.85  seg 4
struct cable create  by-line 6.8  0  6.8   2.85  0  2.85  seg 4
struct cable create  by-line 6.8  5  6.8   2.85  5  2.85  seg 4
;
struct cable create by-line 0 -5 4.1   0 -5 8  seg 4
struct cable create by-line 0  0 4.1   0  0 8  seg 4
struct cable create by-line 0  5 4.1   0  5 8  seg 4
;
struct cable prop cross-sectional-area 5e-4 young 100000 yield-tension 0.55 ...
grout-stiffness 15e4 grout-cohesion 1e6
;
history delete
block gridpoint ini disp 0 0 0

; history of point in wedge
block hist name 'Vertical Displacement' dis-z pos 0 -0.2 4.3
;
model cycle 500
;
; set real grout strength
struct cable prop grout-cohesion 0.8
;
model cycle 1500
;
model save 'tunnel_cables'


The roof is stabilized when the cables are added. The z-displacement history now indicates that the wedge movement stops at roughly 28 mm displacement (see Figure 6). The axial forces that develop in the support are greatest in the roof elements as shown in Figure 5.

The model of a tunnel excavation and support sequence should simulate the change in stresses around the tunnel as the excavation advances, before the tunnel support is installed. This can be done in a 3DEC model by excavating the tunnel in sections and installing support after each excavation section. This is the recommended approach to simulate support loading changes due to tunnel advancement.

Alternatively, in this simplified model we simulate the effect of tunnel advancement by reducing the tractions at the tunnel periphery in increments, and installing the liner before the tractions are completely removed. This demonstrates an approach for simulating a gradual excavation of a tunnel section. The data file below shows this approach.

tunnel_liner.dat

model rest 'tunnel_ini'

; mark boundary faces
block face group 'surface' range group-int 'rock' 'exc'

; delete interior blocks
block delete range group 'exc'

; apply 50% stress
block face apply stress -1.35 -1.35 -2.7 0 0 0 range group 'surface'

; reapply front and back fixities
block gridpoint apply vel-y 0 range pos-y -10.0
block gridpoint apply vel-y 0 range pos-y  10.0

; history of point in wedge
block hist name 'Vertical Displacement' dis-z pos 0 -0.2 4.3
model cyc 2000

block face apply-remove stress range group 'surface'

; reapply front and back fixity
block gridpoint apply vel-y 0 range pos-y -10.0
block gridpoint apply vel-y 0 range pos-y  10.0

; tolerance is required since blocks will have shifted a bit during initial excavation
struct liner create by-block-face tolerance 1e-3 range group 'surface'

struct liner prop coupling-fric-shear 60 coupling-coh-shear .5e6 ...
coupling-stiffness-normal 1e9 coupling-stiffness-shear 1e9
struct liner prop isotropic 15e9 .15 thick .20 coupling-yield-normal .3e6
model cycle 2000
;
model save 'tunnel_liner'


The block face apply command is used to apply 50% of the in-situ stress state to the liner-rock interface, and the range covers all faces on the tunnel surface. The model is cycled to an equilibrium state with tunnel tractions reduced by 50%. Then, the tractions are removed completely and the liner is installed (with the structure liner create command). Figure Figure #tunnel-liner shows the liner elements created for this model. The model is cycled to a new equilibrium state. The load that develops in the liner is due to the reduction of the tractions from 50% to zero.

Note that the selection of a 50% reduction in tunnel tractions in this example is arbitrary and only for demonstration purposes. If it is necessary to simulate a gradual excavation, it may be necessary to reduce the tractions in smaller increments to minimize the effects of transient stress waves on the response of the model.

The displacement of the roof is shown in Figure 8. Roughly 1 mm of vertical displacement occurs when the tractions are reduced by 50%, and an additional 0.1 mm displacement after the tunnel tractions are completely removed and the liner is installed.