FLAC3D Theory and Background • Constitutive Models

Incremental Formulation

Incremental Formulation

All constitutive models share the same incremental numerical algorithm. Given the stress state at time \(t\), and the total strain increment for a timestep, \(\Delta t\), the purpose is to determine the corresponding stress increment and the new stress state at time \(t + \Delta t\). When plastic deformations are involved, only the elastic part of the strain increment will contribute to the stress increment. In this case, a correction must be made to the elastic stress increment as computed from the total strain increment in order to obtain the actual stress state for the new timestep.

Note that this incremental formulation results in effects that may be surprising to those accustomed to more traditional implicit finite-element analyses. First, the displacement field is an output-only value and can be changed at any time without affecting the stress or equilibrium state of the system. Second, changes to material properties will also have no effect on the current stress state, they will only change to result of future deformations that occur. This makes it easier to model changes to a system over time.

Note also that all models in FLAC3D operate on effective stresses only; pore pressures are used to convert total stresses to effective stresses before the constitutive model is called. The reverse process occurs after the model calculations are complete.

Definitions and Conventions

All stress increments in this section are corotational stress increments. For simplicity of notation, however, the superscript \(\check{}\) will not be used. The stresses at time \(t + \Delta t\) are computed as “new stress values,” indicated by a superscript \(^N{ }\) in this section. However, in large-strain mode, those values must be incremented by the stress-rotation correction (see this equation).

We define \([\underline \sigma]\) as a generalized stress vector of dimension \(n\) with components \({\underline{\sigma}}_i\), \(i = 1,n\) and \(\Delta [\underline \epsilon]\) as a generalized strain-increment vector with components \(\Delta {\underline{\epsilon}}_i\), \(i = 1,n\). The components of the generalized stress- and strain-increment vectors may consist of the six components of the stress- and strain-increment tensors or other appropriately defined combinations of variables, giving a measure of stress and strain increments in specific constitutive model contexts.

As a notation convention in this section, we use the subscript \(_n\) to refer to the range of generalized components from \(i\) = 1 to \(i = n\) (e.g., \(f({\underline{\sigma}}_n)\) is used to represent \(f({\underline{\sigma}}_1, {\underline{\sigma}}_2, ..., {\underline{\sigma}}_{n})\)).

Incremental Equations of the Theory of Plastic Flow

The description of plastic flow rests on several relations:

  1. the failure criterion
(1)\[f({\underline{\sigma}}_n) = 0\]

where \(f\), the yield function, is a known function that specifies the limiting stress combination for which plastic flow takes place. (This function is represented by a surface in the generalized stress space, and all stress points below the surface are characterized by elastic behavior.)

  1. the relation expressing the decomposition of strain increments into the sum of elastic and plastic parts
(2)\[ \Delta {\underline{\epsilon}}_i = \Delta {\underline{\epsilon}}_i^e + {\underline{\epsilon}}_i^p\]
  1. the elastic relations between elastic strain increments and stress increments
(3)\[ \Delta {\underline{\sigma}}_i = S_i (\Delta {\underline{\epsilon}}_n^e) \;\;\; i=1,n\]

where \(S_i\) is a linear function of the elastic strain increments, \(\Delta {\underline{\epsilon}}_n^e\)

  1. the flow rule specifying the direction of the plastic-strain increment vector as that normal to the potential surface \(g({\underline{\sigma}}_n)\) = constant
(4)\[ \Delta {\underline{\epsilon}}_i^p = \lambda {{\partial g}\over{\partial {\underline{\sigma}}_i}}\]

where \(\lambda\) is a constant. (The flow rule is said to be associated if \(g \equiv f\), and nonassociated otherwise.)

  1. the requirement for the new stress-vector components to satisfy the yield function
(5)\[ f({\underline{\sigma}}_n + \Delta {\underline{\sigma}}_n) = 0\]

This equation provides a relation for evaluation of the magnitude of the plastic-strain increment vector.

Substitution of the expression for the elastic-strain increment derived from Equation (2) into the elastic relation Equation (3) yields, taking into consideration the linear property of the function \(S_i\),

(6)\[ \Delta {\underline{\sigma}}_i = S_i(\Delta {\underline{\epsilon}}_n) - S_i(\Delta {\underline{\epsilon}}_n^p)\]

In further expressing the plastic strain increment by means of the flow rule, Equation (4), this equation becomes

(7)\[ \Delta {\underline{\sigma}}_i = S_i(\Delta {\underline{\epsilon}}_n) - \lambda S_i \left({{\partial g}\over{\partial {\underline{\sigma}}_n}} \right)\]

where use has been made of the linear property of \(S_i\).

In the special case where \(f({\underline{\sigma}}_n)\) is a linear function of the components \({\underline{\sigma}}_i\), \(i\) = 1, \(n\), Equation (5) may be expressed as

(8)\[ f({\underline{\sigma}}_n) + f^*(\Delta {\underline{\sigma}}_n) = 0\]

where, as a notation convention, \(f^*\) represents the function \(f\) minus its constant term,

(9)\[ f^* (.) = f(.) - f({\underline{0}}_n)\]

For a stress point \({\underline{\sigma}}_n\) on the yield surface, \(f({\underline{\sigma}}_n)\) = 0, and Equation (8) becomes, after substitution of the expression Equation (7) for the stress increment, and further using the linear property of \(f^*\),

(10)\[ f^* \left[ S_n(\Delta {\underline{\epsilon}}_n) \right] - \lambda f^* \left[ S_n \left({{\partial g}\over{\partial {\underline{\sigma}}_n}} \right) \right] = 0\]

We now define new stress components \({{\underline{\sigma}}_i}^N\) and elastic guesses \({\underline{\sigma}}_i^I\) as

(11)\[\begin{split}\begin{split} {\underline{\sigma}}_i^N &= {\underline{\sigma}}_i + \Delta {\underline{\sigma}}_i \\ {\underline{\sigma}}_i^I \ &= {\underline{\sigma}}_i + S_i (\Delta {\underline{\epsilon}}_n) \end{split}\end{split}\]

Note that the term \(S_i(\Delta {\underline{\epsilon}}_n)\) in Equation (11) is the component \(i\) of the stress increment induced by the total-strain increment \(\Delta {\underline{\epsilon}}_n\), in case no increment of plastic deformation takes place. This justifies the name of “elastic guess” for \({\underline{\sigma}}_i^I\).

From the definition Equation (11), it follows, using the preceding arguments, that

(12)\[ f({\underline{\sigma}}_n^I) = f^* \left[ S_n (\Delta {\underline{\epsilon}}_n) \right]\]

Hence, an expression for \(\lambda\) may be derived from Equation (9), Equation (10), and Equation (12):

(13)\[ \lambda = {{f({\underline{\sigma}}_n^I)}\over{f \left[ S_n (\partial g / \partial {\underline{\sigma}}_n) \right] - f({\underline{0}}_n)}}\]

Using the expression of the stress increment, Equation (7), and the definition of the elastic guess, Equation (11), the new stress may be expressed (also from Equation (11)) as

(14)\[ {\underline{\sigma}}_i^N = {\underline{\sigma}}_i^I - \lambda S_i \left( {{\partial g}\over{\partial {\underline{\sigma}}_n}} \right)\]

For clarity, recall that, in these last two expressions, \(S_i (\partial g / \partial {\underline{\sigma}}_n )\) is the stress increment obtained from the incremental elastic law, where \(\partial g / \partial {\underline{\sigma}}_i\) is substituted for \(\Delta {\underline{\epsilon}}_i\), \(i = 1,n\).


In FLAC3D or 3DEC, an elastic guess \({\underline{\sigma}}_i^I\), \(i = 1,n\) for the stress state at time \(t + \Delta t\) is first evaluated by adding to the stress components at time, \(t\), increments computed from the total-strain increment for the step, using an incremental elastic stress-strain law (see Equation (11)). If the elastic guess violates the yield function, Equation (14) is used to place the new stress exactly on the yield curve. Otherwise, the elastic guess gives the new stress state at time \(t + \Delta t\).

If the stress point \({\underline{\sigma}}_i^I\), \(i = 1,n\) is located above the yield surface in the generalized stress space, the coefficient \(\lambda\) in Equation (14) is given by Equation (13), provided the yield function is a linear function of the generalized stress vector components. The equation Equation (14) is still valid, but \(\lambda\) is set to zero in case \({\underline{\sigma}}_i^I\), \(i\) = 1, \(n\) is located below the yield surface (elastic loading or unloading).

The implementation of each of the 15 basic constitutive models is described separately in the following sections. All models except the null and elastic models potentially involve plastic deformations. Note that a wide range of material behavior may be obtained from these models by assigning appropriate values to the model parameters. Recommendations for applying these models are given in Choice of Constitutive Model.