Starting Vortices

Discrete-vortex simulation of wake formation behind a flat airfoil — how acceleration and heaving shed vortices into a self-organizing wake, per Kelvin's theorem. Undergraduate research at the Technion.

[research] paper (pdf)

My first undergraduate research project (Technion, supervised by Prof. Avshalom Manela) studies how vortices are born when the flow around a thin flat airfoil is disturbed.

The problem

The central quantity is the circulation Γ(t)=U(t)d\Gamma(t) = \oint U(t)\cdot d\ell around a loop of fluid enclosing the airfoil. For an ideal fluid with no external forces, Kelvin’s theorem states that

DΓDt=0,\frac{D\Gamma}{Dt} = 0,

i.e. total circulation is conserved. So when the flow changes — the stream accelerates, or the airfoil heaves up and down — the bound circulation of the airfoil changes too, and the difference has nowhere to go but the wake: it is shed at the trailing edge as discrete vortices, the “starting vortices” of the title. The question is where these vortices go and what pattern the wake settles into.

How it works

The wake is modeled as a chain of point vortices in the complex plane. At each time step the flow field is the superposition of the free stream at (effective) angle of attack α\alpha, the airfoil itself — represented per thin-airfoil theory as a sheet of infinitesimal vortices γ(x1,t)\gamma(x_1, t) — and every vortex shed so far:

W(z)=U(t)eiαi2π(k=1NΓkzzΓk+Γczzc).W(z) = U(t)e^{i\alpha} - \frac{i}{2\pi}\left(\sum_{k=1}^{N} \frac{\Gamma_k}{z - z_{\Gamma_k}} + \frac{\Gamma_c}{z - z_c}\right).

Enforcing impermeability, ImW(z)=0\mathrm{Im}\,W(z) = 0 on the airfoil, with Glauert’s substitution x1=c2(1cosθ)x_1 = \tfrac{c}{2}(1-\cos\theta) turns the boundary condition into a linear system for the vortex-sheet coefficients, while Kelvin’s theorem fixes the strength of each newborn vortex:

ΓN=(n=1N1Γn+0cγ(x1,t)dx1Γ0).\Gamma_N = -\left(\sum_{n=1}^{N-1}\Gamma_n + \int_0^c \gamma(x_1, t)\,dx_1 - \Gamma_0\right).

Every vortex is then advected by the local flow it helped create,

zΓktn=zΓktn1+W(zΓk)dt,z_{\Gamma_k}\big|_{t_n} = z_{\Gamma_k}\big|_{t_{n-1}} + W(z_{\Gamma_k})\,dt,

so the wake shapes itself from step to step.

Results

Two perturbations of the steady state are simulated.

Under linear acceleration of the stream (U(t)/U0U(t)/U_0 ramping from 1 to 1.3 at a 3° angle of attack), the bound circulation only grows, so the shed vortices all carry the same sign and form a curly chain that drifts downstream and rolls up around its head — the classical starting-vortex picture known from experiments. The live version below runs the same discrete-vortex model in your browser; tune the angle of attack and how hard the stream ramps up.

Flat wing (black) held at a small angle of attack while the freestream accelerates. The bound circulation only grows, so same-sign vortices (filled) are shed and roll up into a starting vortex. Faint streaks trace the flow. Runs on a loop; drag the sliders while it plays, or click the view to pause.

Under symmetric heaving, ψ(t)=iϵsin(2πft)\psi(t) = i\,\epsilon\sin(2\pi f t) with ϵ=5102\epsilon = 5\cdot 10^{-2} and f=1f = 1, the effective angle of attack flips sign every half-cycle, so vortices of alternating sign are shed and organize into a curved, cyclical street that curls up at its far end.

Flat wing (black) heaves on the centerline and sheds a point vortex each step — filled = counter-clockwise, hollow = clockwise. Faint streaks trace the freestream. Runs on a loop; drag the sliders while it plays, or click the view to pause.

In both cases the strength and persistence of the wake are governed by the flow velocity, the effective angle of attack, and the amplitude and frequency of the heaving. Both simulations run the corrected mutual-induction model — a simplified, real-time cousin of the MATLAB code — and loop on their own; drag the sliders while they play.