Falling Wedge

Problem Statement

Note

To view this project in FLAC3D, use the menu command Help ► Examples…. Choose “FLAC/ ZoneJoint/ falling_wedge” and select “wedge.prj” to load. The main data files used are shown at the end of this example. All data files are found in the project.

The stability of a rock wedge in the roof of an excavation is analyzed. This problem takes into account the stabilizing effect of the in-situ stresses, and also shows the influence of joint stiffness.

A roof wedge is created by three joints dipping at 60° and with dip directions of 30°, 150°, and 270°. The height of the wedge is 1 meter.

The wedge is created using 3DEC commands and the zoned 3DEC model is exported to FLAC3D. Since this is a small model, it is possible to use the demo version of 3DEC in this way to create the model (a 3DEC license is not required).

An in-situ state of stress has two principal stresses parallel to the excavation roof (equal to −0.05 MPa); the vertical principal stress is zero.

Analytical Solution

A closed-form solution of the support force for stabilization of the wedge in the roof of an excavation was derived by Goodman et al. (1982), and is given by the equation

\[{A_0 \over W}= 1-\sum_{i=1}^{n-1}{{\sigma_{n,i}A_i\sin(\phi_i-\alpha_i)(k_{s,i}/k_{n,i}) \left[\cos\alpha_i \cos i_i +\tan\alpha_i \sin(\alpha_i-i_i) \right]} \over{W\cos\phi_i} (k_{s,i}/k_{n,i}) \left[\cos\alpha_i \cos i_i +\tan\phi_i \sin(\alpha_i-i_i) \right]}\]

where:

\(n\) = is the number of faces on the block;

\(_i\) = the index denoting the face of the block;

\(A_0\) = required force to stabilize the wedge;

\(W\) = weight of the wedge;

\(\sigma_{n,i}\) = normal stress acting on the \(i\)th face of the wedge;

\(A_i\) = the area of the face of the wedge;

\(\phi_i\) = the friction angle on the face of the wedge;

\(\alpha_i\) = the complement of the dip angle of the joint which creates the face;

\(k_{si}\) = shear stiffness of the joint;

\(k_{ni}\) = normal stiffness of the joint; and

\(i_i\) = roughness angle of the joint.

For this particular case, where

  1. all joints have the same dip angle,

  2. the initial stress state in the plane parallel to free face of the block is hydrostatic, and

  3. all joints have the same ratio between normal and shear stiffness,

the friction coefficient (equal in all joints) required for stability of the wedge without any support can be expressed from the equation above as follows:

\[\tan \phi = { W+\sigma_n\sum A_i \sin\alpha \over \sigma_n\sum A_i \sin\alpha-W\tan\alpha}\]

The critical friction coefficient (and friction angle) is calculated using the FISH function _limit, listed in data file “FALL.FIS”. (It is assumed that three joints form a block, and their dip directions are not 120°.)

FLAC3D Model

The FLAC3D model is shown in Figure 1. The mechanical properties are:

density: \(\rho\) = 2000 kg/m3

joint shear and normal stiffness: \(K_n\) = \(K_s\) = 10 MPa/m

gravity acceleration: \(g\) = 10 m/sec2

The numerical simulation is performed by first fixing the outer edges of all the blocks surrounding the wedge and assigning the in-situ stress state. The friction coefficient is then reduced until failure occurs.

Results and Discussion

The FLAC3D simulation shows a model with a friction angle of 34.5° is stable and a model with friction of 34.4° friction angle is unstable. This matches the analytic solution for the critical friction angle of 34.402°. The failure of the wedge is shown in Figure 1 with the vertical velocity of a point on the falling wedge shown as a history.

../../../../../_images/fall-wedge.png

Figure 1: Falling wedge model.

Reference

Goodman, R. E., G.-H. Shi and W. Boyle. “Calculations of Support for Hard, Jointed Rock Using the Keyblock Principal,” in Issues in Rock Mechanics (Proceedings of the 23rd Symposium on Rock Mechanics, University of California, Berkeley, August 1982), pp. 883-898. New York: Society of Mining Engineers (1982).

Data Files

fall.dat

model new
model random 10000

; create geometry with 3DEC.
; demo version will work for this small example
block create brick -2 2 -2 2 0 1

block cut joint-set dip 60  dip-direction  30  origin 0 0 1
block cut joint-set dip 60  dip-direction 150  origin 0 0 1
block cut joint-set dip 60  dip-direction 270  origin 0 0 1
block group 'wedge' range position-x -0.2,0.2 position-y -0.2,0.2 position-z 0.0,0.3

block zone generate-new minimum-edge 1 maximum-edge 1

; export to FLAC3D grid file
; face groups are used to denote joint sets
block to-flac3d 
===================================================

model new

; import and skin
zone import '3dec.f3grid' 
zone face skin 

; create zone-joints
zone joint configure
zone joint create skinned

zone cmodel assign elastic

; MPa
zone property density=2e-3 bulk 100 shear 60

;  Coulomb slip model for zone-joints
contact property stiffness-normal 10 stiffness-shear 10 friction 89

zone initialize stress xx -0.05 yy -0.05

; Initialize stress on zone-joints
zone joint initialize-stresses 

model gravity 0 0 -10

zone face apply velocity 0 0 0 range position-x -2
zone face apply velocity 0 0 0 range position-x 2
zone face apply velocity 0 0 0 range position-y -2
zone face apply velocity 0 0 0 range position-y 2
zone face apply velocity 0 0 0 range position-z 1

zone history name 'Z-Velocity of Wedge' velocity-z position 0,0,0.01  
model cycle 500

; set friction to 34.5
contact property friction 34.5

model cycle 2000
model save 'fall_stable'


; set friction to 34.4
contact property friction 34.4
model cycle 2000

; print analytical solution to screen
program call 'fall.fis'
[analytic]
model save 'fall'
program return

fall.fis

fish define params
  global height_ = 1.0
  global alpha_ = 60.0
  global sigma_ = 0.05
  global unitweight_ = 0.02
end
[params]

fish define _limit
  alpha_ = (90.-alpha_)*math.degrad
  local w_     = 0.5*math.sqrt(3)*height_^3* ...
                                  math.tan(alpha_)* ...
                                  math.tan(alpha_)*unitweight_
  local a_     = 1.5*math.sqrt(3)*height_^2*math.tan(alpha_)/math.cos(alpha_)
  local coef_  = (w_+sigma_*a_*math.sin(alpha_))
  coef_  = coef_/(sigma_*a_*math.cos(alpha_)-w_*math.tan(alpha_))
  global fang_  = math.atan(coef_)/math.degrad
end
;
fish define analytic
 _limit
 local status = io.out('Analytic solution = '+string(fang_))
end