Wind Tunnels, Similarity & Computational Aerodynamics
How aerodynamic data is actually obtained. Learn dimensional analysis and similarity (Reynolds, Mach, Froude), wind-tunnel types and measurements (balances, pressure taps, PIV), corrections, potential flow and panel methods, the CFD workflow (geometry, mesh, solver, turbulence models, convergence, validation), levels of fidelity (panel → Euler → RANS → LES), and flight testing — with Python for cylinder pressure and model-scale similarity.
Aircraft are designed with three complementary tools: computation (CFD), experiment (wind tunnels) and flight test. Each validates the others. Getting data right requires matching the physics — the dimensionless numbers — not just the shape.
CFD now handles most design iteration, but a modern airliner programme still runs thousands of wind-tunnel hours, and certification relies on flight test.
An analogy
CFD is like a weather forecast for air around a vehicle: the world is chopped into millions of cells and the equations of motion are stepped until the flow settles. A wind tunnel is the controlled experiment that tells you whether the forecast can be trusted.
Why similarity matters
A 1:10 model at the same speed has one-tenth the Reynolds number, so its boundary layers and stall behave differently. Matching Mach number captures compressibility; matching Re captures viscous effects; they are hard to match together. Engineers use transition trips, corrections and CFD to bridge the gap.
Wind tunnels
Types and measurements:
- Low-speed (open/closed circuit), transonic (slotted walls), supersonic (blowdown), hypersonic (shock tunnels)
- Balances measure six force/moment components
- Pressure taps and pressure-sensitive paint give C_p distributions
- Flow visualisation: oil flow, tufts, smoke, schlieren, PIV
- Corrections for wall interference, blockage and support (sting) effects
The CFD workflow
Clean the CAD geometry, generate a mesh (structured, unstructured, overset) with fine cells near walls, choose physics (inviscid Euler, RANS with a turbulence model, LES), set boundary conditions, run the solver to convergence (residuals and forces flat), check mesh independence, then validate against experiments. Common tools: OpenFOAM, SU2, ANSYS Fluent, STAR-CCM+, NASA FUN3D/CFL3D.
Fidelity, uncertainty and flight test
Panel and vortex-lattice methods (seconds) for early design; Euler (minutes–hours) for transonic shocks; RANS (hours) for attached viscous flow; LES/DES (days, supercomputers) for separated and acoustic flows. CFD struggles with stall, buffet and transition, where wind tunnels remain essential. Flight testing measures what matters for certification — performance, handling, flutter, stall — using instrumented prototypes.
Formulas
- Dynamic similarity:
Same shape + same Re + same M ⇒ same C_L, C_D, C_p - Cylinder (potential flow):
C_p = 1 − 4 sin²θ - Navier–Stokes (momentum):
ρ(∂u/∂t + u·∇u) = −∇p + μ∇²u - Courant condition:
CFL = u·Δt/Δx ≤ ~1 (explicit schemes) - First cell height:
y⁺ = y·u_τ/ν ≈ 1 for wall-resolved RANS
Worked example: Model Reynolds number
Given: Full-scale chord 1.5 m at 70 m/s; 1:10 model
Find: Model Re at the same speed.
- Re_full = 7.19e6
- ÷ 10
Answer: 7.2e5 — risk of laminar separation and unrealistic stall
Worked example: Stagnation pressure
Given: C_p at θ = 0 for any body
Find: C_p.
- V_local = 0 → C_p = 1
Answer: C_p = 1
Worked example: Time step
Given: Δx = 1 mm, u = 200 m/s, CFL = 0.8
Find: Δt.
- 0.8 × 0.001/200
Answer: 4 µs
Potential-flow pressures and Reynolds matching
import math
# Potential flow around a cylinder: Cp = 1 - 4 sin^2(theta)
for deg in (0, 30, 60, 90, 120, 180):
th = math.radians(deg)
print(f"theta {deg:3d} deg: Cp = {1 - 4*math.sin(th)**2:+.2f}")
# Dynamic similarity for a 1:10 wind-tunnel model at the same Mach number (air at 288 K)
V_full, L_full, nu = 70.0, 1.5, 1.46e-5
Re_full = V_full * L_full / nu
Re_model = V_full * (L_full / 10) / nu
print(f"full-scale Re = {Re_full:.2e}, 1:10 model at same speed Re = {Re_model:.2e}")
print(f"pressure needed to match Re (same V, T): {Re_full/Re_model:.0f} atm (cryogenic/pressurised tunnels)")
# theta 0 deg: Cp = +1.00
# theta 30 deg: Cp = +0.00
# theta 60 deg: Cp = -2.00
# theta 90 deg: Cp = -3.00
# theta 120 deg: Cp = -2.00
# theta 180 deg: Cp = +1.00
# full-scale Re = 7.19e+06, 1:10 model at same speed Re = 7.19e+05
# pressure needed to match Re (same V, T): 10 atm (cryogenic/pressurised tunnels)Ideal potential flow is symmetric front-to-back, so it predicts zero drag (d'Alembert's paradox) — reality has separation and a wake. Small models run at too low a Reynolds number; pressurised or cryogenic tunnels (e.g. NASA NTF, ETW) raise density or lower viscosity to match flight Re.
Common mistakes
- Wrong: Trusting one CFD run. — Right: Check convergence and mesh independence, then validate.
- Wrong: Using coarse wall meshes with low-Re models. — Right: Match y⁺ to the wall treatment.
- Wrong: Ignoring scale effects in model tests. — Right: Correct or match Reynolds number.
Applications
- Airliner development: CFD + transonic tunnels for wing design.
- Formula 1: Restricted tunnel hours and CFD budgets.
- Launch vehicles: Aerodynamic loads and heating predictions.
- Wind engineering: Loads on buildings and bridges.
Key takeaways
- Match Re and M, or correct for them.
- Wind tunnels, CFD and flight test validate each other.
- CFD: mesh → solve → converge → verify → validate.
- Choose fidelity to fit the question.
Going further
- Adjoint optimisation: Gradients of drag w.r.t. thousands of shape variables.
- Lattice Boltzmann methods: For complex geometries and aeroacoustics.
- Digital flight test: Model-based certification credit.