Section 26.1 of Chapter 26: Total Lagrangian formulation (TL)

Isoparametric 8-node hexahedral finite element

StrainSmall
DisplacementLarge
MaterialLinear elastic

In the Total Lagrangian formulation, the initial undeformed configuration is the reference configuration. All derivatives, Jacobians and volume integrals are evaluated with respect to that initial configuration. The development follows Section 12.2; the HEX8 interpolation and linear formulation are presented in Section 25.1.

01

Strain and stress notation

The Green–Lagrange strain vector and the corresponding stress vector are:

ε={εxεyεzγxyγyzγzx},σ={σxσyσzτxyτyzτzx}.\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}=\begin{Bmatrix}\varepsilon_x\\\varepsilon_y\\\varepsilon_z\\\gamma_{xy}\\\gamma_{yz}\\\gamma_{zx}\end{Bmatrix},\qquad\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}=\begin{Bmatrix}\sigma_x\\\sigma_y\\\sigma_z\\\tau_{xy}\\\tau_{yz}\\\tau_{zx}\end{Bmatrix}.

Remark. In this section the symbol ε\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}} is retained for the Green–Lagrange strain vector, although this strain measure is different from the infinitesimal strain used in linear analysis. Similarly, the symbol σ\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}} is retained for convenience for the stress measure energetically conjugate to the Green–Lagrange strain, i.e. the second Piola–Kirchhoff stress. Since small strains and a linear elastic material are assumed, the familiar linear-elastic constitutive relation is used:

σ=Dε.\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}=\htmlClass{fea-math-bold-italic}{\boldsymbol D}\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}.

This notation simplifies the transition from the linear formulation while preserving the Total Lagrangian character of the analysis.

D=E(1−ν)(1+ν)(1−2ν)[1ν1−νν1−ν000ν1−ν1ν1−ν000ν1−νν1−ν10000001−2ν2(1−ν)0000001−2ν2(1−ν)0000001−2ν2(1−ν)].\htmlClass{fea-math-bold-italic}{\boldsymbol D}=\frac{E(1-\nu)}{(1+\nu)(1-2\nu)}\begin{bmatrix}1&\frac\nu{1-\nu}&\frac\nu{1-\nu}&0&0&0\\\frac\nu{1-\nu}&1&\frac\nu{1-\nu}&0&0&0\\\frac\nu{1-\nu}&\frac\nu{1-\nu}&1&0&0&0\\0&0&0&\frac{1-2\nu}{2(1-\nu)}&0&0\\0&0&0&0&\frac{1-2\nu}{2(1-\nu)}&0\\0&0&0&0&0&\frac{1-2\nu}{2(1-\nu)}\end{bmatrix}.

02

Deformation energy

The deformation energy is evaluated over the initial element volumes:

U=12∑el=1nel∫V0elεTσ dV0.U=\frac12\sum_{el=1}^{n_{el}}\int_{V_{0el}}\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,dV_0.

Here V0elV_{0el} is the initial volume of one finite element and neln_{el} is the number of finite elements. In the natural coordinates s,t,rs,t,r:

U=12∑el=1nel∫−11∫−11∫−11ε(s,t,r)Tσ(s,t,r)det ⁣(J0(s,t,r)) ds dt dr.U=\frac12\sum_{el=1}^{n_{el}}\int_{-1}^{1}\int_{-1}^{1}\int_{-1}^{1}\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}(s,t,r)^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}(s,t,r)\mathop{\mathit{det}}\!\big(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0(s,t,r)\big)\,ds\,dt\,dr.

03

Jacobian and interpolation derivatives

As in Section 25.1, the Jacobian is obtained from the interpolation derivatives and the nodal coordinates:

J0(s,t,r)=[x,sy,sz,sx,ty,tz,tx,ry,rz,r]=H(s,t,r)xel,xel=[x1y1z1x2y2z2x3y3z3x4y4z4x5y5z5x6y6z6x7y7z7x8y8z8].\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0(s,t,r)=\begin{bmatrix}x_{,s}&y_{,s}&z_{,s}\\x_{,t}&y_{,t}&z_{,t}\\x_{,r}&y_{,r}&z_{,r}\end{bmatrix}=\htmlClass{fea-math-bold-italic}{\boldsymbol H}(s,t,r)\htmlClass{fea-math-bold-italic}{\boldsymbol x}_{el},\qquad\htmlClass{fea-math-bold-italic}{\boldsymbol x}_{el}=\begin{bmatrix}x_1&y_1&z_1\\x_2&y_2&z_2\\x_3&y_3&z_3\\x_4&y_4&z_4\\x_5&y_5&z_5\\x_6&y_6&z_6\\x_7&y_7&z_7\\x_8&y_8&z_8\end{bmatrix}.

xi,yi,zix_i,y_i,z_i are the nodal coordinates of the finite element currently being processed, measured in the initial configuration. The full interpolation-derivative matrix is:

H(s,t,r)=18[(1+t)(1+r)−(1+t)(1+r)−(1−t)(1+r)(1−t)(1+r)(1+t)(1−r)−(1+t)(1−r)−(1−t)(1−r)(1−t)(1−r)(1+s)(1+r)(1−s)(1+r)−(1−s)(1+r)−(1+s)(1+r)(1+s)(1−r)(1−s)(1−r)−(1−s)(1−r)−(1+s)(1−r)(1+s)(1+t)(1−s)(1+t)(1−s)(1−t)(1+s)(1−t)−(1+s)(1+t)−(1−s)(1+t)−(1−s)(1−t)−(1+s)(1−t)].\htmlClass{fea-math-bold-italic}{\boldsymbol H}(s,t,r)=\frac18\begin{bmatrix}(1+t)(1+r)&-(1+t)(1+r)&-(1-t)(1+r)&(1-t)(1+r)&(1+t)(1-r)&-(1+t)(1-r)&-(1-t)(1-r)&(1-t)(1-r)\\(1+s)(1+r)&(1-s)(1+r)&-(1-s)(1+r)&-(1+s)(1+r)&(1+s)(1-r)&(1-s)(1-r)&-(1-s)(1-r)&-(1+s)(1-r)\\(1+s)(1+t)&(1-s)(1+t)&(1-s)(1-t)&(1+s)(1-t)&-(1+s)(1+t)&-(1-s)(1+t)&-(1-s)(1-t)&-(1+s)(1-t)\end{bmatrix}.

The Cartesian derivatives of the interpolation functions are collected in:

b=J0−1H=[b11b12b13b14b15b16b17b18b21b22b23b24b25b26b27b28b31b32b33b34b35b36b37b38].\htmlClass{fea-math-bold-italic}{\boldsymbol b}=\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0^{-1}\htmlClass{fea-math-bold-italic}{\boldsymbol H}=\begin{bmatrix}b_{11}&b_{12}&b_{13}&b_{14}&b_{15}&b_{16}&b_{17}&b_{18}\\b_{21}&b_{22}&b_{23}&b_{24}&b_{25}&b_{26}&b_{27}&b_{28}\\b_{31}&b_{32}&b_{33}&b_{34}&b_{35}&b_{36}&b_{37}&b_{38}\end{bmatrix}.

b\htmlClass{fea-math-bold-italic}{\boldsymbol b} contains the derivatives with respect to the initial Cartesian coordinates: b1i=Ni,x, b2i=Ni,y, b3i=Ni,zb_{1i}=N_{i,x},\ b_{2i}=N_{i,y},\ b_{3i}=N_{i,z}.

04

Green–Lagrange strains

The full three-dimensional Green–Lagrange strain expressions are:

εx=u,x+12(u,x2+v,x2+w,x2),εy=v,y+12(u,y2+v,y2+w,y2),εz=w,z+12(u,z2+v,z2+w,z2),γxy=u,y+v,x+u,xu,y+v,xv,y+w,xw,y,γyz=v,z+w,y+u,yu,z+v,yv,z+w,yw,z,γzx=w,x+u,z+u,zu,x+v,zv,x+w,zw,x.\begin{aligned}\varepsilon_x&=u_{,x}+\tfrac12(u_{,x}^2+v_{,x}^2+w_{,x}^2),\\\varepsilon_y&=v_{,y}+\tfrac12(u_{,y}^2+v_{,y}^2+w_{,y}^2),\\\varepsilon_z&=w_{,z}+\tfrac12(u_{,z}^2+v_{,z}^2+w_{,z}^2),\\\gamma_{xy}&=u_{,y}+v_{,x}+u_{,x}u_{,y}+v_{,x}v_{,y}+w_{,x}w_{,y},\\\gamma_{yz}&=v_{,z}+w_{,y}+u_{,y}u_{,z}+v_{,y}v_{,z}+w_{,y}w_{,z},\\\gamma_{zx}&=w_{,x}+u_{,z}+u_{,z}u_{,x}+v_{,z}v_{,x}+w_{,z}w_{,x}.\end{aligned}

A comma denotes differentiation with respect to an initial Cartesian coordinate, for example u,x=∂u/∂xu_{,x}=\partial u/\partial x. The element nodal displacement vector is:

uel={u1v1w1u2v2w2⋯u8v8w8}T.\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}=\begin{Bmatrix}u_1&v_1&w_1&u_2&v_2&w_2&\cdots&u_8&v_8&w_8\end{Bmatrix}^T.

Following Section 12.2, the displacement derivatives are written as:

u,x=Buxuel,u,y=Buyuel,u,z=Buzuelv,x=Bvxuel,v,y=Bvyuel,v,z=Bvzuelw,x=Bwxuel,w,y=Bwyuel,w,z=Bwzuel\begin{aligned}u_{,x}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\qquad u_{,y}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\qquad u_{,z}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}\\v_{,x}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\qquad v_{,y}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\qquad v_{,z}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_z}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}\\w_{,x}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\qquad w_{,y}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\qquad w_{,z}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}\\\end{aligned}

The nonzero entries of the derivative row vectors are, using MATLAB indexing:

Bux(1:3:24)=b(1,1:8),Buy(1:3:24)=b(2,1:8),Buz(1:3:24)=b(3,1:8)Bvx(2:3:24)=b(1,1:8),Bvy(2:3:24)=b(2,1:8),Bvz(2:3:24)=b(3,1:8)Bwx(3:3:24)=b(1,1:8),Bwy(3:3:24)=b(2,1:8),Bwz(3:3:24)=b(3,1:8)\begin{aligned}\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}(1:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(1,1:8),\quad\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}(1:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(2,1:8),\quad\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z}(1:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(3,1:8)\\\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}(2:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(1,1:8),\quad\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}(2:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(2,1:8),\quad\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_z}(2:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(3,1:8)\\\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x}(3:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(1,1:8),\quad\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y}(3:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(2,1:8),\quad\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z}(3:3:24)&=\htmlClass{fea-math-bold-italic}{\boldsymbol b}(3,1:8)\\\end{aligned}

All other entries are zero. Each derivative row vector has 2424 components.

05

Geometric matrices and strain–displacement matrix

Substitution of the displacement derivatives gives:

εx=Buxuel+12uelTGxuel,εy=Bvyuel+12uelTGyuel,εz=Bwzuel+12uelTGzuel,γxy=(Buy+Bvx)uel+12uelTGxyuel,γyz=(Bvz+Bwy)uel+12uelTGyzuel,γzx=(Bwx+Buz)uel+12uelTGzxuel,\begin{aligned}\varepsilon_x&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}+\tfrac12\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},\\\varepsilon_y&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}+\tfrac12\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},\\\varepsilon_z&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}+\tfrac12\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{z}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\\\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}+\tfrac12\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},\\\gamma_{yz}&=(\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y})\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}+\tfrac12\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{yz}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\\\gamma_{zx}&=(\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z})\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}+\tfrac12\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{zx}\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el},\\\end{aligned}

The geometric matrices are:

Gx=BuxTBux+BvxTBvx+BwxTBwx,Gy=BuyTBuy+BvyTBvy+BwyTBwy,Gz=BuzTBuz+BvzTBvz+BwzTBwz,Gxy=BuxTBuy+BuyTBux+BvxTBvy+BvyTBvx+BwxTBwy+BwyTBwx,Gyz=BuyTBuz+BuzTBuy+BvyTBvz+BvzTBvy+BwyTBwz+BwzTBwy,Gzx=BuzTBux+BuxTBuz+BvzTBvx+BvxTBvz+BwzTBwx+BwxTBwz,\begin{aligned}\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}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x},\\\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}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y},\\\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{z}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_z}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z},\\\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}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x},\\\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{yz}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_y}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z}^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_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_z}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_y},\\\htmlClass{fea-math-bold-italic}{\boldsymbol{G}}_{zx}&=\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_x}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{u_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_z}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_x}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{v_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_x}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}_{w_z},\\\end{aligned}

These matrices are symmetric and have dimensions:

Gx,Gy,Gz,Gxy,Gyz,Gzx∈R24×24.\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x,\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y,\htmlClass{fea-math-bold-italic}{\boldsymbol G}_z,\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy},\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{yz},\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{zx}\in\mathbb R^{24\times24}.

The strain differentials and the element displacement differentials are related by:

dε=B duel,B=B0+BL.d\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}=\htmlClass{fea-math-bold-italic}{\boldsymbol B}\,d\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el},\qquad\htmlClass{fea-math-bold-italic}{\boldsymbol B}=\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L.

B0\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0 is constant and is the matrix used in linear analysis; BL\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L is a linear function of uel\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}_{el}:

B(uel)=[BuxBvyBwzBuy+BvxBvz+BwyBwx+Buz]⏟B0+[uelTGxuelTGyuelTGzuelTGxyuelTGyzuelTGzx]⏟BL.\htmlClass{fea-math-bold-italic}{\boldsymbol B}(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el})=\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}_{w_z}\\\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{u_y}+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{v_x}\\\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{v_z}+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{w_y}\\\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{w_x}+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_{u_z}\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}_z\\\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}^T\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{yz}\\\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}^T\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{zx}\end{bmatrix}}_{\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L}.
B0,BL,B∈R6×24,D∈R6×6.\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0,\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L,\htmlClass{fea-math-bold-italic}{\boldsymbol B}\in\mathbb R^{6\times24},\qquad\htmlClass{fea-math-bold-italic}{\boldsymbol D}\in\mathbb R^{6\times6}.

06

Potential energy and numerical integration

The total potential energy is:

Π=U+V=12∑el=1nel∫V0elεTσ dV0−uTF,\mathit{\Pi}=U+V=\frac12\sum_{el=1}^{n_{el}}\int_{V_{0el}}\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\,dV_0-\htmlClass{fea-math-bold-italic}{\boldsymbol u}^T\htmlClass{fea-math-bold-italic}{\boldsymbol F},

where V=−uTFV=-\htmlClass{fea-math-bold-italic}{\boldsymbol u}^T\htmlClass{fea-math-bold-italic}{\boldsymbol F} is the potential of the applied load and u\htmlClass{fea-math-bold-italic}{\boldsymbol u} contains all nodal displacements of the structure. In natural coordinates:

Π=12∑el=1nel∫−11∫−11∫−11ε(s,t,r)Tσ(s,t,r)det ⁣(J0(s,t,r)) ds dt dr−uTF.\mathit{\Pi}=\frac12\sum_{el=1}^{n_{el}}\int_{-1}^{1}\int_{-1}^{1}\int_{-1}^{1}\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}(s,t,r)^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}(s,t,r)\mathop{\mathit{det}}\!\big(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0(s,t,r)\big)\,ds\,dt\,dr-\htmlClass{fea-math-bold-italic}{\boldsymbol u}^T\htmlClass{fea-math-bold-italic}{\boldsymbol F}.

The program uses standard 2×2×22\times2\times2 Gauss integration, with eight points per element and unit weights:

∑Gq(sG,tG,rG)=∑i=12∑j=12∑k=12q((−1)i33,(−1)j33,(−1)k33).\sum_G q(s_G,t_G,r_G)=\sum_{i=1}^{2}\sum_{j=1}^{2}\sum_{k=1}^{2}q\left((-1)^i\frac{\sqrt3}{3},(-1)^j\frac{\sqrt3}{3},(-1)^k\frac{\sqrt3}{3}\right).

q(s,t,r)q(s,t,r) denotes the integrand; for the material-stiffness contribution, for example:

q(s,t,r)=B(s,t,r)TDB(s,t,r)det ⁣(J0(s,t,r)).\htmlClass{fea-math-bold-italic}{\boldsymbol q}(s,t,r)=\htmlClass{fea-math-bold-italic}{\boldsymbol B}(s,t,r)^T\htmlClass{fea-math-bold-italic}{\boldsymbol D}\htmlClass{fea-math-bold-italic}{\boldsymbol B}(s,t,r)\mathop{\mathit{det}}\!\big(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0(s,t,r)\big).

The discrete potential energy can therefore be written as:

Π=12∑el=1nel∑Gε(sG,tG,rG)Tσ(sG,tG,rG)det ⁣(J0(sG,tG,rG))−uTF\mathit{\Pi}=\frac12\sum_{el=1}^{n_{el}}\sum_G\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}(s_G,t_G,r_G)^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}(s_G,t_G,r_G)\mathop{\mathit{det}}\!\big(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0(s_G,t_G,r_G)\big)-\htmlClass{fea-math-bold-italic}{\boldsymbol u}^T\htmlClass{fea-math-bold-italic}{\boldsymbol F}

or, more compactly:

Π=12∑el=1nel∑GεTσdet(J0)−uTF.\mathit{\Pi}=\frac12\sum_{el=1}^{n_{el}}\sum_G\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0)-\htmlClass{fea-math-bold-italic}{\boldsymbol u}^T\htmlClass{fea-math-bold-italic}{\boldsymbol F}.

07

Virtual work and nonlinear equilibrium

The principle of virtual work gives:

δΠ=∑el=1nel∑GδεTσdet(J0)−δuTF=0,\delta\mathit{\Pi}=\sum_{el=1}^{n_{el}}\sum_G\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0)-\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}^T\htmlClass{fea-math-bold-italic}{\boldsymbol F}=0,

for any geometrically admissible virtual displacement field δu\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}. Using δε=Bδuel\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}=\htmlClass{fea-math-bold-italic}{\boldsymbol B}\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}, the element internal force vector is:

fel=∑GBTσdet(J0).\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{el}=\sum_G\htmlClass{fea-math-bold-italic}{\boldsymbol B}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0).

Assembly gives the global internal force vector and the nonlinear residual equation:

fint(u)=Ael=1nelfel,Ψ(u)=fint(u)−F=0.\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{int}(\htmlClass{fea-math-bold-italic}{\boldsymbol u})=\mathcal A_{el=1}^{n_{el}}\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{el},\qquad\boxed{\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}(\htmlClass{fea-math-bold-italic}{\boldsymbol u})=\htmlClass{fea-math-bold-italic}{\boldsymbol f}_{int}(\htmlClass{fea-math-bold-italic}{\boldsymbol u})-\htmlClass{fea-math-bold-italic}{\boldsymbol F}=\htmlClass{fea-math-bold-italic}{\boldsymbol0}}.

A\mathcal A denotes the standard finite element assembly operator. Equivalently:

Ψ(u)=Ael=1nel[∑GBTσdet(J0)]−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\htmlClass{fea-math-bold-italic}{\boldsymbol B}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0)\right]-\htmlClass{fea-math-bold-italic}{\boldsymbol F}=\htmlClass{fea-math-bold-italic}{\boldsymbol0},
Ψ(u)=Ael=1nel[∑G(B0T+BL(uel)T)σdet(J0)]−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\left(\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0^T+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L(\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el})^T\right)\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0)\right]-\htmlClass{fea-math-bold-italic}{\boldsymbol F}=\htmlClass{fea-math-bold-italic}{\boldsymbol0}.

08

Tangent stiffness matrix

The first variation of the residual is:

δΨ=Ael=1nel[∑GδBTσdet(J0)+∑GBTδσdet(J0)]=Ktδu.\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}=\mathcal A_{el=1}^{n_{el}}\left[\sum_G\delta\htmlClass{fea-math-bold-italic}{\boldsymbol B}^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0)+\sum_G\htmlClass{fea-math-bold-italic}{\boldsymbol B}^T\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0)\right]=\htmlClass{fea-math-bold-italic}{\boldsymbol K}_t\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}.

Writing the two parts of the strain–displacement matrix explicitly:

δΨ=Ael=1nel[∑Gδ(B0T+BLT)σdet(J0)+∑G(B0T+BLT)δσdet(J0)]=Ktδu.\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}=\mathcal A_{el=1}^{n_{el}}\left[\sum_G\delta\left(\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0^T+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L^T\right)\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0)+\sum_G\left(\htmlClass{fea-math-bold-italic}{\boldsymbol B}_0^T+\htmlClass{fea-math-bold-italic}{\boldsymbol B}_L^T\right)\delta\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0)\right]=\htmlClass{fea-math-bold-italic}{\boldsymbol K}_t\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}.

Kt\htmlClass{fea-math-bold-italic}{\boldsymbol K}_t is the global tangent stiffness matrix. Since 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.

Because all geometric matrices are symmetric:

δBTσ=δBLTσ=δ[uelTGxuelTGyuelTGzuelTGxyuelTGyzuelTGzx]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{matrix}\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}_z\\\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}^T\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{yz}\\\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}^T\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{zx}\end{matrix}\right]^T\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}
=(σxGx+σyGy+σzGz+τxyGxy+τyzGyz+τzxGzx)δuel.=\left(\sigma_x\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x+\sigma_y\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y+\sigma_z\htmlClass{fea-math-bold-italic}{\boldsymbol G}_z+\tau_{xy}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy}+\tau_{yz}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{yz}+\tau_{zx}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{zx}\right)\delta\htmlClass{fea-math-bold-italic}{\boldsymbol u}_{el}.

The constitutive increment 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}.

Thus the tangent stiffness matrix of one finite element is:

kel=∑G(BTDB+σxGx+σyGy+σzGz+τxyGxy+τyzGyz+τzxGzx)det(J0).\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{el}=\sum_G\left(\htmlClass{fea-math-bold-italic}{\boldsymbol B}^T\htmlClass{fea-math-bold-italic}{\boldsymbol D}\htmlClass{fea-math-bold-italic}{\boldsymbol B}+\sigma_x\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x+\sigma_y\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y+\sigma_z\htmlClass{fea-math-bold-italic}{\boldsymbol G}_z+\tau_{xy}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy}+\tau_{yz}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{yz}+\tau_{zx}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{zx}\right)\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0).
kel=kMel+kGel.\boxed{\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{el}=\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{M_{el}}+\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{G_{el}}}.

kMel\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{M_{el}} is the material stiffness matrix of the finite element and kGel\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{G_{el}} is the geometric stiffness matrix. The subscripts MM and GG stand for material and geometric, respectively.

kMel=∑GBTDBdet(J0),\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{M_{el}}=\sum_G\htmlClass{fea-math-bold-italic}{\boldsymbol B}^T\htmlClass{fea-math-bold-italic}{\boldsymbol D}\htmlClass{fea-math-bold-italic}{\boldsymbol B}\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0),
kGel=∑G(σxGx+σyGy+σzGz+τxyGxy+τyzGyz+τzxGzx)det(J0).\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{G_{el}}=\sum_G\left(\sigma_x\htmlClass{fea-math-bold-italic}{\boldsymbol G}_x+\sigma_y\htmlClass{fea-math-bold-italic}{\boldsymbol G}_y+\sigma_z\htmlClass{fea-math-bold-italic}{\boldsymbol G}_z+\tau_{xy}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{xy}+\tau_{yz}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{yz}+\tau_{zx}\htmlClass{fea-math-bold-italic}{\boldsymbol G}_{zx}\right)\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol J}_0).

The global tangent stiffness is obtained by standard assembly:

Kt=Ael=1nelkel=Ael=1nel(kMel+kGel).\htmlClass{fea-math-bold-italic}{\boldsymbol K}_t=\mathcal A_{el=1}^{n_{el}}\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{el}=\mathcal A_{el=1}^{n_{el}}\left(\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{M_{el}}+\htmlClass{fea-math-bold-italic}{\boldsymbol k}_{G_{el}}\right).

09

Newton–Raphson solution and convergence

At iteration i, the Newton–Raphson equations are:

Δu(i)=−(Kt(i))−1Ψ(i),u(i+1)=u(i)+Δu(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)},\qquad\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)=Ψ(u(i)),kel=∂fel∂uel.\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}^{(i)}=\htmlClass{fea-math-bold-italic}{\boldsymbol{\mathit{\Psi}}}(\htmlClass{fea-math-bold-italic}{\boldsymbol u}^{(i)}),\qquad\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}}.

The element force vectors and tangent stiffness matrices 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)}. The iterative process is stopped when the error is smaller than the prescribed tolerance. An absolute displacement-increment measure is:

ηa=ΔuTΔun.\eta_a=\sqrt{\frac{\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol u}^T\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol u}}{n}}.

In the supplied program, the normalization uses neq, the number of equations.

A relative displacement criterion may also be used, for example:

ηu=∥Δu∥max(∥u∥,uref),\eta_u=\frac{\|\mathit{\Delta}\htmlClass{fea-math-bold-italic}{\boldsymbol u}\|}{\mathop{\mathit{max}}(\|\htmlClass{fea-math-bold-italic}{\boldsymbol u}\|,u_{ref})},

urefu_{ref} being a small reference displacement preventing division by a very small value at the beginning of the iterations. A residual-based convergence criterion may also be used together with the displacement criterion.

Important remark. In the Total Lagrangian formulation the total strain is evaluated directly with respect to the initial configuration; it is not obtained by accumulating strain increments. Therefore, provided that the same equilibrium solution is reached, the accuracy of the final result does not depend on the number of load steps. Load stepping is nevertheless useful, and sometimes necessary, to improve Newton–Raphson convergence and to follow the equilibrium path.

10

MATLAB program

Run main.m. The program generates the mesh, applies the load in steps and solves the nonlinear equilibrium equations by Newton–Raphson iteration. The downloadable package contains the input, stiffness and plotting routines, together with a short README.

11

Example

A straight cantilever is loaded as shown below. Its length is L=200 mmL=200\,\mathit{mm} and its rectangular cross-section is 20×5 mm20\times5\,\mathit{mm} (width in the yy-direction × height in the zz-direction). The material and load data are:

E=2×105 MPa,ν=0.3,F1=4000 N,F2=4F1.E=2\times10^5\,\mathit{MPa},\qquad\nu=0.3,\qquad F_1=4000\,\mathit N,\qquad F_2=4F_1.
Cantilever geometry, cross-section and applied end loads. Dimensions are in millimetres.
Figure 1. Cantilever geometry, cross-section and applied end loads. Dimensions are in millimetres.

The 50×6×450\times6\times4 mesh contains 1 200 HEX8 elements, 1 785 nodes and 5 355 equations.

HEX8 mesh, constraints and end loading.
Figure 2. HEX8 mesh, constraints and end loading.

The load-factor/displacement diagram compares the displacements of the centre of the loaded cross-section with ANSYS results.

Load factor versus displacements of the centre of the loaded cross-section [mm]; dashed curves show ANSYS results.
Figure 3. Load factor versus displacements of the centre of the loaded cross-section [mm]; dashed curves show ANSYS results.
Figure 4. Deformed cantilever. Coordinates are in millimetres. Drag to rotate; Zoom is initially OFF. Reset view restores the initial camera.

12

Stress plots

Remark on stress plots. Although the stress components are calculated with respect to the global coordinate system, their representation on the deformed configuration is often more intuitive. For example, the σx\sigma_x stress map then follows the deformed beam and can be interpreted approximately as the stress tangent to its fibres.

The stresses obtained directly from the Total Lagrangian constitutive relation are referred to the initial configuration. If stresses in the current configuration are required, they can be transformed to Cauchy stresses according to:

σC=1JFSFT,\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}_C=\frac1J\htmlClass{fea-math-bold-italic}{\boldsymbol F}\htmlClass{fea-math-bold-italic}{\boldsymbol S}\htmlClass{fea-math-bold-italic}{\boldsymbol F}^T,

where S\htmlClass{fea-math-bold-italic}{\boldsymbol S} is the second Piola–Kirchhoff stress tensor represented in this section by the vector σ\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma}}. In this transformation, F\htmlClass{fea-math-bold-italic}{\boldsymbol F} denotes the deformation gradient and J=det(F)J=\mathop{\mathit{det}}(\htmlClass{fea-math-bold-italic}{\boldsymbol F}). The stress measures and this transformation are discussed in Chapter 14.