Section 12.2 of Chapter 12: Total Lagrangian Formulation (TL)

Isoparametric 4-Node Quadrilateral Finite Element

A complete Total Lagrangian formulation of the plane-stress isoparametric 4-node quadrilateral finite element, including the consistent tangent stiffness matrix and a validated nonlinear cantilever example.

Total LagrangianPlane stressQ4MATLABANSYS

01

Formulation and hypotheses

StrainSmall
DisplacementLarge
MaterialLinear elastic
Stress statePlane stress

In the Total Lagrangian formulation, the initial undeformed geometry is the reference configuration. All coordinates, derivatives, Jacobian terms, and integrals are referred to that initial configuration. Green–Lagrange strains are used.

The deformation energy is:

U=12Ael=1nel(∫Aelh εTσ dA)U=\frac12\mathcal{A}_{el=1}^{n_{el}}\left(\int_{A_{el}}h\,\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,dA\right)

Ael=1nel\mathcal A_{el=1}^{n_{el}} denotes the standard finite-element assembly process, from the first element to the last one. In the natural coordinates s,ts,t:

U=12Ael=1nel(∫−11∫−11h(s,t) εT(s,t)σ(s,t) ∣detJ(s,t)∣ ds dt)U=\frac12\mathcal{A}_{el=1}^{n_{el}}\left(\int_{-1}^{1}\int_{-1}^{1}h(s,t)\,\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^{T}(s,t)\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}(s,t)\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}(s,t)\right|\,ds\,dt\right)

Here, hh is the element thickness, AelA_{el} is the finite-element area, and neln_{el} is the number of finite elements. Engineering notation is used for the shear component:

γxy=2Exy\gamma_{xy}=2E_{xy}
ε={εxεyγxy}\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}=\begin{Bmatrix}\varepsilon_x\\\varepsilon_y\\\gamma_{xy}\end{Bmatrix}
σ={σxσyτxy}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}=\begin{Bmatrix}\sigma_x\\\sigma_y\\\tau_{xy}\end{Bmatrix}

For a linear elastic material in plane stress:

σ=Dε\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}=\htmlClass{fea-math-bold-italic}{\boldsymbol{D}}\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}
D=E1−ν2[1ν0ν10001−ν2]\htmlClass{fea-math-bold-italic}{\boldsymbol{D}}=\frac{E}{1-\nu^2}\begin{bmatrix}1&\nu&0\\\nu&1&0\\0&0&\dfrac{1-\nu}{2}\end{bmatrix}

02

Initial configuration and Jacobian

The Jacobian is:

J(s,t)=[∂x∂s∂y∂s∂x∂t∂y∂t]=H(s,t)[x1y1x2y2x3y3x4y4]\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}(s,t)=\begin{bmatrix}\dfrac{\partial x}{\partial s}&\dfrac{\partial y}{\partial s}\\[4pt]\dfrac{\partial x}{\partial t}&\dfrac{\partial y}{\partial t}\end{bmatrix}=\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}(s,t)\begin{bmatrix}x_1&y_1\\x_2&y_2\\x_3&y_3\\x_4&y_4\end{bmatrix}
H(s,t)=14[1+t−(1+t)−(1−t)1−t1+s1−s−(1−s)−(1+s)]\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}(s,t)=\frac14\begin{bmatrix}1+t&-(1+t)&-(1-t)&1-t\\1+s&1-s&-(1-s)&-(1+s)\end{bmatrix}

x1,…,x4x_1,\ldots,x_4 and y1,…,y4y_1,\ldots,y_4 are the nodal coordinates of the finite element in the initial configuration. The physical area transformation is:

dA=∣detJ∣ ds dtdA=\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}\right|\,ds\,dt

The derivatives of the shape functions with respect to the initial Cartesian coordinates are obtained using the inverse Jacobian; see Section 9.4:

b=J−1H=[b11b12b13b14b21b22b23b24]\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}=\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}^{-1}\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}=\begin{bmatrix}b_{11}&b_{12}&b_{13}&b_{14}\\b_{21}&b_{22}&b_{23}&b_{24}\end{bmatrix}

The four displacement-derivative relations are:

∂u∂x=BuxuelBux=(b110b120b130b140)\begin{aligned}\frac{\partial u}{\partial x}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}\\[4pt]\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}&=\begin{pmatrix}b_{11}&0&b_{12}&0&b_{13}&0&b_{14}&0\end{pmatrix}\end{aligned}
∂u∂y=BuyuelBuy=(b210b220b230b240)\begin{aligned}\frac{\partial u}{\partial y}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}\\[4pt]\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}&=\begin{pmatrix}b_{21}&0&b_{22}&0&b_{23}&0&b_{24}&0\end{pmatrix}\end{aligned}
∂v∂x=BvxuelBvx=(0b110b120b130b14)\begin{aligned}\frac{\partial v}{\partial x}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}\\[4pt]\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}&=\begin{pmatrix}0&b_{11}&0&b_{12}&0&b_{13}&0&b_{14}\end{pmatrix}\end{aligned}
∂v∂y=BvyuelBvy=(0b210b220b230b24)\begin{aligned}\frac{\partial v}{\partial y}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}\\[4pt]\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}&=\begin{pmatrix}0&b_{21}&0&b_{22}&0&b_{23}&0&b_{24}\end{pmatrix}\end{aligned}

The element nodal displacement vector is:

uel={u1v1u2v2u3v3u4v4}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}=\begin{Bmatrix}u_1\\v_1\\u_2\\v_2\\u_3\\v_3\\u_4\\v_4\end{Bmatrix}

03

Green–Lagrange strains

The two-dimensional Green–Lagrange strain components are:

εx=∂u∂x+12(∂u∂x)2+12(∂v∂x)2\varepsilon_x=\frac{\partial u}{\partial x}+\frac12\left(\frac{\partial u}{\partial x}\right)^2+\frac12\left(\frac{\partial v}{\partial x}\right)^2
εy=∂v∂y+12(∂u∂y)2+12(∂v∂y)2\varepsilon_y=\frac{\partial v}{\partial y}+\frac12\left(\frac{\partial u}{\partial y}\right)^2+\frac12\left(\frac{\partial v}{\partial y}\right)^2
γxy=∂u∂y+∂v∂x+∂u∂x∂u∂y+∂v∂x∂v∂y\gamma_{xy}=\frac{\partial u}{\partial y}+\frac{\partial v}{\partial x}+\frac{\partial u}{\partial x}\frac{\partial u}{\partial y}+\frac{\partial v}{\partial x}\frac{\partial v}{\partial y}

After introducing the displacement interpolation, the strains become:

εx=Buxuel+12uelTGxuel\varepsilon_x=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}+\frac12\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_x\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}
εy=Bvyuel+12uelTGyuel\varepsilon_y=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}+\frac12\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_y\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}
γxy=(Buy+Bvx)uel+12uelTGxyuel\gamma_{xy}=(\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x})\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}+\frac12\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{xy}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}

The symmetric 8×88\times8 matrices are:

Gx=BuxTBux+BvxTBvx\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_x=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}
Gy=BuyTBuy+BvyTBvy\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_y=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}
Gxy=BuxTBuy+BuyTBux+BvxTBvy+BvyTBvx\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{xy}=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}

04

Strain-displacement matrix

The matrix B\htmlClass{fea-math-bold-italic}{\boldsymbol B}, relating an increment of the Green–Lagrange strain vector to an increment of the element nodal displacement vector, is defined by:

dεel=B dueld\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}_{el}=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}\,d\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}
B=∂εel∂uel\htmlClass{fea-math-bold-italic}{\boldsymbol B}=\frac{\partial\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}_{el}}{\partial\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}}

Component by component:

dεx=(Bux+uelTGx)dueld\varepsilon_x=\left(\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{u_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x\right)d\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}
dεy=(Bvy+uelTGy)dueld\varepsilon_y=\left(\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{v_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y\right)d\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}
dγxy=(Buy+Bvx+uelTGxy)dueld\gamma_{xy}=\left(\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{u_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{v_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy}\right)d\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}
{dεxdεydγxy}=[Bux+uelTGxBvy+uelTGyBuy+Bvx+uelTGxy]⏟Bduel\begin{Bmatrix}d\varepsilon_x\\d\varepsilon_y\\d\gamma_{xy}\end{Bmatrix}=\underbrace{\begin{bmatrix}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_x\\\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_y\\\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{xy}\end{bmatrix}}_{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}d\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}

The matrix is split into a constant part, identical to linear theory, and a nonlinear displacement-dependent part:

B(uel)=B0+BL(uel)\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}(\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el})=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_0+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_L(\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el})
[Bux+uelTGxBvy+uelTGyBuy+Bvx+uelTGxy]⏟B=[BuxBvyBuy+Bvx]⏟B0+[uelTGxuelTGyuelTGxy]⏟BL\underbrace{\begin{bmatrix}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_x\\\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_y\\\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{xy}\end{bmatrix}}_{\htmlClass{fea-math-bold-italic}{\boldsymbol B}}=\underbrace{\begin{bmatrix}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}\\\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}\\\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}\end{bmatrix}}_{\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0}+\underbrace{\begin{bmatrix}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_x\\\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_y\\\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{xy}\end{bmatrix}}_{\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L}

B0\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0 is the constant part, identical to linear theory, and BL\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L is the nonlinear displacement-dependent part.

05

Potential energy and Gauss quadrature

The total potential energy is:

Π=U+V=12Ael=1nel(∫Aelh εTσ dA)−uTF\mathit{\Pi}=U+V=\frac12\mathcal{A}_{el=1}^{n_{el}}\left(\int_{A_{el}}h\,\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,dA\right)-\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}

Here, V=−uTFV=-\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol F} is the potential of the external loads, u\htmlClass{fea-math-bold-italic}{\boldsymbol u} is the global nodal displacement vector, and F\htmlClass{fea-math-bold-italic}{\boldsymbol F} is the global force vector. In natural coordinates:

Π=U+V=12Ael=1nel(∫−11∫−11h(s,t) εT(s,t)σ(s,t) ∣detJ(s,t)∣ ds dt)−uTF\mathit{\Pi}=U+V=\frac12\mathcal{A}_{el=1}^{n_{el}}\left(\int_{-1}^{1}\int_{-1}^{1}h(s,t)\,\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^{T}(s,t)\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}(s,t)\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}(s,t)\right|\,ds\,dt\right)-\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol F}

Using 2×22\times2 Gauss numerical quadrature:

Π=U+V=12Ael=1nel(∑nGh(sG,tG) εT(sG,tG)σ(sG,tG) ∣detJ(sG,tG)∣)−uTF\mathit{\Pi}=U+V=\frac12\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h(s_G,t_G)\,\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^{T}(s_G,t_G)\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}(s_G,t_G)\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}(s_G,t_G)\right|\right)-\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol F}

The integration uses four Gauss points, two in each natural-coordinate direction. For the 2×22\times2 Gauss rule, all four weights are equal to 1 and are therefore omitted from the following expressions. The four-point sum is:

∑nGE(sG,tG)=E(13,13)+E(13,−13)+E(−13,13)+E(−13,−13)\sum_{n_G}E(s_G,t_G)=E\left(\frac{1}{\sqrt3},\frac{1}{\sqrt3}\right)+E\left(\frac{1}{\sqrt3},-\frac{1}{\sqrt3}\right)+E\left(-\frac{1}{\sqrt3},\frac{1}{\sqrt3}\right)+E\left(-\frac{1}{\sqrt3},-\frac{1}{\sqrt3}\right)

where the integrand is:

E(s,t)=h(s,t) εT(s,t)σ(s,t) ∣detJ(s,t)∣E(s,t)=h(s,t)\,\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^{T}(s,t)\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}(s,t)\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}(s,t)\right|

06

Virtual work and equilibrium

The virtual-work equation is:

δΠ=Ael=1nel(∑nGh δεTσ ∣detJ∣)−δuTF=0\delta\mathit{\Pi}=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\,\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)-\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol F}=0

This relation holds for every geometrically admissible virtual displacement field. Therefore, the nonlinear equilibrium system is:

Ψ(u)=Ael=1nel(∑nGh BTσ ∣detJ∣)−F=0\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}(\htmlClass{fea-math-bold-italic}{\boldsymbol u})=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\,\htmlClass{fea-math-bold-italic}{\boldsymbol B}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)-\htmlClass{fea-math-bold-italic}{\boldsymbol F}=\htmlClass{fea-math-bold-italic}{\boldsymbol0}

Equivalently, using the split of the strain-displacement matrix:

Ψ(u)=Ael=1nel(∑nGh[B0T+BLT(uel)]σ ∣detJ∣)−F=0\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}(\htmlClass{fea-math-bold-italic}{\boldsymbol u})=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\left[\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0^{T}+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L^{T}(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el})\right]\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)-\htmlClass{fea-math-bold-italic}{\boldsymbol F}=\htmlClass{fea-math-bold-italic}{\boldsymbol0}

07

Tangent stiffness matrix

The first variation of the equilibrium residual is:

δΨ=Ael=1nel(∑nGh δBTσ ∣detJ∣)+Ael=1nel(∑nGh BTδσ ∣detJ∣)=KTδu\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\,\delta\htmlClass{fea-math-bold-italic}{\boldsymbol B}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)+\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\,\htmlClass{fea-math-bold-italic}{\boldsymbol B}^{T}\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)=\htmlClass{fea-math-bold-italic}{\boldsymbol{K}}_T\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}

Using B=B0+BL(uel)\htmlClass{fea-math-bold-italic}{\boldsymbol B}=\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}), the same variation is:

δΨ=Ael=1nel(∑nGh δ[B0T+BLT(uel)]σ ∣detJ∣)+Ael=1nel(∑nGh[B0T+BLT(uel)]δσ ∣detJ∣)=KTδu\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\,\delta\left[\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0^{T}+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L^{T}(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el})\right]\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)+\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\left[\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0^{T}+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L^{T}(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el})\right]\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)=\htmlClass{fea-math-bold-italic}{\boldsymbol{K}}_T\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}

Because B0\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0 is constant:

δB=δ(B0+BL)=δBL\delta\htmlClass{fea-math-bold-italic}{\boldsymbol B}=\delta(\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L)=\delta\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L

Taking into account that Gx\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x, Gy\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y, and Gxy\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy} are symmetric 8×88\times8 matrices, the first contribution becomes:

δBTσ=δBLTσ=δ([(uelTGx)T(uelTGy)T(uelTGxy)T])σ\delta\htmlClass{fea-math-bold-italic}{\boldsymbol B}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}=\delta\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}=\delta\left(\begin{bmatrix}\left(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x\right)^{T}\\\left(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y\right)^{T}\\\left(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy}\right)^{T}\end{bmatrix}\right)\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}
δBTσ=(σxGx+σyGy+τxyGxy)δuel\delta\htmlClass{fea-math-bold-italic}{\boldsymbol B}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}=\left(\sigma_x\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x+\sigma_y\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y+\tau_{xy}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy}\right)\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}

The stress variation is:

δσ=D δε=DB δuel\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}=\htmlClass{fea-math-bold-italic}{\boldsymbol D}\,\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}=\htmlClass{fea-math-bold-italic}{\boldsymbol D}\htmlClass{fea-math-bold-italic}{\boldsymbol B}\,\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}

Consequently, the global tangent stiffness matrix is:

KT=Ael=1nel(∑nGh[σxGx+σyGy+τxyGxy]∣detJ∣)+Ael=1nel(∑nGh BTDB ∣detJ∣)\htmlClass{fea-math-bold-italic}{\boldsymbol{K}}_T=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\left[\sigma_x\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x+\sigma_y\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y+\tau_{xy}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy}\right]\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)+\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{n_G}h\,\htmlClass{fea-math-bold-italic}{\boldsymbol B}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol D}\htmlClass{fea-math-bold-italic}{\boldsymbol B}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|\right)

The tangent stiffness matrix contains two contributions: the material stiffness and the geometric (stress-dependent) stiffness. For one finite element:

kel=∑nGh(σxGx+σyGy+τxyGxy+BTDB)∣detJ∣\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{el}=\sum_{n_G}h\left(\sigma_x\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x+\sigma_y\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y+\tau_{xy}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy}+\htmlClass{fea-math-bold-italic}{\boldsymbol B}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol D}\htmlClass{fea-math-bold-italic}{\boldsymbol B}\right)\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|

The equilibrium system can also be written in terms of the element internal force vectors:

Ψ(u)=Ael=1nel(fel)−F=0\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}(\htmlClass{fea-math-bold-italic}{\boldsymbol u})=\mathcal{A}_{el=1}^{n_{el}}\left(\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{el}\right)-\htmlClass{fea-math-bold-italic}{\boldsymbol F}=\htmlClass{fea-math-bold-italic}{\boldsymbol0}
fel=∑nGh BTσ ∣detJ∣\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{el}=\sum_{n_G}h\,\htmlClass{fea-math-bold-italic}{\boldsymbol B}^{T}\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,\left|\mathop{\mathit{det}}\htmlClass{fea-math-bold-italic}{\boldsymbol J}\right|

The element tangent stiffness matrix is the derivative of the element internal force vector:

kel=∂fel∂uel\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{el}=\frac{\partial\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{el}}{\partial\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}}

08

Newton–Raphson solution

At Newton–Raphson iteration ii:

Δu(i)=−(KT(i))−1Ψ(i)\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol u}^{(i)}=-\left(\htmlClass{fea-math-bold-italic}{\boldsymbol K}_T^{(i)}\right)^{-1}\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}^{(i)}
u(i+1)=u(i)+Δu(i)\htmlClass{fea-math-bold-italic}{\boldsymbol u}^{(i+1)}=\htmlClass{fea-math-bold-italic}{\boldsymbol u}^{(i)}+\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol u}^{(i)}
Ψ(i)=Ψ(ui)\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}^{(i)}=\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}\left(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_i\right)

The element internal-force vectors fel\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{el} and tangent stiffness matrices kel\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{el} are assembled to obtain Ψ(i)\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}^{(i)} and KT(i)\htmlClass{fea-math-bold-italic}{\boldsymbol K}_T^{(i)}, respectively. A convenient convergence measure is:

ϵ=ΔuTΔun\epsilon=\sqrt{\frac{\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol u}^{T}\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol u}}{n}}

where nn is the number of equations.

Important remark #1

The Total Lagrangian formulation presented here is not based on an incremental strain approximation. The equilibrium equations are written directly with respect to the initial configuration. Therefore, the accuracy of the formulation itself does not depend on the number of load steps. For problems with moderate nonlinearity, a single load step may be sufficient, provided that the Newton–Raphson iterations converge. Additional load steps may nevertheless be useful to improve convergence in more strongly nonlinear problems.

09

Example and numerical results

The cantilever beam has length L=400 mmL=400\ \mathit{mm} and a rectangular cross-section with thickness 5 mm5\ \mathit{mm} and height 20 mm20\ \mathit{mm}. The material properties are E=1000 MPaE=1000\ \mathit{MPa} and ν=0.3\nu=0.3. A vertical force F=100 NF=100\ \mathit{N} is applied at the free end.

The mesh has 120 quadrilateral elements along the beam and 16 elements through its height: 1,920 isoparametric 4-node quadrilateral finite elements and 2,057 nodes.

Figure 1. Horizontal displacement uu.
umaxMATLAB=159.51 mmu_{\mathop{\mathit{max}}}^{\mathit{MATLAB}}=159.51\ \mathit{mm}
umaxANSYS=159.92 mmu_{\mathop{\mathit{max}}}^{\mathit{ANSYS}}=159.92\ \mathit{mm}
Figure 2. Vertical displacement vv.
vmaxMATLAB=288.79 mmv_{\mathop{\mathit{max}}}^{\mathit{MATLAB}}=288.79\ \mathit{mm}
vmaxANSYS=289.48 mmv_{\mathop{\mathit{max}}}^{\mathit{ANSYS}}=289.48\ \mathit{mm}
Figure 3. Green–Lagrange axial strain εx\varepsilon_x.
εx,minMATLAB=−0.0726\varepsilon_{x,\mathop{\mathit{min}}}^{\mathit{MATLAB}}=-0.0726
εx,minANSYS=−0.0770\varepsilon_{x,\mathop{\mathit{min}}}^{\mathit{ANSYS}}=-0.0770
εx,maxMATLAB=0.0738\varepsilon_{x,\mathop{\mathit{max}}}^{\mathit{MATLAB}}=0.0738
εx,maxANSYS=0.0750\varepsilon_{x,\mathop{\mathit{max}}}^{\mathit{ANSYS}}=0.0750
Figure 4. Second Piola–Kirchhoff normal stress σx\sigma_x.
σx,minMATLAB=−82.72 MPa\sigma_{x,\mathop{\mathit{min}}}^{\mathit{MATLAB}}=-82.72\ \mathit{MPa}
σx,minANSYS=−84.53 MPa\sigma_{x,\mathop{\mathit{min}}}^{\mathit{ANSYS}}=-84.53\ \mathit{MPa}
σx,maxMATLAB=84.62 MPa\sigma_{x,\mathop{\mathit{max}}}^{\mathit{MATLAB}}=84.62\ \mathit{MPa}
σx,maxANSYS=82.63 MPa\sigma_{x,\mathop{\mathit{max}}}^{\mathit{ANSYS}}=82.63\ \mathit{MPa}
Figure 5. Von Mises stress σVM\sigma_{\mathit{VM}}.
σVM,minMATLAB=0.189 MPa\sigma_{\mathit{VM},\mathop{\mathit{min}}}^{\mathit{MATLAB}}=0.189\ \mathit{MPa}
σVM,minANSYS=0.152 MPa\sigma_{\mathit{VM},\mathop{\mathit{min}}}^{\mathit{ANSYS}}=0.152\ \mathit{MPa}
σVM,maxMATLAB=79.54 MPa\sigma_{\mathit{VM},\mathop{\mathit{max}}}^{\mathit{MATLAB}}=79.54\ \mathit{MPa}
σVM,maxANSYS=79.35 MPa\sigma_{\mathit{VM},\mathop{\mathit{max}}}^{\mathit{ANSYS}}=79.35\ \mathit{MPa}

The MATLAB and ANSYS results are in very good agreement.

10

Stress-map interpretation

Important remark #2

In the Total Lagrangian formulation, strains and stresses are referred to the initial undeformed configuration. Therefore, the mathematically consistent stress map is the one represented on the initial geometry.

For a more intuitive visualization, the same second Piola–Kirchhoff stresses may also be represented on the deformed geometry. In this representation, the material directions rotate together with the finite elements; therefore, the xx-stress direction becomes approximately tangent to the deformed beam axis.

Cauchy stresses are defined in the current configuration. When strains are small, their values referred to the corresponding local, rotated material directions are very close to the second Piola–Kirchhoff stresses. The distinction becomes important when comparing stress components expressed in different reference frames.

This topic will be discussed in a later chapter.

Normal stress represented on the initial and deformed beam geometries with the author-supplied arrows and labels
Figure 6. Second Piola–Kirchhoff normal stress represented on the initial configuration and, for intuitive visualization, on the deformed geometry. The original explanatory arrows and labels are preserved.

11

Programs and downloads