Computational Engineering / How the stiffness method works
Solving, and recovering what you actually wanted
Solve the free displacements, then recover reactions and member forces from the complete element and global equations.
Lesson review: expert verification remains open
This lesson has received a full-context editorial review and a check of its technical explanations. Selected arithmetic has been checked separately. This is not independent engineering sign-off.
Checks needed for project use
- A computational engineering reviewer must check algorithms, convergence claims, statistical assumptions and numerical examples beyond the cases explicitly recorded.
- Specialist review of each solver formulation, force-recovery load terms and normalised convergence tolerances remains required.
These are educational models and exercises. Check their assumptions before using the results. The full technical content and every diagram have not yet been independently verified.
Concrete and steel calculations retain their stated first-generation Eurocode teaching basis. Use the standards and amendments specified for your project; do not mix generations without an appropriate design basis.
Read the lesson register and outstanding review notesWhy this matters
In the displacement-based formulation used here, the nodal displacements are the primary unknowns. Element strains, stresses and forces are recovered from that solution. Stress recovery involves displacement gradients, so a mesh that gives acceptable deflections may still give inadequate stresses. Accuracy depends on the element, location and quantity being assessed; some recovery methods and special points can give more accurate stresses than this general pattern suggests.
By the end of this lesson you should be able to
- Describe displacement solution and the subsequent recovery of reactions and element forces
- Recover reactions from the rows that were struck out
- Recover member force from the change in length of a bar
- Explain why stress accuracy can require a finer mesh than displacement accuracy
Solution and recovery
- 1.Solve Kff uf = ff for zero prescribed displacements, or include −Kfc uc on the right-hand side for non-zero prescribed values.
- 2.Reconstruct the full displacement vector.
- 3.Recover support reactions from the restrained entries of Ku − f.
- 4.Recover element forces from element displacements and the formulation’s load terms. Reactions and element forces can be recovered in either order.
- 5.Check force and moment equilibrium, with consistent signs and units.
For an unloaded axial bar without imposed strain, extension is e = c(u₂ₓ − u₁ₓ) + s(u₂ᵧ − u₁ᵧ), and F = (EA/L)e. Positive F denotes tension here. Temperature, initial strain and distributed element loads require their corresponding load terms.
Equilibrium residuals
Compare applied loads and all reactions using a stated normalised tolerance. Include constraint forces and loads applied directly at restrained nodes. An unexpected imbalance can arise from incomplete result extraction, inconsistent load cases or units, an insufficiently converged solve, numerical conditioning or an implementation fault. Connectivity faults may also be relevant, but a disconnected component does not necessarily cause a global imbalance. Check the complete free-body balance and solver residual before deciding which cause to investigate.
What it calculates: The forces the supports must supply
- K
- The FULL global stiffness matrix, before reduction (kN/m)
- u
- Full displacement vector, including prescribed values at restrained degrees of freedom (m)
- f
- Applied load vector (kN)
- R
- Reactions, non-zero only at restrained degrees of freedom (kN)
This assumes
- The displacement solution is available for this stiffness-based reaction recovery
- Any load applied directly at a restrained degree of freedom is subtracted, or it will be double-counted
In plain terms: The full matrix is used, not the reduced one. The struck-out rows were never wrong; they were merely not needed to find the displacements. Now they are exactly what is needed to find the reactions.
Conditioning and printed precision
IEEE double precision carries about sixteen significant decimal digits. The matrix condition number measures sensitivity of the solution to perturbations. In the 2-norm it is the ratio of largest to smallest singular value; for a symmetric positive-definite stiffness matrix this equals the ratio of its largest to smallest eigenvalue. Units and degree-of-freedom scaling matter when interpreting it.
A rough worst-case estimate is that κ = 10ᵏ can cost about k decimal digits. Actual error also depends on the right-hand side, numerical algorithm and scaling. Very short stiff members, extreme stiffness contrasts or poor coordinate handling can reduce accuracy. Check conditioning, normalised residuals and sensitivity rather than inferring a fixed number of reliable engineering digits from κ alone.
Worked example
Reading the health of a solve
Given
- A truss model with 240 elements
- Total applied vertical load: 1 840 kN
- Total vertical reaction reported: 1 803 kN
- The model contains four link elements 8 mm long, between members averaging 4 m
Find
Whether these results can be used, and what to do next
Practice
A model applies 2 400 kN of vertical load and reports 2 397 kN of vertical reaction. Express the residual as a percentage of the applied load.
Practice
A reduced stiffness matrix has a condition number of 10⁹. Using the rule that a condition number of 10ᵏ costs about k of the sixteen available significant digits, how many significant digits survive the solve?
Check yourself
Why can stresses require a finer mesh than displacements in displacement-based finite element analysis?
Check yourself
A particular model normally gives a normalised equilibrium residual near 10⁻¹⁴. It now reports 0.05%. What should be investigated?
Check yourself
Why are member forces recovered from displacements rather than solved for directly?
Summary
- Displacements are solved first; everything else is recovered from them
- Reactions come from the struck-out rows, using the full matrix
- Member force comes from the projection of end displacements onto the member
- Stress recovery uses displacement gradients, so assess convergence of the actual stress quantity needed
- Check normalised force and moment residuals against stated tolerances and investigate material imbalances
- A condition number of 10ᵏ costs roughly k of your sixteen digits