Volcanic Vortex Ring Rise Model
A 1D variable-entrainment vortex-ring / thermal rise model for natural volcanic vortex rings, adapted for rise through a real, stratified atmosphere. Set the vent conditions, atmosphere, and entrainment closure below and run the model — everything executes locally in your browser (via Pyodide/WebAssembly), so nothing is uploaded to a server.
About the model
Volcanic vortex rings are toroidal puffs of ash and gas that are occasionally observed emerging from vents during weak explosive eruptions. This model treats a rising vortex ring as an entraining thermal, tracking its volume, momentum, and buoyancy fluxes as it rises through a compressible, stratified atmosphere and mixes with ambient air. The atmosphere can be the built-in ICAO/US Standard Atmosphere (1976), optionally shifted to a known near-vent temperature, or a real sounding profile you upload. Entrainment can be prescribed as a constant rate or computed as a height-dependent, Richardson-number-based closure following Turner (1962).
The physics follows the classic thermal/plume framework of Morton, Taylor & Turner (1956) and Turner (1962), adapted for volcanic vortex rings per Sparks et al. (1997), with buoyancy computed from potential temperature so the model remains valid for the compressible atmosphere the ring rises through. The in-browser version uses the same model physics as the standalone Python/MATLAB versions, and was validated against the desktop Python implementation to four decimal places.
Run the model
Download & run locally
The browser version above is a fully self-contained port of the same model. MATLAB and desktop Python (with an optional GUI) versions are also available.
MATLAB
Edit parameters at the top of a script and run — no toolboxes beyond base MATLAB required.
View on GitHub ↗Python
Command-line script or a Tkinter desktop GUI. Requires numpy, scipy, and matplotlib.
View on GitHub ↗Full documentation
Setup instructions for MATLAB, Python (Mac & Windows), and troubleshooting notes.
Read README ↗