Section 17.3 of Chapter 17 — Hencky and Biot strains

UL formulation: plane stress, isoparametric 4-node quadrilateral, Hencky strain, improved approach

An improved Updated Lagrangian Q4 formulation using Hencky strain and an enhanced tangent stiffness approximation.

Updated LagrangianPlane stressQ4Hencky strainImproved tangent

01

Formulation and hypotheses

StrainSmall
DisplacementLarge
MaterialLinear elastic

Section 17.2 introduced a simple UL formulation using Hencky or Biot strains, together with an approximate tangent stiffness matrix. The present section keeps the same strain measures and the same strain–displacement matrix B\boldsymbol{B}, but improves the tangent stiffness by retaining additional geometric terms. The aim is to obtain better convergence without changing the equilibrium equation itself.

Let us first consider the Biot strains (see Section 17.1).

02

Biot strain and deformation gradient

ε=UI2orε=CI2orε=FTFI2\boldsymbol{\varepsilon}=\boldsymbol{U}-\boldsymbol{I}_{2}\qquad\text{or}\qquad\boldsymbol{\varepsilon}=\sqrt{\boldsymbol{C}}-\boldsymbol{I}_{2}\qquad\text{or}\qquad\boldsymbol{\varepsilon}=\sqrt{\boldsymbol{F}^{T}\boldsymbol{F}}-\boldsymbol{I}_{2}

In the case of small strains, it can be written:

U=C=FTF[1+εxγxyγxy1+εy]\boldsymbol{U}=\sqrt{\boldsymbol{C}}=\sqrt{\boldsymbol{F}^{T}\boldsymbol{F}}\approx\begin{bmatrix}1+\varepsilon_x&\gamma_{xy}\\[4pt]\gamma_{xy}&1+\varepsilon_y\end{bmatrix}

εx,εy,γxy\varepsilon_x,\varepsilon_y,\gamma_{xy} are the engineering strains. The deformation gradient is (see Chapter 10):

F=I2+[uxuyvxvy]\boldsymbol{F}=\boldsymbol{I}_{2}+\begin{bmatrix}\dfrac{\partial u}{\partial x}&\dfrac{\partial u}{\partial y}\\[7pt]\dfrac{\partial v}{\partial x}&\dfrac{\partial v}{\partial y}\end{bmatrix}

03

Q4 displacement derivatives

For the isoparametric quadrilateral finite element, the displacement derivatives are (see Sections 9.4 and 12.2):

ux=Buxuel=(b110b120b130b140)uel\frac{\partial u}{\partial x}=\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}=\begin{pmatrix}b_{11}&0&b_{12}&0&b_{13}&0&b_{14}&0\end{pmatrix}\boldsymbol{u}_{el}
uy=Buyuel=(b210b220b230b240)uel\frac{\partial u}{\partial y}=\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}=\begin{pmatrix}b_{21}&0&b_{22}&0&b_{23}&0&b_{24}&0\end{pmatrix}\boldsymbol{u}_{el}
vx=Bvxuel=(0b110b120b130b14)uel\frac{\partial v}{\partial x}=\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}=\begin{pmatrix}0&b_{11}&0&b_{12}&0&b_{13}&0&b_{14}\end{pmatrix}\boldsymbol{u}_{el}
vy=Bvyuel=(0b210b220b230b24)uel\frac{\partial v}{\partial y}=\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}=\begin{pmatrix}0&b_{21}&0&b_{22}&0&b_{23}&0&b_{24}\end{pmatrix}\boldsymbol{u}_{el}

with:

b=J1H=[b11b12b13b14b21b22b23b24]\boldsymbol{b}=\boldsymbol{J}^{-1}\boldsymbol{H}=\begin{bmatrix}b_{11}&b_{12}&b_{13}&b_{14}\\[4pt]b_{21}&b_{22}&b_{23}&b_{24}\end{bmatrix}

uel\boldsymbol{u}_{el} contains the nodal displacements of the current finite element:

uel=(u1v1u2v2u3v3u4v4)T\boldsymbol{u}_{el}=\begin{pmatrix}u_1&v_1&u_2&v_2&u_3&v_3&u_4&v_4\end{pmatrix}^{T}

Therefore:

F=I2+[BuxuelBuyuelBvxuelBvyuel]\boldsymbol{F}=\boldsymbol{I}_{2}+\begin{bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}\\[4pt]\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}\end{bmatrix}

and:

ε=(I2+[BuxuelBuyuelBvxuelBvyuel])T(I2+[BuxuelBuyuelBvxuelBvyuel])I2\boldsymbol{\varepsilon}=\sqrt{\left(\boldsymbol{I}_{2}+\begin{bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}\\[4pt]\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}\end{bmatrix}\right)^{T}\left(\boldsymbol{I}_{2}+\begin{bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}\\[4pt]\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}\end{bmatrix}\right)}-\boldsymbol{I}_{2}

04

Engineering strain relations

It is easy to show that for small quantities:

[1+εxγxyγxy1+εy][1+12εx12γxy12γxy1+12εy]\sqrt{\begin{bmatrix}1+\varepsilon_x&\gamma_{xy}\\[3pt]\gamma_{xy}&1+\varepsilon_y\end{bmatrix}}\approx\begin{bmatrix}1+\dfrac12\varepsilon_x&\dfrac12\gamma_{xy}\\[7pt]\dfrac12\gamma_{xy}&1+\dfrac12\varepsilon_y\end{bmatrix}

or:

I2+[εxγxyγxyεy]I2+12[εxγxyγxyεy]\sqrt{\boldsymbol{I}_{2}+\begin{bmatrix}\varepsilon_x&\gamma_{xy}\\[3pt]\gamma_{xy}&\varepsilon_y\end{bmatrix}}\approx\boldsymbol{I}_{2}+\frac12\begin{bmatrix}\varepsilon_x&\gamma_{xy}\\[3pt]\gamma_{xy}&\varepsilon_y\end{bmatrix}

It results:

ε=[εxγxyγxyεy]12([BuxuelBuyuelBvxuelBvyuel]+[BuxuelBuyuelBvxuelBvyuel]T+[BuxuelBuyuelBvxuelBvyuel]T[BuxuelBuyuelBvxuelBvyuel])\boldsymbol{\varepsilon}=\begin{bmatrix}\varepsilon_x&\gamma_{xy}\\[3pt]\gamma_{xy}&\varepsilon_y\end{bmatrix}\approx\frac12\left(\begin{bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}\\[3pt]\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}\end{bmatrix}+\begin{bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}\\[3pt]\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}\end{bmatrix}^{T}+\begin{bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}\\[3pt]\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}\end{bmatrix}^{T}\begin{bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}\\[3pt]\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}&\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}\end{bmatrix}\right)

Or in engineering notation:

ε={εxεyγxy}{Buxuel+12uelT(BuxTBux+BvxTBvx)uelBvyuel+12uelT(BuyTBuy+BvyTBvy)uelBuyuel+Bvxuel+12uelT(BuxTBuy+BuyTBux+BvxTBvy+BvyTBvx)uel}\boldsymbol{\varepsilon}=\begin{Bmatrix}\varepsilon_x\\[3pt]\varepsilon_y\\[3pt]\gamma_{xy}\end{Bmatrix}\approx\begin{Bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}+\dfrac12\boldsymbol{u}_{el}^{T}\left(\boldsymbol{B}_{u_x}^{T}\boldsymbol{B}_{u_x}+\boldsymbol{B}_{v_x}^{T}\boldsymbol{B}_{v_x}\right)\boldsymbol{u}_{el}\\[7pt]\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}+\dfrac12\boldsymbol{u}_{el}^{T}\left(\boldsymbol{B}_{u_y}^{T}\boldsymbol{B}_{u_y}+\boldsymbol{B}_{v_y}^{T}\boldsymbol{B}_{v_y}\right)\boldsymbol{u}_{el}\\[7pt]\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}+\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}+\dfrac12\boldsymbol{u}_{el}^{T}\left(\boldsymbol{B}_{u_x}^{T}\boldsymbol{B}_{u_y}+\boldsymbol{B}_{u_y}^{T}\boldsymbol{B}_{u_x}+\boldsymbol{B}_{v_x}^{T}\boldsymbol{B}_{v_y}+\boldsymbol{B}_{v_y}^{T}\boldsymbol{B}_{v_x}\right)\boldsymbol{u}_{el}\end{Bmatrix}

These equations are the same as those obtained in Section 12.2:

ε={εxεyγxy}{Buxuel+12uelTGxuelBvyuel+12uelTGyuelBuyuel+Bvxuel+12uelTGxyuel}\boldsymbol{\varepsilon}=\begin{Bmatrix}\varepsilon_x\\[3pt]\varepsilon_y\\[3pt]\gamma_{xy}\end{Bmatrix}\approx\begin{Bmatrix}\boldsymbol{B}_{u_x}\boldsymbol{u}_{el}+\dfrac12\boldsymbol{u}_{el}^{T}\boldsymbol{G}_x\boldsymbol{u}_{el}\\[7pt]\boldsymbol{B}_{v_y}\boldsymbol{u}_{el}+\dfrac12\boldsymbol{u}_{el}^{T}\boldsymbol{G}_y\boldsymbol{u}_{el}\\[7pt]\boldsymbol{B}_{u_y}\boldsymbol{u}_{el}+\boldsymbol{B}_{v_x}\boldsymbol{u}_{el}+\dfrac12\boldsymbol{u}_{el}^{T}\boldsymbol{G}_{xy}\boldsymbol{u}_{el}\end{Bmatrix}

where:

{Gx=BuxTBux+BvxTBvxGy=BuyTBuy+BvyTBvyGxy=BuxTBuy+BuyTBux+BvxTBvy+BvyTBvx\left\{\begin{aligned}\boldsymbol{G}_x&=\boldsymbol{B}_{u_x}^{T}\boldsymbol{B}_{u_x}+\boldsymbol{B}_{v_x}^{T}\boldsymbol{B}_{v_x}\\[4pt]\boldsymbol{G}_y&=\boldsymbol{B}_{u_y}^{T}\boldsymbol{B}_{u_y}+\boldsymbol{B}_{v_y}^{T}\boldsymbol{B}_{v_y}\\[4pt]\boldsymbol{G}_{xy}&=\boldsymbol{B}_{u_x}^{T}\boldsymbol{B}_{u_y}+\boldsymbol{B}_{u_y}^{T}\boldsymbol{B}_{u_x}+\boldsymbol{B}_{v_x}^{T}\boldsymbol{B}_{v_y}+\boldsymbol{B}_{v_y}^{T}\boldsymbol{B}_{v_x}\end{aligned}\right.

Gx,Gy,Gxy\boldsymbol{G}_x,\boldsymbol{G}_y,\boldsymbol{G}_{xy} are symmetric 8×88\times8 matrices.

It is worth noting that the equations containing the matrices Gx\boldsymbol{G}_x, Gy\boldsymbol{G}_y, and Gxy\boldsymbol{G}_{xy} are identical to those obtained in Chapter 12 for the Green–Lagrange strain formulation.

05

Improved stiff subprogram

Only a few changes must be made in the stiff subprogram given in Section 17.2. The lines shown in red were added or modified in the new stiff subprogram, as illustrated below:

MATLAB stiff subprogram excerpt with red, green, and blue highlighted lines
Figure 1. MATLAB modifications introduced in stiff.

Recall that the following equation (see the blue line in Figure 1) is exact:

fel=h1nGBTσdet(J)\boldsymbol{f}_{el}=h_1\sum_{n_G}\boldsymbol{B}^{T}\boldsymbol{\sigma}\det\left(\boldsymbol{J}\right)

h1h_1 is the current finite-element thickness, which accounts for the thickness modification due to transverse contraction (see Section 15.1):

hh1=[1ν1ν(εx+εy)]hh\longrightarrow h_1=\left[1-\frac{\nu}{1-\nu}\left(\varepsilon_x+\varepsilon_y\right)\right]h

The strain–displacement matrix B\boldsymbol{B} is the same matrix derived in Section 17.2 and is computed, for each element and Gauss point, by the same B_matrix subroutine. In the program, B_matrix is called before the computation of the element internal force vector fel\boldsymbol{f}_{el} and tangent stiffness matrix kel\boldsymbol{k}_{el}. The improvement introduced here concerns the tangent stiffness matrix, not the definition or computation of B\boldsymbol{B}.

Compared with the expression used in Section 17.2, the tangent stiffness matrix becomes:

kel=h1nGBTDBdet(J)kel=h1nG(BTDB+σxGx+σyGy+τxyGxy)det(J)\boldsymbol{k}_{el}=h_1\sum_{n_G}\boldsymbol{B}^{T}\boldsymbol{D}\boldsymbol{B}\det\left(\boldsymbol{J}\right)\quad\longrightarrow\quad\boldsymbol{k}_{el}=h_1\sum_{n_G}\left(\boldsymbol{B}^{T}\boldsymbol{D}\boldsymbol{B}+\sigma_x\boldsymbol{G}_x+\sigma_y\boldsymbol{G}_y+\tau_{xy}\boldsymbol{G}_{xy}\right)\det\left(\boldsymbol{J}\right)

Therefore, the additional geometric terms significantly improve convergence.

Everything explained in this section also applies to Hencky strains because the strains are small:

EH=lnUUI2=EB\boldsymbol{E}_{H}=\ln\boldsymbol{U}\approx\boldsymbol{U}-\boldsymbol{I}_{2}=\boldsymbol{E}_{B}

06

Strain update and reference-configuration correction

During the iterations corresponding to load step i+1i+1, the strains are updated:

ei+1ei+Δe\boldsymbol{e}_{i+1}\approx\boldsymbol{e}_{i}+\Delta\boldsymbol{e}

Neither the Hencky strain tensor nor the Biot strain tensor is generally additive under finite successive deformations. In the present small-strain UL formulation, the update ei+1ei+Δe\boldsymbol{e}_{i+1}\approx\boldsymbol{e}_{i}+\Delta\boldsymbol{e} is therefore only an incremental approximation.

A formulation that avoids this approximate additive accumulation by updating the deformation gradient multiplicatively is presented in Section 17.4: UL formulation with multiplicative update of the deformation gradient.

The terms ei\boldsymbol{e}_{i} and Δe\Delta\boldsymbol{e} are calculated for the configuration at load step ii, while ei+1\boldsymbol{e}_{i+1} must be calculated for the slightly different configuration corresponding to load step i+1i+1. This error decreases as the number of load steps increases. Another method for correcting this error is described in Section 15.2.

To account for the fact that ei\boldsymbol{e}_{i} and Δe\Delta\boldsymbol{e} are evaluated with respect to slightly different configurations, the strain tensor is transferred to the current configuration before the stresses are evaluated. The stiff subroutine therefore includes the following correction:

ei+1=FT(ei+Δe)F1\boldsymbol{e}_{i+1}=\boldsymbol{F}^{-T}\left(\boldsymbol{e}_{i}+\Delta\boldsymbol{e}\right)\boldsymbol{F}^{-1}

The deformation gradient F\boldsymbol{F} is already calculated to obtain the right stretch tensor U\boldsymbol{U}; see the green line in Figure 1. In the final stiff subprogram, the red lines shown below are included:

MATLAB stiff subprogram excerpt with red strain-transformation lines
Figure 2. MATLAB strain transformation included in stiff.

As in Section 17.2, the same stiff subroutine can be used with either Hencky or Biot strains by setting istrain=1 or istrain=2.

07

Numerical example

Example. Consider a cantilever beam of length L=400 mmL=400\ \mathrm{mm}, with a rectangular cross-section of thickness 5 mm5\ \mathrm{mm} and height 20 mm20\ \mathrm{mm}. The material properties are E=1000 MPaE=1000\ \mathrm{MPa} and ν=0.3\nu=0.3. The free end is loaded by a force F=100 NF=100\ \mathrm{N}. The mesh contains 60×8=48060\times8=480 4-node isoparametric elements and 549 nodes. The load is applied in 20 steps.

The table below shows that the reference-configuration correction significantly improves the results, even for a small number of load steps.

UL + Hencky strain tensor
without reference-configuration correction
UL + Hencky strain tensor
with reference-configuration correction
ANSYS
20 load steps
vmax=287.12 mmumax=2.25 mmumin=157.99 mm\begin{aligned}v_{\max}&=-287.12\ \mathrm{mm}\\u_{\max}&=2.25\ \mathrm{mm}\\u_{\min}&=-157.99\ \mathrm{mm}\end{aligned}
20 load steps
vmax=286.61 mmumax=2.44 mmumin=155.76 mm\begin{aligned}v_{\max}&=-286.61\ \mathrm{mm}\\u_{\max}&=2.44\ \mathrm{mm}\\u_{\min}&=-155.76\ \mathrm{mm}\end{aligned}
vmax=286.32 mmumax=2.35 mmumin=155.68 mm\begin{aligned}v_{\max}&=-286.32\ \mathrm{mm}\\u_{\max}&=2.35\ \mathrm{mm}\\u_{\min}&=-155.68\ \mathrm{mm}\end{aligned}
5 load steps
vmax=288.94 mmumax=2.23 mmumin=162.32 mm\begin{aligned}v_{\max}&=-288.94\ \mathrm{mm}\\u_{\max}&=2.23\ \mathrm{mm}\\u_{\min}&=-162.32\ \mathrm{mm}\end{aligned}
Figure 3. Vertical displacement obtained with the reference-configuration correction and five load steps.

08

Programs and download

The modified MATLAB programs can be downloaded below.