# Supported Tunnel

Problem Statement

Note

The project file for this example may be viewed/run in 3DEC. The data files used are shown at the end of this example.

Problem Description

This example shows how to create a simple supported tunnel in fractured rock. The joints are simulated using the Discrete Fracture Network (DFN) logic, and the tunnel is supported using hybrid bolts.

3DEC Model

Model Geometry

The 3DEC model is shown in Figure 1. The model is built by first creating a 20x10x20 m brick and then making cuts to define the region of interest in the center. Three cuts are also made in the y direction to define the stages of tunnel excavation.

The tunnel is created by importing a dxf and using the command block cut geometry.

A DFN is generated with a power-law size distribution with an exponent of 3. The minimum and maximum fracture sizes are 0.5 m and 20 m respectively.

Tetrahedral zones are generated with an edge length of 0.25 m in the region of interest and 0.5 m outside of that.

The command block join-by-contact is used to ensure that the construction joints do not become unjoined when the true (DFN) joints are cut. Figure 1 shows the actual IDs of the blocks, but note that many of these blocks are actually joined. The unjoined joints are shown in Figure 2. Note that using block join-by-contact also speeds up the simulation by about 25% because there are fewer unjoined contacts.

Properties

The zones are assigned the Mohr-Coulomb material model with the following properties:

Conesion, $$c$$ = 10 MPa Friction, $$\phi$$ = 35° Tension, $$T$$ = 1 MPa

Model Solving

Initial State

All boundaries were fixed and the following initial compressive stress was applied:

$$\sigma_{xx}$$ = 40 MPa $$\sigma_{yy}$$ = 30 MPa $$\sigma_{zz}$$ = 10 MPa

The model was then solved to initial equilibrium.

Excavation and Support

The first two meters of the tunnel are excavated and the model is solved. Hybrid bolts are then added with a spacing of approximately 0.5 m the bolts in the side walls were assigned a length of 2 m, and the bolts in the roof had a length of 4 m. No bolts were installed in the floor. A total of 11 bolts were used for each round of excavation (see Figure 3).

Dowel segments are automatically generated where each bolt crosses a joint. The dowel length is set to 5 cm.

After installation of the bolts, another 2 m of tunnel is excavated and the model is solved. This is repeated three more times to excavate and support the entire 10 m length of the tunnel.

Results and Discussion

The 3DEC simulation yields displacement as shown in Figure 4. Figure 5 shows the axial forces in the hybrid bolts and Figure 6 shows the shear forces in the dowels. The support is successful at stabilizing the tunnel and the model reached equilibrium after each stage of excavation.

Data Files

tunnel-1.dat

model new
model random 10000
model large-strain on

model domain extent -20 20 -20 20 -20 20

block tolerance 1e-3
block create brick -10 10 -5 5 -10 10

; prevent unjoining of construction joints when DFN is cut
block join-by-contact on

; define region of interest
; construction joints have id of 99
block cut joint-set origin 0 0 -5 jointset-id 99
block cut joint-set origin 0 0 5 jointset-id 99
block cut joint-set dip 90 dip-direction 90 origin 5 0 0 jointset-id 99
block cut joint-set dip 90 dip-direction 90 origin -5 0 0 jointset-id 99

geometry import 'tunnel.dxf'

block cut geometry 'tunnel' jointset-id 99

block group 'tunnel' range geometry-space 'tunnel' count odd

; define excavation rounds
block cut joint-set dip 90 origin 0 -3 0 spacing 2 jointset-id 99

block join

; add fractures in region of interest
block group 'center' slot 'construction' range position-x -5 5 position-z -5 5
block hide range group 'center' not

fracture template create "dfn-template" size power-law 3 size-limits 0.5 20
fracture generate dfn "dfn1" template "dfn-template" fracture-count 30000

block cut dfn name "dfn1"

; generate zones - smaller in region of interest
block zone generate edgelength 0.25
block hide off
block zone generate edgelength 0.5

;; new zoning logic
;block hide off
;block zone size edgelength 0.25 range group 'center'
;block zone size edgelength 0.5 range group 'center' not
;block zone gcm2 minimum-edge 0.25 maximum-edge 0.5

==================================================

block zone cmodel assign mohr-coulomb
block zone property density 2500 young 1e9 poiss 0.25
block zone property cohesion 1e7 friction 35 tension 1e6

; make construction joints elastic
block contact jmodel assign elastic
block contact property stiffness-normal 1e11 stiffness-shear 1e11

; make joints mohr-coulomb
block contact jmodel assign mohr range dfn-3dec 'dfn1'
block contact property stiffness-normal 1e10 stiffness-shear 1e10 ...
friction 30 range dfn-3dec 'dfn1'

; default contact props
block contact material-table default property stiffness-normal 1e10 ...
stiffness-shear 1e10 friction 30

model save 'zoned'


tunnel-2.dat

model restore 'zoned'

; initial state
block insitu stress -40e6 -30e6 -10e6 0 0 0

; boundary conditions
block gridpoint apply velocity 0 0 0 range position-x -10
block gridpoint apply velocity 0 0 0 range position-x 10
block gridpoint apply velocity 0 0 0 range position-z -10
block gridpoint apply velocity 0 0 0 range position-z 10
block gridpoint apply velocity-y 0 range position-y -5
block gridpoint apply velocity-y 0 range position-y 5

model solve convergence 1

model save 'initial'


tunnel-exc.dat

model restore 'initial'

block gridpoint initialize displacement 0 0 0

block relax linear 500 range group 'tunnel' position-y -5 -3
model cycle 500
model solve

model save 'exc-1'

==============================================

; left side
command
structure hybrid create by-line (-1,[ypos],-0.5) (-3,[ypos],-0.5) ...
segments 10
structure hybrid create by-line (-1,[ypos],0) (-3,[ypos],0) ...
segments 10
structure hybrid create by-line (-1,[ypos],0.5) (-3,[ypos],0.5) ...
segments 10
end_command

; right side
command
structure hybrid create by-line (1,[ypos],-0.5) (3,[ypos],-0.5) ...
segments 10
structure hybrid create by-line (1,[ypos],0) (3,[ypos],0) ...
segments 10
structure hybrid create by-line (1,[ypos],0.5) (3,[ypos],0.5) ...
segments 10
end_command

; top
loop i (1,5)
local angle = math.pi/6.0*float(i)
p1x = math.cos(angle)
p1z = 1.0 + math.sin(angle)
p2x = 4.0*math.cos(angle)
p2z = 1.0+4.0*math.sin(angle)
command
structure hybrid create by-line [(p1x,ypos,p1z)] [(p2x,ypos,p2z)] ...
segments 10
end_command
end_loop
end

structure hybrid property cross-sectional-area 181e-6 young 98.6e11 ...
yield-tension 5e6 yield-compression 0 grout-stiffness 1.12e9 ...
grout-cohesion 1.75e9

; dowel properties
structure hybrid property dowel-stiffness 2e10 dowel-yield 5e5 ...
dowel-failure-strain 0.1 dowel-active-length 0.05

block relax linear 500 range group 'tunnel' position-y -3 -1
model cycle 500
model solve

model save 'exc-2'

=======================================

structure hybrid property cross-sectional-area 181e-6 young 98.6e11 ...
yield-tension 5e6 yield-compression 0 grout-stiffness 1.12e9 ...
grout-cohesion 1.75e9

; dowel properties
structure hybrid property dowel-stiffness 2e10 dowel-yield 5e5 ...
dowel-failure-strain 0.1 dowel-active-length 0.05

block relax linear 500 range group 'tunnel' position-y -1 1
model cycle 500
model solve elastic

model save 'exc-3'

=======================================

structure hybrid property cross-sectional-area 181e-6 young 98.6e11 ...
yield-tension 5e6 yield-compression 0 grout-stiffness 1.12e9 ...
grout-cohesion 1.75e9

; dowel properties
structure hybrid property dowel-stiffness 2e10 dowel-yield 5e5 ...
dowel-failure-strain 0.1 dowel-active-length 0.05

block relax linear 500 range group 'tunnel' position-y 1 3
model cycle 500
model solve

model save 'exc-4'

=======================================

structure hybrid property cross-sectional-area 181e-6 young 98.6e11 ...
yield-tension 5e6 yield-compression 0 grout-stiffness 1.12e9 ...
grout-cohesion 1.75e9

; dowel properties
structure hybrid property dowel-stiffness 2e10 dowel-yield 5e5 d...
owel-failure-strain 0.1 dowel-active-length 0.05

block relax linear 500 range group 'tunnel' position-y 3 5
model cycle 500
model solve

model save 'exc-5'