Objective
This application visualises the head-on collision of two vortex rings as a
model of rocket-propellant stream mixing. Two coaxial rings — one per
propellant — are fired toward each other. As they meet, they interpenetrate,
the dye intermixes, and the merged structure blooms outward into a larger,
lobed ring. It reproduces the qualitative behaviour of the classic Lim &
Nickels (1992) experiment and the Basilisk reference simulation, letting you
explore how propellant choice and flow parameters shape the mixing.
Method
Each ring is a loop of discrete vortex elements. Both the dye particles and
the vortex elements move in the summed Biot–Savart velocity field of every
element, so self-propulsion, collision and radial expansion all emerge from
the physics rather than being scripted. This is a lightweight qualitative
model, not a full Navier–Stokes combustion solver.
Parameters
Parameters that describe a propellant jet are set independently per
stream (Left / Right). Parameters that describe the shared domain or the
numerical scheme are system-wide.
Per-stream (Left / Right)
- Left Stream / Right Stream
- The propellant assigned to each ring. Sets its dye colour, density
(stream momentum) and viscosity (dye diffusion). The note flags whether the
pair is a real oxidizer + fuel combination.
- Jet strength (circulation Γ)
- How hard that ring is fired — analogous to the injection velocity of
the propellant jet. Controls that stream's approach and collision speed.
- Ring radius R
- The major radius of that ring at launch (its nozzle diameter).
- Launch distance
- Starting distance of that ring's centre from the origin along the
collision axis. The two streams can start at different distances.
- Vertical offset
- Raises the left ring / lowers the right ring by this amount. Unequal
offsets produce an oblique, off-centre collision instead of a head-on one.
- Core thickness ε
- The Biot–Savart smoothing length of that ring — effectively its vortex
core size. Larger values give a thicker, gentler core.
- Instability lobes (wavenumber)
- Azimuthal perturbation seeding the scalloped "flower" lobes on that
ring. 0 = perfectly axisymmetric.
System-wide
- Reynolds number (Re)
- Ratio of inertial to viscous forces for the whole scene. Drives the dye
diffusion rate: high Re → thin, crisp filaments; low Re → blurred dye.
Linked to the viscosity slider.
- Viscosity (dye diffusion)
- The base random-walk coefficient applied to the dye. Inversely linked to
Re; combined with each propellant's own viscosity.
- Dye particles
- Total number of dye particles (half per ring). More particles give a
denser cloud at a higher compute cost.
- Particle size
- On-screen size of each dye point. Updates live without a restart.
- Playback speed (dt)
- Simulation time step per frame — slows down or speeds up the animation.
References
Created by Andy Kong