Example: Ring Support of a Jointed Tunnel

Problem Statement

Note

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

This is a simple example which demonstrates the use of FISH and the structure beam create command to place a set of 3 beam support rings inside a tunnel. The beam material properties are:

Table 1: Beam properties

area

0.03 m^2

modulus

200 GPa

Poisson’s ratio

0.3

density

2000 kg/m^3

moment of inertia

0.00064 m^4

The beams are initially rigidly connected to the rock.

Figure 1 shows the placement of the beam elements inside the tunnel, and Figure 2 illustrates the axial forces in the beams.

../../../../../_images/beams.png

Figure 1: Tunnel with beam elements

../../../../../_images/force.png

Figure 2: Axial forces in the beams after tunnel excavation.

The model is then run again but this time the beams are allowed to slide and separate from the rock. This is done by altering the link attach conditions and properties as shown in the data file below. For the assigned properties, some of the beam links reach their peak shear stress and start to slide during the simulation as shown in Figure 3.

../../../../../_images/beam-sliding.png

Figure 3: Failure condition of links in the local x-direction.

Data Files

beam.dat

model new
model random 10000
model large-strain on
; -------------------------------------------------------------------
; structural element example
; tunnel support with beam elements
; -------------------------------------------------------------------
;
model title
'Beam example'
;
block create brick -25 25  -25 25  -25 25
;
block cut joint-set  dip 30 dip-direction 90  number 5 spacing 10
;
block cut tunnel  face-1 -5 -100 0  -3.5 -100  3.5  0 -100  5  3.5 -100  3.5 &
           5 -100 0   3.5 -100 -3.5  0 -100 -5 -3.5 -100 -3.5 &
        face-2 -5  100 0  -3.5  100  3.5  0  100  5  3.5  100  3.5 &
           5  100 0   3.5  100 -3.5  0  100 -5 -3.5  100 -3.5 &
        group 'exc'
;
block delete range group 'exc'
;
block zone generate edgelength 6
;
; E = 50000 MPa, v=0.25
; density = 2500 kg/m3
block zone cmodel assign elastic
block zone property density 0.0025  bulk 33333 shear 20000

block contact jmodel assign mohr
block contact property stiffness-normal 10000 stiffness-shear 4000 ...
  cohesion 1e10 tension 1e1
block contact material-table default property stiffness-normal 10000 ...
  stiffness-shear 4000 
;
block gridpoint apply velocity-x 0 range position-x -25
block gridpoint apply velocity-x 0 range position-x 25
block gridpoint apply velocity-y 0 range position-y -25
block gridpoint apply velocity-y 0 range position-y 25
block gridpoint apply velocity-z 0 range position-z -25
block gridpoint apply velocity-z 0 range position-z 25
;
block insitu stress -5 -5 -5 0 0 0
;
model gravity 0 0 -10

block history displacement-x position 0,0,5
block history displacement-y position 0,0,5
block history displacement-z position 0,0,5
;

fish define make_beams
  local start = vector(0,-10,0)
  local axial_segments = 3
  local radial_segments = 8
  local radius = 5.0
  local axial_spacing = 10.0
  local mult_ = 2.0*math.pi/float(radial_segments)
  loop local axial (1,axial_segments)
    yy = start->y + (axial-1.0)*axial_spacing
    loop local i (1,radial_segments-1)
       xx = start->x + radius*math.cos(mult_*(i-1))
       zz = start->z + radius*math.sin(mult_*(i-1))
       xx_next = start->x + radius*math.cos(mult_*(i))
       zz_next = start->z + radius*math.sin(mult_*(i))
	   ; specify same id for all beams in a ring to 
	   ; ensure all beams are connected
       command
          structure beam create by-line ([xx] [yy] [zz]) ...
            ([xx_next] [yy] [zz_next]) id [axial]
       end_command
    end_loop
    ; last segment
    last_point = vector(start->x + radius,yy,start->z)
    command
      structure beam create by-line ([xx_next] [yy] [zz_next]) [last_point] ...
        id [axial]
    end_command
  end_loop
end
[make_beams]

structure beam property young 200000 poisson .3 cross-sectional-area .03 ...
  density 0.0025 moi-y 6.4e-4  moi-z = 6.4e-4 torsion-constant = 0.0
  
model save 'beam-initial'

model cycle 1000
;
model save "beam"
;

beam-sliding.dat

; add sliding links between beam and rock
model restore 'beam-initial'

; set small strain so links aren't reset 
model large-strain off
  
; first cycle 1 to set up local coordinate system
model cycle 1

; set links to slide in shear direction and separate in normal direction
structure link attach x shear-yield
structure link attach y shear-yield
structure link attach z normal-yield

structure link property x stiffness 10e3 cohesion 1 friction 30
structure link property y stiffness 10e3 cohesion 1 friction 30
structure link property z stiffness 10e3 yield-tension 1

model cycle 1000
;
model save "beam-sliding"
;

Endnote