Section 17.2 of Chapter 17 — Hencky and Biot strains

Updated Lagrangian formulation: plane stress state, isoparametric 4-node quadrilateral, Hencky strains

An updated Lagrangian Q4 formulation using Cauchy stress with selectable Hencky or Biot strain tensors.

Updated LagrangianPlane stressQ4Hencky strainBiot strain

01

Formulation and hypotheses

StrainSmall
DisplacementLarge
MaterialLinear elastic

The isoparametric 4-node quadrilateral element is described in Section 9.4.

In an Updated Lagrangian formulation, the displacements and stresses at load step i+1i+1 are evaluated with respect to the known deformed configuration at the preceding load step ii. That known configuration becomes the new reference configuration. Consequently, the derivatives and integrals used for load step i+1i+1 are evaluated with respect to the configuration at load step ii; see also Chapter 15.

Cauchy stresses are used together with either the Hencky or the Biot strain tensor. Both strain measures are implemented in the MATLAB program and compared in the numerical example. For small strains, the Biot strain tensor represents the first-order approximation of the Hencky strain tensor.

02

Strain energy and notation

Strain energy at load step i+1i+1, written with respect to the configuration at load step ii (see also Sections 15.1 and 15.2):

Ui+1=12Ael=1nel(Ael,ihiεi+1Tσi+1dA)=12Ael=1nel(Ael,ihi(εi+Δε)Tσi+1dA)U_{i+1}=\frac12\mathcal{A}_{el=1}^{n_{el}}\left(\int_{A_{el,i}}h_i\,\boldsymbol{\varepsilon}_{i+1}^{T}\boldsymbol{\sigma}_{i+1}\,dA\right)=\frac12\mathcal{A}_{el=1}^{n_{el}}\left(\int_{A_{el,i}}h_i\left(\boldsymbol{\varepsilon}_{i}+\Delta\boldsymbol{\varepsilon}\right)^{T}\boldsymbol{\sigma}_{i+1}\,dA\right)

Working in the natural coordinates s,ts,t, where ε\boldsymbol{\varepsilon}, σ\boldsymbol{\sigma}, and J\boldsymbol{J} are functions of s,ts,t:

Ui+1=12Ael=1nel(1111hi(εi+Δε)Tσi+1det(Ji)dsdt)U_{i+1}=\frac12\mathcal{A}_{el=1}^{n_{el}}\left(\int_{-1}^{1}\int_{-1}^{1}h_i\left(\boldsymbol{\varepsilon}_{i}+\Delta\boldsymbol{\varepsilon}\right)^{T}\boldsymbol{\sigma}_{i+1}\det\left(\boldsymbol{J}_{i}\right)\,ds\,dt\right)

Here, hh is the initial element thickness. The current thickness is approximated by accounting for transverse contraction as in Section 15.1:

hi[1ν1ν(εx,i+εy,i)]hh_i\approx\left[1-\frac{\nu}{1-\nu}\left(\varepsilon_{x,i}+\varepsilon_{y,i}\right)\right]h

This thickness relation is a small-strain approximation; it is not a general exact relation for finite elastic strains.

The strains and stresses at load step i+1i+1 are:

εi+1=εi+Δε,σi+1=Dεi+1\boldsymbol{\varepsilon}_{i+1}=\boldsymbol{\varepsilon}_{i}+\Delta\boldsymbol{\varepsilon},\qquad \boldsymbol{\sigma}_{i+1}=\boldsymbol{D}\boldsymbol{\varepsilon}_{i+1}

This additive strain update is an approximation consistent with the present small-strain incremental formulation; Hencky and Biot strain tensors are not generally additive under finite successive deformations.

ε={εxεyγxy}\boldsymbol{\varepsilon}=\begin{Bmatrix}\varepsilon_x\\[3pt]\varepsilon_y\\[3pt]\gamma_{xy}\end{Bmatrix}
σ={σxσyτxy}\boldsymbol{\sigma}=\begin{Bmatrix}\sigma_x\\[3pt]\sigma_y\\[3pt]\tau_{xy}\end{Bmatrix}

For a linear elastic material in plane stress:

D=E1ν2[1ν0ν10001ν2]\boldsymbol{D}=\frac{E}{1-\nu^2}\begin{bmatrix}1&\nu&0\\[3pt]\nu&1&0\\[3pt]0&0&\dfrac{1-\nu}{2}\end{bmatrix}

The finite-element area and Jacobian are evaluated in the known configuration at load step ii. The Jacobian is:

Ji(s,t)=H(s,t)[x1y1x2y2x3y3x4y4]i\boldsymbol{J}_{i}(s,t)=\boldsymbol{H}(s,t)\begin{bmatrix}x_1&y_1\\x_2&y_2\\x_3&y_3\\x_4&y_4\end{bmatrix}_{i}
H(s,t)=14[1+t(1+t)(1t)1t1+s1s(1s)(1+s)]\boldsymbol{H}(s,t)=\frac14\begin{bmatrix}1+t&-(1+t)&-(1-t)&1-t\\[3pt]1+s&1-s&-(1-s)&-(1+s)\end{bmatrix}

The coordinates x1,,x4x_1,\ldots,x_4 and y1,,y4y_1,\ldots,y_4 are the nodal coordinates of the current finite element at load step ii. After load step i+1i+1 is completed, the nodal displacements, strains, and corresponding Cauchy stresses at that load step are known and define the reference state for the next increment.

03

Virtual work and strain increment

The virtual-work equation is evaluated using a 2×22\times2 Gauss quadrature:

δΠ=Ael=1nel(g=14hiδεTσi+1det(Ji))δuTF=0\delta\Pi=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{g=1}^{4}h_i\,\delta\boldsymbol{\varepsilon}^{T}\boldsymbol{\sigma}_{i+1}\det\left(\boldsymbol{J}_{i}\right)\right)-\delta\boldsymbol{u}^{T}\boldsymbol{F}=0

Here, nG=2n_G=2 is the number of Gauss points in each natural-coordinate direction. Thus the Q4 element uses 2×2=42\times2=4 Gauss points in total.

For any geometrically admissible virtual displacement, the strain variation is written as:

δε=Bδuel\delta\boldsymbol{\varepsilon}=\boldsymbol{B}\,\delta\boldsymbol{u}_{el}

The element nodal-displacement vector is:

uel=(u1  v1  u2  v2  u3  v3  u4  v4)T\boldsymbol{u}_{el}=\left(u_1\;v_1\;u_2\;v_2\;u_3\;v_3\;u_4\;v_4\right)^{T}

The Hencky strain tensor for the increment is:

EH=lnU=12lnC=12ln(FTF)\boldsymbol{E}_{H}=\ln\boldsymbol{U}=\frac12\ln\boldsymbol{C}=\frac12\ln\left(\boldsymbol{F}^{T}\boldsymbol{F}\right)

For small strains, C\boldsymbol{C} remains close to the identity tensor. Hence, to first order:

δ(lnC)C1δC\delta\left(\ln\boldsymbol{C}\right)\approx\boldsymbol{C}^{-1}\delta\boldsymbol{C}

This approximation is used in the following derivation. Since C=FTF\boldsymbol{C}=\boldsymbol{F}^{T}\boldsymbol{F} and C1=U2\boldsymbol{C}^{-1}=\boldsymbol{U}^{-2}:

δEH12U2(δFTF+FTδF)\delta\boldsymbol{E}_{H}\approx\frac12\boldsymbol{U}^{-2}\left(\delta\boldsymbol{F}^{T}\boldsymbol{F}+\boldsymbol{F}^{T}\delta\boldsymbol{F}\right)

The deformation gradient of the increment, evaluated with respect to the configuration at load step ii, is:

F=I2+u=I2+[u,xu,yv,xv,y]\boldsymbol{F}=\boldsymbol{I}_{2}+\nabla\boldsymbol{u}=\boldsymbol{I}_{2}+\begin{bmatrix}u_{,x}&u_{,y}\\[4pt]v_{,x}&v_{,y}\end{bmatrix}

04

Construction of the strain-displacement matrix

The displacement derivatives follow from the same Q4 interpolation used in Section 9.4:

u,x=Buxuel=(b110b120b130b140)uelu_{,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}
u,y=Buyuel=(b210b220b230b240)uelu_{,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}
v,x=Bvxuel=(0b110b120b130b14)uelv_{,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}
v,y=Bvyuel=(0b210b220b230b24)uelv_{,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}

Here:

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

The increment of the deformation gradient is produced by the eight element nodal-displacement increments:

δF=Fu1δu1+Fv1δv1++Fu4δu4+Fv4δv4\delta\boldsymbol{F}=\frac{\partial\boldsymbol{F}}{\partial u_1}\delta u_1+\frac{\partial\boldsymbol{F}}{\partial v_1}\delta v_1+\cdots+\frac{\partial\boldsymbol{F}}{\partial u_4}\delta u_4+\frac{\partial\boldsymbol{F}}{\partial v_4}\delta v_4

For each node a=1,2,3,4a=1,2,3,4:

Fua=[b1ab2a00],Fva=[00b1ab2a]\frac{\partial\boldsymbol{F}}{\partial u_a}=\begin{bmatrix}b_{1a}&b_{2a}\\[3pt]0&0\end{bmatrix},\qquad \frac{\partial\boldsymbol{F}}{\partial v_a}=\begin{bmatrix}0&0\\[3pt]b_{1a}&b_{2a}\end{bmatrix}

Consequently:

FTδF=[F~1δu1F~2δv1F~7δu4F~8δv4]\boldsymbol{F}^{T}\delta\boldsymbol{F}=\begin{bmatrix}\widetilde{\boldsymbol{F}}_{1}\delta u_1&\widetilde{\boldsymbol{F}}_{2}\delta v_1&\cdots&\widetilde{\boldsymbol{F}}_{7}\delta u_4&\widetilde{\boldsymbol{F}}_{8}\delta v_4\end{bmatrix}

where the 2×22\times2 matrices are:

F~1=FTFu1,F~2=FTFv1,,F~8=FTFv4\widetilde{\boldsymbol{F}}_{1}=\boldsymbol{F}^{T}\frac{\partial\boldsymbol{F}}{\partial u_1},\qquad \widetilde{\boldsymbol{F}}_{2}=\boldsymbol{F}^{T}\frac{\partial\boldsymbol{F}}{\partial v_1},\qquad\ldots,\qquad \widetilde{\boldsymbol{F}}_{8}=\boldsymbol{F}^{T}\frac{\partial\boldsymbol{F}}{\partial v_4}

Define the 2×162\times16 matrix:

B~=12U2[F~1+F~1TF~2+F~2TF~8+F~8T]\widetilde{\boldsymbol{B}}=\frac12\boldsymbol{U}^{-2}\begin{bmatrix}\widetilde{\boldsymbol{F}}_{1}+\widetilde{\boldsymbol{F}}_{1}^{T}&\widetilde{\boldsymbol{F}}_{2}+\widetilde{\boldsymbol{F}}_{2}^{T}&\cdots&\widetilde{\boldsymbol{F}}_{8}+\widetilde{\boldsymbol{F}}_{8}^{T}\end{bmatrix}

The engineering strain-displacement matrix has three rows and eight columns:

B=[B~1,1B~1,3B~1,5B~1,7B~1,9B~1,11B~1,13B~1,15B~2,2B~2,4B~2,6B~2,8B~2,10B~2,12B~2,14B~2,162B~1,22B~1,42B~1,62B~1,82B~1,102B~1,122B~1,142B~1,16]\boldsymbol{B}=\begin{bmatrix}\widetilde B_{1,1}&\widetilde B_{1,3}&\widetilde B_{1,5}&\widetilde B_{1,7}&\widetilde B_{1,9}&\widetilde B_{1,11}&\widetilde B_{1,13}&\widetilde B_{1,15}\\[4pt]\widetilde B_{2,2}&\widetilde B_{2,4}&\widetilde B_{2,6}&\widetilde B_{2,8}&\widetilde B_{2,10}&\widetilde B_{2,12}&\widetilde B_{2,14}&\widetilde B_{2,16}\\[4pt]2\widetilde B_{1,2}&2\widetilde B_{1,4}&2\widetilde B_{1,6}&2\widetilde B_{1,8}&2\widetilde B_{1,10}&2\widetilde B_{1,12}&2\widetilde B_{1,14}&2\widetilde B_{1,16}\end{bmatrix}

The matrix B\boldsymbol{B} is evaluated for every finite element and at every Gauss point in B_matrix.m, which is called by stiff.m.

05

Internal force and approximate tangent

The element internal nodal force vector is:

fel=g=14hiBTσi+1det(Ji)\boldsymbol{f}_{el}=\sum_{g=1}^{4}h_i\boldsymbol{B}^{T}\boldsymbol{\sigma}_{i+1}\det\left(\boldsymbol{J}_{i}\right)

To keep the program simple, the tangent stiffness used in this section is approximated by:

kel=feluelg=14hiBTDBdet(Ji)\boldsymbol{k}_{el}=\frac{\partial\boldsymbol{f}_{el}}{\partial\boldsymbol{u}_{el}}\approx\sum_{g=1}^{4}h_i\boldsymbol{B}^{T}\boldsymbol{D}\boldsymbol{B}\det\left(\boldsymbol{J}_{i}\right)

This expression neglects the dependence of B\boldsymbol{B} on the nodal displacements. It is therefore an approximate tangent stiffness matrix. The equilibrium state is still governed by the element internal force vector, but the approximate tangent gives poorer iterative convergence.

For this reason, the underrelaxation factor used in main.m is retained:

Underrelaxation in main
%*** main ***
dS=K\F*sr;
S=S-dS;

A value of sr=0.6s_r=0.6 provides satisfactory convergence for this example.

An improved approximation of the tangent stiffness matrix is presented in Section 17.3.

06

Hencky and Biot implementation

Both Hencky and Biot strain tensors are implemented in the same MATLAB program.

Strain selection in stiff
%*** stiff ***
istrain=1;   % 1 - Hencky strain
             % 2 - Biot strain

At the beginning of the stiff subroutine, the variable istrain selects the strain measure used in the analysis: istrain=1 for Hencky strain and istrain=2 for Biot strain.

Hencky and Biot implementation in stiff
if istrain==1
    ee=logm(U);
    Uic=Ui^2;       % Hencky strain tensor
elseif istrain==2
    ee=U-eye(2);
    Uic=Ui;         % Biot strain tensor
else
    error('Unknown strain tensor option')
end
Hencky strain tensorBiot strain tensor
EH=lnU\boldsymbol{E}_{H}=\ln\boldsymbol{U}
EB=UI2\boldsymbol{E}_{B}=\boldsymbol{U}-\boldsymbol{I}_{2}
δEH12U2(δFTF+FTδF)\delta\boldsymbol{E}_{H}\approx\frac12\boldsymbol{U}^{-2}\left(\delta\boldsymbol{F}^{T}\boldsymbol{F}+\boldsymbol{F}^{T}\delta\boldsymbol{F}\right)
δEB=12U1(δFTF+FTδF)\delta\boldsymbol{E}_{B}=\frac12\boldsymbol{U}^{-1}\left(\delta\boldsymbol{F}^{T}\boldsymbol{F}+\boldsymbol{F}^{T}\delta\boldsymbol{F}\right)
ee=logm(U);
Uic=Ui^2;
ee=U-eye(2);
Uic=Ui;

For small strains, the Biot strain tensor may be regarded as the first-order approximation of the Hencky strain tensor:

lnU=(UI2)12(UI2)2+13(UI2)3UI2\ln\boldsymbol{U}=\left(\boldsymbol{U}-\boldsymbol{I}_{2}\right)-\frac12\left(\boldsymbol{U}-\boldsymbol{I}_{2}\right)^{2}+\frac13\left(\boldsymbol{U}-\boldsymbol{I}_{2}\right)^{3}-\cdots\approx\boldsymbol{U}-\boldsymbol{I}_{2}

07

Numerical example

Example 1. Consider a cantilever beam of length L=400 mmL=400\ \mathrm{mm} and rectangular cross-section 5 mm×20 mm5\ \mathrm{mm}\times20\ \mathrm{mm}. The material properties are E=1000 MPaE=1000\ \mathrm{MPa} and ν=0.3\nu=0.3. A force F=100 NF=100\ \mathrm{N} is applied at the free end. The mesh contains 60×8=48060\times8=480 Q4 elements and 549 nodes. The load is applied in 20 steps.

Figure 1. Deformed cantilever configurations: magenta — UL with Euler–Almansi strains; blue — UL with Hencky strains.

The displacement and normal-stress results are compared below. The Hencky and Biot values are reported in that order.

ResultUL + Hencky / Biot strain tensorANSYSUL + Euler–Almansi strain tensor
(Section 15.2, stiff2)
vmax (mm)v_{\max}\ (\mathrm{mm})−287.12 / −287.11−286.32−289.27
umax (mm)u_{\max}\ (\mathrm{mm})2.25 / 2.252.352.45
umin (mm)u_{\min}\ (\mathrm{mm})−157.99 / −157.99−155.68−159.30
σx,max (MPa)\sigma_{x,\max}\ (\mathrm{MPa})74.42 / 74.4776.9678.26
σx,min (MPa)\sigma_{x,\min}\ (\mathrm{MPa})−80.98 / −80.93−79.78−88.80

The Hencky- and Biot-based results are extremely close for this example, as expected from their first-order relation at small strain. The comparison also shows the corresponding Euler–Almansi and ANSYS results without changing the stress measure: all reported stresses are Cauchy stresses.

08

Programs and downloads

The MATLAB package used for the example and the accompanying ANSYS macro can be downloaded below.