Chapter 20

Buckling, plane stress state

Linear eigenvalue buckling of plane-stress structures using isoparametric four-node quadrilateral finite elements.

Small displacementsSmall strainsLinear elastic material

01

Formulation and tangent stiffness

Small displacements
Small strains
Linear elastic material

Although the displacements are assumed to be small, the second-order terms in the strain–displacement relations are retained because they are essential for the stability analysis. These terms generate the geometric stiffness matrix.

Buckling is a bifurcation phenomenon. The structure follows the small-displacement equilibrium path up to a critical load, at which this equilibrium state loses stability and a new equilibrium path associated with lateral deformation becomes possible. Along the post-buckling path, large displacements may subsequently develop.

We will consider the quadrilateral isoparametric element with four nodes. We start from the Total Lagrangian formulation developed in Section 12.2.

For the present buckling analysis, the small-displacement assumption is adopted, but the second-order strain terms responsible for the geometric stiffness are retained. The overall tangent stiffness matrix has the form:

Kt=Ael=1nel[hg=1nG(σxGx+σyGy+τxyGxy)det(J)]+Ael=1nel[hg=1nGBTDBdet(J)]\boldsymbol K_t=\mathop{\mathcal A}_{el=1}^{n_{el}}\left[h\sum_{g=1}^{n_G}\left(\sigma_x\boldsymbol G_x+\sigma_y\boldsymbol G_y+\tau_{xy}\boldsymbol G_{xy}\right)\det(\boldsymbol J)\right]+\mathop{\mathcal A}_{el=1}^{n_{el}}\left[h\sum_{g=1}^{n_G}\boldsymbol B^T\boldsymbol D\boldsymbol B\det(\boldsymbol J)\right]

For all notations, see Section 12.2. Starting from the tangent stiffness matrix of the TL formulation, the displacement-dependent part associated with the large-displacement contribution to the strain–displacement matrix BL\boldsymbol B_L is neglected under the small-displacement assumption. The stress-dependent terms are retained because they form the geometric stiffness matrix and are essential for the stability analysis. Therefore:

B=B0\boldsymbol B=\boldsymbol B_0

The elastic stiffness matrix K\boldsymbol K and the geometric stiffness matrix KG\boldsymbol K_G, which depends on the stress state, are:

K=Ael=1nel[hg=1nGB0TDB0det(J)]\boldsymbol K=\mathop{\mathcal A}_{el=1}^{n_{el}}\left[h\sum_{g=1}^{n_G}\boldsymbol B_0^T\boldsymbol D\boldsymbol B_0\det(\boldsymbol J)\right]
KG=Ael=1nel[hg=1nG(σxGx+σyGy+τxyGxy)det(J)]\boldsymbol K_G=-\mathop{\mathcal A}_{el=1}^{n_{el}}\left[h\sum_{g=1}^{n_G}\left(\sigma_x\boldsymbol G_x+\sigma_y\boldsymbol G_y+\tau_{xy}\boldsymbol G_{xy}\right)\det(\boldsymbol J)\right]

The sign convention is:

compression<0\boxed{\text{compression}<0}

Consequently, the minus sign in the definition above makes KG\boldsymbol K_G positive in the destabilizing direction for a compressive reference stress state. After assembly and application of the boundary conditions, the buckling problem is:

(KλKG)u=0\boxed{(\boldsymbol K-\lambda\boldsymbol K_G)\boldsymbol u=\boldsymbol 0}

or, equivalently:

Ku=λKGu\boxed{\boldsymbol K\boldsymbol u=\lambda\boldsymbol K_G\boldsymbol u}

02

Element matrices

To find the matrices k\boldsymbol k and kG\boldsymbol k_G for one finite element, the same procedure as in Chapter 19 is used. The 2D Green–Lagrange strains, including the second-order terms, are:

{εxεyγxy}={ux+12(ux)2+12(vx)2vy+12(uy)2+12(vy)2uy+vx+uxuy+vxvy}\left\{\begin{array}{c}\varepsilon_x\\\varepsilon_y\\\gamma_{xy}\end{array}\right\}=\left\{\begin{array}{c}\dfrac{\partial u}{\partial x}+\dfrac12\left(\dfrac{\partial u}{\partial x}\right)^2+\dfrac12\left(\dfrac{\partial v}{\partial x}\right)^2\\[6pt]\dfrac{\partial v}{\partial y}+\dfrac12\left(\dfrac{\partial u}{\partial y}\right)^2+\dfrac12\left(\dfrac{\partial v}{\partial y}\right)^2\\[6pt]\dfrac{\partial u}{\partial y}+\dfrac{\partial v}{\partial x}+\dfrac{\partial u}{\partial x}\dfrac{\partial u}{\partial y}+\dfrac{\partial v}{\partial x}\dfrac{\partial v}{\partial y}\end{array}\right\}

Equivalently, the strain vector is separated into its linear and second-order parts:

ε={uxvyuy+vx}+{12(ux)2+12(vx)212(uy)2+12(vy)2uxuy+vxvy}\boldsymbol\varepsilon=\left\{\begin{array}{c}\dfrac{\partial u}{\partial x}\\[4pt]\dfrac{\partial v}{\partial y}\\[4pt]\dfrac{\partial u}{\partial y}+\dfrac{\partial v}{\partial x}\end{array}\right\}+\left\{\begin{array}{c}\dfrac12\left(\dfrac{\partial u}{\partial x}\right)^2+\dfrac12\left(\dfrac{\partial v}{\partial x}\right)^2\\[6pt]\dfrac12\left(\dfrac{\partial u}{\partial y}\right)^2+\dfrac12\left(\dfrac{\partial v}{\partial y}\right)^2\\[6pt]\dfrac{\partial u}{\partial x}\dfrac{\partial u}{\partial y}+\dfrac{\partial v}{\partial x}\dfrac{\partial v}{\partial y}\end{array}\right\}

The first derivatives of the displacements are obtained from the shape functions as in Section 12.2:

ux=Buxuel=[b110b120b130b140]uel\frac{\partial u}{\partial x}=\boldsymbol B_{ux}\boldsymbol u_{el}=\begin{bmatrix}b_{11}&0&b_{12}&0&b_{13}&0&b_{14}&0\end{bmatrix}\boldsymbol u_{el}
uy=Buyuel=[b210b220b230b240]uel\frac{\partial u}{\partial y}=\boldsymbol B_{uy}\boldsymbol u_{el}=\begin{bmatrix}b_{21}&0&b_{22}&0&b_{23}&0&b_{24}&0\end{bmatrix}\boldsymbol u_{el}
vx=Bvxuel=[0b110b120b130b14]uel\frac{\partial v}{\partial x}=\boldsymbol B_{vx}\boldsymbol u_{el}=\begin{bmatrix}0&b_{11}&0&b_{12}&0&b_{13}&0&b_{14}\end{bmatrix}\boldsymbol u_{el}
vy=Bvyuel=[0b210b220b230b24]uel\frac{\partial v}{\partial y}=\boldsymbol B_{vy}\boldsymbol u_{el}=\begin{bmatrix}0&b_{21}&0&b_{22}&0&b_{23}&0&b_{24}\end{bmatrix}\boldsymbol u_{el}

Thus:

{Gx=BuxTBux+BvxTBvxGy=BuyTBuy+BvyTBvyGxy=BuxTBuy+BuyTBux+BvxTBvy+BvyTBvx\left\{\begin{aligned}\boldsymbol G_x&=\boldsymbol B_{ux}^T\boldsymbol B_{ux}+\boldsymbol B_{vx}^T\boldsymbol B_{vx}\\\boldsymbol G_y&=\boldsymbol B_{uy}^T\boldsymbol B_{uy}+\boldsymbol B_{vy}^T\boldsymbol B_{vy}\\\boldsymbol G_{xy}&=\boldsymbol B_{ux}^T\boldsymbol B_{uy}+\boldsymbol B_{uy}^T\boldsymbol B_{ux}+\boldsymbol B_{vx}^T\boldsymbol B_{vy}+\boldsymbol B_{vy}^T\boldsymbol B_{vx}\end{aligned}\right.

Then the deformation energy for one finite element is calculated:

Uel=h2AεTDεdA\boxed{U_{el}=\frac{h}{2}\int_A\boldsymbol\varepsilon^T\boldsymbol D\boldsymbol\varepsilon\,dA}

Here AA is the element area in the plane, and hh is the constant thickness used in the program.

After substitution of the strain expression in the strain energy and neglecting terms of order higher than two, the expression can be separated into an elastic part and a part that depends on the stresses. The matrix B=B0+BL\boldsymbol B=\boldsymbol B_0+\boldsymbol B_L is substituted with B0\boldsymbol B_0. The two element matrices are:

k=hg=1nGB0TDB0det(J),kG=hg=1nG(σxGx+σyGy+τxyGxy)det(J)\boldsymbol k=h\sum_{g=1}^{n_G}\boldsymbol B_0^T\boldsymbol D\boldsymbol B_0\det(\boldsymbol J),\qquad \boldsymbol k_G=-h\sum_{g=1}^{n_G}\left(\sigma_x\boldsymbol G_x+\sigma_y\boldsymbol G_y+\tau_{xy}\boldsymbol G_{xy}\right)\det(\boldsymbol J)

The matrices k\boldsymbol k and kG\boldsymbol k_G for all finite elements are assembled in the standard way to obtain the global matrices K\boldsymbol K and KG\boldsymbol K_G, after which the boundary conditions are applied.

03

MATLAB programs

To solve the eigenvalue problem, that is, to compute numerically the eigenvalues and eigenvectors, the MATLAB command eig or eigs can be used. Usually, only the smallest critical eigenvalue is of interest. The eigs command is preferable for sparse matrices.

Prior to solving the eigenvalue problem, the linear static problem must be solved to determine the stress state in the finite elements. The main program is:

main.m
% *** main ***
clear
gen
stiff
S=K\F;
stress
geomK

The gen subprogram generates the input data. The stiff subprogram generates the elastic stiffness matrix K\boldsymbol K and applies the boundary conditions, using the Q4 formulation developed in Section 9.4. The linear system is then solved. The stress subprogram computes the stresses in all finite elements, and geomK generates the geometric stiffness matrix KG\boldsymbol K_G and solves the eigenvalue problem.

In the distributed program, the robust sparse reciprocal eigenproblem KGu=μKu\boldsymbol K_G\boldsymbol u=\mu\boldsymbol K\boldsymbol u is solved and the required load multipliers are obtained from λ=1/μ\lambda=1/\mu. This is algebraically equivalent to Ku=λKGu\boldsymbol K\boldsymbol u=\lambda\boldsymbol K_G\boldsymbol u.

04

Example 1

A 0.5 m long cantilever beam with a square cross-section having a side of 20 mm20\ {\rm mm} is compressed by a force of 1 N1\ {\rm N}. Young's modulus is E=2×105 MPaE=2\times10^5\ {\rm MPa}, and Poisson's ratio is ν=0.3\nu=0.3.

The Euler buckling load is [1]:

Fcr=π2EI4L2=π22×1052044500212=27635 NF_{cr}=\frac{\pi^2EI}{4L^2}=\pi^2\frac{2\times10^5\cdot20^4}{4\cdot500^2\cdot12}=27635\ {\rm N}

The result depends on the mesh, as shown in the table below.

Mesh (height × length)MATLAB FcrF_{cr} (N)ANSYS FcrF_{cr} (N)
6 × 5030331.630352.3
8 × 10028305.628324.5
10 × 20027792.027810.4
12 × 25027723.927742.2
6 × 25027781.1
15 × 30027684.527702.7
6 × 30027748.6

The relatively slow convergence is mainly due to the use of bilinear Q4 plane-stress elements for a slender, bending-dominated member. Unlike beam elements, Q4 elements do not reproduce the bending field exactly and therefore require a relatively fine mesh. The additional results obtained with 6×2506\times250 and 6×3006\times300 elements show that, for this example, refinement along the beam length is particularly effective: even with only six elements through the height, the critical load approaches the converged value closely. This also explains why the beam elements used in Chapter 19 converge much faster for the same physical phenomenon: beam elements are specifically formulated to represent bending behaviour efficiently, whereas the Q4 plane-stress element must reproduce the same bending field through mesh refinement.

Figure 1a. First eigenmode, Fcr27700 NF_{cr}\approx27700\ {\rm N}.
Figure 1b. Second eigenmode, Fcr246900 NF_{cr}\approx246900\ {\rm N}.
Figure 1c. Third eigenmode, Fcr672200 NF_{cr}\approx672200\ {\rm N}.

05

Q8 finite element

The same buckling problem was also solved using the isoparametric Q8 element. The buckling procedure remains unchanged; only the interpolation changes from Q4 to Q8. The linear Q8 element is presented in Section 9.6, and its Total Lagrangian formulation in Section 12.3.

Mesh (height × length)Critical load [N]
1 × 827851.247
2 × 1627680.620
3 × 2527654.802
4 × 3227647.495
6 × 4027642.983
8 × 10027636.673
Euler beam solution27635

Q8 gives very good results even for relatively coarse meshes. For the 1 × 8 mesh, the difference from the Euler beam solution is approximately 0.78%; for 3 × 25, it is already below 0.1%. Q8 converges much faster than Q4 in this bending-dominated problem. The slow convergence observed previously with Q4 is therefore mainly associated with the Q4 interpolation, not with the buckling formulation.

The MATLAB program used for the Q8 buckling analysis can be downloaded below.

06

Example 2

A ring is loaded as shown in Figure 2. The distributed force is equal to 1 N/mm1\ {\rm N/mm}. The ring is free; no boundary conditions are applied. Consequently, the buckling modes are not uniquely oriented in space. If an eigenmode is rotated rigidly around the centre of the ring, the rotated shape is also an eigenmode associated with the same eigenvalue. This rotational indeterminacy explains why the eigenmodes appear in pairs with identical or nearly identical eigenvalues.

The orientation of each mode in a degenerate pair is therefore arbitrary and depends on the numerical eigensolver.

The inner diameter is 190 mm190\ {\rm mm}; the width and thickness are both 10 mm10\ {\rm mm}. Young's modulus is E=2.1×105 MPaE=2.1\times10^5\ {\rm MPa}, and Poisson's ratio is ν=0.3\nu=0.3. The mesh has 10 finite elements through the width and 120 along the circumference, giving 1320 nodes and 1200 quadrilateral Q4 finite elements.

Ring geometry and radial loading
Detail of the ring Q4 mesh and loading
Figure 2. Ring geometry, Q4 mesh and distributed radial load.

The first six eigenvectors and eigenvalues are:

Figure 3a. Mode 1. MATLAB: 732.9; ANSYS: 733.8.
Figure 3b. Mode 2. MATLAB: 732.9; ANSYS: 733.8.
Figure 3c. Mode 3. MATLAB: 1626.9; ANSYS: 1642.6.
Figure 3d. Mode 4. MATLAB: 1626.9; ANSYS: 1642.6.
Figure 3e. Mode 5. MATLAB: 2838.9; ANSYS: 2898.5.
Figure 3f. Mode 6. MATLAB: 2838.9; ANSYS: 2898.5.

07

Reference

[1] Timoshenko, S.P., Gere, J.M., Theory of Elastic Stability, McGraw-Hill, 1985.