Mohr Model
The mohr model with inactive dashpots provides MohrCoulomb style slip with optional slip weakening, including dilation and pore pressure effects with healing. It is referred to in commands and FISH by the name mohr.
Introduction
The mohr model is similar to the MohrCoulomb and SofteningHealing models in 3DEC. The mohr model provides a linear stressstrain response to the point of either tensile or shear failure. The dashpot component provides viscous behavior. No contact moments are generated. The model breaks in tension once the tensile strength is exceeded. The shear strength is computed based on the cohesion, normal stress, friction angle and pore pressure. Once broken in shear, a residual shear strength is computed based on the residual cohesion, normal stress, residual friction and pore pressure. The reduction in shear strength may happen instantaneously or over a specified slip distance. The model also supports healing should conditions for slip cease.
Behavior Summary
The mohr model provides the behavior of an infinitesimal interface that does not resist relative rotation, meaning that the contact moment equals zero \((\mathbf{M_{c}} \equiv 0)\). The contact force is resolved into mohr and dashpot forces \((\mathbf{F_{c}} = \mathbf{F} + \mathbf{F^{d}})\). Prior to failure, the mohr force is produced by linear springs with normal and shear stiffnesses, \(k_n\) and \(k_s\), respectively. The surface gap, \(g_s\), is defined as the difference between the contact gap, \(g_c\), and the reference gap, \(g_r\). If the reference gap is zero, the notional surfaces coincide with the piece surfaces. Unbonded or broken contacts are active if and only if the surface gap is less than or equal to zero; the forcedisplacement law is skipped for inactive contacts.
The dashpot force is produced by dashpots with viscosity given in terms of the normal and shear criticaldamping ratios, \(\beta_n\) and \(\beta_s\). The dashpot force is affected by the dashpot mode, \(M_{d}\), which provides four combinations of normal and shear behavior. Denote the normal and shear components of the dashpot force by \(F_{n}^{d}\) and \(F_{s}^{d}\), respectively. The normalbehavior mode can be either full or notension, where full means that the entire dashpot load is assigned and notension means that \(F_{n}^{d}\) is capped to insure that the total normal force (\(F_{n} + F_{n}^{d}\)) does not become tensile. The shearbehavior mode can be either full or slipcut, where slipcut means that \(F_{s}^{d}\) is set to zero if the contact is sliding.
The mohr model supports both tensile and shear strengths, with residual tensile and cohesive strengths.
ActivityDeletion Criteria
Unlike many of the other contact models, there is no bond method; the notion of bonding does not apply to this model. Thus a contact the mohr model is active if the surface gap is less than or equal to zero or if it has not failed in shear or tension. If failure has occurred and the surface gap is greater than zero, the contact will become inactive. The forcedisplacement law is skipped for inactive contacts.
ForceDisplacement Law
The discussion below uses notions of normal/shear displacement increments and directions as outlined in the “Contact Resolution” section.
No contact moments are produced in the mohr model, meaning that the contact moment is zero
The forcedisplacement law for the mohr model updates the contact force, \(\mathbf{F_{c}}\), depending on whether or not failure has previously occurred and whether it occurs during this timestep.
The total contact force is the combination of the mohr and dashpot forces:
where \(\mathbf{F}\) is the mohr force and \(\mathbf{F^{d}}\) is the dashpot force. Both forces are resolved into normal and shear forces:
where \(F_{n}>0\), \(F_{n}^{d}>0\) is tension and \(\hat{\mathbf{n}}_\mathbf{c}\) is the contact normal direction. Thus the shear force vector lies in the contact plane, and the shear force is expressed in the contact plane coordinate system:
The forcedisplacement law for the mohr model consists of the following steps:
Update the normal force and tensile failure state.
A trial normal force is computed via an incremental update
(5)\[F_{n}^{*} = \left( F_{n} \right)_{o} + A \left( k_n \Delta\delta_n + P_p \right)\]where \(\left( F_{n} \right)_{o}\) is the normal force at the beginning of the timestep, \(A\) is the contact area, \(k_n\) is the normal stiffness per unit area, \(\Delta \delta _{n}\) is the relative normaldisplacement increment and \(P_p\) is the pore pressure.
The limiting tensile force is defined as
(6)\[\begin{split}F_{n}^{l} = \left\{ \begin{array}{rl} \sigma_c A, & B = 0 \\ \sigma_c^{*} A, & \mbox{otherwise} \end{array} \right.\end{split}\]where \(\sigma_c\) is the tensile strength per unit area, \(\sigma_c^{*}\) is the residual tensile strength per unit area, \(A\) is the area and \(B\) is the integer failure state with \(B=0\) signifying no failure.
The tensile force is updated as
(7)\[\begin{split}F_{n} = \left\{ \begin{array}{rl} F_{n}^{*}, & F_{n}^{*} \le F_{n}^{l} \\ F_{n}^{l}, & \mbox{otherwise} \end{array} \right.\end{split}\]The second condition corresponds to tensile failure and results in the integer failure state being nonzero (^{[1]}). The contact is in a state of total tensile failure if the residual tensile strength is zero (i.e., \(\sigma_c^{*} = 0\)). In this case, the shear force is null (\(\mathbf{F_{s}} = \mathbf{0}\)) and steps 2 and 3 below are skipped.
Update the slip magnitude, shear force and shear failure state if total tensile failure has not occurred.
If sliding is not indicated from the previous timestep and healing is active, the slip magnitude is reset (i.e., \(s = 0\)). If these conditions are not met, the slip magnitude is updated as
(8)\[s = s_{o} + \lVert \Delta \pmb{δ} _\mathbf{s} \rVert\]where \(s_{o}\) is the slip at the beginning of the timestep.
A trial shear force is computed as
(9)\[\mathbf{F_{s}^{*}} = \left( \mathbf{F_{s}} \right)_{o}  k_{s} A \Delta \pmb{δ} _\mathbf{s}\]where \(\left( \mathbf{F_{s}} \right)_{o}\) is the shear force at the beginning of the timestep, \(k_{s}\) is the shear stiffness per unit area, \(A\) is the area and \(\Delta \pmb{δ} _\mathbf{s}\) is the relative sheardisplacement increment.
The trial shear force magnitude, \(F_{s}^{*} = \lVert \mathbf{F_{s}^{*}} \rVert\), will be used to test for shear failure. Define the peak and residual shear force magnitudes as
(10)\[F_{s}^{P} = c A + F_{n} \tan \left( \phi \frac{\pi}{180} \right)\]and
(11)\[F_{s}^{R} = c^{*} A + F_{n} \tan \left( \phi^{*} \frac{\pi}{180} \right)\]respectively, where \(c\) is the cohesion, \(c^*\) is the residual cohesion, \(\phi\) is the friction angle in degrees, and \(\phi^*\) is the residual friction in degrees.
The mohr model supports three methods of computing the limiting shear force magnitude, \(F_{s}^{l}\):
If the slip weakening distance \(d_c = 0\) and no multiplicative table entries are supplied then the limiting shear force magnitude is given by
(12)\[\begin{split}F_{s}^{l} = \left\{ \begin{array}{rl} F_{s}^{P}, & B = 0 \\ F_{s}^{R}, & \mbox{otherwise} \end{array} \right.\end{split}\]If \(d_c > 0\) and no multiplicative table entries are supplied then
(13)\[\begin{split}F_{s}^{l} = \left\{ \begin{array}{rl} F_{s}^{P}, & s = 0 \\ F_{s}^{P}  \left( F_{s}^P  F_{s}^{R} \right) \frac{s}{d_c}, & 0 < s \le d_c \\ F_{s}^{R}, & s > d_c \end{array} \right.\end{split}\]where \(s\) is the accumulated shear slip magnitude.
Suppose that multiplicative table entries \(m_1, m_2, ... m_n\) have been supplied as a function of slip magnitudes \(s_1, s_2, ... s_n\) in order of increasing slip magnitude. The limiting shear force magnitude is linearly interpolated from the table entries. Suppose that \(s_i < s \le s_{i+1}\). The multiplicative factor is given by
(14)\[m = 1\left(\frac{m_{i+1}  m_i}{s_{i+1}  s_i} \left(s  s_i \right) + m_i \right)\]where \(m\) goes from 0 to 1 as \(s\) goes from 0 to \(s_n\), leading to
(15)\[F_{s}^{l} = F_{s}^{P}  \left( F_{s}^P  F_{s}^{R} \right) m\]This formulation provides \(F_s^l = F_{s}^{R}\) for \(s \ge s_n\).
With the limiting shear force magnitude computed the shear force is updated as
(16)\[\begin{split}\mathbf{F_{s}} = \left\{ \begin{array}{rl} \mathbf{F_{s}^{*}}\frac{F_s^l}{F_s^*}, &F _s^* \ge F_s^l > 0 \\ \mathbf{F_{s}^{*}} , & \mbox{otherwise} \end{array} \right.\end{split}\]The first condition above corresponds to slip in which case \(B\) is updated to reflect the sliding state ([1]).
Update the normal force if slip occurs (as indicated in step 2) and the dilation angle, \(\psi\), is nonzero. Dilation occurs until the total shear displacement magnitude reaches \(u_{cs}\), after which time it ceases. One can also define a residual dilation angle, \(\psi^*\). Suppose that the total shear displacement magnitude is less than \(u_{cs}\) and slip has been indicated for this timestep. Define the peak and residual dilation forces as
(17)\[F_d^P = k_n {\kern 1pt} A{\kern 1pt} \tan (\psi \frac{\pi}{180} ) \lVert \Delta \pmb{δ}_\mathbf{s} \rVert\]and
(18)\[F_d^R = k_n {\kern 1pt} A{\kern 1pt} \tan (\psi^* \frac{\pi}{180} ) \lVert \Delta \pmb{δ}_\mathbf{s} \rVert\]respectively.
If no failure has occurred previous to this timestep then the normal force is updated as
(19)\[F_{n} = F_{n} + F_d^P\]Suppose that failure has occurred previously. If \(d_c = 0\) and no multiplicative table entries are supplied then
(20)\[F_{n} = F_{n} + F_d^R\]If \(d_c \gt 0\) and no multiplicative table entries are supplied then
(21)\[\begin{split}F_{n} = F_n + \left\{ \begin{array}{rl} F_d^P, & s = 0 \\ F_d^P  \left(F_d^P F_d^R \right) \frac{s}{d_c}, & 0 < s \le d_c \\ F_d^R, & s > d_c \end{array} \right.\end{split}\]If multiplicative table entries are supplied then
(22)\[F_{n} = F_n + F_d^P  \left(F_d^P F_d^R \right) m\]where \(m\) is the interpolated multiplicative factor defined above.
Update the normal force to remove the pore pressure term.
The pore pressure is removed from the normal force via
(23)\[F_{n} = F_{n}  A P_p\]Update the dashpot normal force based on the dashpot behavior mode:
(24)\[\begin{split}\begin{array}{l} F_n^d = \left\{ \begin{array}{rl} F^*, & \mbox{$M_d = \{ 0, 2 \}$ (full normal)} \\ \min\left( F^*, F_n \right), & \mbox{$M_d = \{ 1, 3 \}$ (notension normal)} \end{array} \right. \\[3mm] \mbox{with }\quad F^* = \left( 2 \beta_n \sqrt{m_c k_n} \right) \dot{\delta}_n \\ \hskip{15mm} m_c = \left\{ \begin{array}{rl} \displaystyle\frac{m^{(1)} m^{(2)}} {m^{(1)} + m^{(2)}}, & \mbox{ballball} \\ m^{(1)}, & \mbox{ballfacet} \end{array} \right. \end{array}\end{split}\]where \(m^{(b)}\) is the mass of body \((b)\) and \(\dot{\delta}_n\) is the relative normal translational velocity of this equation of the “Contact Resolution” section. In this expression, \(F^*\) is the entire dashpot load. For the dashpot normalbehavior mode of notension, \(F_n^d\) is capped to ensure that the total normal force \((F_n + F_n^d)\) does not become tensile.
Update the dashpot shear force based on the dashpot behavior mode:
(25)\[\begin{split}\begin{array}{l} \mathbf{F_s^d} = \left\{ \begin{array}{rl} \left( 2 \beta_s \sqrt{m_c k_s} \right) \dot{\pmb{δ}}_\mathbf{s}, & \mbox{$s =$ false or $M_d = \{ 0, 1 \}$ (full shear)} \\ \mathbf{0}, & \mbox{$s =$ true and $M_d = \{ 2, 3 \}$ (slipcut)} \end{array} \right. \\[3mm] \mbox{with }\quad m_c = \left\{ \begin{array}{rl} \displaystyle\frac{m^{(1)} m^{(2)}} {m^{(1)} + m^{(2)}}, & \mbox{ballball} \\ m^{(1)}, & \mbox{ballfacet} \end{array} \right. \end{array}\end{split}\]where \(m^{(b)}\) is the mass of body \((b)\) and \(\dot{\pmb{δ}}_\mathbf{s}\) is the relative shear translational velocity of this equation of the “Contact Resolution” section. For the dashpot shearbehavior mode of slipcut, \(\mathbf{F_s^d}\) is set to zero if the linear spring is sliding \(\mbox{($s =$ true)}\).
Energy Partitions
The mohr model provides two energy partitions:
strain energy, \(E_{k}\) and
slip energy, \(E_{\mu }\), defined as the total energy dissipated by frictional slip.
dashpot energy, \(E_{\beta}\), defined as the total energy dissipated by the dashpots.
Keyword 
Symbol 
Description 
Range 
Accumulated 


\(E_{k}\) 
strain energy 
\([0.0,+\infty)\) 
NO 

\(E_{\mu}\) 
total energy dissipated by slip 
\((\infty,0.0]\) 
YES 

\(E_{\beta}\) 
Total energy dissipated by dashpots 
\((\infty,0.0]\) 
YES 
If energy tracking is activated (see the model energy
command), the energy partitions are updated as described below.
Update the strain energy:
(26)\[{\rm E} _{k} =\frac{1}{2} \left( \frac{F_n^{2} }{k_{n}{\kern 1pt} A} + \frac{\left\ \mathbf{F_s} \right\ ^{2} }{k_{s} {\kern 1pt} A} \right).\]Update the slip energy:
(27)\[E_{\mu } :=  {\tfrac{1}{2}} \left(\left(\mathbf{F_{s}} \right)_{o} +\mathbf{F_{s}} \right)\cdot \Delta \pmb{δ} _\mathbf{s}^{\mu }\]with
(28)\[\Delta \pmb{δ} _\mathbf{s}^{\mu } =\Delta \pmb{δ} _\mathbf{s} \Delta \pmb{δ} _\mathbf{s}^{k} =\Delta \pmb{δ} _\mathbf{s} \left(\frac{\mathbf{F_{s}} \left(\mathbf{F_{s}} \right)_{o} }{k_{s} {\kern 1pt} A} \right)\]Update the dashpot energy:
(29)\[E_{\beta } :=E_{\beta }  \mathbf{F^{d}} \cdot \left(\dot{\pmb{δ} }{\kern 1pt} {\kern 1pt} \Delta t\right)\]where \(\dot{\pmb{δ} }\) is the relative translational velocity of this equation of the “Contact Resolution” section.
Properties
The properties defined by the mohr model are listed in the table below for a concise reference; see the i Contact Properties section for a description of the information in the table columns. The mapping from the surface inheritable properties to the contact model properties is also discussed below.
Keyword 
Symbol 
Description 
Type 
Range 
Default 
Modifiable 
Inheritable 




\(A\) 
Contact area [length*length] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(c\) 
Cohesion [stress] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(c^*\) 
Residual cohesion [stress] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(\mathbf{F^d}\) 
Dashpot force (contact plane coord. system) 
VEC 
\(\mathbb{R}^3\) 
\(\mathbf{0}\) 
NO 
NO 
\(\left( F_n^d,F_{ss}^d,F_{st}^d \right) \quad \left(\mbox{2D model: } F_{ss}^d \equiv 0 \right)\) 


\(M_d\) 
Dashpot mode [] 
INT 
{0,1,2,3} 
0 
YES 
NO 
\(\;\;\;\;\;\;\begin{cases} \mbox{0: full normal & full shear} \\ \mbox{1: notension normal & full shear} \\ \mbox{2: full normal & slipcut shear} \\ \mbox{3: notension normal & slipcut shear} \end{cases}\) 


\(\beta_n\) 
Normal critical damping ratio [] 
FLT 
\([0.0,1.0]\) 
0.0 
YES 
NO 

\(\beta_s\) 
Shear critical damping ratio [] 
FLT 
\([0.0,1.0]\) 
0.0 
YES 
NO 

\(\psi\) 
Dilation [degrees] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(\psi^*\) 
Residual dilation [degrees] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(u_{cs}\) 
Dilation cap [length] 
FLT 
\([0.0,+\infty)\) 
\(+\infty\) 
YES 
NO 

Normal displacement [length] 
FLT 
\((\infty,+\infty)\) 
0 
YES 
NO 


Shear displacement (contact plane coord. system) 
VEC 
\(\mathbb{R}^3\) 
\(\mathbf{0}\) 
YES 
NO 


\(F_n\) 
Normal force [force] 
FLT 
\((\infty,+\infty)\) 
0.0 
YES 
NO 

\(\mathbf{F_{s}}\) 
Shear force (contact plane coord. system) 
VEC 
\(\mathbb{R}^3\) 
\(\mathbf{0}\) 
YES 
NO 

\(\phi\) 
Friction angle [degrees] 
FLT 
\([0.0,90.0)\) 
0.0 
YES 
NO 

\(\phi^*\) 
Residual friction [degrees] 
FLT 
\([0.0,90.0)\) 
0.0 
YES 
NO 

Healing [] 
INT 
{0,1} 
0 
YES 
NO 


\(P_p\) 
Pore pressure [stress] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(g_r\) 
Reference gap [length] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(s\) 
Slip [length] 
FLT 
\([0.0,+\infty)\) 
0.0 
NO 
NO 

\(d_c\) 
Critical slip weakening distance [length] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

Slip weakening multiplier [,length] 
VEC2 
\(\mathbb{R}^2\) 
YES 
NO 


\(B\) 
Failure state bit mask [] 
INT 
^{[1]} 
0 
YES 
NO 

Failure state string [] 
STR 
^{[1]} 
NO 
NO 


\(k_n\) 
Normal stiffness [stress/length] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(k_s\) 
Shear stiffness [stress/length] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(\sigma_e\) 
Effective normal stress [stress] 
FLT 
\((\infty,+\infty)\) 
0.0 
NO 
NO 

Multiplier table position [] 
INT 
1 
YES 
NO 


\(\sigma_c\) 
Tensile strength [stress] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(\sigma_c^*\) 
Residual tensile strength [stress] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 

\(A\) 
Constant bond area [length*length] 
FLT 
\([0.0,+\infty)\) 
0.0 
YES 
NO 
^{[1]} The failure state can be plotted and queried with FISH. When querying with FISH, the state is represented by a variable with 64 bits. Each bit refers to a potential state. The potential states, and corresponding state strings, are
State (\(B\)) 
Value 
State String 

No failure 
0 

Failure in shear now 
1 
slipn 
Failure in tension now 
2 
tensionn 
Failure in shear in the past 
4 
slipp 
Failure in tension in the past 
8 
tensionp 
Combinations of states, and state strings, are possible by turning on different bits. For example, if tensile failure has occurred in the past and shearing is happening now \(B = 9 = 8 + 1\) and the state string is “slipn tensionp”.
Methods
Method 
Arguments 
Symbol 
Type 
Range 
Default 
Description 

area 
Set user_area to area 
Area
Set the user_area property via the current area. This operation means that the contact area stays constant and is fixed independent of changes to the piece sizes/geometries. This method is necessary when using rigid blocks, but not when using zone joints.
Callback Events
Event 
Array Slot 
Value Type 
Range 
Description 

slip_change 
Slip state has changed 

1 
C_PNT 
N/A 
Contact pointer 

bond_break 
Bond broken when strength (\(c\) and/or \(\sigma_c\)) is nonzero 

1 
C_PNT 
N/A 
Contact pointer 

2 
INT 
{1,2} 
Failure mode 

\(\;\;\;\;\;\;\begin{cases} \mbox{1: failed in tension} \\ \mbox{2: failed in shear} \end{cases}\) 
Model Summary
An alphabetical list of the mohr model methods is given here. An alphabetical list of the mohr model properties is given here.
Was this helpful? ...  Itasca Software © 2023, Itasca  Updated: Nov 30, 2023 