Stability

The stiffness the load takes away

Buckling is usually taught as an event — a critical load, a bifurcation, a mode. Written as a matrix it stops being an event at all. A compressive load subtracts a stiffness from the structure, the subtraction grows with the load, and the critical load is simply where what is left reaches zero.

Assumes The matrix that replaced the hand methods, Strong enough and still falls over and The load that makes itself worse.

The buckling load of a pin-ended column is π2EI/L2\pi^2 EI/L^2, and every derivation of it in every textbook is a differential equation with a sine in it. That derivation is correct and it makes buckling look like a special subject with special mathematics, unrelated to the linear algebra that produced every other answer in the building.

Written as a matrix, it is not a special subject. It is the same equations with one more term in them, and the term has a physical meaning that the sine hides.

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. 1 Four versions of one 2-bay, 3-storey frame and the global equilibrium residual each produces — the sum of the reactions against the sum of the applied loads, as a fraction of the applied total. It is the first line every analysis prints, and it is the check that the matrix being solved is the structure that was drawn. Everything on this page happens inside that same assembly; buckling adds one term to it and changes nothing else.

Which free body produced the number

A member, deflected, carrying an axial compression PP. Cut it anywhere.

The internal forces on the cut are what an ordinary elastic analysis gives, and there is one more contribution nobody drew: the axial force PP acts along the member’s own deflected axis, which is no longer the straight line the stiffness matrix was written about. The component of PP perpendicular to the original axis is PP times the slope, and its moment about the cut is PP times the deflection.

That is a force proportional to a displacement, which is exactly what a stiffness is — except that its sign is wrong. It acts to increase the displacement that produced it. Collect all of them for a member and the result is a matrix, Kg\mathbf{K}_g, with the same shape as the elastic stiffness matrix and the opposite effect.

The total stiffness of the structure is then

KT=KE−λ Kg\mathbf{K}_T = \mathbf{K}_E - \lambda\,\mathbf{K}_g

where λ\lambda scales the load pattern. Nothing has been approximated. The geometric stiffness is a bookkeeping of the same free body, and its entries contain the axial force and the member’s length and nothing else — no modulus, no second moment.

Two questions, one matrix

Once the total stiffness is written down, the two calculations that were separate become one object asked two questions.

Solve it. KTu=f\mathbf{K}_T \mathbf{u} = \mathbf{f} at a chosen load level gives the deflections and forces of a second-order analysis. Everything about the structure is softer than the first-order answer, by an amount that depends on how much compression is in it.

Find where it fails to be solvable. The value of λ\lambda at which KT\mathbf{K}_T becomes singular is a generalised eigenvalue of the pair (KE,Kg)(\mathbf{K}_E, \mathbf{K}_g), and the associated eigenvector is the buckled shape. That value is αcr\alpha_{cr}, the elastic critical load factor, and multiplying it by the applied load gives every classical buckling result there is.

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 Where both matrices come from. A member’s own stiffness is rotated into the structure’s axes and its entries are added into the rows and columns of the freedoms it touches — arithmetic, not physics, and the geometric stiffness is assembled by exactly the same rule.

The unification is worth having for a reason beyond tidiness. It means a buckling load is available from a model that already exists, that the modes come out ranked, and that the answer is a property of the whole structure rather than of a member — which is the thing an effective length was always a proxy for.

What is actually in the matrix

It is worth writing one member’s geometric stiffness down, because its contents are surprising in a way that carries the whole argument.

For a beam element of length LL carrying an axial compression PP, relating the two end deflections and two end rotations to the transverse forces and moments they produce, it is

Kg=PL[6/5L/10−6/5L/10L/102L2/15−L/10−L2/30−6/5−L/106/5−L/10L/10−L2/30−L/102L2/15]\mathbf{K}_g = \frac{P}{L}\begin{bmatrix} 6/5 & L/10 & -6/5 & L/10 \\ L/10 & 2L^2/15 & -L/10 & -L^2/30 \\ -6/5 & -L/10 & 6/5 & -L/10 \\ L/10 & -L^2/30 & -L/10 & 2L^2/15\end{bmatrix}

and the striking thing about it is what is not there. No modulus. No second moment. No material of any kind. The geometric stiffness of a member depends on the force it is carrying and its length, and on nothing else whatsoever — a steel member and a timber member of the same length carrying the same axial force have identical geometric stiffness matrices.

That is the mathematical form of a fact this collection keeps arriving at. Stability is a question about geometry and equilibrium, and the material enters only through the elastic stiffness it is competing against. The critical load is where a term with a material in it and a term without one become equal, which is why every buckling result in the subject is a ratio of a material property to a length squared.

The fractions in the matrix come from assuming the member deflects in the cubic shape its own elastic stiffness was derived from — the consistent geometric stiffness. Assuming a straight line between the ends instead gives a simpler matrix with only the corner terms, which is the P-delta method every design office used before matrices were cheap, and which is exact for a storey’s sway and wrong within a member.

What sparsity has to do with it

Both matrices are almost entirely zero, and the reason is the same for both.

Almost all of it is exactly zero. The stiffness matrix of a 3-bay, 4-storey plane frame: 60 freedoms, of which 10.3 per cent of the 60² 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 14 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. 3 The stiffness matrix of a small plane frame — sixty freedoms, of which about a tenth of the entries are non-zero. The zeros are absences rather than small numbers.

A member reaches only the two nodes at its ends, so it contributes exactly nothing to any row belonging to a node it does not touch. Ten per cent of the entries of a sixty-freedom frame are non-zero, and they sit in a band about the diagonal whose width is set by how the nodes were numbered rather than by anything structural.

The same locality is what makes the eigenvalue tractable. Nobody forms KE−1Kg\mathbf{K}_E^{-1}\mathbf{K}_g and finds its eigenvalues; the practical methods count negative pivots in a factorisation of KE−λKg\mathbf{K}_E - \lambda\mathbf{K}_g as λ\lambda is stepped, which finds how many critical loads lie below a value without computing any of them. That is the matrix that replaced the hand methods doing a job the hand methods could not do at all.

Amplification, read as a softening

The familiar amplification factor 1/(1−P/Pcr)1/(1 - P/P_{cr}) falls straight out, and reading it in the right direction changes what it is for.

With one degree of freedom the total stiffness is k(1−P/Pcr)k(1 - P/P_{cr}), so a load applied on top of the compression produces a deflection f/kf/k divided by that bracket. The bracket is the stiffness that is left. At P/Pcr=0.2P/P_{cr} = 0.2 the structure has 80% of the stiffness it had; at 0.5, half.

Calling it a magnification of a deflection is a small lie with real consequences, because a stiffness decides things a deflection does not.

Near the bottom the wall holds the frame. Near the top the frame holds the wall. Storey shear carried by each system, up the height of a 28-storey building. At the base the wall takes 4% of nothing and the frame the rest; by level 21 the wall's share has gone negative — it is being dragged forward by the frame rather than restraining it, and the frame is carrying more than the whole applied shear. Neither system does that alone, and it is why the pair is stiffer than either: the top drift is 106 mm against 552 for the wall alone and 180 for the frame alone.
Fig. 4 Two systems sharing a load in proportion to their stiffnesses. Near the base the wall holds the frame and near the top the frame holds the wall, so the shares are not constants — and a change in either stiffness moves both.

Where two systems share a load, they share it in proportion to their stiffnesses, and compression softens the two by different amounts. A core with heavy gravity load loses more of its stiffness to Kg\mathbf{K}_g than a lightly loaded perimeter frame does, so the share changes with the vertical load — which no factor applied to a first-order deflection can reproduce. The same applies to a natural frequency, which is a stiffness over a mass, and which therefore falls as a building is loaded.

Why an assumed shape is always too high

The matrix form settles a question that the differential equation leaves obscure: the direction of the error in an approximate answer.

Assuming a shape means solving the problem on a one-dimensional subspace of the true displacement space, which is the same as adding constraints — and a constraint can only stiffen a structure. So the Rayleigh quotient is a strict upper bound, and it is stationary at the true mode, which is why a badly wrong shape gives a nearly right load. At a shape error of 30% the load is 79% high, and at 60% it is 177%: a parabola, not a straight line.

A column with no closed form, guessed at three ways. A pin-ended column whose flexural rigidity falls to 50% of its mid-height value at each end — a shape with no closed-form buckling load at all. The reference is a ten-term Ritz expansion solved as an eigenvalue problem, at 8.2486 EI/L². a half sine gives 8.402, a parabola gives 9.000, its own sag shape gives 8.338. Every one of them is high and none of them is low, because an assumed shape is a constraint on the column and a constraint can only stiffen it.
Fig. 5 A tapered column with no closed-form buckling load, guessed at three ways against a converged answer. Every guess is high and none is low.

Guessing the shape is the essay about the quotient; the matrix form is where the one-sidedness stops being a curiosity and becomes a rule. Any method that restricts the deflected shape — a coarse mesh, a chosen mode, an assumed sway pattern — reports a structure stiffer than it is.

What the eigenvalue knows that an effective length does not

An effective length factor is an attempt to write a whole-structure eigenvalue as a property of a single member, and the matrix makes clear both why it works and where it stops.

Both numbers there are eigenvalues of an assembled frame; the kk factors are the answers rewritten in the form π2EI/(kL)2\pi^2EI/(kL)^2 so that a member check can consume them. That rewriting is exact for the frame it was computed on and a fiction anywhere else, because the eigenvector spans the whole structure — which is why a storey is held or not held rather than a column being long or short.

The consequence in practice is that a second-order analysis makes effective lengths unnecessary rather than easier. If Kg\mathbf{K}_g is in the model, the softening is in the results, and the member check is then against the member’s own length between restraints with the frame effect already accounted for.

The two numbers a designer actually meets

Almost nobody computes αcr\alpha_{cr} for its own sake. It appears in practice as a threshold, and there are two of them.

Above about ten, the second-order effects can be ignored. At αcr=10\alpha_{cr} = 10 the structure has lost a tenth of its stiffness and the amplification is 1.11, which is inside the noise of everything else in a design. This is the value most standards use to declare a frame non-sway, and it is not a statement about bracing — it is a statement about how much of the stiffness the gravity load has already spent.

Below about three, nothing but a full analysis will do. The amplifier is 1.5 and rising steeply, the linearisation behind Kg\mathbf{K}_g is being asked to hold over a large change of geometry, and the sensitivity to the imperfection assumed is at its greatest.

Between them sits the amplified-sway method: run a first-order analysis, multiply the horizontal deflections and the moments they cause by 1/(1−1/αcr)1/(1 - 1/\alpha_{cr}), and check the members. It is exact for a structure with one sway mode and one deflected shape, and it is an approximation to the extent the real structure has several — which is the same restriction the assumed-shape argument above puts on everything else in this essay.

The place it is least reliable is a building whose gravity load is carried by columns that provide no lateral stiffness at all: leaning columns contribute a full share to Kg\mathbf{K}_g and nothing to KE\mathbf{K}_E, so a storey’s stability is a property of the storey rather than of the braced bay in it. A model that omits the gravity-only columns gets a critical load that is too high by exactly the ratio of the loads.

Both thresholds are read off a matrix that has to be assembled correctly before either means anything, and two of its properties decide whether the computation is possible at all.

The same frame, numbered twice, and one is an order of magnitude cheaper. The stiffness matrix of a 2-bay, 3-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 13 and 11. A banded solve costs about n·b² operations against a dense n³/3, so the wider numbering costs 1 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. 6 One 2-bay, 3-storey frame assembled twice from the same members, with its nodes numbered two different ways. The two matrices hold identical numbers in different places, give identical displacements, and have bandwidths of 13 and 11. A banded solve costs about n·b² operations, so the numbering is not a presentational choice.
The same problem, and one of these can be solved by hand. The flexibility matrices for a 6-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 52%. Both give the same bending moment everywhere. The structure did not change; the bookkeeping did, and the bookkeeping was the invention.
Fig. 7 The other way round: the flexibility matrices for a 6-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 that matrix is tridiagonal and each equation involves three unknowns; a different choice of redundant fills it completely.

Neither of those is about buckling and both decide whether a buckling analysis of a real building is affordable. An eigenvalue solve is a repeated solve of the same system, so a numbering that widens the band multiplies the cost of every iteration — which is the practical reason the geometric term was left out of hand methods for a century and is routine now.

The eigenvalue belongs to a load case, not to a structure

There is a consequence of KG\mathbf{K}_G being assembled from member forces that is easy to state and easy to forget, and it decides how the answer may be used.

KE\mathbf{K}_E is built from geometry and material. It is a property of the structure and it is the same for every load case. KG\mathbf{K}_G is built from the axial forces, which come from a load case — so the eigenvalue problem (KE−λKG)v=0(\mathbf{K}_E - \lambda\mathbf{K}_G)\mathbf{v} = \mathbf{0} has a different KG\mathbf{K}_G for every combination that is run.

So αcr\alpha_{cr} is not a number about a frame. It is a number about a frame under a stated pattern of load, and it answers exactly one question: by what factor may this load case be multiplied before the structure becomes unstable.

Three things follow that are worth having.

The governing case is not the heaviest one. A pattern that puts more compression into the slender members gives a lower αcr\alpha_{cr} at a smaller total load than one that spreads the same force across stocky ones. A frame’s worst stability case can be a load arrangement that is nowhere near its worst strength case, and the two have to be searched separately.

Two eigenvalues cannot be combined. αcr\alpha_{cr} for gravity and αcr\alpha_{cr} for wind do not average, do not add, and do not bound the combination. The combination has its own axial forces and therefore its own matrix, and the only way to get its eigenvalue is to assemble and solve it.

And a number quoted without its load case says nothing. “The frame has an αcr\alpha_{cr} of 12” is an incomplete statement in the way “the beam has a moment of 300” is, and it is much more likely to be repeated as though it were a property.

The same care applies to the amplification factor built from it. 1/(1−1/αcr)1/(1 - 1/\alpha_{cr}) is applied to the sway moments of the case its own eigenvalue was computed for, and using a gravity-case αcr\alpha_{cr} to amplify a wind case is amplifying by a number about a different set of member forces — usually in the unconservative direction, because a gravity-only case has less compression in the columns that the wind case is about to lean on.

Where the model stops

The geometric stiffness above is linearised. It was derived by taking the axial force as constant and the rotations as small, which makes the eigenvalue problem linear and the answer a bifurcation load. A structure whose geometry changes appreciably before it fails — a shallow arch, a cable net, a member with a large initial bow — needs the geometry updated as the load is applied, and then there is no eigenvalue at all.

An eigenvalue is elastic. KE\mathbf{K}_E is built from a modulus, and a structure that yields before it buckles has a different matrix by the time it matters. Every practical use of αcr\alpha_{cr} is therefore a screening quantity — above some value the second-order effects can be ignored, below another a full analysis is required — rather than a capacity.

A member’s axial force is taken as known. The matrix is assembled with the axial forces from a first-order analysis and then used to find how those forces change. In a frame where the redistribution is large — a transfer structure, a frame with very unequal column loads — the two disagree and the assembly has to be repeated with the new forces, which is an iteration nobody’s software reports having done.

It says nothing about imperfections. The eigenvector has an arbitrary amplitude, so the analysis knows the shape of the failure and not its size. Getting a usable answer means applying an imperfection in that shape and re-solving, which is the second-order analysis again with the mode as an input.

What the picture cannot show

A buckled shape drawn on a page has an amplitude, and the mathematics does not. Every mode picture in this essay is a direction in a sixty-dimensional space, scaled to something visible, and the scaling is a decision of the person drawing it.

Nor does any picture show the modes that were not drawn. A frame has as many critical loads as it has freedoms, and the useful information is often not the lowest one but the gap between the lowest few: two nearly equal critical loads mean two mechanisms competing, and a structure whose behaviour is decided by an imperfection’s alignment rather than by either mode — the state a third of what the theory promised is about. That is two ways of buckling at once, and it is invisible in a figure that plots one number.

The generalisation

The habit worth carrying is that a load can be a stiffness.

Everything in a linear analysis divides cleanly into things that push and things that resist. The geometric stiffness is neither: it is a load, entering the equations in the place where a stiffness goes, with a sign that removes rather than adds. Once that is admitted, a set of separate subjects collapse into one.

Tension does the same thing with the other sign, which is why a prestressed cable is stiff and a slack one is not — the geometric stiffness of a tensioned member is positive and can be the only stiffness it has. A membrane works entirely this way, which is why a roof held up by the air inside it has a stiffness proportional to its pressure. A spinning disc stiffens itself. And a building’s natural frequency falls under gravity load for exactly the reason its deflections grow.

The unifying statement is short. Stiffness is not a property of a structure; it is a property of a structure in a state, and the state includes what is already being carried.

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

Every essay whose body links to this one.

The objects this essay names

Each one links to every other essay that touches it.

AmplificationBucklingCompatibilityCritical loadDegrees of freedomEffective lengthEigenvalueGeometric stiffnessMode shapeP-deltaRayleigh quotientSecond-orderSparsityStabilityStiffness matrix