Translated from the author's Korean original. Read the original (한국어)
2.0000 in laminar flow, 1.0322 in turbulent — the coefficient in front of the velocity head
Kinetic energy rides on the cube of velocity. That is why a velocity head built from the square of the mean counts exactly half of it in laminar pipe flow.
Take only the mean velocity to Bernoulli and half the energy disappears#
The same pipe carries the same flow rate. Divide the flow rate by the area and you get a mean velocity . Build from it and drop that into the energy equation. Everyone does this.
In laminar pipe flow that number is exactly half of the real kinetic energy. The flow rate is right, the area is right, and the energy is off by 100%. Today I track down where the gap comes from, and why it shrinks to 3% in turbulent flow, by doing the integrals directly.
What actually got integrated when the velocity head was defined#
The kinetic energy flux through a section is the local kinetic energy multiplied by the local mass flux, integrated over the area.
Here is the local axial velocity, the density and the cross-sectional area. The integrand carries three times: twice from the energy and once from carrying the mass.
The textbook energy equation, by contrast, writes . Since , that is . The ratio of the two is the kinetic energy coefficient . The momentum equation has the same problem, and there appears twice, giving .
Both coefficients approach 1 as the profile flattens. Flip the profile switch from laminar to defect law and the gap between the two ledger bars collapses from 2 toward about 1.03.
Tracers move at the local velocity, so the parabola stretches far more than the blunt turbulent profile. The yellow bar is the kinetic energy the flow actually carries; the grey bar is what V²/2g alone would claim.
Switch the profile between laminar, power law and defect law, and watch the height gap between the two ledger bars on the right. The tracers move at the local velocity, so in the parabola only the central dots run away, while the turbulent profile travels almost as a single block. That "travelling as a block" is exactly what measures.
Why the coefficient comes out at exactly 2 in laminar pipe flow#
The Hagen–Poiseuille solution is a parabola: with . Substituting makes both the numerator and the denominator close in closed form.
Since , we get . The same route gives . Neither is an approximation or a fit — they are ratios of integers.
Open the numerator and the 2 stops looking like a fit. , and the integral from 0 to 1 is . Times that is . The denominator is . A quarter over an eighth is 2. is one power lower and stops at , which the table prints as 1.3333. For , , the printed 0.8167.
An of 2 does not mean "half the energy went missing". It means a single number called the mean velocity cannot stand in for a cube integral. To follow that same parabola from the closed form of the velocity, start with the Poiseuille analytical solution. There the integral is the velocity. Here it is the cube of that velocity.
Writing a turbulent profile with a single exponent#
Turbulent pipe flow changes steeply only near the wall and is nearly flat through the core. The power law approximates that shape with one exponent.
Here is the distance from the wall and is an exponent that grows with the Reynolds number. The usual choice is . The mean velocity of this profile integrates in closed form.
For that is . Set it against the laminar and you can see immediately how much blunter the profile has become. Since is the same kind of integral, knowing fixes it.
Four profiles, one ledger, written out in Python#
The three families — laminar, power law and defect law — go through the same trapezoid integrator. No external packages, standard library only. With 40,000 radial divisions the laminar result matches the analytic value to four decimal places.
import math
R, M = 1.0, 40000 # radius, number of radial divisions
dr = R / M
rs = [i * dr for i in range(M + 1)]
A = math.pi * R * R
def ring_integral(vals):
"""integrate f(r) over the section: ∫ f · 2πr dr (trapezoid)"""
s = 0.0
for i in range(M):
a = vals[i] * 2.0 * math.pi * rs[i]
b = vals[i + 1] * 2.0 * math.pi * rs[i + 1]
s += 0.5 * (a + b) * dr
return s
def ledger(u):
"""mean velocity, kinetic energy coefficient alpha, momentum coefficient beta"""
vbar = ring_integral(u) / A
al = ring_integral([x ** 3 for x in u]) / (vbar ** 3 * A)
be = ring_integral([x ** 2 for x in u]) / (vbar ** 2 * A)
return vbar, al, be
def poiseuille():
return [1.0 - (r / R) ** 2 for r in rs]
def power_law(n):
return [max(1.0 - r / R, 0.0) ** (1.0 / n) for r in rs]
def defect_law(ustar):
"""u/Vbar = 1 + (u*/Vbar)(3.75 - 2.5 ln(R/y)), y = R - r"""
out = []
for r in rs:
y = max(R - r, 1e-9)
out.append(1.0 + ustar * (3.75 - 2.5 * math.log(R / y)))
return out
print(f"{'profile':<20}{'Vbar/Uc':>9}{'alpha':>9}{'beta':>8}")
vb, al_lam, be = ledger(poiseuille())
print(f"{'Poiseuille (laminar)':<20}{vb:9.4f}{al_lam:9.4f}{be:8.4f}")
for n in (6, 7, 8, 10):
vb, al, be = ledger(power_law(n))
exact = 2.0 * n * n / ((n + 1.0) * (2.0 * n + 1.0))
print(f"{'power law n=' + str(n):<20}{vb:9.4f}{al:9.4f}{be:8.4f} Vbar exact {exact:.4f}")
print()
cases = [("laminar", al_lam)]
print(f"{'Re':>8}{'f':>8}{'u*/Vbar':>9}{'Uc/Vbar':>9}{'alpha':>8}{'beta':>8}")
for Re in (1e4, 1e5, 1e6, 1e7):
f = (0.790 * math.log(Re) - 1.64) ** -2.0 # Petukhov friction factor
us = math.sqrt(f / 8.0) # u*/Vbar
u = defect_law(us)
vb, al, be = ledger(u)
print(f"{Re:8.0e}{f:8.4f}{us:9.4f}{max(u) / vb:9.4f}{al:8.4f}{be:8.4f}")
cases.append((f"turbulent Re={Re:.0e}", al))
print()
V, g = 3.0, 9.81 # 3 m/s pipe flow, velocity head
base = V * V / (2 * g)
for name, al in (cases[0], cases[1], cases[3]):
print(f"{name:<21}alpha={al:6.4f} alpha·V²/2g = {al * base:6.4f} m "
f"alpha=1 missing {al * base - base:6.4f} m ({(al - 1) * 100:6.2f}%)")profile Vbar/Uc alpha beta
Poiseuille (laminar) 0.5000 2.0000 1.3333
power law n=6 0.7912 1.0768 1.0269 Vbar exact 0.7912
power law n=7 0.8167 1.0584 1.0204 Vbar exact 0.8167
power law n=8 0.8366 1.0460 1.0160 Vbar exact 0.8366
power law n=10 0.8658 1.0307 1.0106 Vbar exact 0.8658
Re f u*/Vbar Uc/Vbar alpha beta
1e+04 0.0315 0.0627 1.2353 1.0835 1.0309
1e+05 0.0180 0.0474 1.1779 1.0490 1.0177
1e+06 0.0116 0.0381 1.1430 1.0322 1.0114
1e+07 0.0081 0.0319 1.1195 1.0227 1.0080
laminar alpha=2.0000 alpha·V²/2g = 0.9174 m alpha=1 missing 0.4587 m (100.00%)
turbulent Re=1e+04 alpha=1.0835 alpha·V²/2g = 0.4970 m alpha=1 missing 0.0383 m ( 8.35%)
turbulent Re=1e+06 alpha=1.0322 alpha·V²/2g = 0.4735 m alpha=1 missing 0.0148 m ( 3.22%)Drag the defect-law slider from 0 to 100% and the curves that sat apart, one per Reynolds number, fold onto a single line in .
Drag collapse from 0 to 100%. On the left the Reynolds curves are clearly separated; dividing by u* and measuring from the centreline folds them onto one dashed line that has no Reynolds number in it at all.
The printed at and at are that same line re-integrated after only changes. Adding more Reynolds curves does not thicken it.
The numerical integration reproduced and in the laminar case. The power-law mean velocity matches the closed form to four digits too. That tells us the integrator is sound.
The coordinates where the Reynolds number vanishes — the defect law#
The second block of the table came from the velocity-defect law, not the power law. Write the log law once at the centreline and once at an arbitrary point, subtract, and the viscosity drops out entirely.
Here is the friction velocity. The right-hand side has no and no in it. Only the distance from the wall survives. Averaging over the section drops out the constant , and ties it to the friction factor. Viscosity drops out of the subtraction. Only distance from the wall remains. The line folded above is this constant 3.75.
Putting and in one table#
| profile | note | |||
|---|---|---|---|---|
| laminar parabola | 0.5000 | 2.0000 | 1.3333 | exact rationals |
| power law | 0.8167 | 1.0584 | 1.0204 | textbook default |
| power law | 0.8658 | 1.0307 | 1.0106 | high Reynolds |
| defect law | — | 1.0835 | 1.0309 | |
| defect law | — | 1.0227 | 1.0080 |
Divide the four turbulent rows by and a pattern appears. is 2.7 to 2.8 times , and is 0.98 times . The two coefficients are pinned not to the profile shape but to the friction factor alone. A rougher pipe has a larger , and grows with it. Run a smooth pipe at high Reynolds and falls to 1.02.
Split the row. over is . At , . That is the 2.7 to 2.8 band. is tighter: at , and at .
At 3 m/s and , the bare head is m. Times 2 that is 0.9174 m, and the miss is the other 0.4587 m. Times 1.0322 it is 0.4735 m, a miss of 0.0148 m. At the miss is 0.0383 m, 8.35 percent. Several metres of pipe loss hide 0.0148 m. They do not hide 0.4587 m.
The table also shows the power law and the defect law disagreeing slightly at the same Reynolds number. The power law has an infinite slope at the wall and a kink at the centreline. Two approximations differ by as much as they are approximations.
Where this coefficient actually moves a number#
The last block is the velocity head of a 3 m/s pipe flow. Setting to 1 in turbulent flow misses 0.0148 m at . If the head loss of that pipe run is several metres, ignore it. In laminar flow it misses 0.4587 m. In the same calculation, that is 100%.
The number moves in a few specific places. Viscous fluids and narrow tubes are laminar, so . In the entrance region the profile is still growing, and sits somewhere between 1 and 2. Outlet total pressure is the same choice: area average or mass-flux weight, which is versus . When the two disagree, the solver is not wrong. The definition of the average is.
is written like a constant, but the profile decides it. Pin it to 1 by hand and the laminar ledger is off by half.
The condition under which textbooks write and move on#
holds only for a perfectly flat profile. The approximation works in turbulent flow not because turbulence is flat but because is small. With around 0.01, is 1.03, and 3% disappears into the other uncertainties of a piping calculation.
So the test is not "is it turbulent" but "how large is ". How transition stacks those layers inside a pipe is in the critical Reynolds number and pipe transition. A rough pipe, a low Reynolds number, laminar flow — any one of those and gets integrated again. The computation is one integral, as in the code above.
Related
Share if you found it helpful.