Arte SheetsLearn. Try. Understand.

Engineering

Haaland Explicit Turbulent Pipe Friction Factor (Moody Chart Formula)

Calculate Darcy-Weisbach pipe friction factor f without iterative Colebrook-White loops using S.E. Haaland's explicit formula (-1.8 * LOG10(((eps / D) / 3.7)^1.11 + (6.9 / Re)))^(-2) with a laminar 64 / Re branch.

Replace implicit Moody-chart Colebrook iteration with Haaland's single-cell formula!

The classical Colebrook-White equation places Darcy friction factor f on BOTH sides of a transcendental logarithm—requiring circular iteration or Goal Seek on every row of a hydraulic network! In 1983, S.E. Haaland introduced a non-iterative explicit equation matching implicit Colebrook-White within ~1.4% across the entire turbulent Moody diagram (4,000 <= Re <= 10^8): 1 / SQRT(f) = -1.8 * LOG10(((eps / D) / 3.7)^1.11 + (6.9 / Re))!

Squaring and inverting gives f directly—and combining Haaland's turbulent formula with the exact Hagen-Poiseuille laminar law f = 64 / Re (for Re <= 2,300) lets hydraulic engineers evaluate smooth drawn tubing, commercial steel, and rough cast-iron mains in one clean cell!

Pipe Flow RegimeReynolds Re & Relative Roughness eps/DFormula BranchDarcy Friction Factor f
Laminar Oil PipeRe = 1,600, any eps/D64 / Re (Hagen-Poiseuille)0.04000
Commercial Steel Water MainRe = 100,000, eps/D = 0.0002Haaland Turbulent0.01874
Rough Corroded Cast IronRe = 100,000, eps/D = 0.0050Haaland Rough-Wall0.03128

Combined Laminar (64 / Re) & Haaland Turbulent Friction Factor f

Branches on Reynolds number B2 (<= 0 invalid, <= 2300 laminar 64/Re, > 2300 Haaland explicit equation with relative roughness eps/D in B3).

=IF(OR(B2 <= 0, B3 < 0), "Invalid Re or Roughness", IF(B2 <= 2300, ROUND(64 / B2, 5), ROUND((-1.8 * LOG10(((B3 / 3.7) ^ 1.11) + (6.9 / B2))) ^ -2, 5)))

Fully Rough Wholly-Turbulent Limit (Re -> Infinity)

Evaluates asymptotic von Karman-Haaland rough-pipe limit when viscous term 6.9 / Re vanishes at extreme Reynolds numbers.

=IF(B3 <= 0, "Smooth Pipe (f -> 0 as Re -> Inf)", ROUND((-1.8 * LOG10((B3 / 3.7) ^ 1.11)) ^ -2, 5))

Try the example

Use the original values or change them to test your understanding.

Further reading