2 D Wind Tunnel — molecular flow over a flat plate

elastic collisions · unit particle mass · lift & drag from momentum transfer
Left-drag the orange opening up or down  ·  the plate to move it  ·  a tip to change the chord  ·  anywhere else to rotate (Shift = always rotate)

Momentum transfer, iteration by iteration

Faint lines: Δp handed to the plate in each individual timestep — mostly a single collision, so it is pure shot noise. Bold lines: the same series smoothed. About 4 s of history.

Δp verticalΔp horizontal

Polar: CL, CD vs α

Press Run the α sweep: the plate steps from −90° to +90° in 5° increments, settling then averaging at each one (≈ 3 min, 37 points). Needs a non-zero wind speed, and leave the plate alone while it runs. Dashed = exact free-molecular theory for the current U and σ, plotted absolutely — nothing fitted or rescaled. It is the collisionless limit, and the measured curve crosses it: above at small α where collisions turn the flow over a wider region, below past about 45° where the compressed windward layer and the wake shield the plate. That crossing is what the collisions do, and it is why the measured lift peaks near 43° instead of the collisionless 55°.

CLCDCM (×10)

Speed distribution

Live histogram of every particle's speed, against the theoretical curve for the ambient temperature and wind. Nothing is fitted.

measuredtheory (Rice / Maxwell)

How the numbers are produced

Every particle has mass m = 1. A collision with the (infinitely thin, immovable) plate is specular: v' = v − 2(v·n)n. Conservation of momentum then gives the impulse delivered to the plate as J = m(v − v') = 2(v·n)n. These are counted per iteration: at the end of every timestep the simulation reports the momentum that actually changed hands during that step, in momentum units, not divided by time.