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,

K d=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 zero. The 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 the null vector of the equilibrium matrix makes about a truss that is a mechanism, arrived at from the other end.
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 touches. A 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.
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.

Where the peak moment goes when a restraint is added. The 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.
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 restraints against equations is the hand version of the same question, and the comparison is instructive about what each instrument can do. The count returns a single integer and knows nothing about where the deficiency is; the null space returns a displacement pattern and points at it. Both detect the same defect, and only one of them can be drawn on the frame.

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.

Almost all of it is exactly zero. The stiffness matrix of a 1-bay, 8-storey plane frame: 54 freedoms, of which 11.5 per cent of the 54² 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 28 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 the null vector of the equilibrium matrix makes about a truss that is a mechanism, arrived at from the other end.
Fig. 4 The same assembly for a one-bay, eight-storey frame. It has 54 freedoms against the first figure’s 36 and 11.5 per cent of its entries are non-zero against 16.2 per cent, so the proportion falls as the frame grows — a member still reaches only two nodes however many nodes there are. The non-zeros sit in a band 28 wide about the diagonal.

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 rather than of the frame — the same eight-storey matrix drawn above has a second version of itself with the same entries in different places and a band a third as wide.

The same frame, numbered twice, and one is an order of magnitude cheaper. The 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.
Fig. 5 The same eight-storey frame assembled twice from the same members, numbered column by column on the left and storey by storey on the right. The two matrices hold identical numbers in different places and return identical displacements, and their bandwidths are 28 and 8. A banded elimination costs about n·b² operations against a dense n³/3, so the column numbering costs twelve times the work for the same answer.

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.

Where the reactions come from, and why that check is weak

The supports enter by deleting things. A restrained freedom is known — usually zero — so its equation is struck out and its column with it, and what is left is a smaller system in the free freedoms alone. That is the operation the previous section’s singularity was waiting for: the null space vanishes the moment three independent restraints are removed.

What happens to the deleted equations is worth following, because it decides how much a common check is worth. They are not discarded. After the free displacements are solved, each struck-out row is re-evaluated — multiplied through by the displacement vector — and the number that comes out is that support’s reaction. The reactions are the residuals of the equations that were removed.

Which means the standard verification, summing the reactions and comparing with the applied load, is not the independent check it appears to be. It re-evaluates rows of the same K\mathbf{K} against the same d\mathbf{d}, so it will close whenever the elimination was arithmetically sound — whatever the element stiffnesses were. A member entered with ten times its true second moment produces a wrong displacement field, wrong member forces, and reactions that sum perfectly. That is exactly the class of error a global equilibrium check cannot see, and this is the mechanism: the check and the answer come out of one matrix.

The check that everything adds up, and the error it cannot see. Four versions of the same 2-bay, 3-storey frame, with the global equilibrium residual each one produces — the sum of the reactions against the sum of the applied loads, as a fraction of the applied total. It is the first thing every analysis prints and it is worth having: a lost restraint and a load entered in the wrong unit both show up immediately, at 6% and 24%, because both change what the structure is carrying. The fourth bar is the point. A member whose stiffness is wrong by a factor of ten redistributes the internal forces completely — the second bar shows the change in the member forces, 18% — and the global residual is exactly zero, because the wrong answer is still in equilibrium with the same loads. Equilibrium is one equation per degree of freedom of the whole body, and a stiffness error lives entirely in the many equations underneath it. A model can satisfy every equilibrium check ever devised and be a model of a different structure.
Fig. 6 Four versions of the same two-bay, three-storey frame, each with the global equilibrium residual it produces — the reactions summed against the applied load, as a fraction of the applied total. A lost restraint shows at 6 per cent and a load entered in the wrong unit at 24, because both change what the structure is being asked to carry. The fourth bar is the finding: a member whose stiffness is wrong by a factor of ten shifts the internal forces by 18 per cent and leaves the global residual at exactly zero.

The fourth bar is the whole of the argument above, drawn. Equilibrium of the whole body is one equation for each of its own three freedoms, and a stiffness error lives entirely in the many equations underneath that — so a model can satisfy every equilibrium check ever devised and still be a model of a different structure.

What would be independent is a free body drawn by hand across the whole structure — total load against total reaction, computed from the loading rather than from the model. It takes a minute, it uses no element matrix at all, and it is the only version of that check with anything outside the solve in it.

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.

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 instalments. The 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.
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.

The choice it needs is a real one, and its consequence is visible in the shape of the matrix it produces.

The same problem, and one of these can be solved by hand. The flexibility matrices for a 5-span continuous beam, one per choice of redundant, with the magnitude of each entry shaded and the exact zeros left empty. Releasing a moment at a support is felt only in the two spans either side of it, so the matrix is tridiagonal and each equation involves three unknowns — which is the three-moment equation, and is the whole reason continuous beams could be solved on paper for a century. Releasing a support instead is felt everywhere: a unit reaction at any interior support deflects every other point on the beam, so the matrix is full at 100% against 63%. Both give the same bending moment everywhere. The structure did not change; the bookkeeping did, and the bookkeeping was the invention.
Fig. 8 The flexibility matrices of a five-span continuous beam, one for each choice of redundant, with each entry shaded by magnitude and the exact zeros left empty. Release a moment over each support and the release is felt only in the two spans either side, so the matrix is tridiagonal — that is the three-moment equation, and it is why continuous beams were solved on paper for a century. Release a support instead and every entry is occupied: 100 per cent full against 63. The bending moment that comes out is the same either way.

That pair is the flexibility method’s whole difficulty in one picture. Nothing about the beam changed between the two matrices, and one of them can be solved by hand while the other cannot. A stiffness assembly has no equivalent picture, because it has no equivalent choice: the freedoms are whatever the nodes are, and the only thing left to decide is the order they are written in.

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 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.

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.

What this makes readable

Essays that name this one as a prerequisite.

Named alongside this one

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

What links here

The 8 essays that link to this one and share the most of its objects, of 12 that link here.

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