SECTION 15.5 OF CHAPTER 15: UPDATED LAGRANGIAN FORMULATION (UL)

Updated Lagrangian Revisited: A Direct and Consistent Tangent Stiffness Matrix for the Q4 Element

This section was developed with the contribution of Chiara.

01

Introduction

StrainSmall
DisplacementLarge
MaterialLinear elastic
Stress statePlane stress

In Section 15.1, the Updated Lagrangian (UL) formulation was developed using a simplified strain–displacement matrix. In particular, the variation of the element geometry through the Jacobian determinant was neglected in the tangent stiffness matrix, and the variation of the Euler–Almansi strains was treated approximately.

Sections 15.2–15.4 introduced alternative incremental formulations combining Euler–Almansi and Green–Lagrange strain measures. The nodal coordinates are updated after each load step, and the subsequent calculations are performed with reference to the updated configuration. These approaches provide accurate results even for relatively few load steps; their accuracy generally improves as the number of load steps increases.

In this section, a direct formulation with a consistent tangent stiffness matrix is developed for the four-node isoparametric Q4 element. Total Euler–Almansi strains are calculated directly from the initial and current configurations, without accumulating strain increments. The tangent stiffness matrix is obtained by consistently linearizing the internal-force vector and accounting for every factor that depends on the nodal displacements.

The converged results for the numerical example are practically independent of the number of load steps, within the prescribed tolerance. The solutions obtained with the approximate formulations of the preceding sections approach these results as the load-step size decreases.

The derivation follows the spatial description of nonlinear equilibrium and its linearization discussed by Bonet and Wood [1], here specialized to the Q4 element and to the adopted plane-stress constitutive model.

02

Element geometry and strain–displacement matrix

The equilibrium equations are written with respect to the current configuration, corresponding to the current load step and Newton iteration. The nodal coordinates are updated after each displacement correction. The interpolation functions remain unchanged, but their spatial derivatives are evaluated using the deformed geometry.

As in Section 9.4, the Jacobian matrix of the Q4 element is:

J(s,t)=∂(x,y)∂(s,t)=H(s,t)[x1y1x2y2x3y3x4y4],\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\left( s,t\right) =\frac{\partial \left( x,y\right) }{\partial \left( s,t\right) }=\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}}\left( s,t\right) \left[ \begin{matrix}{x}_{1}&{y}_{1}\\{x}_{2}&{y}_{2}\\{x}_{3}&{y}_{3}\\{x}_{4}&{y}_{4}\end{matrix}\right] ,

where xi,yi{x}_{i},{y}_{i} (i=1,…,4i=1,\ldots ,4) are the nodal coordinates in the current configuration, and

H(s,t)=14[1+t−(1+t)−(1−t)1−t1+s1−s−(1−s)−(1+s)].\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}}\left( s,t\right) =\frac{1}{4}\left[ \begin{matrix}1+t&-\left( 1+t\right) &-\left( 1-t\right) &1-t\\1+s&1-s&-\left( 1-s\right) &-\left( 1+s\right) \end{matrix}\right] .

The spatial derivatives of the interpolation functions are obtained from:

b=J−1H=[b11b12b13b14b21b22b23b24]=[b1b2b3b4],\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}}=\left[ \begin{matrix}{b}_{11}&{b}_{12}&{b}_{13}&{b}_{14}\\{b}_{21}&{b}_{22}&{b}_{23}&{b}_{24}\end{matrix}\right] =\left[ \begin{matrix}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{1}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{2}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{3}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{4}\end{matrix}\right] ,

where:

bi=[Ni,xNi,y],Ni,x=∂Ni∂x,Ni,y=∂Ni∂y.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}=\left[ \begin{matrix}{N}_{i,x}\\{N}_{i,y}\end{matrix}\right] ,\quad \quad {N}_{i,x}=\frac{\partial {N}_{i}}{\partial x},\quad \quad {N}_{i,y}=\frac{\partial {N}_{i}}{\partial y}.

Here N1,…,N4{N}_{1},\ldots ,{N}_{4} are the Q4 interpolation functions. The strain–displacement matrix is:

B=[b110b120b130b1400b210b220b230b24b21b11b22b12b23b13b24b14].\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}=\left[ \begin{matrix}{b}_{11}&0&{b}_{12}&0&{b}_{13}&0&{b}_{14}&0\\0&{b}_{21}&0&{b}_{22}&0&{b}_{23}&0&{b}_{24}\\{b}_{21}&{b}_{11}&{b}_{22}&{b}_{12}&{b}_{23}&{b}_{13}&{b}_{24}&{b}_{14}\end{matrix}\right] .

It can also be written using 3×23\times 2 nodal blocks:

B=[B1B2B3B4],Bi=[Ni,x00Ni,yNi,yNi,x].\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}=\left[ \begin{matrix}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{1}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{2}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{3}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{4}\end{matrix}\right] ,\quad \quad {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{i}=\left[ \begin{matrix}{N}_{i,x}&0\\0&{N}_{i,y}\\{N}_{i,y}&{N}_{i,x}\end{matrix}\right] .

Although B\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}} has the same form as in linear elasticity, its coefficients depend on the current nodal coordinates and therefore change during the Newton iterations.

03

Internal nodal forces and constitutive equations

The internal nodal-force vector is obtained from the Cauchy stresses:

fel=∫Ath1BTσv dA,{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{el}=\int _{{A}_{t}}^{} {h}_{1}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v}\, dA,

where At{A}_{t} denotes the current element area and h1{h}_{1} is the current thickness. In natural coordinates,

fel=∫−11∫−11h1BT(s,t)σv(s,t)detJ(s,t) ds dt.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{el}=\int _{-1}^{1} \int _{-1}^{1} {h}_{1}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}^{T}\left( s,t\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v}\left( s,t\right) \mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\left( s,t\right) \, ds\, dt.

Throughout this section, σ\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}} denotes the Cauchy stress tensor, whereas σv{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v} denotes its column-vector representation in Voigt notation. The subscript vv distinguishes the vector representation from the tensor itself. Likewise, εv{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon }}}}_{v} is the Voigt strain vector; its shear component is the engineering shear strain γxy=2exy{\gamma }_{xy}=2{e}_{xy}:

σ=[σxτxyτxyσy],σv=[σxσyτxy],εv=[εxεyγxy].\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}=\left[ \begin{matrix}{\sigma }_{x}&{\tau }_{xy}\\{\tau }_{xy}&{\sigma }_{y}\end{matrix}\right] ,\quad {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v}=\left[ \begin{matrix}{\sigma }_{x}\\{\sigma }_{y}\\{\tau }_{xy}\end{matrix}\right] ,\quad {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon }}}}_{v}=\left[ \begin{matrix}{\varepsilon }_{x}\\{\varepsilon }_{y}\\{\gamma }_{xy}\end{matrix}\right] .

For the adopted plane-stress constitutive approximation,

σv=Dεv,D=E1−ν2[1ν0ν1000(1−ν)/2].{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v}=\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{D}}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon }}}}_{v},\quad \quad \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{D}}}=\frac{E}{1-{\nu }^{2}}\left[ \begin{matrix}1&\nu &0\\\nu &1&0\\0&0&\left( 1-\nu \right) /2\end{matrix}\right] .

This relation is applied between Cauchy stresses and total Euler–Almansi strains. It is the constitutive approximation adopted here, not a general finite-strain hyperelastic law.

The total Euler–Almansi strains, introduced in Chapter 13, may be written in terms of the spatial derivatives of the total displacements:

εx=∂u∂x−12(∂u∂x)2−12(∂v∂x)2,{\varepsilon }_{x}=\frac{\partial u}{\partial x}-\frac{1}{2}{\left( \frac{\partial u}{\partial x}\right) }^{2}-\frac{1}{2}{\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}-\frac{1}{2}{\left( \frac{\partial u}{\partial y}\right) }^{2}-\frac{1}{2}{\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}.

For the following derivation, the tensor representation is more convenient.

04

Total Euler–Almansi strains

The Euler–Almansi strain tensor is:

e=12(I2−Ftot−TFtot−1).\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{e}}}=\frac{1}{2}\left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{I}}}}_{2}-{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1}\right) .

Here Ftot{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot} is the total deformation gradient from the initial to the current configuration:

Ftot=[∂x∂x0∂x∂y0∂y∂x0∂y∂y0]=I2+[∂u∂x0∂u∂y0∂v∂x0∂v∂y0].{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}=\left[ \begin{matrix}\frac{\partial x}{\partial {x}_{0}}&\frac{\partial x}{\partial {y}_{0}}\\\frac{\partial y}{\partial {x}_{0}}&\frac{\partial y}{\partial {y}_{0}}\end{matrix}\right] ={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{I}}}}_{2}+\left[ \begin{matrix}\frac{\partial u}{\partial {x}_{0}}&\frac{\partial u}{\partial {y}_{0}}\\\frac{\partial v}{\partial {x}_{0}}&\frac{\partial v}{\partial {y}_{0}}\end{matrix}\right] .

The coordinates x0,y0{x}_{0},{y}_{0} refer to the initial configuration, x,yx,y to the current configuration, and u,vu,v to the total displacements.

For an isoparametric element, Ftot{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot} can be evaluated directly from the initial and current Jacobian matrices:

Ftot=JTJ0−T=(J0−1J)T,{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{0}^{-T}={\left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{0}^{-1}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\right) }^{T},

where:

J0=∂(x0,y0)∂(s,t),J=∂(x,y)∂(s,t).{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{0}=\frac{\partial \left( {x}_{0},{y}_{0}\right) }{\partial \left( s,t\right) },\quad \quad \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}=\frac{\partial \left( x,y\right) }{\partial \left( s,t\right) }.

Thus, the total Euler–Almansi strains are obtained directly from the initial and current nodal coordinates, without accumulating strain increments over the load steps.

05

Variation of the Euler–Almansi strains

The aim is to express the infinitesimal variation of the Euler–Almansi strains in terms of the virtual nodal displacements. Starting from

e=12(I2−Ftot−TFtot−1),\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{e}}}=\frac{1}{2}\left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{I}}}}_{2}-{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1}\right) ,

we obtain:

δe=−12[δFtot−TFtot−1+Ftot−TδFtot−1].\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{e}}}=-\frac{1}{2}\left[ \delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1}+{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1}\right] .

The variation of the total deformation gradient is:

δFtot=[∂(δu)∂x0∂(δu)∂y0∂(δv)∂x0∂(δv)∂y0].\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}=\left[ \begin{matrix}\frac{\partial \left( \delta u\right) }{\partial {x}_{0}}&\frac{\partial \left( \delta u\right) }{\partial {y}_{0}}\\\frac{\partial \left( \delta v\right) }{\partial {x}_{0}}&\frac{\partial \left( \delta v\right) }{\partial {y}_{0}}\end{matrix}\right] .

Applying the chain rule gives the expanded matrix identity, retaining the derivatives in both configurations:

δFtot=[∂(δu)∂x∂(δu)∂y∂(δv)∂x∂(δv)∂y][∂x∂x0∂x∂y0∂y∂x0∂y∂y0].\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}=\left[ \begin{matrix}\frac{\partial \left( \delta u\right) }{\partial x}&\frac{\partial \left( \delta u\right) }{\partial y}\\\frac{\partial \left( \delta v\right) }{\partial x}&\frac{\partial \left( \delta v\right) }{\partial y}\end{matrix}\right] \left[ \begin{matrix}\frac{\partial x}{\partial {x}_{0}}&\frac{\partial x}{\partial {y}_{0}}\\\frac{\partial y}{\partial {x}_{0}}&\frac{\partial y}{\partial {y}_{0}}\end{matrix}\right] .

Therefore:

δFtot=δLFtot,\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}=\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot},

where the infinitesimal spatial gradient of the virtual displacement is:

δL=∇δu=[∂(δu)∂x∂(δu)∂y∂(δv)∂x∂(δv)∂y].\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}=\nabla \delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}=\left[ \begin{matrix}\frac{\partial \left( \delta u\right) }{\partial x}&\frac{\partial \left( \delta u\right) }{\partial y}\\\frac{\partial \left( \delta v\right) }{\partial x}&\frac{\partial \left( \delta v\right) }{\partial y}\end{matrix}\right] .

All spatial derivatives are evaluated in the current configuration. We use δL\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}} to emphasize the infinitesimal nature of the virtual displacement gradient.

The variation of the inverse of a nonsingular matrix satisfies

δFtot−1=−Ftot−1δFtotFtot−1,\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1}=-{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1},
δFtot−T=−Ftot−TδFtotTFtot−T.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}=-{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}.

Using δFtot=δLFtot\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}=\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}, these become

δFtot−1=−Ftot−1δL,δFtot−T=−δLTFtot−T.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1}=-{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1}\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}},\quad \quad \delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}=-\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}.

Introducing the symmetric matrix

Q=(FtotFtotT)−1=Ftot−TFtot−1,\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}={\left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{T}\right) }^{-1}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}^{-1},

the variation of the Euler–Almansi strains becomes

δe=12(QδL+δLTQ).\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{e}}}=\frac{1}{2}\left( \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}+\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}}^{T}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}\right) .

This expression is linear in the virtual displacement gradient, although Q\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}} depends on the current deformation. For small displacements and rotations, Ftot≈I2{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{F}}}}_{tot}\approx {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{I}}}}_{2} and Q≈I2\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}\approx {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{I}}}}_{2}, giving the familiar infinitesimal strain variation:

δe≈12(δL+δLT).\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{e}}}\approx \frac{1}{2}\left( \delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}+\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}}^{T}\right) .

For the Q4 element, the virtual displacement field is interpolated as

δu=∑j=14Njδuj,δuj=[δujδvj].\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}=\sum _{j=1}^{4} {N}_{j}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j},\quad \quad \delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}=\left[ \begin{matrix}\delta {u}_{j}\\\delta {v}_{j}\end{matrix}\right] .

Consequently:

δL=∑j=14δujbjT=[δu1δu2δu3δu4]bT.\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}=\sum _{j=1}^{4} \delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}^{T}=\left[ \begin{matrix}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{1}&\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{2}&\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{3}&\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{4}\end{matrix}\right] {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}^{T}.

Substituting in the strain variation:

δe=12∑j=14[QδujbjT+bjδujTQ].\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{e}}}=\frac{1}{2}\sum _{j=1}^{4} \left[ \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}^{T}+{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}^{T}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}\right] .

In Voigt notation, recalling that γxy=2exy{\gamma }_{xy}=2{e}_{xy}, the previous relation gives

δεv=BQδuel,\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon }}}}_{v}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el},

where:

δuel=[δu1δv1δu2δv2δu3δv3δu4δv4]T.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}={\left[ \begin{matrix}\delta {u}_{1}&\delta {v}_{1}&\delta {u}_{2}&\delta {v}_{2}&\delta {u}_{3}&\delta {v}_{3}&\delta {u}_{4}&\delta {v}_{4}\end{matrix}\right] }^{T}.

The matrix BQ{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q} has the 3×23\times 2 nodal blocks

BQ=[B1QB2QB3QB4Q].{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q}=\left[ \begin{matrix}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{1}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{2}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{3}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}&{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{4}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}\end{matrix}\right] .

Thus the blocks of the standard strain–displacement matrix are multiplied by Q\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}. This operation is performed directly at each Gauss point in MATLAB:

BQ=zeros(3,8);
for i=1:4
    ii=2*i-1:2*i;
    BQ(:,ii)=B(:,ii)*Q;
end

For Q=I2\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{Q}}}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{I}}}}_{2}, the standard matrix is recovered: BQ=B{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q}=\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}.

06

Consistent linearization of the internal forces

The element tangent stiffness matrix is defined as

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

The variation is infinitesimal and is evaluated about the current configuration. Using 2×22\times 2 Gauss integration, the element internal-force vector is approximated by

fel=∑p=14hpBpTσv,pdetJp.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{el}=\sum _{p=1}^{4} {h}_{p}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v,p}\mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}.

All integration weights are equal to one for this rule. Four factors depend on the current nodal displacements: the thickness hp{h}_{p}, the matrix Bp{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}, the Cauchy stresses σv,p{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v,p}, and the Jacobian determinant detJp\mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}.

The first variation of the internal-force vector is therefore

δfel=∑p=14[hpBpTDδεv,pdetJp+hpδBpTσv,pdetJp+hpBpTσv,pδ(detJp)+δhpBpTσv,pdetJp].\begin{matrix}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{el}=\sum _{p=1}^{4} [&{h}_{p}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}^{T}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{D}}}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon }}}}_{v,p}\mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}\\&+{h}_{p}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v,p}\mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}\\&+{h}_{p}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v,p}\delta \left( \mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}\right) \\&+\delta {h}_{p}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v,p}\mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}].\end{matrix}

Each contribution will now be derived separately.

6.1. Variation of the Euler–Almansi strains: material tangent

From the preceding derivation,

δεv=BQδuel.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon }}}}_{v}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}.

As D\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{D}}} is constant for the adopted constitutive model,

δσv=DBQδuel.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v}=\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{D}}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}.

The first contribution to the tangent stiffness matrix is therefore

kelm=∑p=14hpBpTDBQ,pdetJp.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{m}}=\sum _{p=1}^{4} {h}_{p}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}^{T}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{D}}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q,p}\mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}.

This is the material contribution. The two strain–displacement matrices play different roles: BpT{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}^{T} comes from the spatial internal-force expression, whereas BQ,p{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q,p} describes the variation of the total Euler–Almansi strains.

6.2. Variation of the strain–displacement matrix

The matrix B\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}} depends on the spatial gradients of the interpolation functions. These gradients change with the current element geometry.

For node ii,

BiTσv=[σxτxyτxyσy]bi=σbi.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{i}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v}=\left[ \begin{matrix}{\sigma }_{x}&{\tau }_{xy}\\{\tau }_{xy}&{\sigma }_{y}\end{matrix}\right] {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}=\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}.

Since bi=J−1Hi{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}}}_{i}, where Hi{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}}}_{i} is the iith column of H\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}} and is independent of the nodal displacements,

δbi=δ(J−1)Hi.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}=\delta \left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{H}}}}_{i}.

The variation of an inverse matrix satisfies

δ(J−1)=−J−1(δJ)J−1.\delta \left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}\right) =-{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}\left( \delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}.

The variation of the current Jacobian is:

δJ=JδLT.\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}=\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}}^{T}.

Consequently:

δbi=−J−1(δJ)bi=−δLTbi.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}=-{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}\left( \delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}=-\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}.

Since δLT=∑j=14bjδujT\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}}^{T}=\sum _{j=1}^{4} {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}^{T},

δbi=−∑j=14bjbiTδuj.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}=-\sum _{j=1}^{4} {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}^{T}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}.

The contribution to the variation of the internal nodal force associated with node ii at one Gauss point is:

δfi(B)=hdetJ σδbi.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{i}^{\left( B\right) }=h\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\, \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}.

Therefore:

δfi(B)=−hdetJ∑j=14(σbj)biTδuj,\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{i}^{\left( B\right) }=-h\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\sum _{j=1}^{4} \left( \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}^{T}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j},

and the corresponding 2×22\times 2 nodal block is:

kelB,ij=−hdetJ (σbj)biT.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{B,ij}}=-h\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\, \left( \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}^{T}.

This contribution represents the variation of the spatial interpolation derivatives with the current geometry.

6.3. Variation of the Jacobian determinant

For any nonsingular matrix, the determinant variation identity is:

δ(detJ)=detJ tr(J−1δJ).\delta \left( \mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\right) =\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\, \mathit{tr}\left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\right) .

Using δJ=JδLT\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}=\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}}^{T} gives

J−1δJ=δLT,{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}^{-1}\delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}=\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}}^{T},

and hence:

δ(detJ)=detJ tr(δL).\delta \left( \mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\right) =\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\, \mathit{tr}\left( \delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}\right) .

The trace can be expressed in terms of virtual nodal displacements:

tr(δL)=∑j=14bjTδuj=∂(δu)∂x+∂(δv)∂y.\mathit{tr}\left( \delta \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{L}}}\right) =\sum _{j=1}^{4} {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}^{T}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}=\frac{\partial \left( \delta u\right) }{\partial x}+\frac{\partial \left( \delta v\right) }{\partial y}.

Consequently:

δ(detJ)=detJ∑j=14bjTδuj.\delta \left( \mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\right) =\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\sum _{j=1}^{4} {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}^{T}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}.

For node ii, the corresponding internal-force variation is:

δfi(J)=hσbi δ(detJ),\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{i}^{\left( J\right) }=h\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}\, \delta \left( \mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\right) ,

so that:

δfi(J)=hdetJ∑j=14(σbi)bjTδuj.\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{i}^{\left( J\right) }=h\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\sum _{j=1}^{4} \left( \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}^{T}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{j}.

The associated nodal tangent block is therefore

kelJ,ij=hdetJ (σbi)bjT.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{J,ij}}=h\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}\, \left( \htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j}^{T}.

6.4. Geometric contribution to the tangent stiffness matrix

Combining the variations of B\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}} and detJ\mathit{det}\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}, we obtain the geometric contribution to the tangent stiffness matrix. The 2×22\times 2 block associated with nodes ii and jj is:

kelg,ij=∑p=14hpdetJp[(σpbi,p)bj,pT−(σpbj,p)bi,pT].{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{g,ij}}=\sum _{p=1}^{4} {h}_{p}\mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}\left[ \left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{p}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i,p}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j,p}^{T}-\left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{p}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{j,p}\right) {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{b}}}}_{i,p}^{T}\right] .

Here pp indexes the Gauss points, and i,ji,j index the nodes. Each block is 2×22\times 2; arranging the sixteen blocks yields the 8×88\times 8 matrix kelg{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{g}}. The index gg denotes geometric; the index pp denotes the Gauss point.

The corresponding MATLAB implementation evaluates the geometric contribution at one Gauss point, before multiplying by the current thickness and Jacobian determinant:

kg=zeros(8);
for i=1:4
    ii=2*i-1:2*i;
    bi=b(:,i);
    sbi=sigma*bi;
    for j=1:4
        jj=2*j-1:2*j;
        bj=b(:,j);
        kg(ii,jj)=sbi*bj'-(sigma*bj)*bi';
    end
end

The geometric contribution is obtained by direct linearization of the adopted spatial internal-force vector. The resulting tangent matrix is not necessarily symmetric; it should not be artificially symmetrized.

6.5. Variation of the element thickness

The element thickness changes with deformation. For the adopted approximate plane-stress thickness update,

h1=h[1−ν1−ν(εx+εy)],{h}_{1}=h\left[ 1-\frac{\nu }{1-\nu }\left( {\varepsilon }_{x}+{\varepsilon }_{y}\right) \right] ,

where hh is the initial thickness. Since h1{h}_{1} depends on the total Euler–Almansi strains, it also depends on the nodal displacements. If the tangent is to remain consistent with the internal-force expression actually implemented, this dependence must be differentiated:

δh1=−hν1−ν(δεx+δεy).\delta {h}_{1}=-h\frac{\nu }{1-\nu }\left( \delta {\varepsilon }_{x}+\delta {\varepsilon }_{y}\right) .

Using δεv=BQδuel\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon }}}}_{v}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q}\delta {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el},

∂h1∂uel=−hν1−ν[BQ(1,:)+BQ(2,:)].\frac{\partial {h}_{1}}{\partial {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}=-h\frac{\nu }{1-\nu }\left[ {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q}\left( 1,:\right) +{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{Q}\left( 2,:\right) \right] .

This derivative is a 1×81\times 8 row matrix. The thickness contribution to the tangent is:

kelh=∑p=14detJp(BpTσv,p)∂hp∂uel.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{h}}=\sum _{p=1}^{4} \mathit{det}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{J}}}}_{p}\left( {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{B}}}}_{p}^{T}{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{\sigma }}}}_{v,p}\right) \frac{\partial {h}_{p}}{\partial {\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}.

The product of an 8×18\times 1 column matrix and a 1×81\times 8 row matrix gives an 8×88\times 8 matrix, as required. In MATLAB,

dth=-th*nu/(1-nu)*(BQ(1,:)+BQ(2,:));

The thickness formula remains approximate. Nevertheless, the term kelh{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{h}} makes the tangent consistent with this particular thickness update.

6.6. Complete tangent stiffness matrix

The complete element tangent stiffness matrix is:

kel=kelm+kelg+kelh.{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{el}={\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{m}}+{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{g}}+{\htmlClass{fea-math-bold-italic}{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{e{l}_{h}}.

The material part describes the variation of the Cauchy stresses through the total Euler–Almansi strains. The geometric part describes the variations of the spatial interpolation derivatives and the Jacobian determinant. The thickness part describes the dependence of h1{h}_{1} on the current displacements.

For one Gauss point, the MATLAB assembly statement is

kel=kel+detJ*(th1*(km+kg)+(B'*sig)*dth);

The assembled matrix is the consistent derivative of the adopted discrete internal-force vector, including its approximate constitutive and thickness laws.

07

Numerical example

The cantilever beam considered in Example 2 of Section 15.2 is analyzed again. Its length is L=400 mmL=400\, mm, and the rectangular cross-section is 20×5 mm20\times 5\, mm. The material properties are E=1000 MPaE=1000\, MPa and ν=0.3\nu =0.3. A vertical force F=100 NF=100\, N is applied at the free end. The mesh contains 120×16=1920120\times 16=1920 Q4 elements and 2057 nodes.

The computation uses total Euler–Almansi strains and the consistent tangent derived above, with the current geometry updated during each Newton iteration. Converged displacement extrema are approximately

vmin=−289.29 mm,umax=2.45 mm,umin=−159.34 mm.{v}_{min}=-289.29\, mm,\quad \quad {u}_{max}=2.45\, mm,\quad \quad {u}_{min}=-159.34\, mm.

For the tested numbers of load steps, the converged values agree within the numerical tolerance. For comparison, the ANSYS results are:

DisplacementMATLAB, Section 15.5ANSYS
vmin{v}_{min} (mm)−289.29−289.48
umax{u}_{max} (mm)2.452.38
umin{u}_{min} (mm)−159.34−159.92

The agreement is satisfactory, especially for the maximum downward displacement and the minimum horizontal displacement.

Comparison with the preceding formulations

The following results compare the original formulations of Sections 15.1, 15.2 and 15.3. All displacements are in millimeters. The corresponding results for the consistent Section 15.5 formulation are approximately

vmin=−289.29{v}_{min}=-289.29mmumin=−159.34{u}_{min}=-159.34mmumax=2.45{u}_{max}=2.45mm
Load stepsSectionvmin{v}_{min}umin{u}_{min}umax{u}_{max}Total iterations
315.1−275.9634−142.01092.267288
315.2−288.4194−157.59782.4791169
315.3−288.4280−157.62712.4790202
515.1−294.5759−169.22462.331065
515.2−289.0151−158.80912.4644100
515.3−289.0151−158.80912.4644100
1015.1−294.0722−168.15712.311285
1015.2−289.2207−159.20742.4561104
1015.3−289.2207−159.20742.4561104
2015.1−291.5248−163.85822.2918134
2015.2−289.2711−159.30152.4525150
2015.3−289.2711−159.30142.4525150
5015.1−289.9523−161.25872.2807264
5015.2−289.2876−159.33112.4505300
5015.3−289.2876−159.33102.4505300

The original Section 15.1 formulation is particularly sensitive to the number of load steps when only a few steps are used. Its results approach the consistent solution as the increments become smaller. The formulations in Sections 15.2 and 15.3 give much closer results even for a small number of steps; in this example they are practically identical for five or more steps and approach the same converged displacements.

The direct formulation of the present section produces practically identical converged displacements for different load-step subdivisions within the prescribed numerical tolerance. This observed load-step independence is not, by itself, a proof of tangent consistency; consistency follows from the linearization of the implemented internal-force vector.

08

MATLAB programs

The accompanying MATLAB programs implement the Updated Lagrangian formulation for four-node isoparametric Q4 elements with 2×22\times 2 Gauss integration. The main program performs the load-step and Newton-iteration loops and updates the nodal coordinates after each displacement correction.

The script stiff_cons.m calculates the element internal forces and assembles the global tangent stiffness matrix. At each Gauss point, the initial and current Jacobian matrices are used to compute the total deformation gradient, the Euler–Almansi strains and the Cauchy stresses. The material, geometric and thickness terms are then combined.

The files plot_disp.m and plot_stress.m display the nodal displacements and the computed stresses.

09

References

[1] Bonet, J., and Wood, R. D. (2008). Nonlinear Continuum Mechanics for Finite Element Analysis. 2nd ed. Cambridge University Press. See especially Chapters 4, 8 and 9 for finite-deformation kinematics, linearized equilibrium and finite-element discretization.