Model: Viscoplasticity

The classical Perzyna-type viscoplasticity models are not suitable for rate-dependent viscoplastic models with nonsmooth multisurface, because of using unclearly defined nested viscoplastic loading surfaces. As an alternative, the Duvaut-Lions viscoplastic theory, precludes these difficulties by excluding the concept of nested viscoplastic loading surfaces. The viscoplastic constitutive equation that relates the stress \boldsymbol{\sigma} and the viscoplastic strain rate \dot{\boldsymbol{\epsilon}^{vp}} is given by:

\boldsymbol{\sigma} - \bar{\boldsymbol{\sigma}} = \frac{1}{t_*}\tensor{c}:\dot{\boldsymbol{\epsilon}^{vp}}

Here, \bar{\boldsymbol{\sigma}} represents the inviscid stress, which is the rate-independent elasto-plastic stress part that can be solved by using elasto-plastic solvers (such as Drucker-Prager, CamClay, etc.). \tensor{c} is the tangent stiffness tensor and t_* is the relaxation time, which is measured in units of time. The viscoplastic strain rate \dot{\boldsymbol{\epsilon}}^{vp} can be approximated using the following finite difference formula:

\dot{\boldsymbol{\epsilon}^{vp}} = \frac{1}{\Delta t}(\Delta \boldsymbol{\epsilon} - \Delta \boldsymbol{\epsilon}^{elas})

Here, \Delta t is the time increment, \Delta \boldsymbol{\epsilon} is the total strain increment, and \Delta \boldsymbol{\epsilon}^{elas} is the elastic part of the strain increment. Note that the elastic strain increment is related to the stress increment through Hook’s law.

\Delta \boldsymbol{\sigma} = \tensor{c}:\Delta \boldsymbol{\epsilon}^{elas}

With some arrangements, we can obtain the following formula to update the stress tensor of the Duvaut-Lions elasto-viscoplastic materials:

\boldsymbol{\sigma} = r_t \hat{\boldsymbol{\sigma}} + (1-r_t) \bar{\boldsymbol{\sigma}}

Here, the time ratio r_t is calculated from the relaxation time t_* and the time increment \Delta t as:

r_t = \frac{1}{1+\Delta t/t_*}

Assuming elastic behavior, the trial stress tensor \hat{\boldsymbol{\sigma}} is computed using the strain increment:

\hat{\boldsymbol{\sigma}}^{t+\Delta t} = \boldsymbol{\sigma}^t + \tensor{c}^{t+\Delta t}:\Delta \boldsymbol{\epsilon}^{t+\Delta t}

The tangent stiffness tensor is updated using the following equivalent approximation:

\tensor{c}^{t+\Delta t} = r_t \tensor{c}^e + (1-r_t) \tensor{c}^{t}

Here, \tensor{c}^e is the elastic stiffness tensor.

The name of the viscoplastic solver is formed by adding the prefix Visco to the name of the elasto-plastic solver used to compute the inviscid stress \overline{\boldsymbol{\sigma}}. For example, the solver Visco Drucker-Prager corresponds to cases where the inviscid stress is computed by the Drucker-Prager solver. It is interesting to note that equivalent viscoelastic solutions can also be obtained using the Duvault-Lions algorithm by updating the inviscid stress with an elastic solver.