ME 559: Finite Element Methods
John Magliaro
Estimated study time: 1 hr 45 min
Table of contents
Sources and References
Primary references — D.L. Logan, A First Course in the Finite Element Method, Cengage Learning; D.V. Hutton, Fundamentals of Finite Element Analysis, McGraw-Hill.
Online resources — MIT OCW 2.094 (Finite Element Analysis); Klaus-Jürgen Bathe, Finite Element Procedures, Prentice Hall (2nd ed.); O.C. Zienkiewicz & R.L. Taylor, The Finite Element Method (standard reference, 3 vols.); T.J.R. Hughes, The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, Dover.
Chapter 1: Introduction and the FEM Philosophy
1.1 What Is the Finite Element Method?
The finite element method (FEM) is a general numerical technique for obtaining approximate solutions to boundary-value and initial-value problems in engineering and science. Its core idea is elegant: a complex continuous domain — a loaded truss, a heat-conducting fin, a vibrating turbine blade — is subdivided into a finite number of simple subregions called elements, connected at discrete points called nodes. The governing differential equations, which cannot in general be solved analytically over the original domain, are reformulated as a system of algebraic equations over these elements. Assembling the element equations and imposing boundary conditions yields a global system that can be solved numerically to yield approximate values of the unknown field (displacement, temperature, pressure) at every node.
What sets FEM apart from other discretisation methods — finite differences, boundary element methods, spectral methods — is its natural handling of complex geometries and material heterogeneity, its systematic assembly procedure, and its solid variational foundation. The method was developed independently by structural engineers in the 1950s and applied mathematicians in the 1960s; the name “finite element method” was coined by Clough in 1960. Today it underlies virtually every commercial simulation package (ANSYS, Abaqus, COMSOL, LS-DYNA) and is central to product design across aerospace, civil, biomedical, and mechanical engineering.
1.2 The Three Fundamental Problem Classes
Virtually every physical problem amenable to FEM treatment falls into one of three classes:
Equilibrium (static) problems. The system does not evolve in time; boundary conditions are fixed. The governing equation takes the form \( \mathbf{K}\mathbf{u} = \mathbf{f} \), where \(\mathbf{K}\) is the stiffness (or conductivity) matrix, \(\mathbf{u}\) the nodal unknowns, and \(\mathbf{f}\) the load vector. Examples: static deflection of a loaded beam, steady-state temperature distribution in a fin, stress analysis of a pressurised vessel.
Propagation (transient) problems. The field evolves in time. The semi-discrete FEM equation is
\[ \mathbf{M}\ddot{\mathbf{u}} + \mathbf{C}\dot{\mathbf{u}} + \mathbf{K}\mathbf{u} = \mathbf{f}(t) \]where \(\mathbf{M}\) is the mass matrix, \(\mathbf{C}\) the damping matrix, and \(\mathbf{f}(t)\) a time-varying load. Examples: transient heat conduction, structural dynamics under impact, wave propagation.
Eigenvalue problems. One seeks natural frequencies or critical loads without specifying a particular forcing function. For free vibration:
\[ \left( \mathbf{K} - \omega^2 \mathbf{M} \right) \boldsymbol{\phi} = \mathbf{0} \]The eigenvalues \(\omega^2\) are squared natural frequencies and the eigenvectors \(\boldsymbol{\phi}\) are mode shapes. For buckling, \(\mathbf{K}_G\) (geometric stiffness) replaces \(\omega^2 \mathbf{M}\).
1.3 Review of Relevant Mechanics
1.3.1 Stress and Strain Notation
In three dimensions the stress state at a point is described by six independent components:
\[ \boldsymbol{\sigma} = \left[ \sigma_{xx},\; \sigma_{yy},\; \sigma_{zz},\; \tau_{xy},\; \tau_{yz},\; \tau_{xz} \right]^T \]The engineering strain vector is similarly:
\[ \boldsymbol{\varepsilon} = \left[ \varepsilon_{xx},\; \varepsilon_{yy},\; \varepsilon_{zz},\; \gamma_{xy},\; \gamma_{yz},\; \gamma_{xz} \right]^T \]where \(\gamma_{ij} = 2\varepsilon_{ij}\) is the engineering shear strain. For a linear elastic material (generalised Hooke’s law):
\[ \boldsymbol{\sigma} = \mathbf{D}\boldsymbol{\varepsilon} \]where \(\mathbf{D}\) is the \(6 \times 6\) constitutive (elasticity) matrix. For an isotropic material it depends only on Young’s modulus \(E\) and Poisson’s ratio \(\nu\).
1.3.2 Strain–Displacement Relations
For small deformations, the strain–displacement relations are:
\[ \varepsilon_{xx} = \frac{\partial u}{\partial x}, \quad \varepsilon_{yy} = \frac{\partial v}{\partial y}, \quad \varepsilon_{zz} = \frac{\partial w}{\partial z} \]\[ \gamma_{xy} = \frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}, \quad \gamma_{yz} = \frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}, \quad \gamma_{xz} = \frac{\partial u}{\partial z} + \frac{\partial w}{\partial x} \]In matrix form \(\boldsymbol{\varepsilon} = \mathbf{B}\mathbf{u}\), where \(\mathbf{B}\) is the strain–displacement matrix derived by differentiating the shape functions.
1.3.3 Virtual Work and Equilibrium
The principle of virtual work states that equilibrium is satisfied if, for every kinematically admissible virtual displacement \(\delta\mathbf{u}\):
\[ \int_V \delta\boldsymbol{\varepsilon}^T \boldsymbol{\sigma} \, dV = \int_V \delta\mathbf{u}^T \mathbf{b} \, dV + \int_S \delta\mathbf{u}^T \mathbf{t} \, dS \]where \(\mathbf{b}\) is the body force per unit volume and \(\mathbf{t}\) is the surface traction. This is the weak form from which FEM derives its element equations.
1.4 Overview of the FEM Pipeline
The complete FEM workflow, which this text develops chapter by chapter, consists of:
- Pre-processing: Define geometry, material properties, element type, mesh.
- Element formulation: Derive shape functions; form element stiffness \(\mathbf{k}^{(e)}\), mass \(\mathbf{m}^{(e)}\), and load \(\mathbf{f}^{(e)}\).
- Assembly: Assemble global \(\mathbf{K}\), \(\mathbf{M}\), \(\mathbf{F}\) from element contributions.
- Boundary conditions: Apply essential (displacement) BCs by elimination or penalty.
- Solution: Solve \(\mathbf{K}\mathbf{u} = \mathbf{F}\) (or the appropriate eigenvalue/transient system).
- Post-processing: Recover stresses, strains, reactions; visualise results.
Chapter 2: Spring Elements and the Direct Stiffness Method
2.1 The Spring Element
The simplest finite element is the axial spring. A single spring element has two nodes — labelled \(i\) and \(j\) — each with one degree of freedom (DOF): the axial displacement, \(u_i\) and \(u_j\). The spring has stiffness constant \(k\) (force per unit displacement).
Derivation of the spring stiffness matrix from energy.
Consider a linear spring with stiffness \(k\). The strain energy stored in the spring is:
\[ U = \frac{1}{2} k \left( u_j - u_i \right)^2 \]Expanding:
\[ U = \frac{1}{2} k \left( u_i^2 - 2u_i u_j + u_j^2 \right) \]In matrix form, with \(\mathbf{u}^{(e)} = \left[u_i, u_j\right]^T\):
\[ U = \frac{1}{2} \mathbf{u}^{(e)T} \mathbf{k}^{(e)} \mathbf{u}^{(e)} \]Matching coefficients:
\[ \mathbf{k}^{(e)} = k \left[ \begin{array}{rr} 1 & -1 \\ -1 & 1 \end{array} \right] \]The nodal force vector follows from Castigliano’s theorem: \(f_i = \partial U / \partial u_i = k(u_i - u_j)\) and \(f_j = \partial U / \partial u_j = k(u_j - u_i)\), giving \(\mathbf{f}^{(e)} = \mathbf{k}^{(e)} \mathbf{u}^{(e)}\).
The element equilibrium equation is therefore:
\[ k \left[ \begin{array}{rr} 1 & -1 \\ -1 & 1 \end{array} \right] \left\{ \begin{array}{c} u_i \\ u_j \end{array} \right\} = \left\{ \begin{array}{c} f_i \\ f_j \end{array} \right\} \]Note that \(\mathbf{k}^{(e)}\) is singular because a rigid body displacement (both nodes moving equally) produces no force. The matrix becomes non-singular only after boundary conditions are applied.
2.2 The Direct Stiffness Method
The direct stiffness method assembles the global stiffness matrix by placing each element stiffness coefficient into the appropriate position determined by the element’s node numbering. If element \((e)\) connects global node \(p\) to global node \(q\), then:
\[ K_{pp} \mathrel{+}= k^{(e)}, \quad K_{qq} \mathrel{+}= k^{(e)}, \quad K_{pq} \mathrel{+}= -k^{(e)}, \quad K_{qp} \mathrel{+}= -k^{(e)} \]Global assembly from element contributions.
For a structure with \(n\) DOFs and \(N_e\) elements, the global strain energy is:
\[ U = \sum_{e=1}^{N_e} U^{(e)} = \sum_{e=1}^{N_e} \frac{1}{2} \mathbf{u}^{(e)T} \mathbf{k}^{(e)} \mathbf{u}^{(e)} \]Define the Boolean connectivity matrix \(\mathbf{L}^{(e)}\) such that \(\mathbf{u}^{(e)} = \mathbf{L}^{(e)} \mathbf{U}\), where \(\mathbf{U}\) is the global displacement vector. Substituting:
\[ U = \frac{1}{2} \mathbf{U}^T \left( \sum_{e=1}^{N_e} \mathbf{L}^{(e)T} \mathbf{k}^{(e)} \mathbf{L}^{(e)} \right) \mathbf{U} = \frac{1}{2} \mathbf{U}^T \mathbf{K} \mathbf{U} \]Therefore \(\mathbf{K} = \sum_{e} \mathbf{L}^{(e)T} \mathbf{k}^{(e)} \mathbf{L}^{(e)}\), which is precisely the “scatter-and-add” operation of the direct stiffness assembly.
2.3 Applying Boundary Conditions
After assembly, the global system \(\mathbf{K}\mathbf{U} = \mathbf{F}\) is singular. Boundary conditions (BCs) are imposed to remove rigid-body modes:
Elimination method: Rows and columns corresponding to known (zero or specified) displacements are removed from the system, reducing it to a non-singular reduced system.
Penalty method: Add a large number \(\alpha \gg K_{max}\) to the diagonal entry corresponding to the constrained DOF, and set the corresponding load to \(\alpha u_{prescribed}\). This is less elegant numerically but convenient for implementation.
Example 2.1: Two-Spring Assembly.
Two springs in series: spring 1 has stiffness \(k_1 = 500\) N/m connecting node 1 to node 2; spring 2 has stiffness \(k_2 = 300\) N/m connecting node 2 to node 3. Node 1 is fixed (\(U_1 = 0\)). A force \(F = 200\) N is applied at node 3.
Element stiffness matrices:
\[ \mathbf{k}^{(1)} = 500 \left[ \begin{array}{rr} 1 & -1 \\ -1 & 1 \end{array} \right] \text{ (DOFs 1,2)}, \quad \mathbf{k}^{(2)} = 300 \left[ \begin{array}{rr} 1 & -1 \\ -1 & 1 \end{array} \right] \text{ (DOFs 2,3)} \]Global stiffness matrix (before BCs):
\[ \mathbf{K} = \left[ \begin{array}{rrr} 500 & -500 & 0 \\ -500 & 800 & -300 \\ 0 & -300 & 300 \end{array} \right] \]Load vector: \(\mathbf{F} = \left[R_1,\; 0,\; 200\right]^T\), where \(R_1\) is the unknown reaction at node 1.
Applying \(U_1 = 0\) by elimination (remove row 1 and column 1):
\[ \left[ \begin{array}{rr} 800 & -300 \\ -300 & 300 \end{array} \right] \left\{ \begin{array}{c} U_2 \\ U_3 \end{array} \right\} = \left\{ \begin{array}{c} 0 \\ 200 \end{array} \right\} \]Determinant \(= 800 \times 300 - 300^2 = 240000 - 90000 = 150000\).
\[ U_2 = \frac{1}{150000}\left( 300 \times 0 + 300 \times 200 \right) = 0.4 \text{ m}, \quad U_3 = \frac{1}{150000}\left( 300 \times 200 + 800 \times 200 \right) \]More carefully: \(U_3 = (800 \times 200)/(150000 - \text{cross terms})\). Using Cramer’s rule:
\[ U_2 = \frac{(300)(200)}{150000} = 0.40 \text{ m}, \qquad U_3 = \frac{(800)(200)}{150000} = 1.067 \text{ m} \]Reaction: \(R_1 = K_{11}U_1 + K_{12}U_2 + K_{13}U_3 = 0 + (-500)(0.40) + 0 = -200\) N (in equilibrium with the applied 200 N).
2.4 Multiple Degrees of Freedom and Symmetry
The global stiffness matrix \(\mathbf{K}\) is always:
- Symmetric: \(K_{ij} = K_{ji}\) (follows from the symmetry of each \(\mathbf{k}^{(e)}\)).
- Positive semi-definite before BCs; positive definite after sufficient BCs.
- Banded (sparse): Non-zero entries are confined to a band around the diagonal. The half-bandwidth equals the maximum difference in node numbers sharing an element, plus one. Efficient solvers exploit this sparsity.
Chapter 3: Bar and Truss Elements
3.1 The Bar Element
A bar (rod) element resists only axial force. Unlike the spring element (which models a concentrated stiffness), the bar element has distributed stiffness governed by its cross-sectional area \(A\), Young’s modulus \(E\), and length \(L\).
3.1.1 Shape Functions for the Bar Element
Shape functions (linear interpolation). For a two-node bar element with nodes at \(x = 0\) (node \(i\)) and \(x = L\) (node \(j\)), the displacement field is approximated as:
\[ u(x) = N_i(x)\, u_i + N_j(x)\, u_j \]where the shape functions (also called basis functions or interpolation functions) are:
\[ N_i(x) = 1 - \frac{x}{L}, \qquad N_j(x) = \frac{x}{L} \]Properties: (1) \(N_i + N_j = 1\) (partition of unity); (2) \(N_i = 1\) at node \(i\), \(N_i = 0\) at node \(j\), and vice versa (Kronecker delta property).
In matrix form: \(u(x) = \mathbf{N}(x)\,\mathbf{u}^{(e)}\) where \(\mathbf{N} = \left[N_i,\; N_j\right]\).
3.1.2 Strain–Displacement for the Bar
The axial strain is:
\[ \varepsilon = \frac{du}{dx} = \frac{d\mathbf{N}}{dx}\mathbf{u}^{(e)} = \mathbf{B}\mathbf{u}^{(e)} \]For the linear bar:
\[ \mathbf{B} = \frac{d\mathbf{N}}{dx} = \left[ -\frac{1}{L}, \quad \frac{1}{L} \right] \]The axial stress follows from Hooke’s law: \(\sigma = E\varepsilon = E\mathbf{B}\mathbf{u}^{(e)}\).
3.1.3 Bar Element Stiffness Matrix from Minimum Potential Energy
Principle of Minimum Potential Energy. Among all kinematically admissible displacement fields, the one that satisfies equilibrium minimises the total potential energy:
\[ \Pi = U - W = \frac{1}{2}\int_V \boldsymbol{\varepsilon}^T \mathbf{D} \boldsymbol{\varepsilon}\, dV - \mathbf{U}^T \mathbf{F} \]where \(U\) is the strain energy and \(W\) is the work done by external forces. The stationary condition \(\delta\Pi = 0\) yields the finite element equilibrium equations \(\mathbf{K}\mathbf{U} = \mathbf{F}\).
Bar stiffness matrix from strain energy.
The strain energy in a bar element is:
\[ U^{(e)} = \frac{1}{2}\int_0^L EA\, \varepsilon^2\, dx = \frac{1}{2}\int_0^L EA\, (\mathbf{B}\mathbf{u}^{(e)})^T (\mathbf{B}\mathbf{u}^{(e)})\, dx = \frac{1}{2}\mathbf{u}^{(e)T} \left( \int_0^L EA\, \mathbf{B}^T \mathbf{B}\, dx \right) \mathbf{u}^{(e)} \]Therefore:
\[ \mathbf{k}^{(e)} = \int_0^L EA\, \mathbf{B}^T \mathbf{B}\, dx \]For constant \(E\) and \(A\), with \(\mathbf{B} = \left[-1/L,\; 1/L\right]\):
\[ \mathbf{B}^T \mathbf{B} = \frac{1}{L^2}\left[ \begin{array}{rr} 1 & -1 \\ -1 & 1 \end{array} \right] \]Integrating over length \(L\):
\[ \mathbf{k}^{(e)} = \frac{EA}{L} \left[ \begin{array}{rr} 1 & -1 \\ -1 & 1 \end{array} \right] \]This is the classical bar element stiffness matrix. Note its structural identity with the spring matrix, with the replacement \(k \to EA/L\).
Castigliano’s Second Theorem. For a linearly elastic structure, the displacement in the direction of a generalised force \(F_i\) at the point of application equals:
\[ u_i = \frac{\partial U}{\partial F_i} \]This theorem provides an alternative route to deriving element force–displacement relationships and verifying FEM results against analytical solutions.
3.2 Truss Elements
A truss element is a bar element oriented at an arbitrary angle in 2D or 3D space. Each node has two DOFs in 2D (\(u\), \(v\)) or three in 3D (\(u\), \(v\), \(w\)).
3.2.1 Local and Global Coordinate Systems
Let the element make angle \(\theta\) with the global \(x\)-axis. The local axial DOFs \(\bar{u}_i\), \(\bar{u}_j\) are related to global DOFs by the transformation:
\[ \bar{u}_i = u_i \cos\theta + v_i \sin\theta, \qquad \bar{u}_j = u_j \cos\theta + v_j \sin\theta \]In matrix form: \(\bar{\mathbf{u}}^{(e)} = \mathbf{T}\mathbf{u}^{(e)}\) where the transformation (rotation) matrix is:
\[ \mathbf{T} = \left[ \begin{array}{cccc} c & s & 0 & 0 \\ 0 & 0 & c & s \end{array} \right], \qquad c = \cos\theta, \quad s = \sin\theta \]3.2.2 Element Stiffness in Global Coordinates
Since \(\mathbf{k}^{(e)} = \frac{EA}{L}\left[\begin{smallmatrix}1&-1\\-1&1\end{smallmatrix}\right]\) in local coordinates, the global element stiffness is:
\[ \mathbf{K}^{(e)} = \mathbf{T}^T \mathbf{k}^{(e)} \mathbf{T} = \frac{EA}{L} \left[ \begin{array}{cccc} c^2 & cs & -c^2 & -cs \\ cs & s^2 & -cs & -s^2 \\ -c^2 & -cs & c^2 & cs \\ -cs & -s^2 & cs & s^2 \end{array} \right] \]This \(4 \times 4\) matrix is the standard plane truss element stiffness in global coordinates.
3.2.3 Elemental Stress and Strain Recovery
After solving for global nodal displacements \(\mathbf{U}\), element displacements in local coordinates are recovered:
\[ \bar{\mathbf{u}}^{(e)} = \mathbf{T}\mathbf{u}^{(e)} \]The axial strain and stress in element \((e)\) are:
\[ \varepsilon^{(e)} = \frac{\bar{u}_j - \bar{u}_i}{L}, \qquad \sigma^{(e)} = E\varepsilon^{(e)} \]Example 3.1: Two-Bar Plane Truss.
A plane truss has two elements meeting at node 3. Element 1 connects node 1 (fixed pin) to node 3, length \(L_1 = 1\) m, \(E_1A_1 = 200\) kN; it is horizontal (\(\theta_1 = 0°\)). Element 2 connects node 2 (roller, \(v_2 = 0\)) to node 3, length \(L_2 = \sqrt{2}\) m, \(E_2A_2 = 200\) kN; it is at \(\theta_2 = 45°\). A downward force of 100 kN is applied at node 3.
For element 1 (\(c=1, s=0\), \(EA/L = 200\)):
\[ \mathbf{K}^{(1)} = 200 \left[ \begin{array}{cccc} 1 & 0 & -1 & 0 \\ 0 & 0 & 0 & 0 \\ -1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 \end{array} \right] \quad \text{DOFs: } u_1, v_1, u_3, v_3 \]For element 2 (\(c=1/\sqrt{2}, s=1/\sqrt{2}\), \(EA/L = 200/\sqrt{2} = 141.4\) kN/m, let’s call it \(k_2 = 141.4\)):
\[ \mathbf{K}^{(2)} = k_2 \left[ \begin{array}{cccc} 1/2 & 1/2 & -1/2 & -1/2 \\ 1/2 & 1/2 & -1/2 & -1/2 \\ -1/2 & -1/2 & 1/2 & 1/2 \\ -1/2 & -1/2 & 1/2 & 1/2 \end{array} \right] \quad \text{DOFs: } u_2, v_2, u_3, v_3 \]After applying BCs (\(u_1=v_1=0\), \(v_2=0\)) and \(F_{3y}=-100\) kN, the free DOFs are \(u_2, u_3, v_3\). Assembling and solving yields the nodal displacements, from which element stresses are recovered.
Chapter 4: Beam and Frame Elements
4.1 Euler–Bernoulli Beam Theory
The Euler–Bernoulli beam theory assumes that plane sections remain plane and perpendicular to the neutral axis after bending (no shear deformation). For a beam with bending stiffness \(EI\), the governing differential equation is:
\[ EI \frac{d^4 v}{dx^4} = q(x) \]where \(v(x)\) is the transverse displacement and \(q(x)\) is the distributed transverse load. The bending moment is \(M = EI \, d^2v/dx^2\) and the shear force is \(V = EI \, d^3v/dx^3\).
4.2 Beam Element DOFs and Hermite Shape Functions
A two-node beam element has four DOFs: transverse displacement \(v_i\), rotation \(\theta_i\) at node \(i\), and \(v_j\), \(\theta_j\) at node \(j\). Let \(\theta = dv/dx\). The element DOF vector is \(\mathbf{d}^{(e)} = \left[v_i,\; \theta_i,\; v_j,\; \theta_j\right]^T\).
Hermite shape functions from boundary conditions.
Assume a cubic displacement field \(v(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3\), which has four free constants matching four element DOFs. The four boundary conditions are:
\[ v(0) = v_i, \quad v'(0) = \theta_i, \quad v(L) = v_j, \quad v'(L) = \theta_j \]From \(v(0) = v_i\): \(a_0 = v_i\). From \(v'(0) = \theta_i\): \(a_1 = \theta_i\). From \(v(L) = v_j\): \(v_i + \theta_i L + a_2 L^2 + a_3 L^3 = v_j\). From \(v'(L) = \theta_j\): \(\theta_i + 2a_2 L + 3a_3 L^2 = \theta_j\).
Solving the last two equations simultaneously:
\[ a_2 = \frac{3(v_j - v_i)}{L^2} - \frac{2\theta_i + \theta_j}{L}, \qquad a_3 = \frac{2(v_i - v_j)}{L^3} + \frac{\theta_i + \theta_j}{L^2} \]Substituting back and collecting coefficients, the displacement field becomes \(v(x) = H_1 v_i + H_2 \theta_i + H_3 v_j + H_4 \theta_j\) where the Hermite shape functions are:
\[ H_1 = 1 - \frac{3x^2}{L^2} + \frac{2x^3}{L^3}, \qquad H_2 = x - \frac{2x^2}{L} + \frac{x^3}{L^2} \]\[ H_3 = \frac{3x^2}{L^2} - \frac{2x^3}{L^3}, \qquad H_4 = -\frac{x^2}{L} + \frac{x^3}{L^2} \]These satisfy the Kronecker delta property for both displacement and slope DOFs.
4.3 Beam Element Stiffness Matrix
The curvature–displacement relation is \(\kappa = d^2v/dx^2 = \mathbf{B}_{beam}\mathbf{d}^{(e)}\) where:
\[ \mathbf{B}_{beam} = \left[ \frac{d^2 H_1}{dx^2}, \quad \frac{d^2 H_2}{dx^2}, \quad \frac{d^2 H_3}{dx^2}, \quad \frac{d^2 H_4}{dx^2} \right] \]The element stiffness matrix is:
\[ \mathbf{k}^{(e)} = \int_0^L EI\, \mathbf{B}_{beam}^T \mathbf{B}_{beam}\, dx = \frac{EI}{L^3} \left[ \begin{array}{cccc} 12 & 6L & -12 & 6L \\ 6L & 4L^2 & -6L & 2L^2 \\ -12 & -6L & 12 & -6L \\ 6L & 2L^2 & -6L & 4L^2 \end{array} \right] \]This is the Euler–Bernoulli beam stiffness matrix, one of the most important results in structural FEM.
4.4 Consistent Nodal Loads for Distributed Loads
Consistent nodal loads. When a distributed load \(q(x)\) acts over a beam element, the equivalent nodal load vector is obtained by integrating the product of the load and the shape functions:
\[ \mathbf{f}^{(e)} = \int_0^L q(x)\, \mathbf{N}^T(x)\, dx \]where \(\mathbf{N} = \left[H_1,\; H_2,\; H_3,\; H_4\right]\). This is called the consistent nodal load vector because it is derived using the same shape functions as the stiffness matrix, preserving variational consistency.
For a uniform distributed load \(q_0\) over the full length \(L\):
\[ \mathbf{f}^{(e)} = \frac{q_0 L}{12} \left[ 6,\quad L,\quad 6,\quad -L \right]^T \]The end moments \(q_0 L^2/12\) are the “fixed-end moments” familiar from structural analysis.
Example 4.1: Single-Span Beam with Uniform Load.
A simply supported beam of span \(L = 4\) m, \(EI = 10000\) N·m², carries a uniform load \(q_0 = 500\) N/m. Using one element:
DOFs: \(v_1 = 0\) (pin), \(\theta_1\) free; \(v_2 = 0\) (roller), \(\theta_2\) free.
After applying \(v_1 = v_2 = 0\), the reduced system involves only \(\theta_1\) and \(\theta_2\):
\[ \frac{EI}{L^3}\left[ \begin{array}{cc} 4L^2 & 2L^2 \\ 2L^2 & 4L^2 \end{array} \right] \left\{ \begin{array}{c} \theta_1 \\ \theta_2 \end{array} \right\} = \frac{q_0 L}{12} \left\{ \begin{array}{c} L \\ -L \end{array} \right\} \]Simplifying:
\[ \frac{EI}{L} \left[ \begin{array}{cc} 4 & 2 \\ 2 & 4 \end{array} \right] \left\{ \begin{array}{c} \theta_1 \\ \theta_2 \end{array} \right\} = \frac{q_0 L^2}{12} \left\{ \begin{array}{c} 1 \\ -1 \end{array} \right\} \]By symmetry, \(\theta_1 = -\theta_2 = \theta\). From the first equation:
\[ \frac{EI}{L}(4\theta - 2\theta) = \frac{q_0 L^2}{12} \implies \theta = \frac{q_0 L^3}{24 EI} \]The exact solution is \(\theta_1 = q_0 L^3 / (24EI)\). The FEM reproduces the exact result because a cubic polynomial is the exact solution for a beam under uniform load.
4.5 Frame Elements
A plane frame element combines bar (axial) DOFs with beam (bending) DOFs. Each node has three DOFs: \(u\) (axial), \(v\) (transverse), and \(\theta\) (rotation). In local coordinates the element stiffness is block diagonal:
\[ \mathbf{k}_{local}^{(e)} = \left[ \begin{array}{cc} \mathbf{k}_{bar} & \mathbf{0} \\ \mathbf{0} & \mathbf{k}_{beam} \end{array} \right] \]where the \(2\times2\) bar stiffness and \(4\times4\) beam stiffness are as derived above. In global coordinates, a \(3\times3\) rotation matrix transforms each node’s DOFs, giving a \(6\times6\) global frame element stiffness matrix.
The rotation matrix for each node is:
\[ \mathbf{R} = \left[ \begin{array}{ccc} c & s & 0 \\ -s & c & 0 \\ 0 & 0 & 1 \end{array} \right], \qquad c = \cos\theta, \quad s = \sin\theta \]and the full transformation is \(\mathbf{T} = \text{diag}(\mathbf{R}, \mathbf{R})\), so \(\mathbf{K}^{(e)} = \mathbf{T}^T \mathbf{k}_{local}^{(e)} \mathbf{T}\).
Example 4.2: L-Shaped Frame.
An L-shaped frame has element 1 (horizontal, length 3 m) and element 2 (vertical, length 3 m), both with \(EA = 1 \times 10^6\) N, \(EI = 5000\) N·m². A horizontal force of 10 kN is applied at the corner joint (node 2). Node 1 and node 3 are fully fixed.
Element 1 is horizontal: \(\theta_1 = 0\), \(c=1\), \(s=0\). Element 2 is vertical: \(\theta_2 = 90°\), \(c=0\), \(s=1\). After transformation and assembly, the global stiffness couples all six DOFs at node 2. Boundary conditions eliminate DOFs at nodes 1 and 3. The resulting \(3 \times 3\) system at node 2 (DOFs \(U_2, V_2, \Theta_2\)) is solved to obtain the deflected shape.
Chapter 5: Galerkin Weighted Residual Method
5.1 Weighted Residual Methods: Overview
The direct stiffness method and energy approaches are intuitive for structural problems where an energy functional is available. For problems without a clear energy principle — such as convection-dominated heat transfer, fluid flow, or electromagnetic fields — the method of weighted residuals provides a more general framework.
Given a differential equation \(\mathcal{L}(u) = f\) on domain \(\Omega\) with BCs on \(\partial\Omega\), an approximate solution \(\tilde{u} = \sum_j c_j \phi_j\) is sought. The residual is \(R = \mathcal{L}(\tilde{u}) - f \neq 0\). The weighted residual condition demands:
\[ \int_\Omega w_i \, R \, d\Omega = 0, \qquad i = 1, 2, \ldots, n \]Different choices of weight functions \(w_i\) give different methods: Galerkin (\(w_i = \phi_i\)), Petrov-Galerkin (different test and trial spaces), collocation (Dirac deltas), least squares, and subdomain methods.
5.2 The Galerkin Approach
The Galerkin method sets the weight functions equal to the approximation basis functions: \(w_i = N_i\), the same shape functions used to interpolate the unknown. This choice is not arbitrary — it produces symmetric stiffness matrices for self-adjoint operators and has strong variational justification.
Galerkin weak form equivalence to strong form. For a self-adjoint elliptic boundary-value problem, if the trial function \(\tilde{u}\) satisfies essential boundary conditions and the Galerkin weighted residual equations, then \(\tilde{u}\) converges to the exact solution \(u\) as the mesh is refined (in the energy norm). Moreover, the Galerkin weak form is equivalent to the strong (classical) differential equation plus natural boundary conditions, provided sufficient regularity.
5.3 Galerkin Weak Form for the Bar Element
Consider the bar element governed by:
\[ \frac{d}{dx}\left( EA \frac{du}{dx} \right) + b = 0 \quad \text{on } [0, L] \]with essential BC \(u(0) = 0\) and natural BC \(EA \, du/dx|_{x=L} = P\) (applied force).
Galerkin weak form for the bar element.
Multiply the strong form by a test function \(w\) (satisfying homogeneous essential BCs) and integrate:
\[ \int_0^L w \frac{d}{dx}\left( EA \frac{du}{dx} \right) dx + \int_0^L w\, b\, dx = 0 \]Integrate by parts (the term involving second derivatives):
\[ \left[ w \, EA \frac{du}{dx} \right]_0^L - \int_0^L \frac{dw}{dx} EA \frac{du}{dx}\, dx + \int_0^L w\, b\, dx = 0 \]The boundary term evaluates to \(w(L) \cdot P - w(0) \cdot (\text{reaction})\). Since \(w(0) = 0\) (homogeneous essential BC), the reaction drops out. The weak form is:
\[ \int_0^L EA \frac{dw}{dx} \frac{du}{dx}\, dx = \int_0^L w\, b\, dx + w(L)\, P \]Setting \(w = N_i\) and \(u \approx \sum_j N_j u_j\), this yields:
\[ \sum_j \left( \int_0^L EA \frac{dN_i}{dx} \frac{dN_j}{dx}\, dx \right) u_j = \int_0^L N_i\, b\, dx + N_i(L)\, P \]In matrix form: \(\mathbf{k}^{(e)} \mathbf{u}^{(e)} = \mathbf{f}^{(e)}\), where \(k_{ij} = \int_0^L EA \, N'_i N'_j \, dx\) — identical to the energy-derived bar stiffness matrix. Integration by parts transfers one derivative from the unknown \(u\) to the test function \(w\), reducing the smoothness requirements on the approximation and naturally incorporating the Neumann (natural) BC.
5.4 Galerkin Method Applied to 1D Heat Conduction
The steady-state heat equation with internal generation \(Q\) is:
\[ -\frac{d}{dx}\left( k \frac{dT}{dx} \right) = Q \quad \text{on } [0, L] \]Galerkin weak form for 1D heat conduction.
Multiplying by test function \(w\) and integrating over \([0, L]\):
\[ -\int_0^L w \frac{d}{dx}\left( k \frac{dT}{dx} \right) dx = \int_0^L w\, Q\, dx \]Integration by parts:
\[ \int_0^L k \frac{dw}{dx} \frac{dT}{dx}\, dx - \left[ w\, k\frac{dT}{dx} \right]_0^L = \int_0^L w\, Q\, dx \]The natural boundary condition at a convective surface is \(-k \, dT/dx|_{x=L} = h(T_L - T_\infty)\) (Newton cooling). Substituting:
\[ \int_0^L k \frac{dw}{dx} \frac{dT}{dx}\, dx + h\, w(L)\, T(L) = \int_0^L w\, Q\, dx + h\, T_\infty\, w(L) \]This produces element conductivity matrix \(\mathbf{k}_c\), convection matrix \(\mathbf{h}^{(e)}\), and load vector contributions — all derived systematically from a single weak form statement.
Chapter 6: Heat Transfer by FEM
6.1 1D Heat Conduction: Element Formulation
For a two-node element \([x_i, x_j]\) with linear shape functions, the element conductivity matrix is:
\[ \mathbf{k}_c^{(e)} = \int_{x_i}^{x_j} k\, \mathbf{B}^T \mathbf{B}\, dx = \frac{kA}{L} \left[ \begin{array}{rr} 1 & -1 \\ -1 & 1 \end{array} \right] \]where \(k\) is thermal conductivity (W/m·K) and \(A\) is cross-sectional area. Note the structural identity with the bar stiffness matrix, with \(EA/L \to kA/L\).
The heat source (load) vector for uniform generation \(Q\) (W/m³):
\[ \mathbf{f}_Q^{(e)} = \int_{x_i}^{x_j} Q\, A\, \mathbf{N}^T\, dx = \frac{QAL}{2} \left\{ \begin{array}{c} 1 \\ 1 \end{array} \right\} \]6.1.1 Boundary Conditions in Heat Transfer FEM
Three types of thermal boundary conditions arise:
Essential (Dirichlet): Prescribed temperature \(T = T_0\). Applied by the elimination or penalty method, exactly as for displacement BCs.
Natural (Neumann): Prescribed heat flux \(q_n = -k \, dT/dn\). Appears in the natural boundary condition of the weak form; simply add \(q_n A\) to the nodal load.
Convection (Robin): \(q_n = h(T - T_\infty)\) on the boundary. Adds to both the stiffness matrix (convective conductance) and the load vector (heat input from ambient).
For a convection boundary at node \(j\), the additional terms are:
\[ \mathbf{k}_{conv} = hA_s \left[ \begin{array}{cc} 0 & 0 \\ 0 & 1 \end{array} \right], \qquad \mathbf{f}_{conv} = hA_s T_\infty \left\{ \begin{array}{c} 0 \\ 1 \end{array} \right\} \]where \(A_s\) is the surface area at the node.
Example 6.1: 1D Heat Conduction Rod.
A rod of length \(L = 0.3\) m, cross-section \(A = 1 \times 10^{-4}\) m², \(k = 50\) W/m·K. Left end is maintained at \(T_1 = 100°\)C. Right end has convection: \(h = 200\) W/m²·K, \(T_\infty = 20°\)C. No internal generation. Use two equal elements.
Element length: \(\ell = 0.15\) m. \(kA/\ell = 50 \times 10^{-4}/0.15 = 3.333 \times 10^{-2}\) W/K = 33.33 mW/K.
Element conductivity matrices (both equal):
\[ \mathbf{k}_c = 33.33 \left[ \begin{array}{rr} 1 & -1 \\ -1 & 1 \end{array} \right] \text{ mW/K} \]Global conductivity matrix (3 nodes):
\[ \mathbf{K}_c = 33.33 \left[ \begin{array}{rrr} 1 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 1 \end{array} \right] \text{ mW/K} \]Convection at node 3: \(h A_s = 200 \times 10^{-4} = 20\) mW/K.
Modified stiffness: \(K_{33} \mathrel{+}= 20\), so \(K_{33} = 33.33 + 20 = 53.33\) mW/K.
Load vector: \(\mathbf{F} = \left[0,\; 0,\; h A_s T_\infty\right]^T = \left[0,\; 0,\; 0.4\right]^T\) W.
Apply \(T_1 = 100\)°C (eliminate row/column 1). Reduced \(2 \times 2\) system:
\[ 33.33 \left[ \begin{array}{rr} 2 & -1 \\ -1 & 1.60 \end{array} \right] \left\{ \begin{array}{c} T_2 \\ T_3 \end{array} \right\} = \left\{ \begin{array}{c} 33.33 \times 100 \\ 0.4 \end{array} \right\} + \left\{ \begin{array}{c} 0 \\ 400 \end{array} \right\} \](The 400 mW comes from \(hA_sT_\infty\).) Solving: \(T_2 \approx 72.5\)°C, \(T_3 \approx 57.6\)°C. The analytical solution for this configuration gives very similar results; the two-element model captures the approximate exponential temperature profile.
6.2 Transient Heat Transfer
For transient problems \((\rho c \, \partial T/\partial t = \nabla \cdot (k \nabla T) + Q)\), the FEM discretisation yields:
\[ \mathbf{C}\dot{\mathbf{T}} + \mathbf{K}_c \mathbf{T} = \mathbf{F} \]where \(\mathbf{C}\) is the heat capacity matrix with element entries \(C_{ij}^{(e)} = \int \rho c \, N_i N_j \, dV\), giving for linear elements:
\[ \mathbf{c}^{(e)} = \frac{\rho c A L}{6} \left[ \begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right] \]Time integration is performed by finite differences (backward Euler, Crank–Nicolson, or higher-order methods).
Implementation note (MATLAB pseudocode for 1D heat FEM).
% Assemble conductivity matrix
K = zeros(n_nodes);
F = zeros(n_nodes, 1);
for e = 1:n_elements
nodes = connectivity(e, :); % [i, j]
k_e = kA/L_e * [1 -1; -1 1];
K(nodes, nodes) = K(nodes, nodes) + k_e;
F(nodes) = F(nodes) + Q*A*L_e/2 * [1; 1];
end
% Apply convection at right boundary
K(end,end) = K(end,end) + h*As;
F(end) = F(end) + h*As*T_inf;
% Apply essential BC: T(1) = T_prescribed
K_red = K(2:end, 2:end);
F_red = F(2:end) - K(2:end, 1)*T_prescribed;
T_free = K_red \ F_red;
Chapter 7: Isoparametric Formulation and Higher-Order Elements
7.1 Motivation for Isoparametric Elements
Real structures have curved boundaries, non-uniform element sizes, and distorted shapes. The isoparametric formulation elegantly handles these complications by using the same shape functions to interpolate both the geometry and the field variable.
Isoparametric mapping. An element is isoparametric if the same shape functions \(N_i(\xi)\) used to interpolate the unknown field are also used to map from the natural (reference) coordinate \(\xi \in [-1, 1]\) to the physical coordinate \(x\):
\[ x(\xi) = \sum_{i=1}^n N_i(\xi)\, x_i, \qquad u(\xi) = \sum_{i=1}^n N_i(\xi)\, u_i \]The Jacobian of the mapping is \(J = dx/d\xi\). Integrals in physical coordinates are transformed to integrals in natural coordinates via \(dx = J\, d\xi\). For a 2D element: \(dx\,dy = \det(\mathbf{J})\, d\xi\, d\eta\) where \(\mathbf{J}\) is the \(2 \times 2\) Jacobian matrix.
7.2 Natural Coordinates for 1D Elements
For a 1D bar element, the natural coordinate \(\xi \in [-1, 1]\) maps to physical coordinate:
\[ x = \frac{1-\xi}{2} x_i + \frac{1+\xi}{2} x_j = \frac{x_i + x_j}{2} + \frac{x_j - x_i}{2}\xi \]The Jacobian is \(J = (x_j - x_i)/2 = L/2\).
Shape functions in natural coordinates:
\[ N_i(\xi) = \frac{1-\xi}{2}, \qquad N_j(\xi) = \frac{1+\xi}{2} \]Strain–displacement matrix:
\[ \mathbf{B} = \frac{d\mathbf{N}}{dx} = \frac{1}{J}\frac{d\mathbf{N}}{d\xi} = \frac{1}{L}\left[-1,\quad 1\right] \]— identical to before, confirming consistency.
7.3 Higher-Order 1D Elements
Higher-order shape functions. A quadratic (3-node) 1D element has nodes at \(\xi = -1\), \(\xi = 0\), \(\xi = +1\) with Lagrangian shape functions:
\[ N_1(\xi) = \frac{\xi(\xi - 1)}{2}, \quad N_2(\xi) = 1 - \xi^2, \quad N_3(\xi) = \frac{\xi(\xi + 1)}{2} \]A cubic (4-node) element (nodes at \(\xi = -1, -1/3, 1/3, 1\)) uses Lagrange interpolation through four points. Higher-order elements converge faster with mesh refinement for smooth solutions.
7.4 Gaussian Quadrature
Exact integration of complex expressions (products of shape function derivatives and the Jacobian) is rarely possible analytically. Gaussian quadrature provides exact integration for polynomials of degree \(2n-1\) using only \(n\) integration points.
Gaussian quadrature exactness. An \(n\)-point Gauss–Legendre quadrature rule integrates polynomials of degree up to \(2n-1\) exactly:
\[ \int_{-1}^{1} f(\xi)\, d\xi \approx \sum_{i=1}^{n} w_i\, f(\xi_i) \]The Gauss points \(\xi_i\) are the zeros of the Legendre polynomial \(P_n(\xi)\), and the weights \(w_i\) are determined by the condition of exact integration through degree \(2n-1\).
Gaussian quadrature (key points and weights).
\(n = 1\): \(\xi_1 = 0\), \(w_1 = 2\). Exact for degree 1 (linear) polynomials.
\(n = 2\): \(\xi_{1,2} = \pm 1/\sqrt{3}\), \(w_1 = w_2 = 1\). Exact for degree 3.
\(n = 3\): \(\xi_1 = 0\) (\(w = 8/9\)), \(\xi_{2,3} = \pm\sqrt{3/5}\) (\(w = 5/9\)). Exact for degree 5.
For 2D quadrilateral elements, the product rule applies:
\[ \int_{-1}^{1}\int_{-1}^{1} f(\xi, \eta)\, d\xi\, d\eta \approx \sum_{i=1}^{n}\sum_{j=1}^{n} w_i w_j\, f(\xi_i, \eta_j) \]Example 7.1: Gaussian Quadrature for Bar Stiffness.
Evaluate \(\int_{-1}^{1} E A B^T B J\, d\xi\) for a linear bar using 1-point Gauss rule.
With \(\mathbf{B} = \left[-1/L, 1/L\right]\), \(J = L/2\):
Integrand at \(\xi_1 = 0\): \(EA \cdot (1/L^2) \left[\begin{smallmatrix}1&-1\\-1&1\end{smallmatrix}\right] \cdot L/2\) = \(EA/(2L)\left[\begin{smallmatrix}1&-1\\-1&1\end{smallmatrix}\right]\).
Multiplied by weight \(w_1 = 2\): result \(= EA/L \left[\begin{smallmatrix}1&-1\\-1&1\end{smallmatrix}\right]\). Matches the analytical result exactly because the integrand is constant (degree 0 in \(\xi\)).
7.5 2D Quadrilateral Elements
For a bilinear four-node quadrilateral (Q4) element with nodes in natural coordinates \((\xi, \eta) \in [-1,1]^2\):
\[ N_1 = \frac{(1-\xi)(1-\eta)}{4}, \quad N_2 = \frac{(1+\xi)(1-\eta)}{4}, \quad N_3 = \frac{(1+\xi)(1+\eta)}{4}, \quad N_4 = \frac{(1-\xi)(1+\eta)}{4} \]The Jacobian matrix is:
\[ \mathbf{J} = \left[ \begin{array}{cc} \partial x/\partial \xi & \partial y/\partial \xi \\ \partial x/\partial \eta & \partial y/\partial \eta \end{array} \right] = \sum_{i=1}^4 \left[ \begin{array}{cc} \partial N_i/\partial \xi & 0 \\ 0 & \partial N_i/\partial \eta \end{array} \right] \left[ \begin{array}{cc} x_i & y_i \\ x_i & y_i \end{array} \right] \]The strain–displacement matrix \(\mathbf{B}\) in physical coordinates is obtained by inverting \(\mathbf{J}\):
\[ \left\{ \begin{array}{c} \partial N_i/\partial x \\ \partial N_i/\partial y \end{array} \right\} = \mathbf{J}^{-1} \left\{ \begin{array}{c} \partial N_i/\partial \xi \\ \partial N_i/\partial \eta \end{array} \right\} \]The stiffness integral is evaluated numerically:
\[ \mathbf{k}^{(e)} = \int_{-1}^{1}\int_{-1}^{1} \mathbf{B}^T \mathbf{D} \mathbf{B}\, t\, \det(\mathbf{J})\, d\xi\, d\eta \approx \sum_i \sum_j w_i w_j\, \mathbf{B}^T(\xi_i, \eta_j)\, \mathbf{D}\, \mathbf{B}(\xi_i, \eta_j)\, t\, \det\mathbf{J}(\xi_i,\eta_j) \]where \(t\) is the element thickness.
7.6 Triangular Elements: Area Coordinates
For triangular elements the natural coordinates are area (barycentric) coordinates \(L_1, L_2, L_3\) satisfying \(L_1 + L_2 + L_3 = 1\).
Area coordinates. For a triangle with vertices \((x_1, y_1)\), \((x_2, y_2)\), \((x_3, y_3)\) and area \(A\), the area coordinate \(L_i\) of a point \((x, y)\) is:
\[ L_i = \frac{\text{Area of sub-triangle opposite vertex } i}{\text{Area of whole triangle}} = \frac{a_i + b_i x + c_i y}{2A} \]where \(a_i\), \(b_i\), \(c_i\) are constants derived from the node coordinates. Area coordinates are the natural shape functions for triangular elements: \(N_i = L_i\) for the CST element.
Chapter 8: 2D Plane Stress and Plane Strain
8.1 2D Stress State Assumptions
Many engineering structures — thin plates, long dams, pressure vessels in cross-section — can be analysed accurately using 2D simplifications of the full 3D problem.
Plane stress. A state of plane stress exists when one dimension (say \(z\)) is much smaller than the other two, and loads are applied in the \(xy\)-plane only. The through-thickness stress components vanish: \(\sigma_{zz} = \tau_{xz} = \tau_{yz} = 0\). The active stresses are \(\left[\sigma_{xx}, \sigma_{yy}, \tau_{xy}\right]^T\). The strain \(\varepsilon_{zz} = -\nu(\sigma_{xx} + \sigma_{yy})/E \neq 0\) (Poisson effect). Applies to: thin plates with in-plane loads, flanges, gusset plates.
Plane strain. A state of plane strain exists when one dimension (say \(z\)) is much longer than the other two and boundary conditions prevent any \(z\)-displacement: \(\varepsilon_{zz} = \gamma_{xz} = \gamma_{yz} = 0\). The through-thickness stress \(\sigma_{zz} = \nu(\sigma_{xx} + \sigma_{yy}) \neq 0\). Applies to: long dams, tunnels, retaining walls, cylinders with plane strain end conditions.
8.1.1 Constitutive Matrices for Plane Problems
Plane stress constitutive matrix:
\[ \mathbf{D}_{ps} = \frac{E}{1-\nu^2} \left[ \begin{array}{ccc} 1 & \nu & 0 \\ \nu & 1 & 0 \\ 0 & 0 & \dfrac{1-\nu}{2} \end{array} \right] \]Plane strain constitutive matrix:
\[ \mathbf{D}_{pe} = \frac{E}{(1+\nu)(1-2\nu)} \left[ \begin{array}{ccc} 1-\nu & \nu & 0 \\ \nu & 1-\nu & 0 \\ 0 & 0 & \dfrac{1-2\nu}{2} \end{array} \right] \]Note: for plane strain, replace \(E \to E/(1-\nu^2)\) and \(\nu \to \nu/(1-\nu)\) in the plane stress matrix, or equivalently use the expression above.
8.2 The Constant Strain Triangle (CST)
The CST is the simplest 2D solid element. It has three nodes, each with two DOFs (\(u\), \(v\)), giving six DOFs per element.
8.2.1 CST Shape Functions from Area Coordinates
CST shape functions from area coordinates.
For the CST element with nodes 1, 2, 3 at coordinates \((x_1, y_1)\), \((x_2, y_2)\), \((x_3, y_3)\), assume linear displacement fields:
\[ u(x, y) = a_1 + a_2 x + a_3 y, \qquad v(x, y) = a_4 + a_5 x + a_6 y \]The six constants are determined by the six nodal displacement conditions:
\[ u(x_i, y_i) = u_i, \quad v(x_i, y_i) = v_i, \quad i = 1, 2, 3 \]Solving the \(3 \times 3\) system for \(u\):
\[ \left[ \begin{array}{ccc} 1 & x_1 & y_1 \\ 1 & x_2 & y_2 \\ 1 & x_3 & y_3 \end{array} \right] \left\{ \begin{array}{c} a_1 \\ a_2 \\ a_3 \end{array} \right\} = \left\{ \begin{array}{c} u_1 \\ u_2 \\ u_3 \end{array} \right\} \]The determinant of the coefficient matrix equals \(2A\) where \(A\) is the element area. The solution gives:
\[ a_1 = \frac{1}{2A}(x_2 y_3 - x_3 y_2)\, u_1 + \ldots, \quad \text{etc.} \]Rearranging: \(u = N_1 u_1 + N_2 u_2 + N_3 u_3\) where:
\[ N_i = \frac{a_i + b_i x + c_i y}{2A} \]with \(a_1 = x_2 y_3 - x_3 y_2\), \(b_1 = y_2 - y_3\), \(c_1 = x_3 - x_2\), and cyclic permutations. These are identical to the area coordinates \(L_i\), confirming that \(N_i = L_i\) for the CST.
8.2.2 CST Strain–Displacement Matrix
Since the shape functions are linear in \(x\) and \(y\), their derivatives are constant — hence the element name “Constant Strain Triangle.”
The strain vector is:
\[ \boldsymbol{\varepsilon} = \left\{ \begin{array}{c} \varepsilon_{xx} \\ \varepsilon_{yy} \\ \gamma_{xy} \end{array} \right\} = \left\{ \begin{array}{c} \partial u/\partial x \\ \partial v/\partial y \\ \partial u/\partial y + \partial v/\partial x \end{array} \right\} = \mathbf{B}\, \mathbf{d}^{(e)} \]The \(3 \times 6\) strain–displacement matrix is:
\[ \mathbf{B} = \frac{1}{2A} \left[ \begin{array}{cccccc} b_1 & 0 & b_2 & 0 & b_3 & 0 \\ 0 & c_1 & 0 & c_2 & 0 & c_3 \\ c_1 & b_1 & c_2 & b_2 & c_3 & b_3 \end{array} \right] \]where \(b_i = y_j - y_k\), \(c_i = x_k - x_j\) (with \(i,j,k\) cyclic permutations of \(1,2,3\)).
8.2.3 CST Element Stiffness Matrix
Since \(\mathbf{B}\) is constant over the element, the stiffness matrix integrates trivially:
\[ \mathbf{k}^{(e)} = \int_A \mathbf{B}^T \mathbf{D} \mathbf{B}\, t\, dA = \mathbf{B}^T \mathbf{D} \mathbf{B}\, t\, A \]This is a \(6 \times 6\) symmetric matrix — the complete element stiffness for the CST.
Example 8.1: CST Element Stiffness Matrix.
A triangular element has nodes: \((0,0)\), \((1,0)\), \((0,1)\) m. \(E = 200\) GPa, \(\nu = 0.3\), \(t = 0.01\) m, plane stress.
Area: \(A = 0.5\) m². \(b_1 = y_2 - y_3 = 0 - 1 = -1\), \(b_2 = y_3 - y_1 = 1\), \(b_3 = y_1 - y_2 = 0\). \(c_1 = x_3 - x_2 = -1\), \(c_2 = x_1 - x_3 = 0\), \(c_3 = x_2 - x_1 = 1\).
\[ \mathbf{B} = \frac{1}{2 \times 0.5} \left[ \begin{array}{cccccc} -1 & 0 & 1 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 & 0 & 1 \\ -1 & -1 & 0 & 1 & 1 & 0 \end{array} \right] \]Then \(\mathbf{k}^{(e)} = \mathbf{B}^T \mathbf{D}_{ps} \mathbf{B}\, (0.01)(0.5)\). The \(6 \times 6\) matrix is computed by matrix multiplication with the plane stress constitutive matrix at \(E = 200 \times 10^9\) Pa, \(\nu = 0.3\).
8.3 Distributed Surface Loads on Triangular Elements
Consistent nodal loads for surface loads on CST.
Consider a uniform pressure \(p\) (force per unit area) applied normal to side 1–2 of a CST element with thickness \(t\) and edge length \(\ell_{12}\). The consistent nodal force vector on that edge is:
\[ \mathbf{f}_{surface}^{(e)} = \int_{edge} \mathbf{N}^T \mathbf{t}\, t\, ds \]For uniform traction along the edge (with \(s\) parameterising the edge), only nodes 1 and 2 have non-zero shape function values. By linear variation:
\[ f_{x,1} = f_{x,2} = \frac{p\, t\, \ell_{12}}{2}\,(\text{x-component}), \quad f_{y,1} = f_{y,2} = \frac{p\, t\, \ell_{12}}{2}\,(\text{y-component}) \]The load is split equally between the two edge nodes. Node 3 (interior to the loaded edge) receives no force. This is consistent with the linear shape function interpolation along the edge.
8.4 2D Plane Stress FEM: Complete Example
Example 8.2: Two-Element Plane Stress Mesh.
A rectangular plate \(2\text{ m} \times 1\text{ m}\), \(t = 0.1\) m, \(E = 100\) MPa, \(\nu = 0.25\). Left edge fixed, right edge subjected to uniform tensile stress \(\sigma_0 = 1\) MPa. Discretise using two CST elements sharing diagonal from (0,0)–(2,1).
Node coordinates: 1=(0,0), 2=(2,0), 3=(2,1), 4=(0,1). Element 1: nodes 1,2,3. Element 2: nodes 1,3,4.
For each element, compute \(\mathbf{B}\) as above, then \(\mathbf{k}^{(e)} = \mathbf{B}^T\mathbf{D}\mathbf{B}\,tA\) with \(A = 1\) m².
Convert the right-edge pressure to consistent nodal forces: \(F_{x,2} = F_{x,3} = \sigma_0 \times t \times (1\,\text{m edge height})/2 = 1 \times 10^6 \times 0.1 \times 0.5 = 50\) kN at each of nodes 2 and 3.
After assembly, apply BCs (nodes 1 and 4 fixed: \(u_1 = v_1 = u_4 = v_4 = 0\)). Solve the reduced \(4 \times 4\) system for \(u_2, v_2, u_3, v_3\). Recover stresses \(\boldsymbol{\sigma} = \mathbf{D}\mathbf{B}\mathbf{d}^{(e)}\) in each element and compare with the analytical solution \(\sigma_{xx} = \sigma_0\), \(\sigma_{yy} = \tau_{xy} = 0\).
8.5 Strain Energy and von Mises Criterion
The elastic strain energy density for a plane stress element is:
\[ u_e = \frac{1}{2}\boldsymbol{\sigma}^T \mathbf{D}^{-1} \boldsymbol{\sigma} = \frac{1}{2E}\left[\sigma_{xx}^2 + \sigma_{yy}^2 - 2\nu\sigma_{xx}\sigma_{yy}\right] + \frac{\tau_{xy}^2}{2G} \]The von Mises (distortion energy) failure criterion is:
\[ \sigma_{VM} = \sqrt{\sigma_{xx}^2 - \sigma_{xx}\sigma_{yy} + \sigma_{yy}^2 + 3\tau_{xy}^2} \leq \sigma_y \]In commercial FEM codes, post-processing computes \(\sigma_{VM}\) at each Gauss point or node and contours it over the mesh. Regions where \(\sigma_{VM} > \sigma_y\) indicate potential yielding.
Chapter 9: 3D Solid and Axisymmetric Elements
9.1 Tetrahedral Elements
The 4-node tetrahedron (Tet4) is the 3D analogue of the CST. Each of four nodes has three DOFs (\(u\), \(v\), \(w\)), giving 12 DOFs per element. Linear shape functions in volume coordinates \(L_1, L_2, L_3, L_4\) (\(L_i \geq 0\), \(\sum L_i = 1\)) give constant strains throughout the element.
The displacement field:
\[ u = \sum_{i=1}^4 N_i u_i, \quad v = \sum_{i=1}^4 N_i v_i, \quad w = \sum_{i=1}^4 N_i w_i \]where \(N_i = L_i = (a_i + b_i x + c_i y + d_i z)/(6V)\), with \(V\) the element volume and the coefficients derived from node coordinates.
The \(6 \times 12\) strain–displacement matrix \(\mathbf{B}\) is constant (linear field → constant derivatives), and the element stiffness is:
\[ \mathbf{k}^{(e)} = \mathbf{B}^T \mathbf{D}_{3D} \mathbf{B}\, V \]where \(\mathbf{D}_{3D}\) is the full \(6 \times 6\) isotropic elastic constitutive matrix:
\[ \mathbf{D}_{3D} = \frac{E}{(1+\nu)(1-2\nu)} \left[ \begin{array}{cccccc} 1-\nu & \nu & \nu & 0 & 0 & 0 \\ \nu & 1-\nu & \nu & 0 & 0 & 0 \\ \nu & \nu & 1-\nu & 0 & 0 & 0 \\ 0 & 0 & 0 & \frac{1-2\nu}{2} & 0 & 0 \\ 0 & 0 & 0 & 0 & \frac{1-2\nu}{2} & 0 \\ 0 & 0 & 0 & 0 & 0 & \frac{1-2\nu}{2} \end{array} \right] \]9.1.1 Higher-Order Tetrahedral Elements (Tet10)
The 10-node quadratic tetrahedron (Tet10) adds mid-side nodes to each of the six edges. Shape functions are quadratic in volume coordinates. The strain field is now linear, providing much better accuracy for stress gradients. Tet10 is the default solid element in many commercial codes for unstructured meshes.
9.2 Hexahedral Elements
The 8-node hexahedron (Hex8 or “brick element”) has trilinear shape functions in natural coordinates \((\xi, \eta, \zeta) \in [-1,1]^3\):
\[ N_i = \frac{1}{8}(1 + \xi_i \xi)(1 + \eta_i \eta)(1 + \zeta_i \zeta) \]where \((\xi_i, \eta_i, \zeta_i) = \pm 1\) defines the node positions. The Hex8 element has 24 DOFs, a linearly varying displacement field, and uses \(2 \times 2 \times 2\) Gauss quadrature (8 integration points) for full integration.
The 20-node serendipity hexahedron (Hex20) adds mid-edge nodes and uses quadratic shape functions — significantly more accurate for curved geometries and large stress gradients.
Hex vs. Tet: Practical choice. Hex8/Hex20 elements are more efficient per DOF (better accuracy for the same mesh size) and perform better in bending-dominated problems. However, hexahedral meshing of complex geometries is difficult to automate. Tet4/Tet10 meshes can be generated automatically for virtually any CAD geometry. In practice: use Tet10 for complex parts, Hex20 for smooth, regular geometries such as pipes and flat plates. Commercial codes like ANSYS MECHANICAL and Abaqus provide both element families with intelligent mesh seeding tools.
9.3 Axisymmetric Elements
For structures with rotational symmetry (pressure vessels, flywheels, circular foundations), 3D analysis reduces to a 2D problem in the \(r\)–\(z\) plane.
The strain vector for an axisymmetric problem has four components:
\[ \boldsymbol{\varepsilon} = \left\{ \varepsilon_{rr},\; \varepsilon_{zz},\; \varepsilon_{\theta\theta},\; \gamma_{rz} \right\}^T \]where the hoop strain \(\varepsilon_{\theta\theta} = u_r / r\) (not a derivative) requires special treatment.
The axisymmetric strain–displacement matrix for a 3-node triangular element in the \(r\)–\(z\) plane is:
\[ \mathbf{B}_{axi} = \left[ \begin{array}{cccccc} \partial N_1/\partial r & 0 & \partial N_2/\partial r & 0 & \partial N_3/\partial r & 0 \\ 0 & \partial N_1/\partial z & 0 & \partial N_2/\partial z & 0 & \partial N_3/\partial z \\ N_1/r & 0 & N_2/r & 0 & N_3/r & 0 \\ \partial N_1/\partial z & \partial N_1/\partial r & \partial N_2/\partial z & \partial N_2/\partial r & \partial N_3/\partial z & \partial N_3/\partial r \end{array} \right] \]The stiffness integral includes the circumference factor \(2\pi r\):
\[ \mathbf{k}^{(e)} = \int_A \mathbf{B}_{axi}^T \mathbf{D}_{axi} \mathbf{B}_{axi}\, 2\pi r\, dA \]Because \(\mathbf{B}_{axi}\) is not constant (\(N_i/r\) varies), numerical integration (Gauss quadrature in the \(r\)–\(z\) plane) is required.
9.4 Rectangular Shell Elements
For thin shell structures, the shell element combines membrane (in-plane stretching) and bending (out-of-plane) behaviour. The simplest approach is to superpose a plane stress membrane element with a plate bending element — this gives a “flat shell” element.
Each node of a flat shell element has five or six DOFs: \(u, v, w, \theta_x, \theta_y\) (and sometimes a drilling rotation \(\theta_z\) for numerical stability). The stiffness matrix is assembled from membrane and bending contributions.
For a rectangular flat shell element of dimensions \(a \times b\) with Kirchhoff plate theory:
The membrane stiffness uses bilinear shape functions (Q4 plane stress). The bending stiffness uses the ACM (Adini–Clough–Melosh) plate element or Mindlin–Reissner formulation (preferred for thick shells).
Implementation note: Shell elements in commercial codes. ANSYS SHELL181 and Abaqus S4/S4R are general-purpose shell elements with Mindlin–Reissner theory (first-order shear deformation). They use reduced integration (\(2 \times 2\) Gauss) with hourglass stabilisation. For thin shells (\(t/L < 1/50\)) they reduce to Kirchhoff theory. Always check the element aspect ratio (length/thickness should be 5–50 for best accuracy) and use at least 4–6 elements per wavelength for wave/vibration problems.
Chapter 10: Mesh Design, Convergence, and Verification
10.1 Convergence Theory
The FEM approximate solution \(u_h\) converges to the exact solution \(u\) as the mesh is refined (element size \(h \to 0\)). Convergence requires:
Completeness: The displacement field must be able to represent rigid body modes and constant strain states exactly. This is guaranteed if the shape functions form a complete polynomial of degree at least \(p\).
Compatibility (conforming elements): Displacements must be continuous across element boundaries. For C0 elements (bar, CST, Q4), continuity of \(u\) is required; for C1 elements (Euler–Bernoulli beam), continuity of \(u\) and \(du/dx\).
The convergence rate in energy norm is:
\[ \| u - u_h \|_E \leq C\, h^p \]where \(p\) is the polynomial degree of the shape functions and \(h\) is the characteristic element size. For the energy (strain energy):
\[ \Pi(u_h) \leq \Pi(u) \leq \Pi(u_h) + C h^{2p} \]The strain energy converges from below (the FEM solution is stiffer than reality) for conforming elements.
10.2 h-Refinement, p-Refinement, and hp-Methods
h-refinement: Reduce element size \(h\) while keeping polynomial order \(p\) fixed. Convergence rate \(O(h^p)\). Most common approach in practice.
p-refinement: Increase polynomial order \(p\) while keeping mesh fixed. Exponential convergence for smooth solutions (Babuska and Szabo). Useful for problems where the solution is globally smooth.
hp-methods: Combine both. Optimal convergence for problems with singularities (crack tips, re-entrant corners) when \(h\) is reduced near the singularity and \(p\) is increased elsewhere.
10.3 Patch Test
The patch test (due to Irons and Razzaque, 1965) is a necessary and sufficient condition for convergence of an element. It requires that when the exact solution is a polynomial of degree \(p\) (corresponding to the element’s completeness requirement), the FEM solution must reproduce it exactly on an arbitrary patch of elements.
Procedure: Assemble a patch of elements with arbitrary nodal coordinates. Apply nodal displacements corresponding to a state of constant strain. The element stresses should equal the exact constant stress everywhere. If the patch test is passed, the element converges.
10.4 Stress Recovery and Superconvergence
The raw FEM stress field (computed as \(\boldsymbol{\sigma} = \mathbf{D}\mathbf{B}\mathbf{d}\)) is discontinuous across element boundaries because \(\mathbf{B}\) is element-wise constant (for CST) or piecewise polynomial. Several stress recovery techniques improve accuracy:
Stress averaging: Average stresses from all elements sharing a node. Simple but first-order.
Superconvergent patch recovery (SPR): Due to Zienkiewicz and Zhu (1987). Fit a polynomial to stresses at superconvergent (Barlow) points within a patch of elements around each node. For Q8 elements, the optimal sampling points are the \(2 \times 2\) Gauss points. SPR gives a recovered stress field one order higher in accuracy than the raw field.
Error estimation: The difference between recovered and raw stresses gives a local error indicator for adaptive mesh refinement.
10.5 Sources of Error in FEM
FEM solutions contain three main sources of error:
Discretisation error: From approximating the geometry and field with a finite mesh. Controlled by \(h\)- or \(p\)-refinement.
Integration error: From Gaussian quadrature with insufficient integration points. For linear elements (Q4), full \(2 \times 2\) integration is exact for the bilinear stiffness integrand. Under-integration (\(1 \times 1\) for Q4) introduces “spurious zero-energy modes” (hourglass modes) that pollute the solution unless stabilised.
Equation solving error: Floating-point round-off in the linear solver. The condition number of \(\mathbf{K}\) grows as \(O(h^{-2})\) for 2D elasticity, eventually limiting accuracy. Preconditioning is used in large-scale problems.
10.6 Locking Phenomena
Shear locking: In Euler–Bernoulli beam or thin shell elements formulated with displacement-based C0 elements (rather than the exact Hermite C1 formulation), artificial shear strains arise as thickness \(t \to 0\). The element becomes over-stiff. Remedies: reduced/selective integration; assumed natural strain (ANS) formulation; MITC (Mixed Interpolation of Tensorial Components) elements.
Volumetric locking: In nearly incompressible materials (\(\nu \to 0.5\)), the pressure field is poorly represented by polynomial interpolation, causing the mesh to “lock” (spuriously high stiffness). Remedies: mixed \(u/p\) formulations; reduced integration; B-bar method.
Verification and Validation (V&V) in FEM.
Verification asks: “Are we solving the equations correctly?” It involves mesh convergence studies, comparison with analytical benchmark solutions (Timoshenko stress concentration factors, Hertz contact solutions), and patch tests. A proper mesh convergence study plots a key output (maximum displacement, maximum stress) vs. element size on a log-log plot; the slope should approach the theoretical convergence rate.
Validation asks: “Are we solving the right equations?” It involves comparison with experimental data. In engineering practice (ASME V&V 10, NAFEMS guidelines), both V&V must be demonstrated before a simulation is used for design decisions.
Commercial software workflow: In ANSYS Mechanical, a typical analysis proceeds: Geometry import (SpaceClaim) → Material assignment → Mesh generation with size controls → Boundary condition application → Solution run → Post-processing with contour plots. In Abaqus/CAE: Part → Material/Section → Assembly → Step → Load/BC → Mesh → Job → Visualisation. Both software packages support parametric studies and scripting (Python in Abaqus, APDL or Python in ANSYS) for automated mesh refinement studies.
10.7 Practical Mesh Guidelines
The following heuristics are drawn from industrial practice and standard FEM textbook guidance (Logan, Hutton, Bathe):
- Element aspect ratio: Keep \(a/b \leq 4\) for quads, \(\leq 3\) for triangles. High aspect ratios degrade accuracy severely near stress concentrations.
- Element distortion: Avoid highly skewed elements (interior angles outside 45°–135°). The Jacobian determinant \(\det\mathbf{J}\) must remain positive everywhere; near-zero \(\det\mathbf{J}\) signals a degenerate element.
- Mesh density at stress concentrations: Use at least 4–6 elements per fillet radius. A Saint-Venant decay length of \(\sim 3 \times\) the characteristic dimension guides transition from fine to coarse mesh.
- First-order vs. second-order elements: Second-order elements (Tet10, Hex20, Q8) are generally preferred in modern practice. They represent curved boundaries exactly and reduce the number of elements needed for the same accuracy.
- Symmetry: Exploit symmetry planes to reduce problem size. Symmetric geometry + symmetric loading → symmetric solution: apply zero-normal-displacement and zero-tangential-traction BCs on symmetry planes.
Appendix: Complete FEM Reference Tables
A.1 Summary of Element Stiffness Matrices
| Element | DOFs/node | Total DOFs | Stiffness matrix size | Shape function type |
|---|---|---|---|---|
| Spring | 1 | 2 | \(2 \times 2\) | — |
| Bar (2-node) | 1 | 2 | \(2 \times 2\) | Linear |
| Truss (2D, 2-node) | 2 | 4 | \(4 \times 4\) | Linear |
| Beam (2-node) | 2 | 4 | \(4 \times 4\) | Hermite cubic |
| Frame (2D, 2-node) | 3 | 6 | \(6 \times 6\) | Linear + Hermite |
| CST (3-node, 2D) | 2 | 6 | \(6 \times 6\) | Linear (area coords) |
| Q4 (4-node, 2D) | 2 | 8 | \(8 \times 8\) | Bilinear |
| Q8 (8-node, 2D) | 2 | 16 | \(16 \times 16\) | Serendipity quadratic |
| Tet4 (3D) | 3 | 12 | \(12 \times 12\) | Linear (volume coords) |
| Tet10 (3D) | 3 | 30 | \(30 \times 30\) | Quadratic |
| Hex8 (3D) | 3 | 24 | \(24 \times 24\) | Trilinear |
| Hex20 (3D) | 3 | 60 | \(60 \times 60\) | Serendipity quadratic |
A.2 Gauss Point Locations and Weights
| \(n\) points | Locations \(\xi_i\) | Weights \(w_i\) | Exact degree |
|---|---|---|---|
| 1 | 0 | 2 | 1 |
| 2 | \(\pm 0.5774\) | 1, 1 | 3 |
| 3 | 0, \(\pm 0.7746\) | 0.8889, 0.5556, 0.5556 | 5 |
| 4 | \(\pm 0.3399\), \(\pm 0.8611\) | 0.6521, 0.3479, 0.6521, 0.3479 | 7 |
A.3 Common Boundary Condition Types
| BC type | Mathematical form | FEM treatment |
|---|---|---|
| Essential (Dirichlet) | \(u = u_0\) on \(\Gamma_u\) | Eliminate or penalty |
| Natural (Neumann) | \(\sigma n = t_0\) on \(\Gamma_t\) | Load vector contribution |
| Robin (convection) | \(-k\nabla T \cdot n = h(T - T_\infty)\) | Adds to \(\mathbf{K}\) and \(\mathbf{F}\) |
| Symmetry | \(u_n = 0\), \(t_t = 0\) | Fix normal DOF |
| Anti-symmetry | \(u_t = 0\), \(\theta = 0\) | Fix tangential DOFs |
A.4 Key FEM Equations Summary
Element stiffness (general):
\[ \mathbf{k}^{(e)} = \int_{V^{(e)}} \mathbf{B}^T \mathbf{D} \mathbf{B}\, dV \]Consistent mass matrix:
\[ \mathbf{m}^{(e)} = \int_{V^{(e)}} \rho\, \mathbf{N}^T \mathbf{N}\, dV \]Consistent nodal load vector:
\[ \mathbf{f}^{(e)} = \int_{V^{(e)}} \mathbf{N}^T \mathbf{b}\, dV + \int_{S^{(e)}} \mathbf{N}^T \mathbf{t}\, dS \]Global equilibrium:
\[ \mathbf{K}\mathbf{U} = \mathbf{F}, \qquad \mathbf{K} = \sum_{e=1}^{N_e} \mathbf{K}^{(e)}, \quad \mathbf{F} = \sum_{e=1}^{N_e} \mathbf{F}^{(e)} \]Stress recovery:
\[ \boldsymbol{\sigma}^{(e)} = \mathbf{D}\, \mathbf{B}\, \mathbf{d}^{(e)} \]Von Mises stress (plane stress):
\[ \sigma_{VM} = \sqrt{\sigma_{xx}^2 - \sigma_{xx}\sigma_{yy} + \sigma_{yy}^2 + 3\tau_{xy}^2} \]Supplementary Examples
Example S1: 3-Node Beam — Fixed-Fixed with Central Point Load.
A fixed-fixed beam of total length \(2L\) is modelled with two equal beam elements, each of length \(L\). \(EI\) is constant. A point load \(P\) is applied at the central node (node 2). Nodes 1 and 3 are fully fixed (\(v_1 = \theta_1 = v_3 = \theta_3 = 0\)).
After assembly, the global stiffness is \(6 \times 6\). The only free DOFs are \(v_2\) and \(\theta_2\). The reduced \(2 \times 2\) system is:
\[ \frac{EI}{L^3}\left[ \begin{array}{cc} 24 & 0 \\ 0 & 8L^2 \end{array} \right] \left\{ \begin{array}{c} v_2 \\ \theta_2 \end{array} \right\} = \left\{ \begin{array}{c} -P \\ 0 \end{array} \right\} \](By symmetry of the loading, \(\theta_2 = 0\).)
\[ v_2 = -\frac{PL^3}{24EI} \cdot \frac{1}{1} = -\frac{PL^3}{24EI} \cdot \frac{1}{1} \]Wait — noting that each element of length \(L\) gives \(K_{33} = K_{11}^{(1)} + K_{33}^{(2)}\); let us re-examine. For element \(e\) of length \(L\):
\[ k_{11} = k_{33} = \frac{12EI}{L^3}, \quad k_{13} = k_{31} = -\frac{12EI}{L^3}, \quad k_{12} = -k_{32} = \frac{6EI}{L^2}, \quad k_{22} = k_{44} = \frac{4EI}{L} \]At node 2 (shared): \(K_{v_2, v_2} = k_{33}^{(1)} + k_{11}^{(2)} = 24EI/L^3\). Similarly \(K_{\theta_2, \theta_2} = 4EI/L + 4EI/L = 8EI/L\). The coupling \(K_{v_2, \theta_2} = 0\) by symmetry. Thus:
\[ v_2 = \frac{-P}{24EI/L^3} = -\frac{PL^3}{24EI} \]The exact solution for a fixed-fixed beam with central point load is \(v_{max} = -PL^3/(48EI)\) at mid-span… Wait — here \(L\) is the half-span, so total span is \(2L\) and the analytical result is \(P(2L)^3/(192EI) = PL^3/24EI\). The FEM result is exact because the Hermite cubic polynomial is the exact solution.
Example S2: 1D Heat Transfer with Internal Generation.
A fin of length 0.1 m, \(k = 200\) W/m·K, \(A = 10^{-4}\) m². Left end: \(T_1 = 100\)°C. Right end: insulated (\(q = 0\)). Uniform heat generation: \(Q = 10^6\) W/m³. Use 2 elements.
Element length: \(\ell = 0.05\) m. \(kA/\ell = 0.4\) W/K. \(QA\ell/2 = 2.5\) W per element node.
Global conductivity:
\[ \mathbf{K}_c = 0.4 \left[ \begin{array}{rrr} 1 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 1 \end{array} \right] \]Load vector: \(\mathbf{F}_Q = \left[2.5,\; 5.0,\; 2.5\right]^T\) W.
Apply \(T_1 = 100\)°C (insulated right end means no additional flux term):
Reduced system (DOFs 2,3):
\[ 0.4 \left[ \begin{array}{rr} 2 & -1 \\ -1 & 1 \end{array} \right] \left\{ \begin{array}{c} T_2 \\ T_3 \end{array} \right\} = \left\{ \begin{array}{c} 5.0 + 0.4 \times 100 \\ 2.5 \end{array} \right\} = \left\{ \begin{array}{c} 45 \\ 2.5 \end{array} \right\} \]Solving: \(T_3 = 2.5/0.4 + T_2 = 6.25 + T_2\). \(0.8T_2 - 0.4T_3 = 45 \Rightarrow 0.8T_2 - 0.4(T_2 + 6.25) = 45 \Rightarrow 0.4T_2 = 47.5 \Rightarrow T_2 = 118.75\)°C. \(T_3 = 125\)°C.
Analytical: \(T(x) = T_1 + Q/(2k)(L^2 - (L-x)^2) \to T(L) = 100 + 10^6/(400) \times 0.01 = 125\)°C. FEM is exact (quadratic exact solution, captured by two linear elements which are equivalent to one quadratic).
Example S3: Galerkin Method for a Simple BVP.
Solve \(d^2u/dx^2 + 1 = 0\) on \([0,1]\) with \(u(0) = u(1) = 0\) using one linear element.
The exact solution is \(u = x(1-x)/2\). Using one element with nodes at 0 and 1 and the Galerkin method:
Trial function: \(u \approx N_1 u_1 + N_2 u_2\). With \(u_1 = u_2 = 0\) (both BCs essential), there are no free DOFs — one element is insufficient. With two elements (node at 0, 0.5, 1):
Free DOF: \(u_2\). Shape function at mid-node: \(N_2^{mid}\) peaks at 1 at \(x=0.5\), linear on each side.
Weak form: \(\int_0^1 \frac{dw}{dx}\frac{du}{dx}\,dx = \int_0^1 w\,dx\).
Choosing \(w = N_2^{mid}\):
\[ \frac{u_2}{(0.5)^2} \times 2 = 1 \quad \Rightarrow \quad u_2 = \frac{1}{8} = 0.125 \]Exact: \(u(0.5) = 0.5 \times 0.5/2 = 0.125\). FEM gives the exact nodal value.
Key Formula Reference
Bar Element
\[ \mathbf{k}_{bar} = \frac{EA}{L}\left[\begin{array}{rr}1&-1\\-1&1\end{array}\right], \quad \sigma = E \cdot \frac{u_j - u_i}{L} \]Beam Element (Euler–Bernoulli)
\[ \mathbf{k}_{beam} = \frac{EI}{L^3}\left[\begin{array}{cccc}12&6L&-12&6L\\6L&4L^2&-6L&2L^2\\-12&-6L&12&-6L\\6L&2L^2&-6L&4L^2\end{array}\right] \]Plane Truss Element (Global)
\[ \mathbf{K}^{(e)} = \frac{EA}{L}\left[\begin{array}{cccc}c^2&cs&-c^2&-cs\\cs&s^2&-cs&-s^2\\-c^2&-cs&c^2&cs\\-cs&-s^2&cs&s^2\end{array}\right] \]CST Element (Plane Stress/Strain)
\[ \mathbf{k}^{(e)} = t\,A\,\mathbf{B}^T\mathbf{D}\mathbf{B}, \quad \mathbf{B} = \frac{1}{2A}\left[\begin{array}{cccccc}b_1&0&b_2&0&b_3&0\\0&c_1&0&c_2&0&c_3\\c_1&b_1&c_2&b_2&c_3&b_3\end{array}\right] \]1D Heat Conduction Element
\[ \mathbf{k}_c = \frac{kA}{L}\left[\begin{array}{rr}1&-1\\-1&1\end{array}\right], \quad \mathbf{f}_Q = \frac{QAL}{2}\left\{\begin{array}{c}1\\1\end{array}\right\} \]Course-wide implementation philosophy.
Throughout this course, every element stiffness matrix derivation follows the same template:
- Choose shape functions \(\mathbf{N}(\mathbf{x})\) that satisfy completeness and compatibility.
- Form the strain–displacement matrix \(\mathbf{B} = \partial \mathbf{N}/\partial \mathbf{x}\) (or appropriate differential operator).
- Compute \(\mathbf{k}^{(e)} = \int \mathbf{B}^T \mathbf{D} \mathbf{B}\, dV\) analytically or by Gaussian quadrature.
- Assemble using the connectivity table; apply BCs; solve; recover stresses.
This template applies equally to structural, thermal, acoustic, and electromagnetic problems — only \(\mathbf{B}\) and \(\mathbf{D}\) change. The universality of this pipeline is the core intellectual achievement of the finite element method, and developing fluency with each step is the central goal of ME 559.