Fluids

The heap that becomes a solid

Sand poured into a jar flows; the same sand shaken down and pressed does not. Nothing about the grains has changed — not their size, their hardness, their friction or their density by more than a per cent — and the thing that changed is a count of contacts, which crosses a threshold set by the dimension of space and by nothing else.

Assumes: The angle that does not know the size of the heap · The silo that does not weigh what it holds

A material that flows and a material that does not are usually different substances. Sand is both, and the change between them is startlingly small: pour it and it flows like a liquid, tap the container a few times and press, and it holds a load without deforming at all.

Where a heap stops flowing. The number of motions that cost nothing, against the mean number of contacts each grain has, for a patch of 37 grains. Every point is the rank of an actual rigidity matrix — one row per contact, one column per coordinate — subtracted from the number of coordinates, so it is a measurement of the network rather than a formula about it. The dashed line is Maxwell's count, two coordinates a grain minus half a contact each, which is what the counting alone predicts. The measured curve reaches its floor of three free motions — the rigid-body ones — at a coordination of 4.11, and Maxwell's line reaches zero at exactly four, which is twice the dimension of the plane. That is the isostatic point and the difference between the two numbers is the boundary of a finite patch, whose outer grains have fewer neighbours than they would in an infinite one. Above the threshold the two curves separate: the measured floor stays at three while the count keeps falling, and the gap is the redundancy — contacts whose forces no equilibrium equation can determine. Below it the pack has genuine mechanisms and will rearrange under any load at all. The transition is in the count and not in the material, which is why a fluid and a solid here are made of exactly the same grains.
Fig. 1 The number of motions that cost nothing in a pack of grains, against the mean number of contacts each grain has. Every point is the rank of an actual rigidity matrix subtracted from the number of coordinates, so it is a measurement of the network rather than a formula about it.

The density changes by a per cent or two across that transition. The grains do not change at all. What changes is a count, and the number it has to cross is fixed by the dimension of space.

The count

Each grain in the plane has two coordinates. A pack of NN grains therefore has 2N2N numbers describing where everything is, and any motion of the pack is a choice of 2N2N small changes to them.

Each contact between two grains forbids one motion: they may not approach or separate along the line joining their centres. A contact is therefore one equation in those 2N2N unknowns. With NN grains each touching ZZ others, the number of contacts is NZ/2NZ/2 — halved because each is shared.

So the free motions number 2NNZ/22N - NZ/2, and they run out when ZZ reaches 4. In three dimensions the same argument gives 6. Twice the dimension, in both cases, and this is Maxwell’s condition; a network sitting exactly at it is called isostatic.

The same grains, with and without enough contacts. A patch of 37 grains in the plane, drawn twice. On the left every contact of the triangular packing is present: 90 of them, a mean coordination of 4.86, and the rank of the rigidity matrix is 71 out of 74 coordinates — so the only free motions are the three that move the whole pack, and 19 contacts are redundant, which is to say the forces in them cannot be found from statics. On the right the same grains keep 56 contacts, a coordination of 3.03, and the rank falls to 56: there are now 18 free motions, of which 15 rearrange the pack rather than move it. Nothing has changed about the grains, their size, their friction or their density. What has changed is a count, and the pack on the right will flow under any load while the one on the left will not. The rank is computed by elimination on the actual matrix rather than from Maxwell's formula, which is why the redundancy on the left is visible at all — the formula predicts it but cannot say where it is.
Fig. 2 The same grains twice, with and without enough contacts. On the left every contact of the triangular packing is present and the only free motions are the three that move the whole pack. On the right the same grains keep 62 per cent of them and there are eighteen free motions, of which fifteen rearrange the pack.

It is worth noticing what that number does not depend on. It contains no material property: not the stiffness of the grains, not their friction, not their size, not the strength of whatever holds them together. It contains no load either. The threshold is a statement about a network of constraints, and the same statement holds for a pack of glass beads, a pack of steel balls and a pile of gravel — which is why the angle a heap of any material settles at is so nearly the same for materials with nothing else in common.

The word “free” is doing exact work here. A free motion is one that changes no contact separation, so no grain has to be compressed and no energy is required. A pack with even one of them is not a solid: apply any load with a component along it and the pack rearranges rather than resisting, however hard the grains are.

Counting is not measuring

The count above is an average, and averages can hide things. A pack could sit at Z=4Z = 4 overall with one region over-braced and another still floppy, and the count would not notice.

So none of the numbers in this essay comes from the count. Each is the rank of the pack’s rigidity matrix — one row per contact, holding the direction along which that contact forbids relative motion — obtained by elimination on the actual matrix. The free motions are the number of coordinates minus that rank, which is a statement about the arrangement in front of it rather than about a typical arrangement.

That distinction is the same one a four-legged table forces, and the machinery is identical: three equations and four unknowns there, 2N2N coordinates and NZ/2NZ/2 constraints here.

The check that the matrix is the right matrix is worth stating, because a sign error in a contact vector produces a matrix of full rank and a figure reporting a rigid pack at every coordination. Translating or turning the whole pack changes no contact separation, so those three motions must be in the null space whatever the contacts are — and they are, to a part in a thousand billion, every time the figure is drawn.

A mechanism, found rather than designed

The most direct way to see what “free motion” means is to draw one.

A rearrangement that costs nothing. One of the 15 free motions of an under-connected pack, drawn as an arrow on each grain. It was not designed: it is what is left of an arbitrary displacement after everything the contacts forbid has been projected out of it, and then the three motions of the pack as a whole as well. Every contact drawn keeps its length under this motion to 8.3e-17, so the grains slide past one another without any of them having to be compressed — which is what it means for the motion to cost no energy. A pack with even one of these is not a solid: apply any load with a component along it and the pack rearranges rather than resisting, however hard the grains are. The arrows are largest where the network is thinnest, which is the sense in which a granular material fails at its weakest connection rather than at its weakest grain. What the picture cannot show is what happens next: as the pack moves along this motion, contacts break and new ones form, so the mechanism is a statement about the configuration it is drawn on and not about a trajectory.
Fig. 3 One of the fifteen free motions of an under-connected pack, drawn as an arrow on each grain. It was not designed: it is what is left of an arbitrary displacement after everything the contacts forbid has been projected out, and then the three motions of the pack as a whole as well.

An arbitrary push was applied to the grains, and then every component the contacts forbid was removed from it, along with the three rigid-body motions. What remains stretches no contact — to eight parts in a hundred million billion — so the grains slide past one another without any of them being compressed.

That is what it means for the motion to cost nothing. There is no barrier to overcome, no elastic energy stored, no threshold force. A pack with a mechanism yields to an infinitesimal load in the direction of the mechanism, which is the operational definition of a fluid.

The arrows are largest where the network is thinnest, which is the sense in which a granular material fails at its weakest connection rather than at its weakest grain. It is also why the strength of a pack is so much more variable than the strength of the material it is made of.

Above the threshold, and what is still not determined

Crossing the threshold makes the pack rigid. It does not make the forces in it knowable.

The contacts whose forces nothing can determine. How many contacts are redundant — present, load-bearing, and carrying a force that no equilibrium equation fixes — against the mean coordination, for the same patch of 37 grains. A contact is redundant when its row of the rigidity matrix is a combination of rows already there, so the count is the number of contacts minus the rank, measured by elimination. It is zero at low coordination and first becomes positive at Z = 3.41, reaching 19 in the fully packed lattice at Z = 4.86. That is the arithmetic behind a fact every silo designer knows and no statics course explains: the forces in a dense granular pack are not determined by the loads on it. Two identical silos filled the same way carry different force networks, and which one a given pack has depends on how it was built. The same count is why a four-legged table wobbles and a three-legged one cannot, and why a photoelastic pack shows bright chains through some grains and darkness through their neighbours. What the count cannot say is what the forces actually are, which needs how much each contact gives — and for grains stiff enough, that information is nearly absent.
Fig. 4 How many contacts are redundant — present, load-bearing, and carrying a force no equilibrium equation fixes — against the coordination. It is zero at low coordination and rises steadily above the isostatic count.

A contact is redundant when its row of the rigidity matrix is already spanned by the others: removing it does not add a free motion, and no balance of forces or moments determines its force. Above the isostatic point the redundancy grows, and in a fully connected triangular patch of 37 grains it reaches 19 contacts.

That is the arithmetic behind a fact every silo designer knows and no elementary statics course explains. Fill two identical silos identically and the chains of heavily loaded grains run in different places. The load sharing depends on how the pack was built — on the packing history, on tiny differences in grain shape, on whether the container was tapped — exactly as the load sharing between four table legs depends on which one is a hundredth of a millimetre short.

The chains a uniform load breaks into. A 12-row triangular packing in which every grain weighs the same and passes its whole load to the two grains below it, in a ratio drawn at random for each contact. Nothing is lost: the total load in each row is exactly the number of grains above it, checked here to 2.7e-16. The line widths are the contact forces, and they are uniform nowhere — the load travels in chains with quiet regions between them. In the bottom row the heaviest grain carries 1.44 times the mean and the lightest 0.37 times it, out of a rule containing no heterogeneity at all. This is what Janssen's constant is an average over, and why a silo wall is designed for a pressure it will never see uniformly.
Fig. 5 Force chains in a loaded pack. The bright paths carry most of the load and the grains between them carry almost none; which grains are in a chain is decided by the packing history rather than by the load, because the redundancy leaves it open.

The silo’s walls carrying most of the weight is the same indeterminacy seen from outside, and the enormous variability of measured wall pressures — enough that silo codes carry safety factors of several — is the redundancy showing itself in practice.

What the transition is not

Two natural descriptions of the same phenomenon are wrong, and both are worth stating because both are widely used.

Everything about a pack quoted as a property of the material — a packing fraction, a wall pressure, a yield stress — is really a property of how the pack was made. Pour it, tap it, or shear it and the same grains arrive at different states, all of them rigid and none of them the same. That is what the transition is not: it is not a phase transition to a unique state, and there is no equilibrium argument that picks one arrangement out of the many available.

It is not a density threshold. Random close packing of equal spheres sits near a fraction of 0.64, and that number is quoted so often that it is easy to take for the criterion. It is not: the criterion is the contact count, and density predicts it only for packings prepared in one particular way. Vibrate a pack and it gains contacts at nearly constant density; that is why tapping a jar of sand makes it firm rather than smaller.

And it is not a phase transition in the thermodynamic sense. There is no temperature here worth the name — the grains are far too large for thermal motion to move them, and the pack does not explore configurations on its own. What happens at the threshold is a geometric and mechanical change in a system with no thermodynamics at all, and borrowing the vocabulary of phase transitions for it has been productive and occasionally misleading.

The friction that changes the number

The count above assumes each contact forbids exactly one motion, and that is true only if the grains are frictionless.

A frictional contact resists sliding as well as approach, so each one removes more freedoms than a frictionless contact does — and the number of contacts a pack needs in order to be rigid falls accordingly. That is why the isostatic count depends on whether friction is present: frictionless spheres need six contacts each and frictional ones need four, and real sand sits between the two because its friction is neither infinite nor absent.

A frictional contact also resists sliding, and it can transmit a torque. Counting those extra constraints — and the extra rotational freedom each grain then has — gives an isostatic number of 3 in the plane rather than 4, and 4 in three dimensions rather than 6. So a rough pack jams at a lower coordination than a smooth one, which is why sand piles up and ball bearings do not.

Real packs sit between the two limits, because friction is neither absent nor infinite: a contact is only sliding-constrained while the tangential force is below the friction limit, and near the threshold some contacts are at that limit and some are not. The effective isostatic number is therefore not a constant of the material but depends on the loading, which is one reason the transition in a real granular material is broad where the idealised one is sharp.

The angle a heap settles at is the same friction seen at the moment the pack gives way, and a paste with a yield stress is what the same threshold looks like when the grains are small enough for surface forces to hold them together.

What it feels like from outside

The count is invisible from outside the pack, and what is visible instead is a set of behaviours that look like several different things and are one.

A pack above the jamming threshold behaves like a material with a finite intercept: nothing flows until the stress reaches a yield value, and above it the resistance rises with the rate. That is what the transition feels like from outside — not a change in stiffness but the appearance of a yield stress where there was none, which is the mechanical signature of the count having been crossed.

A pack below the threshold has no yield stress: any shear, however small, produces flow. A pack above it has one, because a mechanism has to be created before anything can move and creating one costs energy. Measured on a rheometer, that is the difference between a liquid and a plastic solid, and it is the same difference the rank computation reports.

The sound speed does the same thing. A pack with free motions has soft modes at zero frequency, so a compressional disturbance is carried by whichever chains happen to be loaded and the speed measured is low, erratic and history-dependent. Above the threshold the pack has a genuine elastic modulus and a well-defined speed — though it still rises with the confining pressure in a way no ordinary solid’s does, because squeezing the pack adds contacts.

The closed form, and how deep a pile has to be to obey it. The load on the grains of the bottom row, normalised to the mean, against the distribution 4f·e^(−2f) the q-model is quoted as having. The bars are 900 piles 12 grains deep — 13500 grains in all — with mean exactly 1, as conservation requires, and variance 0.234 against the closed form's exactly 0.5: an integrated absolute difference of 0.345. That variance is checked against the lattice's own second-moment recursion, which gives 0.236 without sampling anything. The dashed outline is the same model run 96 grains deep, at variance 0.375 and a difference of 0.137. Nothing about the rule has changed between them — the closed form is an asymptote in depth and a shallow pile has not reached it. What both already have is the shape that matters: zero probability of a grain carrying nothing, and an exponential rather than Gaussian tail, so a grain at five times the mean is rare and not vanishingly rare.
Fig. 6 The pressure at the base of a column against its depth, against the closed form it approaches. What a redundant network does with a load it has more than one way to carry is exactly why the approach is slow and why the measurement scatters.

And the memory is the most peculiar consequence. Because the redundancy leaves the force network undetermined, a pack remembers how it was made: a column pressed from above and a column pressed from the side, at the same density and the same coordination, respond differently to the next load. There is nothing in the grains that stores this. It is stored in which of the available force networks the pack settled into, and it is erased by any rearrangement large enough to remake the contacts.

Why the same count keeps appearing

Constraint counting is not a granular technique. It is a general statement about when a set of equations pins a set of unknowns, and it turns up wherever a network has to be rigid.

Where a heap stops flowing. The number of motions that cost nothing, against the mean number of contacts each grain has, for a patch of 19 grains. Every point is the rank of an actual rigidity matrix — one row per contact, one column per coordinate — subtracted from the number of coordinates, so it is a measurement of the network rather than a formula about it. The dashed line is Maxwell's count, two coordinates a grain minus half a contact each, which is what the counting alone predicts. The measured curve reaches its floor of three free motions — the rigid-body ones — at a coordination of 3.89, and Maxwell's line reaches zero at exactly four, which is twice the dimension of the plane. That is the isostatic point and the difference between the two numbers is the boundary of a finite patch, whose outer grains have fewer neighbours than they would in an infinite one. Above the threshold the two curves separate: the measured floor stays at three while the count keeps falling, and the gap is the redundancy — contacts whose forces no equilibrium equation can determine. Below it the pack has genuine mechanisms and will rearrange under any load at all. The transition is in the count and not in the material, which is why a fluid and a solid here are made of exactly the same grains.
Fig. 7 The same measurement on a smaller patch. The threshold moves a little, because a small patch is nearly all boundary and boundary grains have fewer neighbours — which is a statement about the sample rather than about the physics.

A glass network obeys it: the rigidity of a chalcogenide glass depends on the average number of bonds per atom, and the compositions where that average crosses the isostatic value are anomalously stable — which is a design rule in the glass industry rather than a curiosity.

A protein obeys it: rigidity analysis of a folded structure, counting covalent bonds and hydrogen bonds as constraints, identifies which regions are rigid and which are hinges, and it does so from the count rather than from a simulation.

A folded sheet obeys it, and the counting is the whole of the design method: a crease pattern is rigid or has a mechanism according to how the constraints at each vertex compare with the freedoms, which is why some patterns fold flat along exactly one path and others are floppy.

A truss obeys it, and the engineering vocabulary is older than the physics: a determinate truss is isostatic, a mechanism is under-braced, and a redundant one is over-braced. The vocabulary was invented for bridges and applies unchanged to sand.

The rule and its correction

The counting rule was Maxwell’s, from an 1864 paper on the stiffness of frames, and it was corrected a hundred and fourteen years later in a way that explains exactly why this essay computes ranks instead of counting contacts.

Maxwell’s statement is the one used above: a frame is just rigid when the number of bars equals the number of joint coordinates minus the rigid-body motions. Too few bars and it has a mechanism; too many and it is redundant.

Calladine pointed out in 1978 that the count does not give either quantity. It gives their difference:

ms=dN12d(d+1)c,m - s = dN - \tfrac{1}{2}d(d+1) - c,

where mm is the number of independent mechanisms and ss the number of independent states of self-stress — sets of bar tensions that balance at every joint with no external load applied.

That single change matters because a structure can have both at once. A frame satisfying Maxwell’s just-rigid count exactly can have one mechanism and one state of self-stress, and the count reports zero because they cancel. No amount of care with the arithmetic finds them; only the rank of the matrix does, and the rank of its transpose gives the other.

The two figures in this essay are therefore the two halves of that theorem, computed separately. The free motions are mm, obtained from the null space of the rigidity matrix; the redundant contacts are ss, obtained from the null space of its transpose. Their difference is what Maxwell’s count would have predicted, and their individual values are what the count cannot supply.

There is a mechanical consequence and it is the more useful half. A state of self-stress can rigidify a mechanism. If a structure has a motion that changes no bar length to first order but would stretch a bar at second order, then pretensioning that bar makes the motion cost energy, and the structure becomes rigid despite being a mechanism by count.

Every prestressed structure works this way. A bicycle wheel is a mechanism if its spokes are slack and a stiff wheel if they are tensioned; the spokes never take compression, and the wheel’s rigidity comes entirely from the state of self-stress. So does a tensegrity sculpture, a cable-stayed roof, a tent, a drum skin and a spider’s web — all of them structures that counting says should collapse and that stand because they are pulled tight against themselves.

The gripper made of coffee

Prestress is what turns the last section into an everyday demonstration, and there is one in most kitchens.

A brick of vacuum-packed ground coffee is rigid. It can be dropped on a floor without deforming, and it rings when it is tapped. The grains inside it are the same powder they were before packing, at very nearly the same density, and nothing has been added.

What has been added is an atmosphere of external pressure squeezing the whole pack. That does two things at once, and both are on this page. It pushes grains into contact that were not touching, raising the coordination past the threshold; and it puts the resulting network into a state of self-stress, so that the motions which would otherwise cost nothing now work against a pretension. The brick is rigid for exactly the reason a bicycle wheel is.

Cut the bag open and the brick becomes a powder within a second, with no rearrangement worth the name — the pressure is released, the contacts open, and the mechanisms return.

The effect has been made into a robot’s hand. Fill a latex membrane with ground coffee, press it onto an object of any shape so that the loose grains flow around the contours, and then evacuate the membrane. The pack jams, the shape is frozen, and the resulting rigid mould grips the object well enough to lift it — with no fingers, no joints, no sensors and no knowledge of what the object is.

A universal gripper built on that principle was demonstrated in 2010 and picks up objects it has never encountered without any programming at all, which is a thing no articulated hand does easily. Three effects contribute: the geometric interlocking of the frozen shape, friction against the surface, and — where the membrane seals against a smooth object — outright suction.

What makes it worth including here is that the design variable is the one this essay is about. The grip strength is set by how far past the jamming threshold the vacuum drives the pack, and the release is instantaneous because crossing back below the threshold takes no rearrangement at all.

What the pictures cannot show

The grains are discs and the lattice is regular. A real pack is disordered, its grains are not round, and its contacts are not all at the same distance. What survives that generalisation is the count and the rank; what does not is the crispness of the threshold, which in a disordered pack is smeared by finite size and by the distribution of contact numbers.

The patch is 37 grains. That is small enough that a third of them are on the boundary with fewer neighbours than they would have in a bulk pack, which is why the measured threshold sits at 4.11 rather than at 4. The direction of that correction is understood and its size is a statement about the sample.

Nothing here is loaded. The rigidity matrix says which motions cost energy; it says nothing about how much, which needs the contact stiffnesses, nor about which contacts exist under load, which needs the deformations. A pack near the threshold has a shear modulus that vanishes as the excess coordination, and that scaling is a different measurement from this one.

And the mechanism drawn is a snapshot. Moving along it breaks contacts and makes new ones, so it describes the configuration in front of it rather than a trajectory. What a pack actually does under load is a sequence of such rearrangements, and following that sequence is a simulation rather than a rank computation.

The ladder from here

Later rungs on this anchor: the shear modulus’s vanishing at the jamming point and the exponent it vanishes with; the distribution of contact forces, which is exponential at large force and has a puzzling excess at small; the difference between jamming by compression and jamming by shear; and dilatancy, which is the requirement that a dense pack expand before it can rearrange, and which is why wet sand goes dry underfoot.

The neighbouring ladders are the silo that does not weigh what it holds, where the indeterminacy is measured on a scale, the table statics cannot settle, which is the same count with four unknowns instead of seventy-four, and the paste that holds up its own hill, where the threshold is crossed by surface forces rather than by contacts.

Part 3 of 6

This essay is one argument about Granular matter. The others:

What links here

Essays that reach for this one mid-argument — the half of a link its own author cannot write down.

What this makes readable

Essays that declare this one a prerequisite.

The objects named here

The third axis, after the field and the reading path: the things themselves, and every essay that touches each one.

Constraint countingCoordination numberDegrees of freedomForce-chainGranular matterIsostaticJammingRandom close packingRigidityStatically indeterminate