WebGL Superfluid Simulation using dGPE

A demo by George Stagg


About this simulation

The dissipative Gross-Pitaevskii Equation (dGPE) is a quantum phenomenological model of finite-temperature superfluid dynamics. The governing differential equation is written, \[ (i-\gamma) \frac{\partial \psi}{\partial t} = -\frac{1}{2}\nabla^2\psi + |\psi|^2\psi + V\psi-\psi, \] where \(\psi\) is a wavefunction describing the fluid, \(V\) is a potential term, and \(\gamma\) is a measure of energy dissipation, related to the temperature of the system. The simulation above demonstrates the evolution of a two dimensional quantum superfluid according to the dGPE.


Superfluid behaviour is non-intuitive as a direct consequence of the laws of quantum mechanics. At extremely low temperatures unexpected effects occur such as fluid flow without any viscosity or internal friction. Circulation in a superfluid is restricted into packets of vorticity called "quantum vortices". Unlike normal fluid vortices that can vary in size (consider stirring of a cup of coffee compared to a tornado), quantum vortices are all identical in size and shape. Superfluids are an example of only a few physical systems where quantum behaviour can be observed at macro scales.

Quantum vortices can be seen in the simulation above as black "holes" interacting with one another. There are two possible vortex polarities, "postitive" vortices with a constant circulation of \(\kappa\), and "negative" vortices with a constant circulation of -\(\kappa\). Due to the dissipation in the system, positive and negative vortices are attracted to one another. When they meet they annihilate, destroying themselves and converting their energy entirely into sound waves.

A positive quantum vortex can be interactively placed into the system by clicking, a negative vortex by right clicking. Placing a vortex on top of another vortex in the system will either cause the vortices to annihilate (if they were oppositely signed) or to rotate around each other quickly (if they are same signed).

Quantum vortices have been observed in real superfluids and in a rotating system can be seen to spontaneously form a vortex lattice. You can model such a system in this simulation by selecting the "Trapped & Rotating" preset in the settings.

Stirring with Obstacles

An "obstacle" can be introduced into the system by clicking (or tapping on mobile) and dragging. The obstacle is created by manipulating the potential term \(V\). Such obstacles are introduced into real superfluid systems by stirring with rods (e.g. with supercooled liquid Helium) or by shining a blue detuned laser beam into the system (e.g. with a cloud of bosons undergoing Bose-Einstein Condensation).

Stirring the fluid by moving an obstacle through it injects vorticity into the system via quantum vortices, which spontaneously appear around the obstacle if the obstacle is moving faster than some critical velocity. The exact value of the critical velocity depends on the specific parameters of the obstacle and system.

Wavefunction Phase

With the dGPE model we have direct access to the superfluid's quantum wavefunction. The wavefunction has a certain property called "phase" which can be visualised by ticking "Show Phase" in the settings. The phase is not directly observable in reality, but it is related to some observable aspects of the system such as the local velocity of the fluid. The phase is one way to discover the polarity of a vortex, as the phase will wrap around a vortex by \(2\pi\) in either a clockwise or anti-clockwise fashion depending on the polarity.

Clicking the "Quench Phase" button will set the phase randomly throughout the entire system. This has the effect of filling the system with vortices.


The dissipation parameter controls how much energy leaves the superfluid system over time. The quantum fluid approaches the lowest energy "ground state" as energy leaves the system, which manifests as sound waves dissipating and opposite signed vortices approaching one another and annihilating. Very loosely speaking, in this model the lower the value of the dissipation, the cooler the system is in comparison to the critical temperature for superfluidly to occur.

A dissipation of zero corresponds to a superfluid model at a temperature of absolute-zero. In such a model a superfluid has zero viscosity and sound waves will remain in the system forever.

Numerical Simulation

The simulation is performed on a \( 256 \times 256 \) computational grid using the RK4 time-stepping scheme, commonly used for solving ODEs, here implemented as webGL shaders. Twenty RK4 steps are performed after each frame is drawn on the screen. The complex numbers associated with the fluid's wavefunction on the computational grid are "packed" into RGBA textures for storage, limiting the precision. As such, the simulation is not as numerically stable as more traditional physical simulations. Under some parameters unstable modes can form and the simulation might "blow up". This is more likely to happen when you set a very low or zero dissipation. If this happens, clicking the "Reset Simulation" button should help.