FLAC3D Theory and Background • Constitutive Models

Uniaxial Compressive Strength of a Jointed Material Sample

Problem Statement

Note

To view this project in FLAC3D, use the menu command Help ► Examples…. Choose “VerificationProblems/UniaxialStrengthJointed” and select “UniaxialStrengthJointed.f3prj” to load. The main data files used are shown at the end of this example. The remaining data files can be found in the project.

The uniaxial compressive strength of a cylindrical sample of material is evaluated numerically using the ubiquitous-joint model. This model takes into consideration a direction of weakness (ubiquitous-joint) in a Mohr-Coulomb material on which shear failure can be initiated. The compressive strength of the sample is a function of the material and joint properties, as well as the angle, \(\beta\), formed by the direction of the compressive stress and its projection onto the plane of weakness (see Figure 1).

In this example, the sample is selected as a cylinder with radius, a, and height, b, such that \(b/a\) = 4. The Mohr-Coulomb material has the following properties:

shear modulus (\(G\)) 70 MPa
bulk modulus (\(K\)) 100 MPa
cohesion (\(c\)) 2 kPa
friction angle (\(\phi\)) 40°
dilation angle (\(\psi\))
tension limit (\(\sigma^t\)) 2.4 kPa

The ubiquitous-joint properties include the following:

cohesion (\(c_j\)) 2 kPa
friction angle (\(\phi_j\)) 30°
dilation angle (\(\psi_j\))
tension limit (\(\sigma_j^t\)) 2.4 kPa

Analytical Prediction

As a definition, let

\[\kappa = 1 - \tan(\phi_j) \tan(\beta)\]

in which \(\beta\) is the weak-plane angle, as indicated in Figure 1. Before failure occurs, the state of stress is homogeneous in the sample. Failure will be initiated on the weak plane when, for \(\kappa >\) 0,

\[-\sigma_1 = {{2 c_j}\over{\kappa \sin 2\beta}}\]

provided the value \(-\sigma_1\) of the compressive strength (tension positive) does not violate the Mohr-Coulomb failure criterion,

\[-\sigma_1 = 2 c \sqrt N_{\phi}\]

in which

\[N_{\phi} = {{1 + \sin\phi}\over{1 - \sin\phi}}\]

If this criterion is violated, or if \(\kappa \leq\) 0, failure will occur in the matrix instead, on planes inclined at an angle of \((\pi/4 - \phi/2)\) with respect to the axis of symmetry of the sample. See Jaeger and Cook (1979) for details.

../../../../../_images/jointed-geom.png

Figure 1: Problem geometry.

FLAC3D Model

For the numerical simulation, a cylinder with a radius of 1 m and height of 4 m is selected. A system of reference axes with the x- and z-axes located in the base of the cylinder and the y-axis pointing along the cylinder axis is selected. This domain is discretized into 48 zones organized in a radial pattern (see Figure 2). A uniform velocity is applied in the y-direction at both ends of the cylinder to induce compression of the sample.

The effect of the variation of \(\beta\) has been studied every five degrees from 0° to 90°. The input file uses a FISH function (solveAll) to calculate the compressive strength at each \(\beta\) value. A zone delete command is issued prior to each calculation at a different \(\beta\). This deletes all zones to effectively reset the model. The final vertical stress calculated with FISH function sigmav is added to a table at the end of each run. This approach allows us to save the whole parametric analysis in one file.

After initiation of the failure mechanism, the state of stress in the sample becomes nonuniform. To better control the deformation of the system, the magnitude of the velocities at the top and bottom of the sample are monitored and adapted as a function of the unbalanced force value (servo-control). The servo keyword used in the zone face apply command controls the magnitude of the applied velocity. Cycling continues until an accumulated displacement of 4.5e-4 is reached (using the FISH function halt), indicating enough total strain to cause failure at all angles.

../../../../../_images/jointed-grid.png

Figure 2: FLAC3D grid—uniaxial compressive strength test.

Results and Discussion

Figure 3 compares results of the FLAC3D runs with the analytical compressive strength predictions. The match is satisfactory, with a relative error smaller than 2% for all values of \(\beta\).

../../../../../_images/jointed-strength.png

Figure 3: Compressive strength comparison.

Reference

Jaeger, J. C., and N. G. W. Cook. Fundamentals of Rock Mechanics, 3rd Ed. New York: Chapman and Hall (1979).

Data Files

UniaxialStrengthJointed.f3dat

;---------------------------------------------------------------------
; compression test of cylindrical sample using
;   ubiquitous joint model
;---------------------------------------------------------------------
model new
model largestrain off
fish automatic-create off
; Create the Extruder data, generated interactively 
; and exported from the State Record
call 'geometry' ; Includes 'top' and 'bottom' group assignments
; Load FISH functions used to support  - 
; the strength calculation and the halt function
call 'fish-support.f3fis'
; The main function that 
fish define solveAll
    loop local beta (0,90,5) ; Check angles from 0-90 in 5 degree increments
        command
            zone delete ; Remove all existing zones
            zone generate from-extruder ; Generate new zones from extruder
            zone cmodel assign ubiquitous-joint ; Assign model and properties
            zone property bulk 1.e8 shea 7.e7 cohesion 2.e3
            zone property friction 40. dilation 0. tension 2400.
            zone property dip @beta dip-direction 0. joint-cohesion 1.e3 
            zone property joint-friction 30. joint-dilation 0. ...
                          joint-tension 2000.
            ; Assign boundary conditions
            zone face apply velocity-normal -5e-7 servo ...
                      ratio local minimum 1e-4 range group 'Top' or 'Bottom'
            ; Cycle till the target strain is reached
model solve fish-halt @halt
            ; Add results to table
            table 'result' add (@beta,@sigmav)
        end_command
    end_loop
end
; Run all 18 cases
@solveAll
; Save the last state, and the accumulated table
model save 'final'
return

fish-support.f3fis

; Function that calculates final strength
fish define sigmav
    local sum = 0.
    loop foreach local gp gp.list
        if gp.isgroup(gp,'bottom') then
            sum = sum - gp.force.unbal.y(gp)
        endif
    endloop
    sigmav = sum / 3
end
; Function that determines if solving should stop
fish define halt
    global gpHalt = gp.near(0,0,0)
    halt = gp.disp.y(gpHalt ) > 4.5e-4
end