HomeArticlesFluid Vorticity

Vortex Sheets: How N Point Vortices Simulate a Rolling Shear Layer

A discretised vortex sheet of N point vortices, each obeying the Biot-Savart law, reproduces the roll-up of the Kelvin-Helmholtz instability without ever touching a grid.

mysimulator teamUpdated June 2026≈ 8 min read▶ Open the simulation

A shear layer as a chain of point vortices

Instead of solving the continuum Euler equations on a grid, this simulation represents the vortex sheet between two shearing fluid layers as a finite set of N point vortices, each carrying a fixed circulation Gamma. Every vortex induces a velocity field on every other vortex through the Biot-Savart law, exactly the magnetic analogue used for current-carrying wires: the induced velocity falls off as 1/r and rotates around the source vortex. Integrating everyone's velocity forward in time is the entire simulation — no pressure solve, no grid, just N(N-1) pairwise interactions per step.

live demo · a discretised vortex sheet rolling up● LIVE

Why a straight sheet is unstable

A perfectly straight, uniformly spaced line of vortices is an exact (if fragile) equilibrium. Perturb it infinitesimally and the classical Kelvin-Helmholtz analysis shows every wavelength grows exponentially, with the fastest-growing mode roughly comparable to the vortex spacing. Physically: a small kink pulls neighbouring vortices closer on one side, which increases their mutual induced velocity, which increases the kink — a positive feedback loop with no restoring force in an inviscid, unstratified layer.

for each vortex i:
  v_i = sum over j != i of  Gamma_j / (2*pi*r_ij) * tangent_ij
  x_i += v_i * dt        // simple Euler, or RK4 for accuracy

Roll-up and the Moore singularity

As the sheet destabilises, the point-vortex model reproduces the classic spiral roll-up seen in smoke rings, cloud billows and the edges of a jet — the sheet curls into a sequence of discrete vortex cores connected by thinning braids. In the continuum limit this roll-up is famous for developing a finite-time curvature singularity (the Moore singularity), after which the smooth vortex-sheet equations technically break down; the discrete N-point model sidesteps that by construction, since a finite set of points can always be advanced, but it pays for that robustness with growing small-scale noise that eventually needs regularisation or periodic vortex merging to stay physical.

Where this shows up

Kelvin-Helmholtz billows form wherever two fluids or fluid layers slide past each other with even a small velocity difference: the sharp edge of cumulus clouds, the boundary between wind and slower air over water (generating surface waves), Jupiter's banded cloud tops, the magnetopause where solar wind meets Earth's magnetic field, and shear layers inside jet engines and mixing ducts. The instability is also the main mixing mechanism at density interfaces once stratification is weak enough not to suppress it (the Richardson number criterion).

Frequently asked questions

How is this different from a grid-based fluid simulation of the same instability?

A grid method discretises space and solves the Euler or Navier-Stokes equations on every cell. This point-vortex method discretises the vortex sheet itself into N particles and computes velocities analytically via the Biot-Savart law — no grid, no pressure solve, exact incompressibility, but it only works for regions where vorticity is concentrated on the sheet.

Why do the vortices eventually look noisy instead of a clean spiral?

The continuum vortex sheet develops a curvature singularity in finite time (the Moore singularity); a finite set of point vortices approximates this by the small-scale positions becoming chaotically sensitive to their neighbours, which shows up as jitter along the spiral arms unless the simulation periodically merges or smooths nearby vortices.

What is circulation Gamma and why is it fixed per vortex?

Circulation is the line integral of velocity around a vortex core, and by Kelvin's circulation theorem it is conserved for each fluid element in an inviscid, barotropic flow. Assigning each point vortex a fixed Gamma is exactly enforcing that conservation law, which is why the method reproduces the correct large-scale dynamics despite using so few degrees of freedom.

Try it live

Everything above runs in your browser — open Fluid Vorticity and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.

▶ Open Fluid Vorticity simulation

What did you find?

Add reproduction steps (optional)