AERO-320 · Lesson 8 of 12 · 23 min
Fanno and Rayleigh flow
Isentropic nozzle theory assumes no friction and no heat transfer. Two problems on the project break both assumptions. The first is in the tunnel building: the pressure transducers on the inlet model are fed by a long, narrow instrument air line, and during a shakedown run the line could not deliver the flow the technicians expected. The second is on the Swift 900 itself: the engine supplier's combustor team wants to know how much the Mach number entering their combustor limits the heat they can add. Kenji Watanabe uses both problems to introduce the two classic non-isentropic duct flows: Fanno flow, with friction but no heat transfer, and Rayleigh flow, with heat transfer but no friction. They were named after Gino Fanno, who studied friction in gas pipes early in the twentieth century, and Lord Rayleigh, who analyzed flow with heat addition.
Fanno flow: friction in a constant-area duct
Consider steady adiabatic flow of a perfect gas in a duct of constant area, with wall friction. Mass conservation says \(\rho V\) is constant. Energy conservation says the stagnation temperature is constant, because there is no heat transfer. The momentum equation now includes the wall shear stress, \(\tau_w = f\,\tfrac{1}{2}\rho V^2\), where \(f\) is the Fanning friction factor, a quarter of the Darcy factor used in pipe flow. Combining these gives a differential equation for the Mach number along the duct.
The sign of the right-hand side contains the main result. For subsonic flow, \(1 - M^2\) is positive, so friction increases the Mach number: subsonic flow in a duct accelerates toward Mach 1, even though friction acts to slow the fluid. The explanation is that friction lowers the stagnation pressure and the density falls along the duct, so the velocity must rise to carry the same mass flow. For supersonic flow, friction decreases the Mach number toward 1. Either way, friction drives the flow toward sonic conditions, and a duct cannot pass from subsonic to supersonic through friction alone.
The choking length
Integrating from a given Mach number to Mach 1 gives the maximum duct length \(L^*\) that the flow can traverse before it chokes. All the Fanno-flow properties are conveniently tabulated as ratios to their values at the sonic point, marked with an asterisk, just as for isentropic flow.
The choking length falls quickly as the inlet Mach number rises. At Mach 0.2 the parameter \(4fL^*/D\) is 14.5; at Mach 0.4 it is 2.31; at Mach 0.8 only 0.072. For a supersonic inlet Mach number it is small at any speed, never exceeding 0.82 for air even at infinite Mach number, so supersonic flow in a duct can travel only a few tens of diameters before friction brings it to Mach 1. If a duct is longer than \(L^*\), the flow adjusts: a subsonic flow reduces its mass flow by changing the conditions at the entrance, and a supersonic flow forms a shock inside the duct.
The instrument air line
The technicians' air line has a diameter of 50 mm and a Fanning friction factor of about 0.005, and the air enters it at Mach 0.25. The program finds a choking length of 21.2 m. The line is 20 m long, so it is just short of choking: the Mach number rises to 0.60 by the far end, and the static pressure falls to 40 percent of its inlet value. That large pressure drop, rather than any fault in the compressor, explains the shortfall in flow. The cure is either a larger line, which reduces \(4fL/D\), or a lower inlet Mach number. A 75 mm line would carry the same mass flow at an inlet Mach number of about 0.11, with a choking length of about 200 m.
Fanno flow is important wherever gas moves at high speed through long passages: natural gas pipelines, compressed air systems, bleed air ducts in aircraft, the exhaust ducts of engines and the leakage paths of seals. In each case the designer must check that the duct is well short of its choking length at the highest flow, because the pressure loss rises steeply as Mach 1 is approached.
Rayleigh flow: heat addition in a constant-area duct
Now remove friction and add heat, as in a combustor or a heat exchanger. Mass flux \(\rho V\) is again constant, and with no wall friction the momentum equation says \(p + \rho V^2\) is constant. The energy equation now has a source: the heat added per unit mass, \(q\), raises the stagnation temperature, \(q = c_p(T_{02} - T_{01})\). The Mach number becomes a function of the stagnation temperature alone. The ratio of the local stagnation temperature to its value at the sonic point is the key Rayleigh relation.
Heat addition, like friction, drives the flow toward Mach 1: it accelerates subsonic flow and decelerates supersonic flow. There is a maximum amount of heat that can be added before the flow chokes, the amount that raises the stagnation temperature to \(T_0^*\). Cooling has the opposite effect, moving the flow away from Mach 1. Heat addition also lowers the stagnation pressure, even with no friction, because adding heat at a finite temperature increases entropy. This fundamental pressure loss is unavoidable in any combustor and is larger when the flow is faster.
# Fanno flow (adiabatic flow with friction) and Rayleigh flow (heat addition without friction)
import math
G = 1.4
def fanno_fL(M): # 4 f L*/D, with f the Fanning friction factor
return (1 - M * M) / (G * M * M) + (G + 1) / (2 * G) * math.log((G + 1) * M * M / (2 + (G - 1) * M * M))
def fanno_p(M): return (1 / M) * math.sqrt((G + 1) / (2 + (G - 1) * M * M)) # p/p*
def fanno_p0(M): return (1 / M) * ((2 + (G - 1) * M * M) / (G + 1)) ** ((G + 1) / (2 * (G - 1)))
def ray_T0(M): return (G + 1) * M * M * (2 + (G - 1) * M * M) / (1 + G * M * M) ** 2 # T0/T0*
def ray_p(M): return (1 + G) / (1 + G * M * M)
def solve(f, target, lo, hi):
flo = f(lo) - target
for _ in range(100):
mid = (lo + hi) / 2; fm = f(mid) - target
if (fm > 0) == (flo > 0): lo, flo = mid, fm
else: hi = mid
return (lo + hi) / 2
print(" M 4fL*/D p/p* p0/p0* | Rayleigh T0/T0* p/p*")
for M in (0.2, 0.4, 0.6, 0.8, 1.0, 1.5, 2.0):
print(f"{M:4.1f} {fanno_fL(M):8.4f} {fanno_p(M):7.4f} {fanno_p0(M):7.4f} | {ray_T0(M):10.4f} {ray_p(M):7.4f}")
# instrument air line in the tunnel building: D = 50 mm, Fanning f = 0.005, inlet M 0.25
D, f, M1 = 0.050, 0.005, 0.25
Lstar = fanno_fL(M1) * D / (4 * f)
print(f"\nair line: choking length from M {M1} is {Lstar:.1f} m")
L = 20.0
M2 = solve(fanno_fL, fanno_fL(M1) - 4 * f * L / D, 0.2, 1.0)
print(f"after {L:.0f} m: M2 = {M2:.3f}, pressure ratio p2/p1 = {fanno_p(M2) / fanno_p(M1):.3f}")
# combustor: air enters at M 0.20 and T0 = 800 K; how much heat chokes the flow?
cp, M1, T01 = 1005.0, 0.20, 800.0
T0star = T01 / ray_T0(M1)
print(f"\ncombustor: heat to choke q = {cp * (T0star - T01) / 1e3:.0f} kJ/kg (T0 rises from {T01:.0f} K to {T0star:.0f} K)")
T02 = 1400.0
M2 = solve(ray_T0, T02 / T0star, 0.05, 1.0)
print(f"heating to T0 = {T02:.0f} K: exit M = {M2:.3f}, static pressure ratio p2/p1 = {ray_p(M2) / ray_p(M1):.3f}")M 4fL*/D p/p* p0/p0* | Rayleigh T0/T0* p/p* 0.2 14.5333 5.4554 2.9635 | 0.1736 2.2727 0.4 2.3085 2.6958 1.5901 | 0.5290 1.9608 0.6 0.4908 1.7634 1.1882 | 0.8189 1.5957 0.8 0.0723 1.2893 1.0382 | 0.9639 1.2658 1.0 0.0000 1.0000 1.0000 | 1.0000 1.0000 1.5 0.1361 0.6065 1.1762 | 0.9093 0.5783 2.0 0.3050 0.4082 1.6875 | 0.7934 0.3636 air line: choking length from M 0.25 is 21.2 m after 20 m: M2 = 0.602, pressure ratio p2/p1 = 0.404 combustor: heat to choke q = 3829 kJ/kg (T0 rises from 800 K to 4610 K) heating to T0 = 1400 K: exit M = 0.276, static pressure ratio p2/p1 = 0.954
The combustor
Air enters the Swift 900 engine's combustor at about Mach 0.2 and a stagnation temperature near 800 K after the compressor. The program finds that the flow would choke only if the stagnation temperature were raised to about 4,600 K, which would need about 3,800 kJ of heat per kilogram of air. Real combustors heat the gas to about 1,400 to 1,800 K, so they are far from choking. At 1,400 K the exit Mach number is only 0.28 and the static pressure falls by about 5 percent as the heated gas accelerates, and the loss of stagnation pressure caused by heating at such a low Mach number is small. This is why combustors slow the air down to low Mach numbers before burning fuel: the faster the flow, the larger the heating loss and the closer the risk of thermal choking.
Thermal choking is a real constraint in supersonic combustion ramjets, where the air enters the combustor at supersonic speed. Adding too much heat drives the flow toward Mach 1 and, if overdone, forces a shock that travels upstream into the inlet, unstarting it. It also matters in afterburners, where the flow enters at higher Mach numbers than in the main combustor and the nozzle area must open as the afterburner lights to keep the engine matched.
Fanno and Rayleigh lines and the normal shock
Plotting the possible states of a Fanno flow and a Rayleigh flow with the same mass flux on a temperature-entropy diagram gives two curves, the Fanno line and the Rayleigh line. Both have a maximum entropy at Mach 1, which is why friction and heating, both of which raise entropy in adiabatic and frictionless conditions respectively, push the flow toward Mach 1 and can never carry it through. The two lines intersect at exactly two points: one supersonic, one subsonic. Both points have the same mass flux, the same impulse \(p + \rho V^2\) and the same stagnation temperature, so they satisfy all three normal-shock equations. The normal shock is the jump between them, from the supersonic intersection to the subsonic one, the only direction that increases entropy. The diagram ties together the results of Lessons 3 and 8 in a single picture.
Combining the effects
Real ducts have both friction and heat transfer, and often area change as well. The general one-dimensional equations combine all three as influence coefficients multiplying the area change, friction and heat terms. They show the same structure: each effect drives the Mach number toward or away from 1 depending on its sign and on whether the flow is subsonic or supersonic. The influence-coefficient method is widely used in the preliminary design of engine ducts, combustors and nozzles, with the integration done numerically along the passage. The Fanno and Rayleigh solutions remain valuable as checks and as quick estimates.
Worked problem
Exit Mach number of a supersonic duct
Air enters a constant-area duct of diameter 30 mm at Mach 2.0 with a Fanning friction factor of 0.0025. How long can the duct be before the flow chokes?
Show solution
- At Mach 2.0, \(4fL^*/D = 0.3050\).
- \(L^* = 0.3050\times 0.030/(4\times 0.0025) = 0.915\ \text{m}\).
Answer: Only about 0.9 m, or 30 diameters. A longer duct would contain a shock.
Worked problem
Heat that chokes a heater
Air enters a frictionless heated duct at Mach 0.40 and a stagnation temperature of 300 K. How much heat per kilogram would choke the flow?
Show solution
- At Mach 0.40, \(T_0/T_0^* = 0.529\), so \(T_0^* = 300/0.529 = 567\ \text{K}\).
- \(q = 1005\times(567 - 300) = 268\ \text{kJ/kg}\).
Answer: About 270 kJ/kg, much less than at Mach 0.2. Faster flow chokes with much less heating.
Common mistakes
MistakeExpecting friction to slow a subsonic duct flow.
InsteadIn subsonic Fanno flow friction raises the Mach number toward 1.
MistakeUsing the Darcy friction factor in the Fanno formula written with 4f.
InsteadThe formula uses the Fanning factor, a quarter of the Darcy factor.
MistakeAssuming heat addition without friction is isentropic.
InsteadHeat addition raises entropy and lowers the stagnation pressure.
MistakeAssuming a long enough duct can accelerate a subsonic flow past Mach 1.
InsteadFriction or heating alone can only bring the flow to Mach 1.
Summary and key terms
- Fanno flow is adiabatic, constant-area flow with friction; Rayleigh flow is frictionless, constant-area flow with heat transfer.
- Both drive the flow toward Mach 1, accelerating subsonic flow and decelerating supersonic flow, and both have a choking limit: the length L* for friction and the heat that raises T₀ to T₀* for heating.
- Choking lengths are short for high inlet Mach numbers, and combustors slow the air before heating to avoid thermal choking and stagnation pressure loss.
- The Fanno and Rayleigh lines intersect at the two states joined by a normal shock.
- Fanno flow
- Adiabatic flow with friction in a constant-area duct.
- Rayleigh flow
- Frictionless flow with heat transfer in a constant-area duct.
- Choking length
- The duct length L* at which friction brings the flow to Mach 1.
- Fanning friction factor
- The wall shear stress divided by the dynamic pressure, a quarter of the Darcy factor.
- Thermal choking
- Choking caused by adding enough heat to bring the flow to Mach 1.
- Fanno line
- The locus of states with constant mass flux and stagnation temperature.
- Rayleigh line
- The locus of states with constant mass flux and impulse.
Practice problems
Work each problem on paper first, then reveal the answer to check.
From the program, what is 4fL*/D at Mach 0.6?
Show answer
0.4908.
A 25 mm duct with f = 0.004 carries air entering at Mach 0.4. Find L*.
Show answer
2.3085 × 0.025/0.016 = 3.6 m.
Using the program, what is T₀/T₀* in Rayleigh flow at Mach 0.8?
Show answer
0.9639.
Why do combustors operate at low Mach numbers?
Show answer
To keep far from thermal choking and to limit the stagnation pressure loss from heating.
What happens if a subsonic Fanno duct is made longer than L*?
Show answer
The inlet conditions adjust and the mass flow falls; the exit stays sonic.
Which two states are joined by a normal shock on the T-s diagram?
Show answer
The supersonic and subsonic intersections of the Fanno and Rayleigh lines.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.