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

Isoparametric 8-Node Quadrilateral Finite Element

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

Total LagrangianPlane stressQ8MATLAB

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)[x1y1x2y2⋮⋮x8y8]\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\\\vdots&\vdots\\x_8&y_8\end{bmatrix}
H(s,t)=[∂N1∂s∂N2∂s⋯∂N8∂s∂N1∂t∂N2∂t⋯∂N8∂t]\htmlClass{fea-math-bold-italic}{\boldsymbol H}(s,t)=\begin{bmatrix}\dfrac{\partial N_1}{\partial s}&\dfrac{\partial N_2}{\partial s}&\cdots&\dfrac{\partial N_8}{\partial s}\\[6pt]\dfrac{\partial N_1}{\partial t}&\dfrac{\partial N_2}{\partial t}&\cdots&\dfrac{\partial N_8}{\partial t}\end{bmatrix}

x1,…,x8x_1,\ldots,x_8 and y1,…,y8y_1,\ldots,y_8 are the nodal coordinates of the finite element in the initial configuration. The Q8 shape functions N1,…,N8N_1,\ldots,N_8 and node numbering are those of Section 9.6. 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:

b=J−1H=[b11b12⋯b18b21b22⋯b28]\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}&\cdots&b_{18}\\b_{21}&b_{22}&\cdots&b_{28}\end{bmatrix}

The four displacement-derivative relations are:

∂u∂x=BuxuelBux=(b110b120b130b140b150b160b170b180)\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&b_{15}&0&b_{16}&0&b_{17}&0&b_{18}&0\end{pmatrix}\end{aligned}
∂u∂y=BuyuelBuy=(b210b220b230b240b250b260b270b280)\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&b_{25}&0&b_{26}&0&b_{27}&0&b_{28}&0\end{pmatrix}\end{aligned}
∂v∂x=BvxuelBvx=(0b110b120b130b140b150b160b170b18)\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}&0&b_{15}&0&b_{16}&0&b_{17}&0&b_{18}\end{pmatrix}\end{aligned}
∂v∂y=BvyuelBvy=(0b210b220b230b240b250b260b270b28)\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}&0&b_{25}&0&b_{26}&0&b_{27}&0&b_{28}\end{pmatrix}\end{aligned}

The element nodal displacement vector is:

uel={u1v1u2v2u3v3u4v4u5v5u6v6u7v7u8v8}T\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&u_5&v_5&u_6&v_6&u_7&v_7&u_8&v_8\end{Bmatrix}^{T}

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 16×1616\times16 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.

For Q8, B\htmlClass{fea-math-bold-italic}{\boldsymbol B}, B0\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0 and BL\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L have dimensions 3×163\times16.

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 3×33\times3 Gauss numerical quadrature:

Π=U+V=12Ael=1nel(∑g=19wgh(sg,tg) εT(sg,tg)σ(sg,tg) ∣detJ(sg,tg)∣)−uTF\mathit{\Pi}=U+V=\frac12\mathcal A_{el=1}^{n_{el}}\left(\sum_{g=1}^{9}w_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 nine Gauss points, three in each natural-coordinate direction. Their coordinates and one-dimensional weights are:

iiCoordinateWeight wiw_i
1−0.6-\sqrt{0.6}5/95/9
208/98/9
3+0.6+\sqrt{0.6}5/95/9

The two-dimensional weight is the product of the weights in the two natural-coordinate directions. The nine-point sum is:

∑g=19wgE(sg,tg)=∑i=13∑j=13wiwjE(si,tj)\sum_{g=1}^{9}w_g E(s_g,t_g)=\sum_{i=1}^{3}\sum_{j=1}^{3}w_iw_j E(s_i,t_j)

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(∑g=19wgh δεTσ ∣detJ∣)−δuTF=0\delta\mathit{\Pi}=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{g=1}^{9}w_gh\,\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(∑g=19wgh 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_{g=1}^{9}w_gh\,\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(∑g=19wgh[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_{g=1}^{9}w_gh\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(∑g=19wgh δBTσ ∣detJ∣)+Ael=1nel(∑g=19wgh BTδσ ∣detJ∣)=KTδu\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{g=1}^{9}w_gh\,\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_{g=1}^{9}w_gh\,\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(∑g=19wgh δ[B0T+BLT(uel)]σ ∣detJ∣)+Ael=1nel(∑g=19wgh[B0T+BLT(uel)]δσ ∣detJ∣)=KTδu\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{g=1}^{9}w_gh\,\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_{g=1}^{9}w_gh\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 16×1616\times16 matrices, the first contribution becomes:

δ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(∑g=19wgh[σxGx+σyGy+τxyGxy]∣detJ∣)+Ael=1nel(∑g=19wgh BTDB ∣detJ∣)\htmlClass{fea-math-bold-italic}{\boldsymbol{K}}_T=\mathcal{A}_{el=1}^{n_{el}}\left(\sum_{g=1}^{9}w_gh\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_{g=1}^{9}w_gh\,\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=∑g=19wgh(σxGx+σyGy+τxyGxy+BTDB)∣detJ∣\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{el}=\sum_{g=1}^{9}w_gh\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=∑g=19wgh BTσ ∣detJ∣\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{el}=\sum_{g=1}^{9}w_gh\,\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 60 quadrilateral elements along the beam and 8 elements through its height: 480 isoparametric 8-node quadrilateral finite elements, 1,577 nodes and 3,154 displacement degrees of freedom. The load is applied in five steps. The Newton–Raphson solution requires 8, 9, 8, 8 and 7 iterations, respectively, for a tol=1e-5 tolerance.

Figure 1. Horizontal displacement uu.
umin=−160.6997 mm,umax=2.1873 mmu_{\mathop{\mathit{min}}}=-160.6997\ \mathit{mm},\qquad u_{\mathop{\mathit{max}}}=2.1873\ \mathit{mm}
Figure 2. Vertical displacement vv.
vmin=−289.6703 mm,vmax=0v_{\mathop{\mathit{min}}}=-289.6703\ \mathit{mm},\qquad v_{\mathop{\mathit{max}}}=0
Figure 3. Green–Lagrange axial strain εx\varepsilon_x.
εx,min=−0.07646,εx,max=0.07902\varepsilon_{x,\mathop{\mathit{min}}}=-0.07646,\qquad\varepsilon_{x,\mathop{\mathit{max}}}=0.07902
Figure 4. Second Piola–Kirchhoff normal stress σx\sigma_x.
σx,min=−84.017 MPa,σx,max=86.840 MPa\sigma_{x,\mathop{\mathit{min}}}=-84.017\ \mathit{MPa},\qquad\sigma_{x,\mathop{\mathit{max}}}=86.840\ \mathit{MPa}
Figure 5. Von Mises stress σVM\sigma_{\mathit{VM}}.
σVM,min=0.152 MPa,σVM,max=80.439 MPa\sigma_{\mathit{VM},\mathop{\mathit{min}}}=0.152\ \mathit{MPa},\qquad\sigma_{\mathit{VM},\mathop{\mathit{max}}}=80.439\ \mathit{MPa}

The comparison with Section 12.2 uses the same geometry, material and applied force. The Q4 and Q8 displacement solutions were calculated with their respective MATLAB programs; the Q4 strain/stress values and the ANSYS values below are those reported in Section 12.2. Displacements are compared by their maximum absolute values:

QuantityQ4 · 12.2Q8 · 12.3ANSYS · 12.2
Elements1,920480—
Nodes2,0571,577—
Equations4,1143,154—
max∣u∣ (mm)\mathop{\mathit{max}}|u|\ (\mathit{mm})159.51160.70159.92
max∣v∣ (mm)\mathop{\mathit{max}}|v|\ (\mathit{mm})288.79289.67289.48
εx,min\varepsilon_{x,\mathop{\mathit{min}}}-0.0726-0.0765-0.0770
εx,max\varepsilon_{x,\mathop{\mathit{max}}}0.07380.07900.0750
σx,min (MPa)\sigma_{x,\mathop{\mathit{min}}}\ (\mathit{MPa})-82.72-84.02-84.53
σx,max (MPa)\sigma_{x,\mathop{\mathit{max}}}\ (\mathit{MPa})84.6286.8482.63
σVM,min (MPa)\sigma_{\mathit{VM},\mathop{\mathit{min}}}\ (\mathit{MPa})0.1890.1520.152
σVM,max (MPa)\sigma_{\mathit{VM},\mathop{\mathit{max}}}\ (\mathit{MPa})79.5480.4479.35

The Q8 results are close to the Q4 and ANSYS results, with a smaller finite-element discretization.