Chapter 24

Updated Lagrangian formulation, 3D isoparametric 2-node beam element

Hypotheses:

StrainSmall
DisplacementLarge
MaterialLinear

Timoshenko beam model.

Straight, prismatic, two-node isoparametric beam element. The element formulation follows the notation introduced in Section 23.3.

In the Updated Lagrangian formulation, the equilibrium configuration obtained at the end of load step ii becomes the reference configuration for load step i+1i+1. Therefore, the incremental displacements and stresses at the current load step are evaluated with respect to the previously deformed configuration.

The present formulation extends to 3D the Updated Lagrangian procedure introduced for the 2D case in Section 8.2.

The generalized strain vector is expressed in the local reference frame, using the notation introduced in Section 23.3.

ε={ε0βyˉβzˉκxˉκyˉκzˉ}.\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}=\begin{Bmatrix}\varepsilon_0\\\beta_{\bar y}\\\beta_{\bar z}\\\kappa_{\bar x}\\\kappa_{\bar y}\\\kappa_{\bar z}\end{Bmatrix}.

The element nodal displacement vector in the local reference frame is:

u‾el={uˉ1vˉ1wˉ1ψxˉ1ψyˉ1ψzˉ1uˉ2vˉ2wˉ2ψxˉ2ψyˉ2ψzˉ2}T.\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol u}}_{el}=\begin{Bmatrix}\bar u_1&\bar v_1&\bar w_1&\psi_{\bar x1}&\psi_{\bar y1}&\psi_{\bar z1}&\bar u_2&\bar v_2&\bar w_2&\psi_{\bar x2}&\psi_{\bar y2}&\psi_{\bar z2}\end{Bmatrix}^{T}.

For each load step, the element equations are written in the current local reference frame of the straight two-node beam element.

01

Generalized strains

Axial strain

The axial strain is evaluated from the exact change of element length:

ε0=(vˉ2−vˉ1)2+(wˉ2−wˉ1)2+(L−uˉ1+uˉ2)2L−1\boxed{\varepsilon_0=\frac{\sqrt{(\bar v_2-\bar v_1)^2+(\bar w_2-\bar w_1)^2+(L-\bar u_1+\bar u_2)^2}}{L}-1}

where LL is the element length in the reference configuration of the current load step.

The corresponding current length is:

Lt=(1+ε0)L.L_t=(1+\varepsilon_0)L.

Shear angles

Let the rotations of the normal to the deformed centroidal axis be:

φzˉ=arctan(vˉ′1+uˉ′),\varphi_{\bar z}=\mathop{\mathit{arctan}}\left(\frac{\bar v'}{1+\bar u'}\right),

and

φyˉ=−arctan(wˉ′1+uˉ′).\varphi_{\bar y}=-\mathop{\mathit{arctan}}\left(\frac{\bar w'}{1+\bar u'}\right).

Using the sign convention established in Section 23.3,

φzˉ=ψzˉ+βyˉ,\varphi_{\bar z}=\psi_{\bar z}+\beta_{\bar y},

while

φyˉ=ψyˉ−βzˉ.\varphi_{\bar y}=\psi_{\bar y}-\beta_{\bar z}.

Therefore,

βyˉ=arctan(vˉ′1+uˉ′)−ψzˉ\boxed{\beta_{\bar y}=\mathop{\mathit{arctan}}\left(\frac{\bar v'}{1+\bar u'}\right)-\psi_{\bar z}}

and

βzˉ=arctan(wˉ′1+uˉ′)+ψyˉ.\boxed{\beta_{\bar z}=\mathop{\mathit{arctan}}\left(\frac{\bar w'}{1+\bar u'}\right)+\psi_{\bar y}.}

For the two-node isoparametric element, the rotations vary linearly along the element. At the single Gauss point ξ=0\xi=0,

ψyˉ(0)=ψyˉ1+ψyˉ22,ψzˉ(0)=ψzˉ1+ψzˉ22.\psi_{\bar y}(0)=\frac{\psi_{\bar y1}+\psi_{\bar y2}}{2},\qquad\psi_{\bar z}(0)=\frac{\psi_{\bar z1}+\psi_{\bar z2}}{2}.

The corresponding shear angles at the Gauss point are obtained directly from the nodal displacements and rotations.

βyˉ(ξ)=arctan(v‾2−v‾1L+u‾2−u‾1)−(1−ξ2ψz‾1+1+ξ2ψz‾2){\beta }_{\bar y}\left( \xi\right) =\mathop{\mathit{arctan}}\left( \frac{{\overline{v}}_{2}-{\overline{v}}_{1}}{L+{\overline{u}}_{2}-{\overline{u}}_{1}}\right) -\left( \frac{1-\xi}{2}{{\psi }_{\overline{z}}}_{1}+\frac{1+\xi}{2}{{\psi }_{\overline{z}}}_{2}\right)
and\mathit{and}
βyˉ(0)=arctan(v‾2−v‾1L+u‾2−u‾1)−ψz‾1+ψz‾22{\beta }_{\bar y}\left( 0\right) =\mathop{\mathit{arctan}}\left( \frac{{\overline{v}}_{2}-{\overline{v}}_{1}}{L+{\overline{u}}_{2}-{\overline{u}}_{1}}\right) -\frac{{{\psi }_{\overline{z}}}_{1}+{{\psi }_{\overline{z}}}_{2}}{2}
βzˉ(ξ)=arctan(w‾2−w‾1L+u‾2−u‾1)+(1−ξ2ψy‾1+1+ξ2ψy‾2)      and       βzˉ(0)=arctan(w‾2−w‾1L+u‾2−u‾1)+ψy‾1+ψy‾22{\beta }_{\bar z}\left( \xi\right) =\mathop{\mathit{arctan}}\left( \frac{{\overline{w}}_{2}-{\overline{w}}_{1}}{L+{\overline{u}}_{2}-{\overline{u}}_{1}}\right) +\left( \frac{1-\xi}{2}{{\psi }_{\overline{y}}}_{1}+\frac{1+\xi}{2}{{\psi }_{\overline{y}}}_{2}\right) \, \, \, \, \, \, \mathit{and}\, \, \, \, \, \, \, {\beta }_{\bar z}\left( 0\right) =\mathop{\mathit{arctan}}\left( \frac{{\overline{w}}_{2}-{\overline{w}}_{1}}{L+{\overline{u}}_{2}-{\overline{u}}_{1}}\right) +\frac{{{\psi }_{\overline{y}}}_{1}+{{\psi }_{\overline{y}}}_{2}}{2}

Curvatures

In the present formulation, the curvatures are approximated by retaining the first-order terms:

κxˉ=ψxˉ2−ψxˉ1L\boxed{\kappa_{\bar x}=\frac{\psi_{\bar x2}-\psi_{\bar x1}}{L}}
κyˉ=ψyˉ2−ψyˉ1L\boxed{\kappa_{\bar y}=\frac{\psi_{\bar y2}-\psi_{\bar y1}}{L}}
κzˉ=ψzˉ2−ψzˉ1L.\boxed{\kappa_{\bar z}=\frac{\psi_{\bar z2}-\psi_{\bar z1}}{L}.}

The second-order terms of the curvature expressions are neglected here. Their complete expressions and corresponding derivatives are presented separately in Addendum 24a.

This keeps the main development focused on the practical Updated Lagrangian algorithm, while the more complete curvature expressions can be consulted when required.

02

Deformation energy

The deformation energy of one beam element, expressed in the local reference frame, is:

Uel=12∫L[EAε02+GAyˉβyˉ2+GAzˉβzˉ2+GItκxˉ2+EIyκyˉ2+EIzκzˉ2]dxˉ.U_{el}=\frac12\int_L\left[EA\varepsilon_0^2+GA_{\bar y}\beta_{\bar y}^2+GA_{\bar z}\beta_{\bar z}^2+GI_t\kappa_{\bar x}^2+EI_y\kappa_{\bar y}^2+EI_z\kappa_{\bar z}^2\right]d\bar x.

Using one Gauss integration point located at the element centre,

ξG=0,\xi_G=0,

the energy is evaluated as:

Uel≈L2[EAε02+GAyˉβyˉ02+GAzˉβzˉ02+GItκxˉ2+EIyκyˉ2+EIzκzˉ2].U_{el}\approx\frac L2\left[EA\varepsilon_0^2+GA_{\bar y}\beta_{\bar y0}^2+GA_{\bar z}\beta_{\bar z0}^2+GI_t\kappa_{\bar x}^2+EI_y\kappa_{\bar y}^2+EI_z\kappa_{\bar z}^2\right].
03

Element force vector and tangent stiffness matrix

The internal element force vector is obtained from the first derivative of the deformation energy:

f‾el=∂Uel∂u‾el\boxed{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol f}}_{el}=\frac{\partial U_{el}}{\partial\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol u}}_{el}}}

and the tangent stiffness matrix from its second derivative:

k‾el=∂2Uel∂u‾el 2.\boxed{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol k}}_{el}=\frac{\partial^2 U_{el}}{\partial\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol u}}_{el}^{\,2}}.}

εi\varepsilon_i is the ii-th component of the generalized strain vector ε\htmlClass{fea-math-bold-italic}{\boldsymbol{\varepsilon}}.

For each generalized strain component εi\varepsilon_i, the corresponding contribution to the internal force vector contains its first derivative,

∂εi∂u‾el,\frac{\partial\varepsilon_i}{\partial\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol u}}_{el}},

whereas the tangent stiffness contribution contains both its first and second derivatives:

∂εi∂u‾el(∂εi∂u‾el)T\frac{\partial\varepsilon_i}{\partial\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol u}}_{el}}\left(\frac{\partial\varepsilon_i}{\partial\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol u}}_{el}}\right)^T

and

εi∂2εi∂u‾el 2.\varepsilon_i\frac{\partial^2\varepsilon_i}{\partial\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol u}}_{el}^{\,2}}.

The tangent stiffness matrix contains a material contribution, associated with the first derivatives of the generalized strains, and a geometric contribution, associated with their second derivatives.

f‾el=L(EAε0 dε0 du‾el+GA0y‾β0y‾ dβ0y‾ du‾el+GA0z‾β0z‾ dβ0z‾ du‾el+GItκx‾ dκx‾ du‾el+EIy‾κy‾ dκy‾ du‾el+EIz‾κz‾ dκz‾ du‾el){\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{f}}}}_{el}=L\left( EA{\varepsilon }_{0}^{\, }\frac{d{\varepsilon }_{0}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}+G{A}_{0\overline{y}}{\beta }_{0\overline{y}}^{\, }\frac{d{\beta }_{0\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}+G{A}_{0\overline{z}}{\beta }_{0\overline{z}}^{\, }\frac{d{\beta }_{0\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}+G{I}_{t}{\kappa }_{\overline{x}}^{\, }\frac{d{\kappa }_{\overline{x}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}+E{I}_{\overline{y}}{\kappa }_{\overline{y}}^{\, }\frac{d{\kappa }_{\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}+E{I}_{\overline{z}}{\kappa }_{\overline{z}}^{\, }\frac{d{\kappa }_{\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}\right)
k‾el=L[EA(ε0 d2ε0 du‾el2+dε0 du‾el(dε0 du‾el)T) +GA0y‾(β0y‾ d2β0y‾ du‾el2+dβ0y‾ du‾el(dβ0y‾ du‾el)T)+       {\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{k}}}}_{el}=L\left[ EA\left( {\varepsilon }_{0}^{\, }\frac{{d}^{2}{\varepsilon }_{0}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}+\frac{d{\varepsilon }_{0}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}{\left( \frac{d{\varepsilon }_{0}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}\right) }^{T}\right) \, +\right. G{A}_{0\overline{y}}\left( {\beta }_{0\overline{y}}^{\, }\frac{{d}^{2}{\beta }_{0\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}+\frac{d{\beta }_{0\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}{\left( \frac{d{\beta }_{0\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}\right) }^{T}\right) +\, \, \, \, \, \, \,
 GA0z‾(β0z‾ d2β0z‾ du‾el2+dβ0z‾ du‾el(dβ0z‾ du‾el)T)  +GIt(κx‾ d2κx‾ du‾el2+dκx‾ du‾el(dκx‾ du‾el)T)+\, G{A}_{0\overline{z}}\left( {\beta }_{0\overline{z}}^{\, }\frac{{d}^{2}{\beta }_{0\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}+\frac{d{\beta }_{0\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}{\left( \frac{d{\beta }_{0\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}\right) }^{T}\right) \, \, +G{I}_{t}\left( {\kappa }_{\overline{x}}^{\, }\frac{{d}^{2}{\kappa }_{\overline{x}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}+\frac{d{\kappa }_{\overline{x}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}{\left( \frac{d{\kappa }_{\overline{x}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}\right) }^{T}\right) +
  EIy‾(κy d2κy‾ du‾el2+dκy‾ du‾el(dκy‾ du‾el)T)        +  EIz‾(κz‾ d2κz‾ du‾el2+dκz‾ du‾el(dκz‾ du‾el)T)]                 \, \, E{I}_{\overline{y}}\left( {\kappa }_{y}^{\, }\frac{{d}^{2}{\kappa }_{\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}+\frac{d{\kappa }_{\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}{\left( \frac{d{\kappa }_{\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}\right) }^{T}\right) \, \, \, \, \, \, \, \, +\, \, E{I}_{\overline{z}}\left. \left( {\kappa }_{\overline{z}}^{\, }\frac{{d}^{2}{\kappa }_{\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}+\frac{d{\kappa }_{\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}{\left( \frac{d{\kappa }_{\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}\right) }^{T}\right) \right] \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \, \,

The complete first and second derivatives of

ε0,βyˉ,βzˉ,κxˉ,κyˉ,κzˉ\varepsilon_0,\quad\beta_{\bar y},\quad\beta_{\bar z},\quad\kappa_{\bar x},\quad\kappa_{\bar y},\quad\kappa_{\bar z}

with respect to u‾el\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol u}}_{el} are implemented in the MATLAB subprogram deriv.

dε0 du‾el=1L2{−(L−u1+u2)v1−v2w1−w2000(L−u1+u2)−(v1−v2)−(w1−w2)000}\frac{d{\varepsilon }_{0}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}=\frac{1}{{L}^{2}}\left\{ \begin{matrix}-\left( L-{u}_{1}+{u}_{2}\right) \\{v}_{1}-{v}_{2}\\{w}_{1}-{w}_{2}\\0\\0\\0\\\left( L-{u}_{1}+{u}_{2}\right) \\-\left( {v}_{1}-{v}_{2}\right) \\-\left( {w}_{1}-{w}_{2}\right) \\0\\0\\0\end{matrix}\right\}
d2ε0 du‾el2=1L2[100000−10000001−101−1000−110−110−11000]\frac{{d}^{2}{\varepsilon }_{0}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}=\frac{1}{{L}^{2}}\left[ \begin{matrix}1 & 0 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 0 & 0\\0 & 1 & & & & & & -1 & & & & \\0 & & 1 & & & & & & -1 & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\-1 & & & & & & 1 & & & & & \\0 & -1 & & & & & & 1 & & & & \\0 & & -1 & & & & & & 1 & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \end{matrix}\right]
dβ0y‾ du‾el=1L2 {−(v1−v2)−(L−u1+u2)000−L2/2v1−v2L−u1+u2000−L2/2}\frac{d{\beta }_{0\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}=\frac{1}{{L}^{2}}\, \left\{ \begin{matrix}-\left( {v}_{1}-{v}_{2}\right) \\-\left( L-{u}_{1}+{u}_{2}\right) \\0\\0\\0\\-{L}^{2}/2\\{v}_{1}-{v}_{2}\\L-{u}_{1}+{u}_{2}\\0\\0\\0\\-{L}^{2}/2\end{matrix}\right\}
d2β0y‾ du‾el2=1L2[ 0−10000 0100001−1 0 00001 −1−11 0 000]\frac{{d}^{2}{\beta }_{0\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}=\frac{1}{{L}^{2}}\left[ \begin{matrix}\, 0 & -1 & 0 & 0 & 0 & 0 & \, 0 & 1 & 0 & 0 & 0 & 0\\1 & & & & & & -1 & \, & & & & \\0 & & & & & & & & \, & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\0 & 1 & & & & & \, & -1 & & & & \\-1 & & & & & & 1 & \, & & & & \\0 & & & & & & & & \, & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \end{matrix}\right]
dβ0z‾ du‾el=−1L2 {w1−w20L−u1+u20−L2/20−(w1−w2)0−(L−u1+u2)0−L2/20}\frac{d{\beta }_{0\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}=-\frac{1}{{L}^{2}}\, \left\{ \begin{matrix}{w}_{1}-{w}_{2}\\0\\L-{u}_{1}+{u}_{2}\\0\\-{L}^{2}/2\\0\\-\left( {w}_{1}-{w}_{2}\right) \\0\\-\left( L-{u}_{1}+{u}_{2}\right) \\0\\-{L}^{2}/2\\0\end{matrix}\right\}
d2β0z‾ du‾el2=−1L2[0  01000 0 0−10000   −11 0000 −1  1 0  1−1 000]\frac{{d}^{2}{\beta }_{0\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}=-\frac{1}{{L}^{2}}\left[ \begin{matrix}0\, & \, 0 & 1 & 0 & 0 & 0 & \, 0 & \, 0 & -1 & 0 & 0 & 0\\0\, & & & & & & \, & \, & & & & \\-1 & & & & & & 1 & & \, & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\0 & \, & -1 & & & & \, & \, & 1 & & & \\\, 0 & & & & & & \, & \, & & & & \\1 & & & & & & -1 & & \, & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \\0 & & & & & & & & & & & \end{matrix}\right]
dκx‾ du‾el=1L  {000−100000100}\frac{d{\kappa }_{\overline{x}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}=\frac{1}{{L}^{\, }}\, \left\{ \begin{matrix}0\\0\\0\\-1\\0\\0\\0\\0\\0\\1\\0\\0\end{matrix}\right\}
dκy‾ du‾el=1L  {0000−10000010}\frac{d{\kappa }_{\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}=\frac{1}{{L}^{\, }}\, \left\{ \begin{matrix}0\\0\\0\\0\\-1\\0\\0\\0\\0\\0\\1\\0\end{matrix}\right\}
dκz‾ du‾el=1L  {00000−1000001}\frac{d{\kappa }_{\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}}=\frac{1}{{L}^{\, }}\, \left\{ \begin{matrix}0\\0\\0\\0\\0\\-1\\0\\0\\0\\0\\0\\1\end{matrix}\right\}
d2κx‾ du‾el2=012x12\frac{{d}^{2}{\kappa }_{\overline{x}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}={\htmlClass{fea-math-bold-italic}{\boldsymbol{0}}}_{12x12}
d2κy‾ du‾el2=012x12\frac{{d}^{2}{\kappa }_{\overline{y}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}={\htmlClass{fea-math-bold-italic}{\boldsymbol{0}}}_{12x12}
d2κz‾ du‾el2=012x12\frac{{d}^{2}{\kappa }_{\overline{z}}^{\, }}{d{\overline{\htmlClass{fea-math-bold-italic}{\boldsymbol{u}}}}_{el}^{2}}={\htmlClass{fea-math-bold-italic}{\boldsymbol{0}}}_{12x12}

The exact axial strain itself is evaluated using the current element length. In the derivatives used to form the tangent quantities, however, the approximation

Lt≈LL_t\approx L

is adopted because the axial strain remains small:

ε0≪1.\varepsilon_0\ll1.

This simplification leads to compact derivative expressions while preserving the accuracy required by the present formulation.

04

Updated Lagrangian procedure

The MATLAB implementation follows closely the 2D Updated Lagrangian algorithm presented in Section 8.2.

At each load step:

  1. the equilibrium equations are solved for the incremental nodal displacements;
  2. the nodal coordinates are updated;
  3. the current element lengths are recomputed;
  4. the element local reference frames are updated;
  5. the auxiliary third nodes used to define the principal plane of each 3D beam element are updated;
  6. the resulting configuration becomes the reference configuration for the next load step.

After updating the nodal coordinates,

x←x+Δu,y←y+Δv,z←z+Δw,x\leftarrow x+\mathit{\Delta} u,\qquad y\leftarrow y+\mathit{\Delta} v,\qquad z\leftarrow z+\mathit{\Delta} w,

the current length of every element is recalculated as:

Lt=(x2−x1)2+(y2−y1)2+(z2−z1)2.\boxed{L_t=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2+(z_2-z_1)^2}.}

This explicit update is used in the subprogram updt.

05

Update of the local reference frame

In 3D, each two-node beam element uses an auxiliary third node in order to define the principal plane of the cross-section. The coordinates of these auxiliary nodes are stored in the table nd3.

The orientation of this third node must be updated after every load step.

For sufficiently small incremental rotations, a first-order incremental rotation matrix may be used. However, higher accuracy is obtained by retaining the second-order terms of the incremental rotation matrix, as discussed in Section 21.1.

Let the incremental nodal rotations of the current beam element be:

φx,φy,φz.\varphi_x,\qquad\varphi_y,\qquad\varphi_z.

The corresponding second-order incremental rotation matrix is denoted by

Ri.\htmlClass{fea-math-bold-italic}{\boldsymbol R}_i.
Ri=[1−12(φy2+φz2)−φz+12φxφyφy+12φzφxφz+12φxφy1−12(φz2+φx2)−φx+12φyφz−φy+12φzφxφx+12φyφz1−12(φx2+φy2)]{\htmlClass{fea-math-bold-italic}{\boldsymbol{R}}}_{i}=\left[ \begin{matrix}1-\frac{1}{2}\left( {\varphi }_{y}^{2}+{\varphi }_{z}^{2}\right) & {-\varphi }_{z}+\frac{1}{2}{\varphi }_{x}{\varphi }_{y} & {\varphi }_{y}+\frac{1}{2}{\varphi }_{z}{\varphi }_{x}\\{\varphi }_{z}+\frac{1}{2}{\varphi }_{x}{\varphi }_{y} & 1-\frac{1}{2}\left( {\varphi }_{z}^{2}+{\varphi }_{x}^{2}\right) & -{\varphi }_{x}+\frac{1}{2}{\varphi }_{y}{\varphi }_{z}\\\htmlClass{fea-math-bold-italic}{\boldsymbol{-}}{\varphi }_{y}+\frac{1}{2}{\varphi }_{z}{\varphi }_{x} & {\varphi }_{x}+\frac{1}{2}{\varphi }_{y}{\varphi }_{z} & 1-\frac{1}{2}\left( {\varphi }_{x}^{2}+{\varphi }_{y}^{2}\right) \end{matrix}\right]

With the convention used in the subprogram updt, the accumulated transformation is updated according to:

R←RiTR.\boxed{\htmlClass{fea-math-bold-italic}{\boldsymbol R}\leftarrow\htmlClass{fea-math-bold-italic}{\boldsymbol R}_i^T\htmlClass{fea-math-bold-italic}{\boldsymbol R}.}

The auxiliary third node is then updated consistently with the new element orientation.

06

MATLAB program

The MATLAB implementation for the 3D Updated Lagrangian formulation follows the same general structure as the 2D program presented in Section 8.2.

The main subprograms are:

  • gen_ex2.m — Example 2 input data and mesh generation;
  • stiff — assembly of the tangent stiffness matrix and internal force vector;
  • deriv — first and second derivatives of the generalized strains;
  • updt — update of nodal coordinates, element lengths and local reference frames.

The exact axial strain is used directly in the numerical calculations, while the simplified derivative expressions described above are used in the tangent formulation.

The MATLAB package includes both deriv.m and deriv_corrected.m. The routine deriv_corrected.m implements the complete curvature expressions presented in Addendum 24a.

MATLAB3D Updated Lagrangian beam programDownload ZIP
07

Example 1

The first example is the large-displacement 3D cantilever problem presented in Section 22.2.

The same material, geometric and loading data are used.

To reproduce the reference solution closely, the Updated Lagrangian analysis is performed using 50 load steps.

The algorithm presented in Section 22.2 provides a highly accurate reference solution for this example. Consequently, using fewer load steps in the UL formulation leads to larger, although still small, errors.

Example 1. Deformed cantilever configuration.
Figure 1. Example 1. Deformed cantilever configuration.
08

Example 2

A very flexible cantilever beam is considered:

L=100 mm,L=100\ \mathit{mm},

with rectangular cross-section

6×9 mm,6\times9\ \mathit{mm},

Young's modulus

E=1000 MPa,E=1000\ \mathit{MPa},

and Poisson's ratio

ν=0.3.\nu=0.3.

The free end is loaded by:

Y=50 N,Z=50 N,Mx=3500 Nmm.Y=50\ \mathit{N},\qquad Z=50\ \mathit{N},\qquad M_x=3500\ \mathit{Nmm}.

The beam is discretized with 30 elements and the load is applied in 40 load steps.

The MATLAB results are compared with ANSYS results and show very good agreement.

Figure 2. Example 2. Deformed cantilever configuration; the end at the origin is clamped.
Example 2. Load–displacement comparison: solid lines — MATLAB; dashed lines — ANSYS.
Figure 3. Example 2. Load–displacement comparison: solid lines — MATLAB; dashed lines — ANSYS.
ANSYSExample 2 — ANSYS macroDownload ZIP
09

Example 3

An initially straight cantilever beam lies along the global xx-axis and is clamped at x=0x=0. Its rectangular cross-section has dimensions 2 mm2\,\mathit{mm} in the yy-direction and 3 mm3\,\mathit{mm} in the zz-direction. E=2×105 MPaE=2\times10^5\,\mathit{MPa}. The beam is loaded at its free end by X=−150 NX=-150\,\mathit N, Y=50 NY=50\,\mathit N, Z=75 NZ=75\,\mathit N, Cx=15000 NmmC_x=15000\,\mathit{Nmm}, Cy=0C_y=0, Cz=20000 NmmC_z=20000\,\mathit{Nmm}.

The beam length is:

L=100 mm,L=100\ \mathit{mm},
Figure 4. Example 3. Deformed cantilever configuration; the end at the origin is clamped.

ANSYS does not reach the prescribed final load for this example. The solution stops at 35% of the total load:

X=−52.5 N,Y=17.5 N,Z=26.25 N,X=-52.5\ \mathit{N},\qquad Y=17.5\ \mathit{N},\qquad Z=26.25\ \mathit{N},
Cx=5250 Nmm,Cy=0,Cz=7000 Nmm.C_x=5250\ \mathit{Nmm},\qquad C_y=0,\qquad C_z=7000\ \mathit{Nmm}.

At this load level, the maximum displacements are:

Methodu [mm]v [mm]w [mm]
Section 22.2, finite-difference method−68.83559.47144.004
Present UL formulation, 50 load steps−69.73859.97043.286
ANSYS−69.34359.58143.859

The agreement between the three solutions is very good.