Skip to content

About

Two-component non-isothermal adsorption breakthrough simulator. Runs locally, no account, no telemetry.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic Column Breakthrough Simulator

A desktop application for simulating two-component, non-isothermal adsorption breakthrough in a packed column. Select two gases and an adsorbent, define the operating conditions, and the simulator solves the coupled mass, momentum and energy balances along the bed and plots the outlet response.

It runs entirely on your own machine, with no account, no installer and no telemetry.

Current release: 2026.09v4 for Windows and Linux. A macOS build is planned.

Full documentation is available in the Wiki.


Download and run

  1. Go to Releases and download BreakthroughSimulator-windows.exe (about 242 MB) for Windows 10/11, or BreakthroughSimulator-linux-x86_64.tar.gz (about 96 MB) for Linux (x86_64).

  2. 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.sh
    

    Optionally ./install.sh once, from a permanent folder, to add it to your application menu. To upgrade, run the new version's install.sh the same way; it replaces the previous installation.

  3. Your browser opens at http://127.0.0.1:8000 after a few seconds, or on the next free port if 8000 is already in use.

Nothing is installed: no administrator rights are requested, and no registry keys, services or startup entries are created. Deleting the file or folder removes the application completely. Closing the browser tab shuts down the background process within about half a minute.

The Linux download is a folder rather than a single file; keep the extracted layout intact, as the launcher requires BreakthroughSimulator/_internal/ beside it.

On first run, Windows displays "Windows protected your PC" because the build is not code-signed; click More info → Run anyway. The Windows build also takes a few seconds on each launch while roughly 200 MB of Python and scientific libraries unpack; the Linux build is pre-extracted 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

What it does

The simulator models a single packed column fed with a binary gas mixture, with CO₂/N₂ post-combustion capture as the reference case, in either operating mode:

  • Adsorption (breakthrough). The bed starts clean, and the concentration and temperature fronts are followed until they reach the outlet.
  • Desorption (purge). The bed starts at equilibrium with the feed and is purged at the same flow, temperature and pressure with $y_1=0$.

Six state variables are resolved in every cell: the gas-phase mole fraction, total pressure, gas temperature, wall temperature, and the adsorbed loading of each component. Because the wall carries its own energy balance and thermal mass, the temperature response persists well beyond the passage of the concentration front.

Features

Physics

  • Coupled mass, momentum and energy balances, non-isothermal, with a separate wall energy balance
  • 13 isotherm models per component: Linear, Langmuir (SSL), Dual-Site Langmuir, Dual-Site Langmuir-Freundlich, Dual-Site BET, 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 only); each preset carries its own rule, and the Zeolite 13X default uses competitive mixing
  • Feed composition across its full range, with the flow entered in SLPM, SCCM, NLPM, NmL/min, SCFH, SCFM (editable reference $T$, $P$), LPM, mL/min, m³/h, mol/s or mmol/min — or directly as the interstitial velocity $v_0$
  • 4 axial-dispersion correlations (Ruthven Ch. 7), each evaluated at the operating point before you choose, or your own $D_L$; Ruthven's basic correlation, Eq. 7.6, is the default
  • 5 mass-transfer modes: macropore, film, micropore, combined (resistances in series, individually selectable), or a directly entered LDF constant
  • Ergun or Darcy momentum balance, with $Re_p$ reported for every run so you can judge whether neglecting the inertial term is justified
  • 12 selectable gases, with noble gases treated as non-adsorbing
  • 5 adsorbent presets, each citing the source of its parameters. Zeolite 13X, Activated Carbon and CALF-20 also carry published bed and particle properties; Mg-MOF-74 and UTSA-16 provide isotherm parameters only, so their physical properties must be set for your own material, and the app notes this when either is selected

Interface

  • Two pages: a six-step Inputs walk-through with live input checks, and Results; built-in guide and tour; colour-blind-safe light and dark themes
  • Live isotherm preview while you edit parameters: both pure-component isotherms at the feed temperature and at a chosen offset, with the feed partial pressures marked
  • Explanations on demand: notes behind (i) buttons and field descriptions on hover, so the input steps stay uncluttered
  • Works fully offline; fonts and equation rendering ship with the app

Numerics

  • Finite-volume discretisation with WENO reconstruction, upwinded by the local flow direction (6N coupled ODEs), robust on demanding cases including brief flow reversal at start-up
  • SUNDIALS CVODE (implicit BDF) with a sparse SuperLU_MT linear solver
  • Should CVODE fail to converge, the same equations are retried with SciPy LSODA and then SciPy BDF. Any run completed by a fallback is identified as such in the app and in the exported report, since the fallbacks do not enforce the non-negativity constraints that CVODE does
  • A built-in suite of 139 engine self-checks passes for every published build

Working with results

  • A results summary with breakthrough time, loadings against equilibrium, peak bed temperature and a Can I trust this run? check panel
  • Breakthrough curves, normalised molar flow, temperature profiles, pressure, outlet flow, loading and wall temperature — against real time or dimensionless τ, with legends placed automatically clear of the data
  • Every run verified two ways for each component: accumulated loading against the isotherm at feed conditions, and mole conservation across the column
  • All dimensionless groups computed and reported for every 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² — outlet flow in the same unit as the feed (or any listed unit) and thermocouples in °C, K or °F, converted on upload; the template is written in the units you choose
  • Reduce a measured breakthrough run to its equilibrium loading by mass balance, with every equation shown, and compare it with the mixing rule the run uses

Documentation

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 thirteen 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

Before you rely on it

  • Dry basis only — water vapour and humidity co-adsorption are not modelled.
  • Intended for education and exploratory analysis. Validate results against your own data and apply engineering judgement before using them in design. The author accepts no liability for results applied beyond that purpose.

Full list: Limitations.

Privacy

The application runs locally, bound to 127.0.0.1, and cannot be reached from your network or the internet. There are no accounts, analytics or tracking. The only outbound request is optional: if you enable update checks, the app asks api.github.com once a week for the latest version number, and nothing else is sent. Update checks are off until you opt in, and the app never downloads or runs code on its own.

See PRIVACY.md and SECURITY.md.

Source code

The source code will be published once the underlying work has been written up. Until then, releases are distributed as binaries, and the SHA-256 fingerprints and requirements-lock.txt shipped with each release let you verify exactly what you received. If you need the source sooner, for a review, an audit or an institutional requirement, please open an issue and ask.

Licence

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 (footer, or the Case menu).

Citation

Anand, M. (2026). Dynamic Column Breakthrough Simulator (version 2026.09v4) [computer software]. https://github.com/Mk-learning-python07/dynamic-column-breakthrough

Please also cite the sources underlying the preset and theory your results depend on, listed under References.


Developed by Muthukrishnan Anand, with the assistance of Claude (Anthropic). Bug reports and questions are welcome: open an issue.

About

Two-component non-isothermal adsorption breakthrough simulator. Runs locally, no account, no telemetry.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors