Below Tλ = 2.17 K, helium-4 becomes a superfluid whose flow is irrotational everywhere except along thin filaments called quantized vortex lines. Circulation around any closed loop can only take multiples of the quantum of circulation:
∮ v_s · dl = n κ, κ = h / m₄ ≈ 9.97 × 10⁻⁸ m²/s (n = 1 in equilibrium)
A rotating bucket cannot support solid-body rotation with a single vortex — instead it nucleates a whole array of unit-circulation lines whose areal density nv mimics rigid rotation on average (Feynman's rule):
n_v = 2Ω / κ (vortices per unit area)
d = (2 / (√3 · n_v))^(1/2) (triangular lattice spacing)
Each line moves under the Biot–Savart velocity induced by every other line, images from the container wall (so no flow crosses the boundary), and mutual friction with the normal-fluid component that co-rotates with the walls (Hall–Vinen equation):
v_L = v_s + α ẑ×(v_n − v_s) + α′(v_n − v_s)
v_n = Ω × r (normal component locked to the rotating walls)
The dissipative α, α′ terms — larger near Tλ as the normal-fluid density grows — are what actually drag the vortices into the ordered triangular (Abrikosov-style) lattice instead of letting them orbit forever. This simulation integrates that equation directly for every line, with wall images enforcing the boundary condition.
- Ω slider — sets the target vortex density via Feynman's rule; changing it re-nucleates the array to the new equilibrium count.
- T slider — sets the mutual-friction strength α(T) and the two-fluid superfluid fraction ρs/ρ ≈ 1 − (T/Tλ)5.6 shown in the readout (an illustrative fit to the qualitative trend, not tabulated data).
- Perturb Lattice — kicks every line with random noise so you can watch mutual friction re-crystallize the array.
- Real-world scale — the sim uses rescaled units to keep the vortex count visually tractable (real He-II spacings are tens to hundreds of micrometres); the Ω-scaling of the count and spacing is exact, and the µm readout converts back to a real container assumed to hold this simulated vortex density.