§ 3.4 Module 3 — Head Loss: Friction
An empirical formula is a promise about the conditions it was fitted in. This one keeps its promise, and almost nobody reads it.
By the end of this lesson
Most water utilities in the English-speaking world size their mains with Hazen-Williams, and few of the engineers doing it could say what the number in front of the formula is for. It is a turn-of-the-century fit with one parameter describing the pipe, no fluid properties, and a leading constant that changes value between unit systems while the equation around it stays identical. That is the trap: a borrowed spreadsheet returns an answer wrong by a fixed factor of 0.4433 — 56% too little head loss — plausible-looking, and in the direction that undersizes the pump.
Two engineers, a book of tables, and a solver that needed a power law
Allen Hazen (1869–1930) was an American sanitary engineer who had run the Lawrence Experiment Station of the Massachusetts State Board of Health, and whose name is also on the "effective size" used to grade filter sand. Gardner Stewart Williams (1866–1931) was professor of hydraulic engineering at the University of Michigan. Their Hydraulic Tables (John Wiley & Sons, first edition 1905) put the formula into every water utility's hands as tables of discharge and slope.
What matters is what they did not have. Johann Nikuradse's roughened-pipe experiments were published in 1933, C. F. Colebrook's implicit friction-factor equation in 1939, Lewis Ferry Moody's chart in the Transactions of the ASME in 1944. They fitted exponents to gauged pipe flows three decades before there was a Reynolds-number-based friction factor to fit against.
Its survival after 1944 is a computational accident. Hardy Cross's network relaxation method (University of Illinois Engineering Experiment Station, Bulletin No. 286, 1936) needs head loss as a power of flow, so that the derivative is trivial; Hazen-Williams hands you a fixed exponent of 1.852, while Darcy-Weisbach's moves with the friction factor. Network solvers were built around it: the US EPA's EPANET still offers Hazen-Williams, Darcy-Weisbach and Chezy-Manning as head-loss options. C. P. Liou set the limits out plainly in "Limitations and Proper Use of the Hazen-Williams Equation" (ASCE Journal of Hydraulic Engineering, 1998).
How much head does a full pipe of water lose to friction, if you would rather not compute a Reynolds number? Williams and Hazen answered that as a velocity, V = 0.849·C·R0.63·S0.54, with V in m/s, hydraulic radius R in m and S the friction slope. The US customary form is identical but carries 1.318, with V in ft/s and R in ft — and the difference is not physics: 1.318 × 0.30480.37 = 0.84918. Remember that artefact.
Substitute R = D/4 and Q = VπD²/4 for a full circular pipe and that becomes the discharge form everybody actually uses: hf = 10.67 · L · Q1.852 / (C1.852 · D4.8704), metres, with Q in m³/s and D, L in m. 1.852 is 1/0.54 rounded, 4.8704 is 2.63/0.54 rounded, and 10.67 is what 0.849 becomes under the same substitution, since (0.849 · π/4 · 4−0.63)−1/0.54 = 10.674. Each constant was rounded independently, which is why the two forms disagree by up to 0.19% here.
Doubling the flow multiplies the loss by 21.852 = 3.610, not by 4; Darcy-Weisbach with a nearly constant f gives close to 4, and that gap is §3.4.3. Doubling the diameter divides it by 24.8704 = 29.25; one nominal step, 250 to 300 mm, by 1.24.8704 = 2.43. PVC at C = 150 against forty-year cast iron at C = 80 is 3.20 times the loss. Length is linear.
Worked below on the pipe the instrument uses — 300 mm inside diameter, 1200 m, cast iron in good condition at C = 130, 60 L/s — the loss is 2.993 m at 0.849 m/s (2.79 ft/s). That velocity sits just under the 0.9 m/s where §3.4.3 starts caring about the gap to Colebrook, and the instrument says so on its face rather than hiding it: 60 L/s in a 300 mm main is an ordinary shoulder-of-the-day duty, and a formula is worth watching at the edge of its band and not only in the middle of it. Not yet accounted for: the valves, elbows and meter in the station, which Module 4 adds and which on station pipework routinely exceed this.
pipe 300 mm inside diameter, 1200 m, C = 130, Q = 60 L/s
area pi x 0.300^2 / 4 = 0.070686 m^2
velocity 0.060 / 0.070686 = 0.8488 m/s (2.79 ft/s)
SI form, k = 10.67, Q in m3/s, D and L in m:
Q^1.852 0.060^1.852 = 0.0054593
C^1.852 130^1.852 = 8222.9
D^4.8704 0.300^4.8704 = 0.0028403
hf 10.67 x 1200 x 0.0054593
/ (8222.9 x 0.0028403) = 2.9929 m
gradient 2.9929 / 1200 x 100 = 0.2494 m per 100 m
US form, k = 4.73, Q in cfs, D and L in ft:
Q 0.060 / 0.0283168 = 2.11888 cfs
D 0.300 / 0.3048 = 0.984252 ft
L 1200 / 0.3048 = 3937.008 ft
Q^1.852 2.11888^1.852 = 4.017436
C^1.852 130^1.852 = 8222.9 <- same C, same power
D^4.8704 0.984252^4.8704 = 0.9256034
hf 4.73 x 3937.008 x 4.017436
/ (8222.9 x 0.9256034) = 9.8294 ft
back to SI 9.8294 x 0.3048 = 2.9960 m <- 0.10% from 2.9929
One pipe, both forms (src/core/hydraulics.js). Every intermediate is shown to the digits the next line uses, so the chain can be checked on a calculator. The cross-unit agreement is the rounding between 10.67 and 4.73 — exactly 0.105% on the unrounded constants, and 0.10% once these five-figure intermediates have been through it.
The equation is the same in both unit systems. Only the number in front changes: 10.67 with Q in m³/s and D, L in metres, returning metres; 4.73 with Q in cubic feet per second and D, L in feet, returning feet. Nothing in the formula's shape says which system a cell was written for, and nothing in the answer's magnitude says it either.
That the two describe one law is provable in a line. Head loss carries ft → m once and length m → ft once, and those cancel; flow carries cfs → m³/s to the power 1.852, diameter ft → m to the power 4.8704. So 4.73 × 35.31471.852 × 0.30484.8704 = 10.681, 0.105% from the conventional 10.67. The whole difference between the published constants is rounding.
Now the failure. Type the worked pipe into a US-built spreadsheet — 0.060, 0.300, 1200 and 130 into cells that expect cfs and feet, with 4.73 in the constant — and it returns 1.327 m where the truth is 2.993 m. That is 0.4433 of the truth, which is 4.73/10.67 exactly, at every flow, diameter, length and C. It does not grow with the pipe and does not vary with the duty point, so no sensitivity check finds it. And its sign is the bad one: friction is under-stated, the total dynamic head is short, and the pump chosen against that TDH does not deliver the design flow. The mirror-image mistake, 10.67 with feet and cfs, is 2.2558 times too high — which wastes capital and gets caught, because the head looks absurd.
The defence costs thirty seconds: compute the pipe in the other system, convert, and compare — 9.8294 ft × 0.3048 = 2.9960 m against 2.9929 m. Disagree by more than about a tenth of a percent and one of them has the wrong constant. It is the only test a wrong leading coefficient cannot survive.
Interactive 3D instrument
One pipe, three answers — Hazen-Williams and its traps
A 3D instrument you drive yourself, one variable at a time. It needs JavaScript and WebGL, so it is not shown in this static copy of the page.
Hazen-Williams is not dimensionally homogeneous, so the leading constant carries the unit system:
SI: hf = 10.67 · L · Q^1.852 / (C^1.852 · D^4.871)
(Q in m³/s, D and L in m)
US: hf = 4.73 · L · Q^1.852 / (C^1.852 · D^4.871)
(Q in cfs, D and L in ft)
The C value is the same number in both. That is what makes the error so durable: a spreadsheet with the wrong constant still looks right, still uses a familiar C = 130, and produces a head loss wrong by a factor of about 2.3. Nothing in the output is dimensionally absurd, so nothing catches it.
Manning has the identical problem with 1.0 (SI) against 1.486 (US), where
1.486 is just 3.2808^(1/3).
Verify any borrowed Hazen-Williams sheet against one hand-worked case in your units before trusting it. Better: work in SI internally and convert only for display, which is what this course's calculation core does — and it has a cross-unit identity test that would fail loudly if the two constants ever disagreed.
C is tabulated by material and age, printed in the same handbook chapter as absolute roughness, and used as though the two described one wall interchangeably. Ask what roughness makes Colebrook agree with a given C and the question refuses to be answered without a velocity. That refusal is the finding.
Pin the two methods together at 1.5 m/s and 15 °C in the 300 mm pipe and the pairings land on real walls: C = 150 with ε = 0.016 mm, 130 with 0.195 mm, 120 with 0.401 mm, 100 with 1.471 mm. Plausible magnitudes, all four. Hold them against this course's own tables, though, and the map is well conditioned only at the rough end: 1.471 mm is within 2% of the 1.5 mm listed for aged cast iron, whose tabulated C is 100. The smooth end does not line up at all. The 0.0015 mm listed for PVC and HDPE is ten times smoother than the 0.016 mm paired with their tabulated C = 150 — and running that real 0.0015 mm back through the pairing returns C = 153. Tenfold in the wall, three points in C. That is not two scales describing the same objects; it is one scale that has run out of resolution, which is the harder version of this section's argument.
Now hold the wall fixed instead. ε = 0.26 mm in this pipe behaves like C = 135 at 0.14 m/s, 130 at 0.85 m/s, 125 at 1.70 m/s and 119 at 3.54 m/s. Nothing about the pipe changed. C drifted 12% because it is not a property of the pipe: it is the fitting parameter of a formula whose flow exponent is nailed down, so it absorbs whatever Reynolds-number dependence the real friction factor has at the calibration velocity.
As a claim about the Moody chart: since hf ∝ Q1.852 and f = 2gDhf/(LV²), the friction factor it implies goes as V−0.148 at every Reynolds number and every roughness: a tenfold change in flow moves it by exactly 10−0.148 = 0.7112. That is a straight line of fixed slope; the real curves are not. At ε/D = 0.01 Colebrook gives 0.03796 at Re = 106 and 0.03790 at Re = 108, flat to 0.2% across two decades, which is §3.2's fully-rough plateau. Hazen-Williams cannot reach a plateau, because that slope is a constant of the formula and not a property of the pipe.
src/core/hydraulics.js at 15 °C. The lower Colebrook curve is the pipe the rest of this lesson is pinned to — ε = 0.401 mm, the wall that makes the two methods agree exactly at 1.5 m/s — so the marked crossing is that pinning. The upper curve is ε = 3.0 mm, rough concrete, which the implied line starts below and stays below: it crosses one of these curves, not both. The shaded band is 0.9–3.05 m/s — 10 ft/s is the published upper bound, while the lower end is where this course judges the divergence from Colebrook to start mattering and is not a published limit. Outside the band the line holds its −0.148 slope while the physics flattens; note though that Re = 108 in this pipe is 380 m/s, so the right-hand decades are the formula's shape and not a duty a 300 mm main can reach.A field-calibrated C is the honest version: back it out of a pressure test at a measured flow and it is valid at that flow, stating its own conditions. A table value is valid at somebody else's. Thirty years of either is §3.5.
Hazen-Williams contains no temperature, no density and no viscosity. It contains water, implicitly, at about the temperature its gauged pipes ran at — usually quoted as 60 °F (15.6 °C). Darcy-Weisbach carries viscosity through the Reynolds number, and so does have a temperature.
The missing property is not density, which is the answer people reach for: head loss in metres of the fluid pumped does not depend on density at all. It is viscosity, and viscosity moves a great deal — water's kinematic viscosity is 1.733 × 10−6 m²/s at 1 °C against 6.580 × 10−7 at 40 °C, a factor of 2.63.
How much that costs depends on where the pipe sits on Figure 3.4.1. On the 300 mm × 1200 m pipe at 1.5 m/s (106 L/s), the rough pairing (C = 120, ε = 0.401 mm) gives 10.10 m at 1 °C and 9.85 m at 40 °C by Darcy, a spread of 2.6%, against 9.96 m at both temperatures by Hazen-Williams. The smooth pairing (C = 150, ε = 0.016 mm) gives 7.05 m and 6.10 m, a spread of 15.5%, against 6.59 m at both. The missing viscosity term is nearly harmless in an old rough main and worth 15% in new plastic — 19% if you use the 0.0015 mm the table actually lists for PVC rather than the 0.016 mm the C = 150 pairing implies — which is why the formula took hold in water distribution and never in process or slurry work.
Where it bites here is specific: a new HDPE or PVC force main carrying wastewater that is not at 15 °C. A station lifting 30 °C septic wastewater through new plastic is the ordinary sanitary case where the two methods select different pumps. Use Darcy-Weisbach.
| Flow | Velocity | Hazen-Williams, C = 120 | Darcy-Weisbach, ε = 0.401 mm | Darcy / H-W |
|---|---|---|---|---|
| 10 L/s | 0.14 m/s | 0.126 m | 0.106 m | 84% |
| 20 L/s | 0.28 m/s | 0.454 m | 0.389 m | 86% |
| 40 L/s | 0.57 m/s | 1.638 m | 1.477 m | 90% |
| 60 L/s | 0.85 m/s | 3.471 m | 3.254 m | 94% |
| 106 L/s | 1.50 m/s | 9.959 m | 9.958 m | 100% — pinned here |
| 180 L/s | 2.55 m/s | 26.55 m | 28.39 m | 107% |
| 250 L/s | 3.54 m/s | 48.79 m | 54.51 m | 112% |
| 300 L/s | 4.24 m/s | 68.39 m | 78.34 m | 115% |
Darcy-Weisbach responds to temperature through the Reynolds number. Hazen-Williams has no viscosity anywhere in it — it was fitted to water at around 60 °F in the transitional turbulent range. Pump 4 °C water in February and Darcy-Weisbach will show more friction than in August; Hazen-Williams shows exactly the same number, because it structurally cannot represent the difference.
It is also fitted, not derived, so it drifts outside its fitting range: very smooth pipe, very high velocity, or very small diameter all push it off. Its exponent on velocity is 1.852, which is close to the ~1.9 of real transitional flow but wrong for fully rough flow, where the true exponent is 2.
Use Hazen-Williams for water distribution networks at ordinary temperatures, where its C-factor library is genuinely useful field knowledge. Use Darcy-Weisbach for force mains, for anything cold, for anything that is not water, and any time you need to defend the number rather than just produce it.
Hazen-Williams has a stated domain. Every item below is a place practice puts it outside that domain.
The last item deserves a number, because the usual objection to Darcy-Weisbach is that it is fussier. Colebrook iterated against the explicit Swamee-Jain fit was measured for this course over a grid of Reynolds numbers and roughnesses: worst disagreement 0.81% for Re ≥ 105 across ε/D from 10−5 to 10−2 — and under 1% anywhere inside that box, not just on the grid points — rising to 2.8% only at the corner of Re = 5 × 103 with very rough pipe (tools/verify-hydraulics.mjs, which asserts 1.2% and 3% as ceilings; §3.3 maps it). A force main lives above Re = 105, so an explicit friction factor costs under 1% — a fifteenth of what operating away from a fitted C costs.
So use it where it is honest — water, ordinary temperature, a main inside the velocity band, a solver that wants a power law — and record what you did. Nothing here touches how C degrades with age (§3.5) or the fittings on top of pipe friction (Module 4). The habit to carry forward: "hf = 3.0 m" is not a result. "hf = 3.0 m, Hazen-Williams SI form, C = 130, 300 mm × 1200 m at 60 L/s, 15 °C" is a result, because somebody else can check it.
Check your understanding
Check your understanding
3 auto-graded questions with an explanation for every wrong answer. Requires JavaScript. (m3-l4-q1)
Lab 3.4
Hazen-Williams both ways, and the C behind a measured loss
Three functions. Together they are the smallest useful Hazen-Williams toolkit, and the third one is the one you will actually reach for at work. hwLossM(qM3s, dM, lengthM, C) — friction head loss in metres , from flow in m³/s and diameter and length in metres . Use K_SI . hwLossFt(qCfs, dFt, lengthFt, C) — friction head loss in feet , from flow in cubic feet per second and diameter and length in feet . Use K_US . The exponents are identical; only the leading constant changes. cFromLoss(hfM, qM3s, dM, lengthM) — the C implied by a measured head loss, by inverting the SI form. Rearranging hf = K·L·Q^1.852 / (C^1.852 · D^4.8704) for C gives C = (K·L·Q^1.852 / (hf · D^4.8704))^(1/1.852) . K_SI = 10.67, K_US = 4.73, EXP_Q = 1.852, EXP_D = 4.8704, M_PER_FT = 0.3048 and M3S_PER_CFS = 0.0283168 are all defined for you. One test compares your two functions against each other after conversion; that is the check that catches a swapped constant, and it is worth adding to every friction spreadsheet you build. Graded in the browser against 8 assertions; the editor and harness require JavaScript.
Head, Loss and Lift · Module 3, Lesson 4 — one law, two constants, and a coefficient that is not a property of the pipe