Skip to content
cfd-lab:~/en/posts/2026-06-09-drag-crisis-b…● online

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

NOTE #067DAY TUE 유체역학DATE 2026.06.09UPDATED 2026.10.19READ 5 min read#Flow-Phenomena#Drag-Crisis#Boundary-Layer#Flow-Separation#Reynolds-Number

Why a Rougher Ball Flies Farther — The Drag Crisis and Boundary-Layer Separation

Roughness 0.85 puts flight Cd at 0.116, but roughness 1.0 lifts that same 70 m/s point back to 0.124.

A smooth ball ought to slip through the air with less drag. A golf ball breaks that guess. Hundreds of dimples (the small dents on the ball) and it still flies nearly twice as far. The gap is the drag crisis: a stretch of Reynolds number where the drag coefficient CDC_D falls off a cliff.

Flip the boundary-layer button from laminar to turbulent and the separation point moves aft. The shaded wake gets narrower.

Toggle the boundary layer. The turbulent one carries momentum closer to the wall, separates later, and leaves a thinner wake — the shaded region behind the cylinder shrinks and the pressure drag drops.

Watch how much of the wake disappears on the turbulent side. Once that width drops, form drag falls to less than half. The messier layer is the one cutting drag.

Pressure Drag and Friction Drag#

A ball feels two forces. Skin friction, from viscosity grazing the surface. Form drag, from the front-to-back pressure gap.

On a blunt body the pressure term is almost the whole load. The nose sits at high pressure where air hits it. The base stays at low pressure where the flow has left. That gap pulls the ball backward.

One coefficient carries the lot.

FD=12 ρ U2 A CDF_D = \tfrac{1}{2}\, \rho\, U^2\, A\, C_D

ρ\rho is density, UU relative speed, AA frontal area, CDC_D the drag coefficient. What the golf ball changes is CDC_D. The value sits flat across Reynolds number, then drops.

Re=ρ U DμRe = \frac{\rho\, U\, D}{\mu}

DD is diameter, μ\mu viscosity. ReRe is the ratio of inertia to viscous force.

The Moment the Boundary Layer Leaves the Wall#

Form drag is set by when the flow leaves the wall. That departure is boundary-layer separation.

Over the front half the air speeds up and pressure falls. Over the back half it reverses. The air slows and pressure climbs. An adverse pressure gradient: pressure rising in the flow direction.

Air near the wall has already spent most of its momentum on viscosity. It cannot push through that headwind. It stops, then gets shoved backward. The layer leaves there, and a wide low-pressure wake trails behind.

Earlier separation, wider wake. Wider wake, more form drag.

The Division of Labor Between Laminar and Turbulent Layers#

The separation angle depends on whether the layer is laminar or turbulent.

A laminar layer does not mix across itself. Near-wall air is slow and momentum-poor, so the adverse gradient wins early. About 82° from the front stagnation point.

A turbulent layer pulls fast outer air down to the wall. The near-wall fluid is sturdier and holds the same headwind longer. Separation waits until about 120°, and the wake narrows. The width change on the button above is this angle change. Why the wall region holds up at all is the same layered structure as a pipe flow coming apart.

The Drag Crisis — CDC_D Falls Off a Cliff#

A smooth sphere holds CDC_D near 0.4–0.5 from Re∼103Re \sim 10^3 out to 3×1053{\times}10^5.

Near Re≈3×105Re \approx 3{\times}10^5 it drops below 0.1. The flow has not reversed. The layer has transitioned from laminar to turbulent, and separation has moved aft. The narrower wake drags the coefficient off the cliff. That drop is the drag crisis.

Rougher surfaces trip the layer at a lower ReRe. Dimples are roughness put there on purpose. A golf ball's flight ReRe (about 2×1052{\times}10^5) would still leave a smooth ball before the crisis, on the high-CDC_D side. Dimples pull the cliff forward so the flight speed already sits on the low value. The curve you can drag by hand comes right after the printed numbers.

Python — A Golf Ball's Drag Across the Crisis#

Same speed for a smooth ball and a dimpled one. Diameter 0.0427 m, speed 70 m/s.

import math
 
def cd_subcritical(Re):
    # Clift-Gauvin correlation (valid for Re < 3e5)
    return (24.0 / Re) * (1 + 0.15 * Re**0.687) + 0.42 / (1 + 42500 * Re**-1.16)
 
def smoothstep(x, a, b):
    t = max(0.0, min(1.0, (x - a) / (b - a)))
    return t * t * (3 - 2 * t)
 
def drag_coefficient(Re, roughness):
    # roughness 0 (smooth) to 1 (dimpled): shifts the critical Re leftward
    sub = cd_subcritical(Re)
    log_re = math.log10(Re)
    log_crit = 5.55 - 1.35 * roughness
    t = smoothstep(log_re, log_crit - 0.18, log_crit + 0.18)
    sup = 0.08 + 0.13 * smoothstep(log_re, log_crit, 7.0)  # post-crisis branch
    return sub * (1 - t) + sup * t
 
def drag_force(U, D, roughness, rho=1.2, mu=1.8e-5):
    Re = rho * U * D / mu
    Cd = drag_coefficient(Re, roughness)
    A = math.pi * (D / 2) ** 2          # frontal projected area
    Fd = 0.5 * rho * U**2 * A * Cd
    return Re, Cd, Fd
 
D = 0.0427   # golf ball diameter [m]
U = 70.0     # speed just off the driver [m/s]
 
for label, rough in [("smooth", 0.0), ("dimpled", 0.85)]:
    Re, Cd, Fd = drag_force(U, D, rough)
    print(f"{label}: Re={Re:.2e}  C_D={Cd:.3f}  F_D={Fd:.3f} N")

Output:

smooth: Re=1.99e+05  C_D=0.487  F_D=2.049 N
dimpled: Re=1.99e+05  C_D=0.116  F_D=0.488 N

cyan: sphere C_D  ·  green: Stokes 24/Re. Raise roughness and the drag-crisis cliff slides toward lower Re — a dimpled ball trips the boundary layer early.

Raise the roughness slider and the cliff slides left. Park the logRe marker near 5.3 and the smooth curve is still on the plateau while the rough curve is already on the floor. Those two seats are the printed 0.487 and 0.116.

The printed 2.049 N and 0.488 N share one dynamic pressure. 0.5×1.2×702=29400.5 \times 1.2 \times 70^{2} = 2940 Pa times a frontal area near 1.432×10−31.432 \times 10^{-3} m² is 4.210 N. Times 0.487 that is 2.049 N. Times 0.116 it is 0.488 N. Ratio 4.20.

Critical log is 5.55−1.35×5.55 - 1.35 \times roughness: 5.55 when smooth (Re≈3.55×105Re \approx 3.55 \times 10^{5}) and 4.40 at roughness 0.85 (Re≈2.53×104Re \approx 2.53 \times 10^{4}). Flight log is 5.299. The smooth window opens at 5.37, so 5.299 stays outside and the subcritical branch returns 0.487. Dimples already sit on the supercritical branch, which runs from 0.08 toward 0.21 at log 7. At roughness 0.85 the smoothstep is 0.275, and 0.08+0.13×0.275=0.1160.08 + 0.13 \times 0.275 = 0.116.

Roughness 1 at that same 5.299 gives smoothstep 0.341, so CDC_D is 0.124 and the force climbs to about 0.52 N. The dimple cliff's middle, Re≈2.53×104Re \approx 2.53 \times 10^{4}, is 8.9 m/s. Slow the ball to that speed and the rough surface walks back toward a high CDC_D.

Dimples, and Other Stages#

The same angle shows up on other hardware. A car tail is shaped to delay separation and shrink the wake. A cricket ball is polished on one side so the two separation points do not match. A trip wire (a thin wire that forces the boundary layer turbulent) wrapped on a cylinder brings the crisis forward.

Drag is set less by the friction viscosity writes directly than by when the flow leaves the wall.

Where Extra Roughness Puts the Drag Back#

70 m/s is already past the crisis. Push roughness past 0.85 there and CDC_D climbs from 0.116 back to 0.124. The printed factor of 4.20 is not the end of the slider.

Put dimples on a surface that also has to pass heat and the wall friction rises with the trip. How that friction converts into heat transfer is the question in reading heat from drag alone. Does the surface that tripped early to cut form drag get a separate heat bill?

Share if you found it helpful.