FLAC3D Theory and Background • Constitutive Models

Columnar-Basalt (COMBA) Model**

Note

**Not available in FLAC2D.

The Columnar-Basalt (COMBA) model (Detournay et al 2016, Meng et al 2020) accounts for the presence of up to four arbitrary orientations of weakness (ubiquitous joint) in a non-isotropic elastic matrix. The model can be applied to model quadrangular (hexagonal) columnar basalt with cross-joints by specifying that two (three) of the ubiquitous joints are oriented along the column axis, and another along the cross-joints. The model elastic behavior accounts for the compliance of the column matrix and that of the joints. The criterion for failure on the planes consists of a strain hardening/softening Coulomb envelope with tension cutoff; the strain hardening/softening behavior can be specified (using a table) for joint cohesion, friction, dilation, and tension. In addition, an amplification factor can be applied to joint dilation that depends on the angle between a set direction (i.e. the column mean axis) and the direction of slip on the joint. The amplification factor versus angle is specified in an input table.

Formulations

Definition of Joint Orientation, Spacing and Stiffness

The orientation of a joint is specified either by the dip (dip) and dip direction (dd) of the joint plane, or by the three components of the unit normal to the plane. Up to four joints planes can be considered.

The spacing of joint i is Si, the normal stiffness is kni, and the shear stiffness is ksi (the joint compliance terms related to normal and shear displacements under shear and normal loads are ignored).

../../../../_images/modelcomba-dipdd.png

Figure 1: Definition of dip and dip direction for a joint plane in x-y-z reference axes.

Elastic Stress-Strain Behavior

The global elastic strain-stress relations used in the model logic are obtained by superposition of strain contributions from the column matrix and from the joints. The isotropic elastic column matrix has Young modulus, E and Poisson ratio, ν. The matrix contribution to the incremental strain-stress relations are expressed using Voigt notation as follows.

(1){˙ϵxx˙ϵyy˙ϵzz2˙ϵxy2˙ϵxz2˙ϵyz}=[1EνEνEνE1EνEνEνE1E1G1G1G]{˙σxx˙σyy˙σzz˙σxy˙σxz˙σyz}

where G=E/2(1+μ)

A local system of axes is defined for the joint; axis 3 is normal to the plane, 1 is in the direction of the dip direction vector, and 2, in the direction of the strike.

The stress and strain tensors transformation from local to global axes and vice-versa is obtained by application of the usual matrix transformation operations.

The local elastic strain increment contribution of the joint is expressed as follows.

(2){˙ϵexx˙ϵeyy˙ϵezz2˙ϵexy2˙ϵexz2˙ϵeyz}=[0000000000000000000001ksiSi0000001ksiSi0000001ksiSi]{˙σxx˙σyy˙σzz˙σxy˙σxz˙σyz}

The local compliance matrix, SiL (entity between brackets in Eq. (2)) is converted to global axes, and the result, SiL is added to the global compliance matrix. The transformation from local to global axes is performed using the matrix product:

(3)SiG=QiSiLQiT

where Qi is the local-to-global strain transformation matrix for joint i, and QiT is the transpose of Qi. The final compliance matrix (i.e. the sum of matrix and joint contributions) is inverted to produce CG, the global elasticity matrix; the components of the global elasticity matrix are stored, taking into account the matrix symmetry. In addition, to save calculation time in small strain analyses, the elasticity matrix, CG is expressed in the local axes of joint i, and the components of the resulting local matrix, CiL are stored, taking again into consideration the matrix symmetry. The transformation from global to local axes is performed using the matrix product:

(4)CiL=QiCiGQiT

where Qi is the global-to-local stress transformation matrix for joint i, and QiT is the transpose of Qi.

In the text below, we consider a particular joint, i and the incremental stress-strain relations in the local axes of that joint. The indices i, referring to the joint, and L, referring to the local axes are omitted to simplify the notation. With these conventions, the formal expression of the local stress strain relations in Voigt notation is:

(5){˙σxx˙σyy˙σzz˙σxy˙σxz˙σyz}=[C11C12C13C14C15C16C21C22C23C24C25C26C31C32C33C34C35C36C41C42C43C44C45C46C51C52C53C54C55C56C61C62C63C64C65C66]{˙ϵexx˙ϵeyy˙ϵezz2˙ϵexy2˙ϵexz2˙ϵeyz}

The local strain (stress) components involved in the above relation are evaluated from the global strain (stress) tensors after application of the usual matrix transformation operations from global to local axes.

Yield Criterion and Flow Rule for a Weak Plane

The local yield criterion on a weak plane is the composite of a Coulomb criterion for slip, fs and a tension cut-off, ft, i.e.,:

(6)fs=σ213+σ223+σ33tanϕc

and

(7)ft=σ33σt

where ϕ is joint friction, c is joint cohesion, and σt is joint tensile strength. For a joint with non-zero friction angle, the tensile strength is capped with the maximum value of c/tan(ϕ).

Shear yielding on a weak plane corresponds to a non-associated flow rule; the potential function is:

(8)gs=σ213+σ223+σ33tanψ

where ψ is the joint dilation.

Tension yielding on a weak plane corresponds to an associated flow rule, and the potential function is:

(9)gt=σ33

For simplicity of notation in the text below, we use the following notation:

(10)τ3=σ213+σ223

The flow rule is obtained, as usual, by differentiation of the potential function with respect to the stress components. The incremental plastic stain components for shear yielding on a weak plane thus are obtained from Eq. (8):

(11)˙σp11=˙σp22=˙σp12=0˙σp33=λstanψ˙σp12=λsσ12/τ3˙σp13=λsσ13/τ3

For tension yielding on weak planes, the incremental plastic strain components are derived from (9):

(12)˙σp11=˙σp22=˙σp12=˙σp13=˙σp23=0˙σp33=λt

We recall that the FLAC3D/3DEC calculation scheme proceeds in incremental computational steps. At each step, the constitutive model receives the old stress (obtained at the end of the previous step) as input and the total strain increment for the step, and it is in charge of producing the new stress value for the current step. In the model implementation, an elastic guess for the stress is computed first using the total strain increment. The yield conditions are tested on the weak planes. If yielding is detected, a stress correction is applied to the elastic guess that is consistent with plasticity theory, as follows.

As usual, the total strain increment is expressed as the sum of elastic and plastic components. According to this superposition principle, the local stress-strain Eq. (5) can be expressed as follows.

(13){˙σxx˙σyy˙σzz˙σxy˙σxz˙σyz}=[C11C12C13C14C15C16C21C22C23C24C25C26C31C32C33C34C35C36C41C42C43C44C45C46C51C52C53C54C55C56C61C62C63C64C65C66]{˙ϵxx˙ϵyy˙ϵzz2˙ϵxy2˙ϵxz2˙ϵyz}[C11C12C13C14C15C16C21C22C23C24C25C26C31C32C33C34C35C36C41C42C43C44C45C46C51C52C53C54C55C56C61C62C63C64C65C66]{˙ϵpxx˙ϵpyy˙ϵpzz2˙ϵpxy2˙ϵpxz2˙ϵpyz}

The stress increments in Eq. (13) stand for the difference between new (N) and old (O) stress for the step:

(14){ΔσxxΔσyyΔσzzΔσxyΔσxzΔσyz}={σNxxσNyyσNzzσNxyσNxzσNyz}{σOxxσOyyσOzzσOxyσOxzσOyz}

After substitution of Eq. (14) in Eq. (13), and some manipulation, we write:

(15){σNxxσNyyσNzzσNxyσNxzσNyz}={σGxxσGyyσGzzσGxyσGxzσGyz}{σCxxσCyyσCzzσCxyσCxzσCyz}

where the (known) elastic guess (G) for the step is:

(16){σGxxσGyyσGzzσGxyσGxzσGyz}={σOxxσOyyσOzzσOxyσOxzσOyz}+[C11C12C13C14C15C16C21C22C23C24C25C26C31C32C33C34C35C36C41C42C43C44C45C46C51C52C53C54C55C56C61C62C63C64C65C66]{ΔϵxxΔϵyyΔϵzz2Δϵxy2Δϵxz2Δϵyz}

And the stress correction (C), yet to be determined is:

(17){σCxxσCyyσCzzσCxyσCxzσCyz}=[C11C12C13C14C15C16C21C22C23C24C25C26C31C32C33C34C35C36C41C42C43C44C45C46C51C52C53C54C55C56C61C62C63C64C65C66]{ΔϵpxxΔϵpyyΔϵpzz2Δϵpxy2Δϵpxz2Δϵpyz}

Clearly, various yielding scenarios are possible in each computational step. In fact, hundreds of different cases can be recorded, including single and simultaneous shear yielding on 1, 2, 3 or 4 weak planes, single and simultaneous tensile yielding on one or more weak planes, and combined shear and tensile yielding on one or more weak planes. To simplify the coding, it seems reasonable to focus attention at each computational step, on the weak plane exhibiting the most severe case of shear yielding, and that (same or different) with the largest potential amount of tensile yielding, and make the appropriate stress correction. Presumably, the yielding not ‘caught’ in one step will be addressed in the steps that follow.

With this idea in mind, we are down to consider two yielding scenarios to evaluate local stress corrections: 1) shear yielding only on a single weak plane (3 cases) and 2) tensile yielding only on a single yield plane (3 cases).

Shear Yielding on a Weak Plane

The case of shear yielding only on a weak plane is considered in this section. After substitution in Eq. (17)) of the plastic strain increments in Eq. (11), we obtain the following stress corrections for shear yielding on a joint.

(18)σC11=λs(C13tanψ+2C15σ13τ3+2C16σ23τ3)σC22=λs(C23tanψ+2C25σ13τ3+2C26σ23τ3)σC33=λs(C33tanψ+2C35σ13τ3+2C36σ23τ3)σC12=λs(C34tanψ+2C45σ13τ3+2C46σ23τ3)σC13=λs(C35tanψ+2C55σ13τ3+2C56σ23τ3)σC23=λs(C36tanψ+2C56σ13τ3+2C66σ23τ3)

The magnitude of λs is determined from the condition that the new (corrected) stresses (N) must satisfy the condition for shear yielding, see Eq. (7). The new stresses for the step, obtained from Eq. (15) and Eq. (18), are as follows.

(19)σN11=σG11λs(C13tanψ+2C15σ13τ3+2C16σ23τ3)σN22=σG22λs(C23tanψ+2C25σ13τ3+2C26σ23τ3)σN33=σG33λs(C33tanψ+2C35σ13τ3+2C36σ23τ3)σN12=σG12λs(C34tanψ+2C45σ13τ3+2C46σ23τ3)σN13=σG13λs(C35tanψ+2C55σ13τ3+2C56σ23τ3)σN23=σG23λs(C36tanψ+2C56σ13τ3+2C66σ23τ3)

After substitution of σNij in Eq. (19) for σij in Eq. (6), the criteria for shear yielding can be expressed as:

(20)(a1a2λs)2+(a3a4λs)2a5λs+a6=0

with the constants ai (i=1,6) defined as follows:

(21)a1=σG13a2=C33tanψ+2C35σ13τ3+2C36σ23τ3a3=σG23a4=C34tanψ+2C45σ13τ3+2C46σ23τ3a5=(C33tanψ+2C35σ13τ3+2C36σ23τ3)tanϕa6=σG33tanϕc

Solving Eq. (20) for the smallest root, we obtain:

(22)A0:λs=BA(BA)2CAA=0:λs=C2B

with

(23)A=a22+a24a25B=a1a2+a3d4a5a6C=a21+a23a26

After λs has been calculated using (22), the plastic corrections for the local stress components on the weak plane are defined from (19).

Note that in the current implementation of the model the coefficient a2 , a4 and a5 are computed using the elastic guess for the step. The accuracy of λs could potentially be improved by performing iterations between Eqs. (21) and (22) after updating the value of a2 , a4 and a5 using new computed stress values until convergence is achieved. However, this does not seem necessary (see verification tests below) as the computational steps are typically small enough.

Tensile Yielding on a Weak Plane

For tensile failure only on a single weak plane, we follow the same procedure. After substitution in Eq. (17) of the plastic strain increment for tensile yielding listed in (7), the stress corrections change are as follows:

(24)σC11=λtC13σC22=λtC23σC33=λtC33σC12=λtC34σC13=λtC35σC23=λtC36

The magnitude of λt is determined from the condition that the new (corrected) stresses (N) must satisfy the condition for tensile yielding, see Eq. (7). The new normal stress on the joint for the step is obtained from Eq. (13) and Eq. (24):

(25)σN11=σG11λtC13σN22=σG22λtC23σN33=σG33λtC33σN12=σG12λtC34σN13=σG13λtC35σN23=σG23λtC36

After application of the tensile yield criterion, using the expressions for normal stress on the joint listed in (25), and solving for λt, we have:

(26)λt=σG33σtC33

The stress corrections for tensile yielding on individual plane listed in Eq. (24) now can be expressed in terms of known quantities.

Strain hardening/softening

The joint cohesion, friction, dilation and tensile strength may harden or soften after the onset of plastic yield. The user defines the joint cohesion, friction, and dilation as piecewise-linear function of an evolution parameter measuring the plastic shear strain. A piecewise-linear softening law for the tensile strength can also be prescribed in terms of another hardening parameter measuring the plastic tensile strength. The code measures the total plastic shear and tensile strains by incrementing the evolution parameters at each time step, and causes the model properties to conform to the user defined functions.

The parameter increment for measuring the plastic shear strain is the square root of the second invariant ( J2) of the incremental plastic shear-strain deviatoric tensor for the step:

(27)Δκsj=13(Δϵp33)2+(Δϵp13)2+(Δϵp23)2

where the plastic strain components are given by (11).

The parameter increment for measuring the plastic tensile strain is the plastic volumetric tensile strain increment:

(28)Δκtj=Δϵp33

where the plastic strain increment is given by (12).

Directional dilation

Dilation is expected to be quite different if the direction of shear on a ‘lateral’ joint (i.e. a joint parallel to the column axis) is along the column axis, or normal to it. To represent this behavior, the user provides the three components of the unit vector along the mean column axis, and a table giving (a piece-wise linear representation of) the dilation amplification factor versus amplification angle (in degree) between the specified unit vector and the direction of slip on a joint. The dilation for the step is evaluated from the dilation table, if it is provided, and the value is multiplied by the amplification factor (the code calculates the amplification angle from the dot product of the unit vector and the slip direction vector, and the factor is found by interpolation, using the table provided.)

Large-Strain Update of Weak Plane Orientation

In large strain, the orientation of the weak planes possibly could be adjusted in each zone to account for rigid body rotations, and rotations due to deformations. However, this correction has not been considered in the current model implementation; it is left for future development.

Implementation Procedure

The implementation of the model proceeds as follows. The coefficients of the global elasticity matrix are computed and stored in the initialization phase. The local elasticity matrix of active joints are also stored. New stresses are estimated using the global elasticity matrix and the total strain increments for the step. The global stress tensor then is resolved in the local axes of the weak plane, and the local yield conditions are tested. If yielding is detected, a relevant local stress correction (derived using the flow rule) is calculated as described above. The stress correction then is resolved into global axes and subtracted from the global elastic stress estimate. The evolution parameters are incremented, and the strength properties are updated using the information in the input tables, as appropriate. Also, the dilation amplification factor is accounted for, as described above, if an amplification table is provided.

Creep Option

A creep rate component is added to the COMBA ubiquitous joints logic. We consider the power law suggested by Malan et al. (1998) that provides the following relation between steady state creep rate and the stress/strength ratio:

(29)˙ϵcr=A(ˉτˉτmax)n

where τ and τmax are the shear stress and maximum shear stress on the joint, respectively, the overbar stands for absolute value, and A and n are calibration parameters that depends on the absolute stress level (as well as the thickness and type of filling).

A local system of axes is defined for the joint; axis 3 is normal to the plane, axis 1 is in the direction of the dip direction vector, and axis 2 is in the direction of the strike. With this convention, the local shear stress on the joint is evaluated as follows:

(30)ˉτ=σ213+σ223

and the shear strength is calculated using Mohr criterion,

(31)τmax=cjσ33tanϕj

where compressive stresses are negative, cj is joint friction, and ϕj is joint friction.

In the COMBA implementation, creep only takes place if the normal stress on the joint, σ33, is compressive (σ33 is negative in this case). Also, the law uses a threshold ratio, slim, above which creep is active (and below which creep does not take place):

(32)ˉτˉτmax>slim

where, e.g., slim=30% for unfilled joints, and slim=10% for filled joints (Glamheden, R., and H. Hokmark, 2010).

Finally, the local creep rate components in the joint plane are expressed as follows.

(33)˙ϵcr13=σ13ˉτ˙ϵcr,˙ϵcr23=σ23ˉτ˙ϵcr

The total strain increment is expressed as the sum of elastic, creep, and plastic components. Consistent with the superposition principle, the global (using a subscript G) stress-strain equations are expressed as follows:

(34){Δσ}G=CG{Δϵ}GCG{Δϵcr}GΔtCG{Δϵp}G

where the creep component is evaluated as the sum of joint contributions, and Δt is the creep timestep. By convention, we refer to the first, second, and third term in the right hand side of (34) as elastic guess, creep stress correction, and plastic stress correction, respectively:

(35){Δσ}guessG=CG{Δϵ}G{Δσcr}G=CG{˙ϵcr}GΔt{Δσp}G=CG{Δϵp}G

In the COMBA formulation, the creep contribution to the creep stress correction from joint i is evaluated in the local axes of the joint:

(36){Δσi,cr}L=CL{˙ϵi,cr}LΔt

where

(37){˙ϵi,cr}L={0,0,0,0,2σi,cr13,2σi,cr23}iL

The local contribution of joint i to the creep stress correction is then evaluated in global axes and added to the global contributions of the other joints in the model to provide the total creep stress correction for the step. The creep stress correction is subtracted from the elastic guess before the plastic stress correction is performed.

References

Detournay, C., Meng, G.T., & Cundall, P.A. “Development of a Constitutive Model for Columnar Basalt.” In: Proceedings of the 4th Itasca Symposium on Applied Numerical Modeling. (2016).

Glamheden, R. & Hokmark, H. Creep in jointed rock masses – State of knowledge. Svenk Karnbranslehantering AB, Swedish Nuclear Fuel and Waste Management Co. ISSN 1402-3091, SKB R-06-94. (2010).

Malan, D.F., Drescher, K., &Vogler, U.W. “Shear creep of discontinuities in hard rock surrounding deep excavations.” In: Rossmanith H-P (ed). Proceedings of the Third International Conference on Mechanics of Jointed and Faulted Rock – MJFR-3, Vienna, Austria, 6-9 April 1998. Rotterdam: Balkema, pp473-478. (1998).

Meng G.T., Detournay C. and Cundall P. “Formulation and Application of a Constitutive Model for Multijointed Material to Rock Mass Engineering.” International Journal of Geomechanics, 20(6) (2020).



columnar-basalt Model Properties

Use the following keywords with the zone property (FLAC3D) or block zone property (3DEC) command to set these properties of the Columnar-Basalt model.

columnar-basalt
cohesion f

matrix cohesion, c = c1.

dilation f

matrix dilation angle, ψ = ψ1. The default is 0.0.

dip-i f

dip angle [degrees] of weakness plane of the i-th (i=1,2,3,or 4) set.

dip-direction-i f

dip direction [degrees] of weakness plane of the i-th (i=1,2,3,or 4) set.

friction f

matrix friction angle, ϕ = ϕ1.

joint-cohesion-i f

joint cohesion, cj of the i-th (i=1,2,3,or 4) set.

joint-dilation-i f

joint dilation angle, ψj of the i-th (i=1,2,3,or 4) set. The default is 0.0.

joint-friction-i f

joint friction angle of the i-th (i=1,2,3,or 4) set, ϕj.

joint-tension-i f

joint tension limit, σtj of the i-th (i=1,2,3,or 4) set. The default is 0.0.

normal-x-amplification f

x-component of reference unit vector for amplification.

normal-y-amplification f

y-component of reference unit vector for amplification.

normal-z-amplification f

z-component of reference unit vector for amplification.

normal-x-i f

x-component of the normal direction to the weakness plane, nx, of the i-th (i=1,2,3,or 4) set.

normal-y-i f

y-component of the normal direction to the weakness plane, ny of the i-th (i=1,2,3,or 4) set.

normal-z-i f

z-component of the normal direction to the weakness plane, nz of the i-th (i=1,2,3,or 4) set.

poisson f

Poisson ratio for the column matrix.

space-i f

Space for joint of the i-th (i=1,2,3,or 4) set, Si. Si = 0 (default value) means joint i (1,2,3, or 4) is inactive. Si > 0 means the joint is active for detection of shear and tensile yielding. However, it may not contribute to the stiffness matrix, if kn,i=kn,i=0.

stiffness-normal-i f

Normal stiffness of joint of the i-th (i=1,2,3,or 4) set, kn,i.

stiffness-shear-i f

Shear stiffness of joint of the i-th (i=1,2,3,or 4) set, ks,i.

table-amplification f

Amplification table for joint dilation 1, 2, 3. It should provide entries between 0 and 90 degree. Dilation amplification factor affects joint 1 to 3. Presumably, the cross joint is not affected by dilation amplification, thus if present, it should be declared as joint 4.

tension f

tension limit, σt. The default is 0.0.

young f

Young’s modulus for the column matrix.

flag-matrix-plastic b (a)

If true, the matrix plasticity will be considered, otherwise the matrix is elastic. The default is true.

creep-coefficient-i f (a)

Creep parameter A of joint of the i-th (i=1,2,3,or 4) set. Valid only when creep is configured.

creep-exponent-i f (a)

Creep parameter n of joint of the i-th (i=1,2,3,or 4) set. Valid only when creep is configured.

creep-limit-ratio-i f (a)

Creep parameter slim of joint of the i-th (i=1,2,3,or 4) set. Valid only when creep is configured.

table-cohesion-i s (a)

name of the table relating matrix cohesion c = c1 to matrix plastic shear strain.

table-dilation-i s (a)

name of the table relating matrix dilation angle ψ = ψ1 to matrix plastic shear strain.

table-friction-i s (a)

name of the table relating matrix friction ψ = ψ1 angle to matrix plastic shear strain.

table-joint-cohesion-i s (a)

name of the table relating joint cohesion cj = cj1 to joint plastic shear strain of the i-th (i=1,2,3,or 4) set.

table-joint-dilation-i s (a)

name of the table relating joint dilation ψj = ψj1 to joint plastic shear strain of the i-th (i=1,2,3,or 4) set.

table-joint-friction-i s (a)

name of the table relating joint friction angle ϕj = ϕj1 to joint plastic shear strain of the i-th (i=1,2,3,or 4) set.

table-joint-tension s (a)

name of the table relating joint tension limit σtj to joint plastic tensile strain of the i-th (i=1,2,3,or 4) set.

strain-shear-plastic-joint-i f (r)

accumulated joint plastic shear strain of the i-th (i=1,2,3,or 4) set.

strain-tensile-plastic-joint-i f (r)

accumulated joint plastic tensile strain of the i-th (i=1,2,3,or 4) set.

Notes

  • Any two active joints should not be parallel (i.e. have the same dip and dip direction, or the same unit normal),there is no automatic detection for this condition in the current version of the model, the user should make sure it is avoided.

  • The Joint numbering is arbitrary (also, some of the joints may be not be present). However, the particularity of joint 4 is that it is not affected by dilation amplification.

  • The tension cut-off is σt=min(σt,c/tanϕ).

  • The joint tension limit used in the model is the minimum of the input σt and cj/tanϕj of the i-th (i=1,2,3,or 4) set.