A desktop application for simulating two-component, non-isothermal adsorption breakthrough in a packed column. Pick two gases and an adsorbent, set the operating conditions, and it solves the coupled mass, momentum and energy balances along the bed and plots the outlet response.
It runs entirely on your own machine. No account, no installer, no telemetry.
Current release: 2026.09v2 — Windows and Linux. A macOS build will follow.
📖 Full documentation is in the Wiki
-
Go to Releases and download
BreakthroughSimulator-windows.exe(about 224 MB) for Windows 10/11, orBreakthroughSimulator-linux-x86_64.tar.gz(about 96 MB) for Linux (x86_64). -
Windows — double-click the
.exe. Linux — extract the archive and run the launcher:tar -xzf BreakthroughSimulator-linux-x86_64.tar.gz cd BreakthroughSimulator-linux-x86_64 ./run-breakthrough-simulator.shOptionally
./install.shonce, from a permanent folder, to add it to your application menu. -
Your browser opens at
http://127.0.0.1:8000after a few seconds.
Nothing is installed, no administrator rights are requested, and no registry keys, services or startup entries are created. Delete the file or folder and it is gone. Close the browser tab and the background process exits within about half a minute.
The Linux download is a folder, not a single file — keep the extracted layout
intact, the launcher needs BreakthroughSimulator/_internal/ beside it.
Expect on first run: Windows shows "Windows protected your PC" because the build is unsigned — click More info → Run anyway. The Windows build also takes a few extra seconds on every launch while roughly 200 MB of Python and scientific libraries unpack; the Linux build is already unpacked and starts immediately. Both are covered in Troubleshooting.
Verify your download against the SHA256SUMS published with each release:
certutil -hashfile BreakthroughSimulator-windows.exe SHA256 Windows
sha256sum -c SHA256SUMS Linux
Simulates a single packed column carrying a binary gas mixture — the canonical case being CO₂/N₂ post-combustion capture — in either direction:
- Adsorption (breakthrough). The bed starts clean and you watch the concentration and temperature fronts reach the outlet.
- Desorption (purge). The bed starts saturated at feed equilibrium and clears under a purge at reduced pressure.
Six state variables are tracked in every cell — mole fraction of each component, total pressure, gas temperature, wall temperature, and adsorbed loading of each component — so the answer is genuinely dynamic rather than an equilibrium shortcut. The wall carries its own energy balance and thermal mass, which is why the temperature response outlasts the concentration front instead of tracking it.
Physics
- Coupled mass, momentum and energy balances, non-isothermal, with a separate wall energy balance
- 11 isotherm models per component: Linear, Langmuir (SSL), Dual-Site Langmuir, Toth, Sips/Hill, Freundlich, Anti-Langmuir, Quadratic, BET, Type V, Sips+Henry
- Mixture equilibrium by IAST (any model) or extended-Langmuir competitive mixing (SSL/DSL, faster)
- 5 mass-transfer modes: macropore, film, micropore, combined (resistances in series, individually selectable), or a directly entered LDF constant
- Ergun or Darcy momentum balance — Darcy runs ~3.4× faster where the inertial term is negligible
- 13 gases, with noble gases correctly reduced to zero capacity
- 5 adsorbent presets with properties traced to the source paper: Zeolite 13X, Activated Carbon, CALF-20, Mg-MOF-74, UTSA-16
Numerics
- Finite volume with WENO reconstruction, 6N coupled ODEs
- SUNDIALS CVODE (implicit BDF) with a sparse SuperLU_MT linear solver
- 97 engine self-checks pass for every published build
Working with results
- Breakthrough curves, normalised molar flow, temperature profiles, pressure, velocity, loading and wall temperature — against real time or dimensionless τ
- Mass-balance closure reported against two independent references
- Every dimensionless group computed and displayed per run
- Save and reload complete cases as JSON; export a formatted report with equations, figures and citations
- Overlay your own measured data (
.csv/.xlsx) and score it with RMSE, MAE and R²
| Page | |
|---|---|
| Using the App | Quick start, every tab, saving cases, reports, overlaying your data |
| The Model | Governing equations, dimensionless groups, numerics, verification |
| Isotherm Models | All eleven models, IAST and competitive mixing |
| Mass Transfer | LDF, resistances in series, the five modes |
| Adsorbent Presets | The five presets and their sources |
| Limitations | What it does not model |
| Privacy and Security | What runs on your machine, and source availability |
| Troubleshooting | SmartScreen, antivirus, checksums, startup failures |
| References | Every source, and how to cite |
- Dry basis only — water vapour and humidity co-adsorption are not modelled.
- Educational and exploratory use. Validate against your own data and apply engineering judgement before using results in design. The author accepts no liability for results applied beyond that purpose.
Full list: Limitations.
Runs locally, bound to 127.0.0.1, unreachable from your network or the
internet. No accounts, no analytics, no tracking. There is exactly one optional
outbound request: if you turn it on, once a week the app asks api.github.com
for the latest version number — a version number and nothing else. It is off
until you say yes, and the app never downloads or runs code on its own.
See PRIVACY.md and SECURITY.md.
Not published yet; it will follow once the underlying work is written up. Until
then the downloads are binaries only, and the SHA-256 fingerprints plus the
requirements-lock.txt shipped with each release are what let you verify what
you received. If you need the source sooner — for a review, an audit, or because
your institution requires it — please
open an issue
and ask.
CC BY 4.0 — use, share and adapt with attribution. See LICENSE. Bundled components keep their own licences (Python, NumPy, SciPy, scikit-sundae, SUNDIALS, SuperLU_MT, FastAPI, uvicorn, KaTeX, SheetJS); full attributions are in the app under © Credits.
Anand, M. (2026). Dynamic Column Breakthrough Simulator (version 2026.09v2) [computer software]. https://github.com/Mk-learning-python07/dynamic-column-breakthrough
Please also cite the sources behind whichever preset and theory your result depends on — References.
Developed by Muthukrishnan Anand, with the assistance of Claude (Anthropic). Bug reports and questions: open an issue.