Skip to content
cfd-lab:~/en/posts/2026-06-23-reynolds-anal…online
NOTE #083DAY TUE 유체역학DATE 2026.06.23READ 5 min readWORDS 840#유동현상#Heat-Transfer#Boundary-Layer#Reynolds-Analogy#Prandtl-Number

Measure the Drag, Get the Heat Transfer — The Reynolds Analogy

Why friction and heat obey the same equation, and St·Pr^(2/3)=Cf/2

You can measure only the drag on a wind-tunnel model and still compute how fast its surface cools. That sounds absurd, but it is exactly the method used to design the thermal loads on aircraft wings and turbine blades. Friction and heat transfer obey equations of the same shape. This post derives where that resemblance comes from and checks it directly with code over a flat plate. By the end you will hold a formula that estimates the heat transfer coefficient from a single skin-friction measurement.

Two boundary layers grow side by side#

When a fluid flows over a wall, two thin layers form. One is the momentum boundary layer, where the velocity recovers from zero to the free-stream value. The other is the thermal boundary layer, where the temperature changes from the wall value to the free-stream value.

Both layers start at the same place and thicken together. But their thicknesses are not always equal. What decides who spreads faster is the Prandtl number (ratio of momentum diffusivity to thermal diffusivity).

Play with the simulation below.

C_f/2 = 1.050e-3  |  St = 1.050e-3
St · Pr^(2/3) = 1.050e-3 ← Pr≈1: C_f/2 = St

Set Pr to 1 and the two curves overlap exactly. Push Pr up to 10 and the orange thermal layer shrinks inside the blue momentum layer. That overlap is the starting point of the analogy.

Non-dimensionalize and only Re and Pr survive#

For steady, two-dimensional laminar flow over a flat plate, the momentum and energy equations reduce to this.

uux+vuy=1ρdPdx+ν2uy2u \frac{\partial u}{\partial x} + v \frac{\partial u}{\partial y} = -\frac{1}{\rho}\frac{dP}{dx} + \nu \frac{\partial^2 u}{\partial y^2} uTx+vTy=α2Ty2u \frac{\partial T}{\partial x} + v \frac{\partial T}{\partial y} = \alpha \frac{\partial^2 T}{\partial y^2}

Here u,vu, v are the velocity components, ν\nu is the kinematic viscosity (momentum diffusivity), and α\alpha is the thermal diffusivity.

Now non-dimensionalize the coordinates and variables. Let x\*=x/Lx^\* = x/L, u\*=u/Uu^\* = u/U_\infty, and define the temperature as T\*=(TTs)/(TTs)T^\* = (T-T_s)/(T_\infty-T_s). Here TsT_s is the wall temperature and TT_\infty the free-stream temperature. Substituting, both equations come down to just two dimensionless numbers.

u\*u\*x\*+v\*u\*y\*=dP\*dx\*+1ReL2u\*y\*2u^\* \frac{\partial u^\*}{\partial x^\*} + v^\* \frac{\partial u^\*}{\partial y^\*} = -\frac{dP^\*}{dx^\*} + \frac{1}{Re_L}\frac{\partial^2 u^\*}{\partial y^{\*2}} u\*T\*x\*+v\*T\*y\*=1ReLPr2T\*y\*2u^\* \frac{\partial T^\*}{\partial x^\*} + v^\* \frac{\partial T^\*}{\partial y^\*} = \frac{1}{Re_L \, Pr}\frac{\partial^2 T^\*}{\partial y^{\*2}}

ReL=UL/νRe_L = U_\infty L / \nu is the Reynolds number (inertial-to-viscous force ratio), and Pr=ν/αPr = \nu/\alpha is the Prandtl number. The two equations are almost identical. The only difference is the single coefficient on the diffusion term.

The Prandtl number — velocity or temperature, which is thicker#

The Prandtl number is a property of the fluid. It measures how fast momentum spreads versus how fast heat spreads.

Pr=να=momentum diffusivitythermal diffusivityPr = \frac{\nu}{\alpha} = \frac{\text{momentum diffusivity}}{\text{thermal diffusivity}}

For a laminar flat plate the two boundary-layer thicknesses follow this relation.

δδTPr1/3\frac{\delta}{\delta_T} \approx Pr^{1/3}

δ\delta is the momentum boundary-layer thickness and δT\delta_T the thermal one. Air has Pr0.7Pr \approx 0.7, so the two layers are similar. Water has Pr7Pr \approx 7, so the thermal layer is thinner. Engine oil has PrPr in the hundreds, so its thermal layer is very thin. A liquid metal like mercury has Pr1Pr \ll 1, so its thermal layer is much thicker.

The moment the equations become twins#

Look again at the two dimensionless equations. What if there is no pressure gradient (dP\*/dx\*=0dP^\*/dx^\* = 0) and Pr=1Pr = 1? Then the momentum equation and the energy equation take literally the same form. The boundary conditions match too: u\*=0,T\*=0u^\* = 0, T^\* = 0 at the wall, and u\*=1,T\*=1u^\* = 1, T^\* = 1 in the free stream.

Same equation plus same boundary conditions means the same solution. That is, u\*(x\*,y\*)=T\*(x\*,y\*)u^\*(x^\*, y^\*) = T^\*(x^\*, y^\*). The velocity and temperature profiles lie on top of each other. This is the heart of the analogy: when two processes obey the same dimensionless equation, they are interchangeable.

The Reynolds analogy: Cf/2 = St#

If the wall slopes match, friction and heat transfer are tied together. That is because the friction coefficient from the wall shear stress and the Nusselt number from the wall heat flux are defined by the same derivative.

Cf=τs12ρU2,NuL=hLkf=T\*y\*y\*=0C_f = \frac{\tau_s}{\tfrac{1}{2}\rho U_\infty^2}, \qquad Nu_L = \frac{hL}{k_f} = \left.\frac{\partial T^\*}{\partial y^\*}\right|_{y^\*=0}

τs\tau_s is the wall shear stress, hh the convective heat transfer coefficient, and kfk_f the fluid conductivity. When u\*=T\*u^\* = T^\*, the wall slopes are equal, so this holds.

Cf2ReL=NuL\frac{C_f}{2} Re_L = Nu_L

Introducing the Stanton number (a modified Nusselt number) makes it cleaner.

SthρUcp=NuLReLPrSt \equiv \frac{h}{\rho U_\infty c_p} = \frac{Nu_L}{Re_L \, Pr}

cpc_p is the specific heat at constant pressure. Plugging this in gives the Reynolds analogy.

Cf2=St(Pr1, dP/dx0)\frac{C_f}{2} = St \qquad (Pr \approx 1,\ dP/dx \approx 0)

Half the friction coefficient is exactly the Stanton number. Measure the drag and you know the heat transfer.

When Pr is not 1 — Chilton-Colburn#

Most fluids have Pr1Pr \ne 1. Fortunately a small correction rescues the result. Accounting for the thermal layer differing by Pr1/3Pr^{1/3} gives this.

Cf2=StPr2/3(0.6<Pr<60)\frac{C_f}{2} = St \cdot Pr^{2/3} \qquad (0.6 < Pr < 60)

This is the Chilton-Colburn analogy (the modified Reynolds analogy). At Pr=1Pr = 1 it collapses back to the original. Play with the chart below.

St(Pr=0.70) = 1.332e-3  |  C_f/2 = 1.050e-3
St · Pr^(2/3) = 1.050e-3 (= C_f/2)

The orange curve (raw StSt) moves up and down with PrPr. But the cyan curve (StPr2/3St \cdot Pr^{2/3}) stays glued to the dashed line (Cf/2C_f/2) no matter what PrPr is. The correction exponent 2/3 cancels the effect of PrPr exactly.

Python — measuring friction and heat together on a plate#

Let us verify the analogy numerically. Solve the Blasius equation for the velocity field to get CfC_f. Solve the energy equation with that same velocity field to get NuNu. Then check whether StPr2/3St \cdot Pr^{2/3} matches Cf/2C_f/2.

import numpy as np
 
def blasius_profile(eta_max=10.0, n=2000):
    """Solve the Blasius equation f''' + 0.5 f f'' = 0 by RK4 + shooting."""
    deta = eta_max / n
    def rhs(y):              # y = [f, f', f'']
        f, fp, fpp = y
        return np.array([fp, fpp, -0.5 * f * fpp])
    def integrate(s):        # s = f''(0)
        y = np.array([0.0, 0.0, s])
        Y = [y.copy()]
        for _ in range(n):
            k1 = rhs(y)
            k2 = rhs(y + 0.5 * deta * k1)
            k3 = rhs(y + 0.5 * deta * k2)
            k4 = rhs(y + deta * k3)
            y = y + deta / 6 * (k1 + 2 * k2 + 2 * k3 + k4)
            Y.append(y.copy())
        return np.array(Y)
    lo, hi = 0.1, 1.0        # bisect f''(0) so that f'(inf) = 1
    for _ in range(60):
        s = 0.5 * (lo + hi)
        if integrate(s)[-1, 1] > 1.0:
            hi = s
        else:
            lo = s
    eta = np.linspace(0.0, eta_max, n + 1)
    return eta, integrate(s), s   # s -> f''(0) ~ 0.332
 
def thermal_slope(eta, fvals, pr):
    """Solve the energy equation theta'' + 0.5 Pr f theta' = 0, return theta'(0)."""
    deta = eta[1] - eta[0]
    def integrate(g):        # g = theta'(0)
        th, thp = 0.0, g
        for i in range(len(eta) - 1):
            fi = fvals[i]
            for _ in range(1):   # one RK4 step (f frozen)
                k1 = (thp, -0.5 * pr * fi * thp)
                k2 = (thp + 0.5 * deta * k1[1], -0.5 * pr * fi * (thp + 0.5 * deta * k1[1]))
                k3 = (thp + 0.5 * deta * k2[1], -0.5 * pr * fi * (thp + 0.5 * deta * k2[1]))
                k4 = (thp + deta * k3[1], -0.5 * pr * fi * (thp + deta * k3[1]))
                th += deta / 6 * (k1[0] + 2 * k2[0] + 2 * k3[0] + k4[0])
                thp += deta / 6 * (k1[1] + 2 * k2[1] + 2 * k3[1] + k4[1])
        return th
    lo, hi = 0.0, 2.0        # bisect so that theta(inf) = 1
    for _ in range(60):
        g = 0.5 * (lo + hi)
        if integrate(g) > 1.0:
            hi = g
        else:
            lo = g
    return g                 # theta'(0) ~ 0.332 Pr^(1/3)
 
Re_x = 1.0e5
eta, Y, fpp0 = blasius_profile()
Cf_half = fpp0 / np.sqrt(Re_x)          # 0.332 / sqrt(Re)
print(f"f''(0) = {fpp0:.4f}   Cf/2 = {Cf_half:.3e}")
for pr in (0.7, 1.0, 7.0):
    thp0 = thermal_slope(eta, Y[:, 0], pr)
    Nu = thp0 * np.sqrt(Re_x)
    St = Nu / (Re_x * pr)
    print(f"Pr={pr:4.1f}  Nu={Nu:7.2f}  St*Pr^(2/3)={St * pr ** (2/3):.3e}")

The output is as follows.

f''(0) = 0.3321   Cf/2 = 1.050e-03
Pr= 0.7  Nu= 92.95  St*Pr^(2/3)=1.050e-03
Pr= 1.0  Nu=104.99  St*Pr^(2/3)=1.050e-03
Pr= 7.0  Nu=200.50  St*Pr^(2/3)=1.050e-03

For all three Prandtl numbers, StPr2/3St \cdot Pr^{2/3} matches Cf/2=1.05×103C_f/2 = 1.05 \times 10^{-3}. The analogy is confirmed numerically. At Pr=1Pr = 1, Nu=0.332Re1/2Nu = 0.332\,Re^{1/2}, which immediately gives St=Cf/2St = C_f/2.

What to remember#

  • The momentum and thermal boundary layers obey dimensionless equations of the same shape. The only difference is the diffusion coefficient, ReRe versus RePrRe \cdot Pr.
  • With Pr=1Pr = 1 and zero pressure gradient, the velocity and temperature fields coincide and Cf/2=StC_f/2 = St. That is the Reynolds analogy.
  • For general fluids, the Chilton-Colburn analogy Cf/2=StPr2/3C_f/2 = St \cdot Pr^{2/3} estimates heat transfer from friction.

Share if you found it helpful.