← 🌊 Fluid Dynamics

🌀 Kármán Vortex

Color field
Re:
FPS:
Panel — adjust Re · Click canvas — add obstacle

What It Demonstrates

The Kármán vortex street is a repeating pattern of alternating vortices shed by a bluff body in a viscous flow. This simulation uses a Lattice Boltzmann Method (LBM) on a D2Q9 grid — 9 velocity directions per cell — to solve the Navier-Stokes equations at the mesoscopic scale. Vortex shedding frequency obeys the Strouhal number: St = fD/U ≈ 0.2 for a cylinder at moderate Reynolds numbers.

How to Use

Drag the Reynolds number slider: below Re ≈ 40 you see steady attached flow; above Re ≈ 40 vortex shedding begins; above Re ≈ 200 the wake becomes irregular. Click anywhere to add an obstacle — try a square or tilted rectangle. Toggle colour maps between velocity magnitude, vorticity (curl of velocity) and pressure to reveal different aspects of the flow.

Did You Know?

In 1940, the Tacoma Narrows Bridge resonated with vortex shedding and collapsed in a 64 km/h wind — a now-iconic example of aeroelastic flutter. Engineers now design bridge decks with aerodynamic cross-sections to suppress shedding. The same phenomenon makes phone wires sing and causes chimneys to oscillate — always a structural concern in wind-exposed design.

About this simulation

This simulation reproduces the Kármán vortex street — the alternating train of swirling eddies that peels off either side of a cylinder placed in a steady stream. The flow is solved with the Lattice Boltzmann Method on a 320×160 D2Q9 grid, where fictitious particle packets stream along nine directions and relax toward equilibrium each step via the single-relaxation-time BGK collision rule. The Reynolds number, set by inlet speed, cylinder diameter and viscosity, decides whether the wake stays steady or breaks into rhythmic shedding.

🔬 What it shows

Vortex shedding behind a circular cylinder, computed by a D2Q9 Lattice Boltzmann solver with BGK collision. Nine distributions per cell collide toward the equilibrium feq, stream to neighbours, and use bounce-back at the solid to enforce a no-slip wall, recovering the incompressible Navier-Stokes behaviour at the macroscopic scale.

🎮 How to use

Use the panel sliders: Flow speed (u₀, 0.02-0.18) sets inlet velocity, Viscosity (ν, 0.005-0.1) controls damping, Cylinder radius (3-20) resizes and rebuilds the obstacle, and Steps/frame (1-20) trades speed for smoothness. The Velocity, Vorticity and Density buttons switch the colour field; Reset restarts the flow; clicking the canvas adds a circular obstacle.

💡 Did you know?

The shedding frequency follows the Strouhal relation St = fD/U, which holds near a value of about 0.2 across a wide band of Reynolds numbers — meaning the vortex rhythm scales predictably with flow speed and body size.

Frequently asked questions

What is a Kármán vortex street?

It is the repeating pattern of swirling vortices that detach alternately from the two sides of a blunt body, such as a cylinder, sitting in a steady flow. The vortices form a staggered double row that drifts downstream in the body's wake, named after the aerodynamicist Theodore von Kármán.

How does the Lattice Boltzmann Method solve the flow here?

Each grid cell holds nine particle distributions (the D2Q9 stencil). Every step they relax toward a local equilibrium using the single-relaxation-time BGK rule, then stream to neighbouring cells. The cylinder uses bounce-back to impose a no-slip wall, a constant-velocity inlet drives the flow, and a zero-gradient outlet lets it leave. Summing the distributions recovers density and velocity.

What do the panel controls do?

Flow speed sets the inlet velocity u₀, while Viscosity sets ν, which together with cylinder diameter define the Reynolds number Re = u₀·D/ν shown in the readout. Cylinder radius resizes the obstacle and reinitialises the flow, Steps/frame sets how many solver iterations run per drawn frame, and the colour buttons display velocity magnitude, vorticity or density.

Is the simulation physically accurate?

It is a genuine fluid solver rather than a scripted animation, and it reproduces the correct qualitative regimes: a steady attached wake at low Reynolds numbers and periodic shedding at higher ones. As a 2D, single-relaxation-time model on a modest grid it is simplified, so it captures the essential physics and trends rather than precise engineering values.

Why does the wake start oscillating instead of staying symmetric?

At low Reynolds numbers viscous damping keeps the wake steady and symmetric. Above a critical value (around Re ≈ 47 for a cylinder) that symmetric state becomes unstable, so any tiny disturbance grows into self-sustaining alternate shedding. The simulation seeds this with a faint velocity perturbation above and below the centreline to trigger the instability quickly.