Bonded Block Model With Zone-Block Coupling

Problem Statement

Note

To view this project, use the menu command Help ► Examples…. Choose “Coupling/ZoneBlock/bbm” and select “bbm.prj” to load. The project’s main data files are shown at the end of this example.

The following example demonstrates the coupling scheme between 3DEC and FLAC3D.

A FLAC3D model is created using Sketch. The center part is deleted and filled with 3DEC tetrahedral blocks. The model is shown in Figure 1.

../../../../../../../../../_images/zoneblockbbm-fig1.png

Figure 1: Geometry of the bonded blocks zone block coupling example.

The FLAC3D faces touching the 3DEC blocks are assigned the group name ‘flac_bound’ and the 3DEC vertices on the outside of the 3DEC model are assigned the group name ‘3dec_bound’. The coupling is then set up with the command zone-block create.

Properties are then assigned. Note that the modulus of the FLAC3D material is set lower than that of the 3DEC blocks. This is because the rock mass stiffness of the 3DEC model will be less than the block stiffness because of the joints. In a real project, the 3DEC model would be subjected to a UCS test to determine the actual modulus of the rock mass. Similarly, the Poisson’s ratio of the FLAC3D material is set higher than that of the 3DEC blocks.

The outer boundaries are then fixed and in-situ stresses are installed. The model is then solved to get the initial equilibrium state.

The model solves in less than 400 steps and the resulting displacement are shown in Figure 2. The maximum displacement at the boundary is about 1 mm showing that the coupling is working correctly (the entire model width is 200 m).

../../../../../../../../../_images/zoneblockbbm-fig2.png

Figure 2: Displacements in the model at equilibrium.

Next, an inner portion of the 3DEC model (the tunnel) is excavated. Reaction forces on the surface of the tunnel are determined, and opposing forces are applied and gradually reduced to prevent a large shock to the system. The surface reaction forces are reduced over 1000 steps. The model is unlikely to reach equilibrium, so the model is stopped at this point.

The resulting displacements are shown in Figure 3. It is clear that the displacement contours are fairly continuous across the FLAC3D-3DEC boundary indicating that the coupling is working as expected. You can also see that the FLAC3D boundary is probably too close to the 3DEC tunnel surface, possibly restricting movement of the 3DEC blocks above and below the tunnel. In a real project, the boundary would be further from the excavation and the 3DEC blocks would be smaller.

../../../../../../../../../_images/zoneblockbbm-fig3.png

Figure 3: Displacements in the model after gradually excavating the tunnel over 1000 steps.

Data Files

geometry.dat

model new
model random 10000

; make FLAC3D model
program call 'sketch.dat'

; skin it before deleting middle part
zone face skin

; delete part that will be filled with blocks
zone delete range group 'bbm' position-y 50 100

; identify boundary faces
zone face group 'flac_bound' range position-x -51 51 position-y 49 101 position-z -13 13

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

; make 3DEC model
block join-by-contact on

; create tet blocks
geometry set 'box' generate box -25 25 50 100 -12.5 12.5 
block generate from-geometry set 'box' maximum-edge 2.5
block group 'rock'

; cut out tunnel
model domain extent -50 50 0 200 -50 50
geometry set 'box2' generate box -10 10 60 90 -5 5
block cut geometry 'box2'
block group 'tunnel' range position-x -10 10 position-y 60 90 position-z -5 5

; zone it
block zone generate edgelength 2.5

; identify boundary
block gridpoint group '3dec_bound' range position-x -25
block gridpoint group '3dec_bound' range position-x 25
block gridpoint group '3dec_bound' range position-y 50
block gridpoint group '3dec_bound' range position-y 100
block gridpoint group '3dec_bound' range position-z -12.5
block gridpoint group '3dec_bound' range position-z 12.5

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

; set up coupling
zone-block create zone-face-group 'flac_bound' block-gp-group '3dec_bound'

model save 'bbm-geometry'

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

initial.dat

model restore 'bbm-geometry'

; properties
; Note that FLAC3D properties are softer than 3DEC
; to try to match the rock MASS properties 

block zone cmodel assign elastic
block zone property density 2500e-6 young 1e3 poisson 0.25
block contact jmodel assign mohr
block contact property stiffness-normal 1e4 stiffness-shear 1e3  ...
  cohesion 1 friction 30 tension 0.1
  
block contact material-table default property ...
  stiffness-normal 1e4 stiffness-shear 1e3 friction 30

; assume lower E and large poisson's ratio than 3DEC blocks
zone cmodel assign elastic
zone property density 2500e-6 young 0.75e3 poisson 0.3

; insitu stresses (MPa)
zone initialize stress xx -10 yy -5 zz -4
block insitu stress -10 -5 -4 0 0 0

; boundary conditions
zone face apply velocity-normal 0 range group 'West' or 'East'
zone face apply velocity-normal 0 range group 'North' or 'South'
zone face apply velocity-normal 0 range group 'Top' or 'Bottom'

model large-strain on
model solve elastic
model save 'initial'

excavate.dat

model restore 'initial'

; identify tunnel surface
block face group 'surface' range group-intersection 'rock' 'tunnel'
block delete range group 'tunnel'

; delete tiny blocks to prevent negative volume zones
block delete range volume 0 1e-3

; set up reaction forces
model cycle 1

; get current step
[global bound_his_start = mech.step]

; function to gradually reduce reaction forces
fish define bound_his
  ; non-linear, approaches 0 in ~ 1000 steps
  bound_his = 0.95^((mech.step-bound_his_start)/10.0) 
end

block gridpoint apply reaction fish bound_his range group 'surface' 
fish history bound_his

model cycle 1000 

model save 'excavate'