The Reynolds number
When fluid flows past an object, two effects compete. Inertia keeps moving fluid going, and viscosity (internal friction) smooths out differences in velocity. Their ratio is the Reynolds number:
Two flows with the same shape and the same Re look the same, whatever the actual sizes and fluids. A 2 cm rod in water at 5 cm/s, and a 15 cm pole in air at 10 cm/s, both have Re ≈ 1000. This is dynamic similarity, the principle behind wind-tunnel testing of scale models. Try it: double U and halve D, and the flow pattern doesn't change. Time is shown as t* = tU/D for the same reason.
| Symbol | Meaning | SI unit |
|---|---|---|
| U | Flow speed far upstream | m/s |
| D | Obstacle size (diameter, side, or plate height) | m |
| ν = μ/ρ | Kinematic viscosity | m²/s |
| C_D, C_L | Drag and lift per unit span ÷ (½ρU²D) | — |
| St = fD/U | Strouhal number (f = shedding frequency) | — |
Flow regimes behind a cylinder
- Re ≲ 5, creeping flow: viscosity dominates and the flow hugs the cylinder, almost symmetric front to back.
- 5 ≲ Re ≲ 47, steady separation: the flow detaches and two standing vortices sit behind the cylinder. They grow longer as Re increases.
- 47 ≲ Re ≲ 190, vortex shedding: the wake becomes unstable and vortices peel off alternately from each side, forming a Kármán vortex street. The lift force oscillates at the shedding frequency, with St ≈ 0.12 at onset, rising to about 0.2. This is what makes wires sing in the wind and why tall chimneys have spiral strakes.
- Re ≳ 190: real wakes become three-dimensional and, at higher Re, turbulent. A 2D model can't represent this.
Method: the lattice Boltzmann method
Instead of solving the Navier–Stokes equations directly, the lattice Boltzmann method tracks populations of fluid particles moving between the cells of a grid in nine directions (D2Q9). Each time step, they stream to neighbouring cells and then collide, relaxing towards a local equilibrium:
At low Mach number this reproduces the incompressible Navier–Stokes equations, with viscosity ν = (τ − ½)/3 in grid units. Obstacles use no-slip bounce-back walls, and drag and lift come from the momentum the fluid transfers to the obstacle. Tracer particles are carried by the computed velocity, and streamlines are traced through the instantaneous velocity field. The solver runs in a background Web Worker so the page stays responsive.
Validation
- Laminar channel flow matches the analytic parabolic (Poiseuille) profile to 0.1%.
- A decaying shear wave matches the exact viscous decay rate, confirming the viscosity.
- Mass is conserved to 12 significant digits.
- Behind a cylinder, the wake is steady at Re = 40 and sheds vortices at Re = 100, consistent with the measured onset at Re ≈ 47.
- At Re = 100, the simulation gives St ≈ 0.19 and CD ≈ 1.75. Published values for a cylinder in unbounded flow are St ≈ 0.165 and CD ≈ 1.33. The difference is mainly blockage: the simulated tunnel is only six diameters tall, so the flow speeds up around the obstacle. This result doesn't change when the grid is refined.
Assumptions and limitations
- Two-dimensional, incompressible, laminar flow: the obstacle is effectively an infinitely long cylinder or prism.
- The highest Reynolds number is limited by grid resolution (200–360 depending on quality). Beyond that, the simulation runs at the limit and says so. Real flows at higher Re are turbulent.
- The tunnel is 16 × 6 obstacle sizes. Its sides are held at the free-stream velocity, which causes the blockage effect described above.
- In the last three obstacle sizes before the outlet (marked on the picture), the viscosity is raised gradually so that vortices leave without reflecting back.
- Simulated in convective time. Real time is shown as a readout and is usually faster or slower than playback.