Deformation Theories


The solid mechanics solvers in GEOS work in a time-discrete setting, in which the system state at time t^n is fully known, and the goal of the solution procedure is to advance forward one timestep to t^{n+1} = t^n + \Delta t. As part of this process, calls to a solid model must be made to compute the updated stress \bm{\sigma}^{n+1} resulting from incremental deformation over the timestep. History-dependent models may also need to compute updates to one or more internal state variables Q^{n+1}.

The exact nature of the incremental update will depend, however, on the kinematic assumptions made. Appropriate measures of deformation and stress depend on assumptions of infinitesimal or finite strain, as well as other factors like rate-dependence and material anisotropy.

This section briefly reviews three main classes of solid models in GEOS, grouped by their kinematic assumptions. The presentation is deliberately brief, as much more extensive presentations can be found in almost any textbook on linear and nonlinear solid mechanics.

Small Strain Models

Let \bm{u} denote the displacement field, and \nabla \bm{u} its gradient. In small strain theory, ones assumes the displacement gradients \nabla \bm{u} \ll 1. In this case, it is sufficient to use the linearized strain tensor

\bm{\epsilon} = \frac{1}{2} \left( \nabla \bm{u} + \bm{u} \nabla \right )

as the deformation measure. Higher-order terms present in finite strain theories are neglected. For inelastic problems, this strain is additively decomposed into elastic and inelastic components as

\bm{\epsilon} = \bm{\epsilon}^e + \bm{\epsilon}^{i}.

Inelastic strains can arise from a number of sources: plasticity, damage, etc. Most constitutive models (including nonlinear elastic and inelastic models) can then be generically expressed in rate form as

\dot{\bm{\sigma}} = \bm{c} : \dot{\bm{\epsilon}}^e

where \dot{\bm{\sigma}} is the Cauchy stress rate and \bm{c} is the tangent stiffness tensor. Observe that the stress rate is driven by the elastic component \dot{\bm{\epsilon}}^e of the strain rate.

In the time-discrete setting (as implemented in the code) the incremental constitutive update for stress is computed from a solid model update routine as

\bm{\sigma^{n+1}} = \bm{\sigma}(\Delta \bm{\epsilon}, \Delta t, Q^n),

where \Delta \bm{\epsilon} = \bm{\epsilon}^{n+1}-\bm{\epsilon}^n is the incremental strain, \Delta t is the timestep size (important for rate-dependent models), and Q^n is a collection of material state variables (which may include the previous stress and strain).

For path and rate independent models, such as linear elasticity, a simpler constitutive update may be formulated in terms of the total strain:

\bm{\sigma^{n+1}} = \bm{\sigma}(\bm{\epsilon^{n+1}}).

GEOS will use this latter form in specific, highly-optimized solvers when we know in advance that a linear elastic model is being applied. The more general interface is the default, however, as it can accommodate a much wider range of constitutive behavior within a common interface.

When implicit timestepping is used, the solid models must also provide the stiffness tensor,

\bm{c}^{n+1} = \frac{\partial \bm{\sigma}^{n+1}}{\partial \bm{\epsilon}^{n+1}},

in order to accurately linearize the governing equations. In many works, this fourth-order tensor is referred to as the algorithmic or consistent tangent, in the sense that it must be “consistent” with the discrete timestepping scheme being used (Simo and Hughes 1987). For inelastic models, it depends not only on the intrinsic material stiffness, but also the incremental nature of the loading process. The correct calculation of this stiffness can have a dramatic impact on the convergence rate of Newton-type solvers used in the implicit solid mechanics solvers.

Finite Deformation Models with Hypo-Materials

In the finite deformation regime, there are two broad classes of constitutive models frequently used:

  • Hypo-elastic models (and inelastic extensions)

  • Hyper-elastic models (and inelastic extensions)

Hypo-materials typically rely on a rate-form of the constitutive equations expressed in the spatial configuration. Let \bm{v}(\bm{x},t) denote the spatial velocity field. It can be decomposed into symmetric and anti-symmetric components as

\bm{d} = \frac{1}{2} \left( \nabla \bm{v} + \bm{v} \nabla \right ) \qquad \text{and} \qquad
\bm{w} = \frac{1}{2} \left( \nabla \bm{v} - \bm{v} \nabla \right ),

where \bm{d} is the deformation rate tensor and \bm{w} is the spin tensor. A hypo-material model can be written in rate form as

\mathring{\bm{\tau}} = \bm{c} : \bm{d}^e

where \mathring{\bm{\tau}} is an objective rate of the Kirchoff stress tensor, \bm{c} is the tangent stiffness tensor, and \bm{d}^e is the elastic component of the deformation rate. We see that the structure is similar to the rate form in the small strain regime, except the rate of Cauchy stress is replaced with an objective rate of Kirchoff stress, and the linearized strain rate is replaced with the deformation rate tensor.

The key difference separating most hypo-models is the choice of the objective stress rate. In GEOS, we adopt the incrementally objective integration algorithm proposed by Hughes and Winget (1980). This method relies on the concept of an incrementally rotating frame of reference in order to preserve objectivity of the stress rate. In particular, the stress update sequence is

\Delta{\tensor{R}} = ( \tensor{I} - \frac{1}{2} \Delta t {\tensor{w}} )^{-1} ( \tensor{I} + \frac{1}{2} \Delta t {\tensor{w}} )
&\qquad \text{(compute incremental rotation)}, \\
\tensor{\bar{\tau}}^{n} = \Delta{\tensor{R}} \tensor{\tau}^{n} \Delta{\tensor{R}}^T
&\qquad \text{(rotate previous stress)}, \\
\tensor{\tau}^{n+1} = \tensor{\bar{\tau}}^{n} + \Delta \tensor{\tau}
&\qquad \text{(call constitutive model to update stress)}.

First, the previous timestep stress is rotated to reflect any rigid rotations occuring over the timestep. If the model has tensor-valued state variables besides stress, these must also be rotated. Then, a standard constitutive update routine can be called, typically driven by the incremental strain \Delta \bm{\epsilon} = \Delta t \bm{d}. In fact, an identical update routine as used for small strain models can be re-used at this point.


Hypo-models suffer from several well known deficiencies. Most notably, the energy dissipation in a closed loading cycle of a hypo-elastic material is not guaranteed to be zero, as one might desire from thermodynamic considerations.

Finite Deformation Models with Hyper-Materials

Hyper-elastic models (and inelastic extensions) attempt to correct the thermodynamic deficiencies of their hypo-elastic cousins. The constitutive update can be generically expressed at

\bm{S}^{n+1} = \bm{S}(\Delta \mathbf{F}, Q^n, \Delta t),

where \bm{S} is the second Piola-Kirchoff stress and \Delta \mathbf{F} is the incremental deformation gradient. Depending on the model, the deformation gradient can be converted to different deformation measures as needed. Similarly, different stress tensors can be recovered through appropriate push-forward and pull-back operations.

In a hyperelastic material, the elastic response is expressed in terms of a stored strain-energy function that serves as the potential for stress, e.g.

\mathbf{S} = \frac{\partial \psi (\tensor{C})}{ \partial \tensor{C} },

where \psi is the stored energy potential, and \tensor{C} is the right Cauchy-Green deformation tensor. This potential guarantees that the energy dissipated or gained in a closed elastic cycle is zero.