Skip to content
cfd-lab:~/en/posts/2026-06-23-reynolds-anal…● online

Translated from the author's Korean original. Read the original (한국어)

NOTE #081DAY TUE 유체역학DATE 2026.06.23UPDATED 2026.10.19READ 6 min read#Flow-Phenomena#Heat-Transfer#Boundary-Layer#Reynolds-Analogy#Prandtl-Number

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

Skip the Pr to the 2/3 correction on water and the heat-transfer coefficient comes out about 3.7 times too high.

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. The resemblance was checked with a flat-plate code, not argued from the names of the equations. What remains is a formula that estimates the heat-transfer coefficient from one 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).

Drag the Pr slider from 0.1 to 10 and the thickness ratio of the thermal and momentum layers changes with it. The log10 Re_L slider only shrinks both layers together.

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.

u∂u∂x+v∂u∂y=−1ρdPdx+ν∂2u∂y2u \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} u∂T∂x+v∂T∂y=α∂2T∂y2u \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/U∞u^\* = u/U_\infty, and define the temperature as T\*=(T−Ts)/(T∞−Ts)T^\* = (T-T_s)/(T_\infty-T_s). Here TsT_s is the wall temperature and T∞T_\infty the free-stream temperature. Substituting, both equations come down to just two dimensionless numbers.

u\*∂u\*∂x\*+v\*∂u\*∂y\*=−dP\*dx\*+1ReL∂2u\*∂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\*=1ReL Pr∂2T\*∂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=U∞L/ν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.

δδT≈Pr1/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 Pr≈0.7Pr \approx 0.7, so the two layers are similar. Water has Pr≈7Pr \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 Pr≪1Pr \ll 1, so its thermal layer is much thicker.

For air at Pr≈0.7Pr \approx 0.7, Pr1/3Pr^{1/3} is about 0.89, so the thermal layer runs a little thicker than the momentum layer. Water at Pr≈7Pr \approx 7 gives 71/3≈1.917^{1/3} \approx 1.91, and the thermal layer drops to about half. The printed Nusselt numbers repeat that ratio: 104.99 at Pr 1, 92.95 at Pr 0.7 (0.885 times), 200.50 at Pr 7 (1.91 times), all at Rex=105Re_x = 10^5. Cf/2=1.050×10−3C_f/2 = 1.050 \times 10^{-3} does not know Pr. Friction belongs to the velocity field. Heat only stacks Pr on top of it. A gas sits off Pr = 1 because viscosity and conductivity do not fall out of one mean free path. The kinetic-theory factor that misses Pr by 1.98 when μ\mu and kk come from the same formula is where that Pr = 1 premise actually splits.

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ρU∞2,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.

St≡hρU∞cp=NuLReL PrSt \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(Pr≈1, dP/dx≈0)\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 Pr≠1Pr \ne 1. Fortunately a small correction rescues the result. Accounting for the thermal layer differing by Pr1/3Pr^{1/3} gives this.

Cf2=St⋅Pr2/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, Pr2/3=1Pr^{2/3}=1 and the relation collapses back. The exponent 2/3 is what is left when the thickness ratio Pr1/3Pr^{1/3} meets the extra Pr in the Stanton definition. St=Nu/(Re Pr)St = Nu/(Re\,Pr), and if Nu scales as Pr1/3Pr^{1/3} the leftover power is 1/3−1=−2/31/3-1=-2/3. Multiply by Pr2/3Pr^{2/3} and Pr drops out.

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 St⋅Pr2/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, St⋅Pr2/3St \cdot Pr^{2/3} matches Cf/2=1.05×10−3C_f/2 = 1.05 \times 10^{-3}. At Pr=1Pr = 1, Nu=0.332 Re1/2Nu = 0.332\,Re^{1/2}, which immediately gives St=Cf/2St = C_f/2.

Set the marker-Pr slider to 0.7, 1, and 7 and the cyan corrected Stanton either sits on the dashed Cf/2C_f/2 line or it does not. Moving log10 Re_x drops both curves together. Moving Pr does not pull the cyan curve off that dashed line.

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. The cyan curve (St⋅Pr2/3St \cdot Pr^{2/3}) stays on the dashed line (Cf/2C_f/2) for every Pr. The exponent 2/3 cancels Pr.

The three rows end on the same 1.050×10−31.050 \times 10^{-3} because the division puts the exponent back. At Pr 1, St=104.99/105=1.050×10−3St = 104.99/10^5 = 1.050 \times 10^{-3} and Pr2/3=1Pr^{2/3}=1, so there is nothing to correct. At Pr 0.7 the raw Stanton is 92.95/(105×0.7)=1.328×10−392.95/(10^5 \times 0.7) = 1.328 \times 10^{-3}. Times 0.72/3≈0.7880.7^{2/3} \approx 0.788 it returns to about 1.05×10−31.05 \times 10^{-3}. Pr 7 runs the other way. Raw St is 200.50/(105×7)=2.864×10−4200.50/(10^5 \times 7) = 2.864 \times 10^{-4}, and only 72/3≈3.667^{2/3} \approx 3.66 brings it back to Cf/2C_f/2.

f′′(0)=0.3321f''(0)=0.3321 is the same slot. Cf/2=0.3321/105C_f/2 = 0.3321/\sqrt{10^5} and 105≈316.2\sqrt{10^5} \approx 316.2, so 0.3321/316.2=1.050×10−30.3321/316.2 = 1.050 \times 10^{-3}. One Blasius wall slope fixes the whole friction. The energy equation only borrows the velocity field ff as a coefficient. The temperature profile can change with Pr and f′′(0)f''(0) stays put.

Drop the Pr to the 2/3 on water and Stanton swells by 3.7#

At Pr 7 the ratio of raw St, 2.864×10−42.864 \times 10^{-4}, to Cf/2=1.050×10−3C_f/2 = 1.050 \times 10^{-3} is 3.67. That is 72/37^{2/3}. Writing Cf/2=StC_f/2 = St for water overstates the heat-transfer coefficient by about 3.7. Air, with 0.72/3≈0.790.7^{2/3} \approx 0.79, keeps the same mistake inside roughly twenty percent. The window written on the formula runs from Pr 0.6 to 60.

A nonzero pressure gradient leaves a pressure term in the momentum equation and none in the energy equation. The two solutions stop coinciding. Once the layer separates, wall shear nearly vanishes and the heat flux does not follow that ratio. The drag crisis on a rough ball, where skin friction drops suddenly, is the place to see where a heat estimate built on CfC_f alone comes apart.

Share if you found it helpful.