Deflection

The matrix that replaced the hand methods

Moment distribution passes moments round a frame until they stop moving. Virtual work computes one deflection at a time. Both are exact and both stop scaling in the low tens of members. What replaced them adds no physics at all — the whole of the invention is the bookkeeping.

Assumes One support too many, and what it costs to know, Solved by passing it around and One deflection, without solving everything.

Almost every analytical method in this collection was invented to be done by hand. Moment distribution passes moments round a frame until they stop moving; virtual work computes one deflection at a time from a unit load; the area-moment theorems read rotations off a diagram. All of them are exact, all of them are ingenious, and all of them stop scaling somewhere in the low tens of members.

What replaced them adds no physics whatever. It writes the same equilibrium and the same compatibility as one matrix equation,

Kd=f\mathbf{K}\,\mathbf{d} = \mathbf{f}

assembled by scattering each member’s own six-by-six stiffness into the rows and columns of the freedoms it touches, and then solves it. The whole of the invention is the bookkeeping, and it is worth looking at what that bookkeeping produces, because three properties of the resulting matrix are structural statements in their own right.

Almost all of it is exactly zeroThe stiffness matrix of a 2-bay, 3-storey plane frame: 36 freedoms, of which 16.2 per cent of the 36² entries are non-zero. The zeros are not small numbers; they are absences. A member reaches only the two nodes at its ends, so it can contribute nothing to any row belonging to a node it does not touch, and every such entry is zero exactly rather than nearly. The non-zeros therefore sit in a band of width 13 about the diagonal. Before the supports are applied the matrix is singular, and its null space has exactly three dimensions — the three rigid-body motions a plane frame has with respect to the ground, which is the same statement `nullVector` makes about a truss that is a mechanism, arrived at from the other end.36 × 36210 non-zerosof 1296 entriesbandwidth 13nullity 3before the supports go indense solve 16kbanded 6ka member reaches only its own two nodes
Fig. 1 The global stiffness matrix of a two-bay, three-storey frame. Thirty-six freedoms, of which 16 per cent of the entries are non-zero — and the zeros are absences rather than small numbers.

Which free body produced the number

The member is the free body, and it is a small one. Take a plane-frame element with three freedoms at each end — two translations and a rotation — and ask what forces are needed at its ends to produce a unit value of each freedom with the other five held at zero. Six questions, six answers each, and the six-by-six matrix of them is the element stiffness.

Every entry of it comes from an elementary beam solution. A unit end rotation with everything else fixed needs 4EI/L4EI/L at that end and 2EI/L2EI/L at the other; a unit end translation needs 12EI/L312EI/L^3 and 6EI/L26EI/L^2; a unit axial extension needs EA/LEA/L. Nothing there is new — those are the fixed-end moments of the slope-deflection method, written out as a table instead of as equations.

Assembly is two operations and no physics. Rotate the element matrix into the structure’s axes, then add each of its thirty-six entries into the row and column of the global freedom that entry belongs to. Every member does the same; the sum is the structure.

One member's stiffness, scattered into the freedoms it touchesA member's own six-by-six stiffness matrix relates the forces at its two ends to the displacements there, and it is written in the member's own axes. Assembly is two operations and no physics: rotate it into the structure's axes, then **add** each of its thirty-six entries into the row and column of the global freedom that entry belongs to. Every member does the same, and the sum is the structure. The shaded rows and columns are the six freedoms this one member reaches; every other entry it contributes is exactly zero, and that is the whole reason a global stiffness matrix is sparse. Nothing here is an approximation — the result is the same equilibrium and the same compatibility a hand method writes, in an order a machine can follow.0123four nodes, three freedoms eachthe marked member touches six of the twelvethe global matrix, twelve by twelvethirty-six entries added in; the rest untouched
Fig. 2 One member’s contribution, scattered into the freedoms it touches. Every entry it contributes outside those six is exactly zero, which is the whole reason the global matrix is sparse.

The equilibrium is in the addition — the forces at a node from every member meeting there must sum to whatever is applied — and the compatibility is in the sharing of an index, because two members attached to the same node are being given the same displacement by construction. Those are the two conditions every method in this field enforces, and here they are enforced by an array index rather than by an argument.

The check, which has to come from outside

A method that assembles its own answer from its own parts can be internally consistent and wrong, so the assembly needs to be held against something it does not contain.

The propped cantilever is the right test because its answer is classical and short: a cantilever of span LL under a uniform load ww, propped at its free end, has a prop reaction of 3wL/83wL/8. That number comes from compatibility — the prop deflection cancels the free cantilever’s — and nothing in a stiffness assembly derives it.

Assembled from sixteen elements and solved, the prop comes out at 3wL/83wL/8 to a part in a billion, which is the residual of the elimination and not of the physics. The method is exact for a structure made of members whose behaviour is the element matrix’s, and the only approximation anywhere is the arithmetic’s.

One support too manyThe same uniformly loaded beam with three sets of restraints, and the bending moment in each. Adding restraint moves moment from mid-span to the supports and lowers the peak — but only the first case can be solved by statics.simply supportedstatics alonesag 160.0propped at one endneeds stiffnesssag 90.0hog 160.0built in at both endsneeds stiffnesssag 53.3hog 106.7the load never changes; only what is holding the endsthe built-in case peaks at two-thirds of the simple span's moment
Fig. 3 The structure the assembly is checked against. Its answer comes from a compatibility argument the matrix never makes, which is what makes it a check rather than a restatement.

Singular until the supports go in

The first structural property of the matrix is one nobody sets out to produce.

Assemble a frame and do not restrain it. The resulting K\mathbf{K} is singular, and its null space has exactly three dimensions: the two rigid-body translations and the rigid-body rotation that a plane structure can undergo without straining anything. A vector in that null space is a displacement pattern that costs no energy, so K\mathbf{K} maps it to zero.

That is the same statement a truss that is a mechanism makes, arrived at from the other end. There, the equilibrium matrix has a null vector and it is a mechanism of the structure; here, the stiffness matrix has three of them and they are mechanisms of the structure with respect to the ground. An unsupported structure is a mechanism, and the linear algebra says so before any structural reasoning does.

The practical value of that is diagnostic. A frame with a member accidentally disconnected, or a joint released in both rotation and translation, has a fourth null vector — and the solver reports a singular matrix, which is a true and unhelpful message. Computing the null space instead returns the displacement pattern that costs nothing, and that pattern points straight at the missing restraint. Nearly every finite-element package has that facility and it is under-used.

Counting unknowns against equationsThree frames differing by one member. Two equilibrium equations per joint, one unknown per member and one per restraint: fewer unknowns than equations is a mechanism, equal is solvable by statics, more needs stiffness.m 4 + r 3 − 2j 8 = -1a mechanismm 5 + r 3 − 2j 8 = 0statically determinatem 6 + r 3 − 2j 8 = +1one member too manystatics can answer only the middle case
Fig. 4 Counting restraints against equations, which is the hand version of the same question. The null space is what the count is trying to detect, and it detects it without being able to say where.

Sparse, banded, and the numbering decides which

The second property is the one that made the method practical rather than merely correct.

A member reaches only its own two nodes, so it can contribute nothing to any row belonging to a node it does not touch. Every such entry is zero exactly rather than nearly, and for a frame of any size the great majority of the matrix is zeros: 16 per cent non-zero for the small frame above, 5 per cent for a twenty-storey one, and falling.

More usefully, the non-zeros sit in a band about the diagonal, whose width is the largest difference between the global freedom numbers at the two ends of any member. And that number is a property of the labelling.

The same frame, numbered twice, and one is an order of magnitude cheaperThe stiffness matrix of a 1-bay, 8-storey frame, assembled twice from the same members with the nodes numbered two different ways. The two matrices contain identical numbers in different places, they give identical displacements, and their bandwidths are 28 and 8. A banded solve costs about n·b² operations against a dense n³/3, so the wider numbering costs 12 times the work for the same answer. Bandwidth is the largest difference between the node numbers at the two ends of any member — a property of the labelling, not of the structure — which is why every solver in the world renumbers before it factorises, and why nothing about the physics changes when it does.numbered by columnnumbered by storeybandwidth 28bandwidth 842.3k operations3.5k operationsidentical answers, identical numbers, different places
Fig. 5 The same frame numbered two ways. Identical numbers in different places, identical answers, and bandwidths that differ by a factor the solve time squares.

Take a one-bay, twenty-storey frame. Number the nodes column by column — all the way up one column, then all the way up the other — and every beam connects nodes twenty-one apart, giving a bandwidth of 65. Number them storey by storey and every member connects nodes at most two apart, giving 8.

A banded elimination costs about nb2n b^2 operations against a dense n3/3n^3/3. So the two numberings of the same frame differ by a factor of sixty-six in the work of solving it, for answers identical to the last bit. That is why every solver in existence renumbers before it factorises, using a bandwidth-reducing permutation, and why nothing about the physics changes when it does.

There is a general point in that worth extracting. The structure of a matrix is not a property of the problem, it is a property of the ordering — and a great many computational costs in this subject are decided by choices that are invisible in the engineering.

Symmetry, and what it is a statement about

There is a third property, and it is the one that halves the cost of everything above.

K\mathbf{K} is symmetric: the force at freedom ii due to a unit displacement at jj equals the force at jj due to a unit displacement at ii. That is not a convenience of the algebra, it is Maxwell’s reciprocal theorem restated — a statement about linear elastic bodies proved in 1864, three-quarters of a century before anybody assembled a matrix.

Every solver relies on it. Symmetric storage halves the memory; a Cholesky factorisation instead of a general elimination halves the operations again; and the symmetry is what allows the factorisation to be done without pivoting, which is what makes the band survive the solve. A non-symmetric formulation — which follower forces and some contact problems produce — loses all three at once, and the cost of analysing such a problem is several times that of an ordinary one for reasons that are entirely about the theorem no longer holding.

The physical content of the symmetry is worth restating because it is easy to lose. It says that a structure has a strain energy — a scalar function of its displacements — and that the stiffness matrix is that function’s second derivative. Symmetry follows because mixed partial derivatives commute. Anything that breaks the symmetry is something that has no potential, which is to say a load that does work round a closed cycle, and such loads are the ones that produce instabilities of a kind no eigenvalue of a symmetric matrix can find.

What it asserts, and what it does not

It is worth being precise about the method’s claims, because it is easy to credit it with more than it has.

It asserts nothing about the members. The element stiffness is a beam solution: plane sections, small displacements, linear elasticity, no shear deformation unless it is put in. Every limitation of beam theory is inherited unchanged, and the matrix does not improve any of them.

It asserts nothing about the joints. A shared node means a rigid connection, and a real connection is neither pinned nor rigid. Modelling a semi-rigid joint means putting a rotational spring in, which is a decision somebody has to make and a stiffness somebody has to know.

And it gives displacements. Forces come out afterwards by multiplying the element matrix by its own end displacements, and stresses come out after that by a section calculation the method has not performed. The quantity that decides a design is nearly always a stress at a point that no element in the model contains — which is why the output of an analysis is the input to a design and not a substitute for it.

The deflection at x = 3, by virtual workThree diagrams: the moment from the real load, the moment from a unit load placed where the answer is wanted, and their product. The area under the third, divided by EI, is the deflection — 197.50 here. No standard case was consulted, so the method works for any load pattern at all.real Mpeak 32.0a unit load, here and nowhere elseunit mM × marea ÷ EI = 197.50the unit load is the only place the question 'deflection where?' is asked
Fig. 6 One deflection, obtained by an argument rather than by a solve. Virtual work answers exactly the question asked and nothing else, which is a virtue when the question is one.

What was lost, which is not nothing

Moment distribution was not merely slower. It was legible: every cycle showed a moment moving from one joint to the next, the sequence made the load path visible, and an engineer developed a feel for which joints mattered by watching them converge.

The answer arrives in instalmentsThe hogging moment at support 1 of a three-span beam, cycle by cycle. It starts at the fixed-end moment of 106.7 kNm — the value with every joint clamped — and settles at 164.4 kNm against an exact 164.3. The error falls by about a factor of four per cycle: 23.52, 6.53, 2.00, 0.73 kNm after one, two, three and four. Two cycles is an engineering answer and nobody had to invert anything.01234050100150200cycles of distributionmoment at the support (kNm)exact: 164.3all joints clamped
Fig. 7 The hand method converging. What it shows that a matrix solve does not is where the moment goes and in what order, which is a piece of understanding rather than a piece of arithmetic.

A matrix solve shows none of that. It produces a vector of displacements in one step, and the intermediate states have no physical meaning at all — the partial results of a Gaussian elimination are not partial structures. So the method that scales is also the method that hides its own reasoning, and the compensating discipline is to know what the answer should roughly be before the answer arrives.

There is a related loss worth naming. Hand methods forced a choice of which quantity to compute. Virtual work computes the deflection asked for and nothing else; the flexibility method computes the redundant asked for. A stiffness solve computes everything, whether or not anybody wanted it, and the temptation to read all of it as meaningful is the origin of a good deal of bad engineering. A number the analysis printed is not the same as a number the analysis is about.

The order it arrived in, which is backwards

The history is worth a paragraph because it explains why the method looks the way it does rather than the way its name suggests.

The flexibility method came first and is the natural hand method: choose redundants, release them, compute the deflections at the released points under the applied load and under unit values of each redundant, and solve a small system for the redundants. It is small — the system is as large as the degree of indeterminacy, which for a hand-analysable frame is a handful — and it needs judgement, because the released structure has to be chosen and a bad choice gives an ill-conditioned system.

The stiffness method is the opposite in every respect. Its system is as large as the number of freedoms, which is far larger than the degree of indeterminacy — thirty-six against nine for the small frame above. It needs no judgement at all: the freedoms are whatever the nodes are, the assembly is mechanical, and there is nothing to choose.

By hand that trade is absurd, which is why the flexibility method dominated for a century. On a machine it inverts completely: a large system with no choices in it is exactly what a computer is good at, and a small system requiring judgement is exactly what it is not. The method that won is the one that was worse for humans, and it won on the property that made it worse.

The transition is visible in the literature of the 1950s. The aircraft industry needed to analyse structures with hundreds of redundancies, which is beyond any hand method, and matrix formulations of both approaches were written there — the flexibility one first, because it was familiar, and the stiffness one shortly after, because it was the one that automated. By the mid-1960s the stiffness method had absorbed both structural analysis and the finite-element method, which is the same assembly applied to elements that represent pieces of continuum instead of members.

Where the model stops

The condition number is a physical statement. A frame with one member a thousand times stiffer than its neighbours produces a matrix whose eigenvalues span the same range, and the digits lost in the solve are the logarithm of that. Modelling a rigid link as a very stiff member — a common expedient — is a good way of destroying the precision of everything else in the model, and the symptom is not an error message but an answer that is wrong in its last several figures.

The element is the model. A frame element cannot represent a member that is warping, a panel zone that is shearing, or a joint region that is not a point. Every one of those needs either a different element or a spring, and choosing them is engineering rather than computation.

And the method is linear. Second-order effects, material yielding, contact and cracking all require the matrix to be reassembled as the structure deforms, which turns one solve into many and reintroduces every convergence question the hand methods had. The elegance above belongs to the linear case only.

The deflected shape is the moment, integrated twiceA loaded beam with its deflected shape above and its bending-moment diagram below. The shape was obtained by integrating the moment twice and fitting the constants to the supports; the vertical scale is exaggerated enormously.the largest movement, at x = 4.00momentdrawn at roughly three hundred times the real deflection —a beam at its serviceability limit moves about a three-hundredth of its span
Fig. 8 What the solve returns: a displacement field. Every force in the structure is recovered from it afterwards, and every stress after that.

The generalisation

The habit worth taking from this is about where the difficulty in a problem actually sits.

The stiffness method is not clever about structures. It is clever about indexing — about the fact that if each member’s contribution is written in terms of the freedoms it touches, then equilibrium and compatibility are both enforced by addition into a shared array, with no reasoning at each step. The engineering insight was fully available in 1900; what was missing was a reason to organise it that way, and the reason arrived with machines that were good at arrays and bad at judgement.

That pattern is general. A great many methods in this subject are a rearrangement of something already known into a form that a particular instrument is good at: graphic statics rearranged equilibrium for a drawing board, influence lines rearranged a search for a pair of dividers, moment distribution rearranged compatibility for a slide rule, and matrix methods rearranged all of it for a machine.

Maxwell's reciprocal theoremA load at one point and the deflection it causes at another, against the same load moved to the second point and the deflection read at the first. Both integrals return 46.6667, and neither calculation was told about the other. The two deflected shapes are entirely different; the two readings are identical.10 at 2δ at B = 46.66710 at 6δ at A = 46.667the shapes have nothing in commonand the two readings agree to 7e-15which is why an influence line can be measured by pushing the structure where it is easy to push
Fig. 9 The theorem that makes the stiffness matrix symmetric. Maxwell and Betti proved it about deflections; the matrix inherits it as a property of the array, and every solver relies on it to halve the storage.

The one thing that has not been rearranged is the free body. Every entry in every element matrix above came from cutting something out and insisting the sums cancel, and no amount of bookkeeping has removed the need to have done it.

Named alongside this one

Essays reaching for the same objects. Nobody chose these; they are what the concept index makes visible.

The objects this essay names

Each one links to every other essay that touches it.

BandwidthCompatibilityCondition numberDegrees of freedomDeterminacyEquilibriumFree bodyGlobal stiffness matrixIndeterminacyMoment distributionNull spaceRigid body motionSparsityStiffness methodVirtual work