MaximaLabs
All examples
Simulation gallery

Pressure Swing Adsorption — H2 purification

PSAPressure swing adsorptionHydrogen purificationCyclic processAdsorption
See it live
Open this exact flowsheet in the workspace, already solved — tweak a spec and re-run.
Launch interactive model

A 5 bar shift-gas feed (H2/CO2, the dominant impurity leaving a steam-methane-reforming shift reactor) is purified across a real cyclic 2-bed PSA unit: while one bed adsorbs CO2 at high pressure (delivering H2-rich product), the other regenerates at low pressure, swept countercurrently by a slipstream of that product to desorb CO2 out the feed end as tail gas — the genuine Skarstrom-cycle mechanism, not a fixed-recovery shortcut. The solver runs the real cyclic transient (tanks-in-series bed discretization + linear-driving-force adsorption kinetics toward the same competitive-Langmuir isotherm unitops/adsorption.py uses) to a periodic steady state. Honesty notes: (1) this is a bounded 2-bed, 2-step v1 — a real industrial H2-PSA train uses 4+ beds and separate depressurization/purge/repressurization steps (interbed pressure equalization in particular recovers a lot of the efficiency this v1 doesn't capture); (2) the CO2 Langmuir isotherm is screening-order (a defensible physical magnitude for CO2 on activated carbon/zeolite near ambient T), not fitted to one cited adsorbent's published isotherm; (3) other real shift-gas impurities (CH4, CO, N2) aren't modeled, only the dominant CO2 — see flowsim/dynamics/psa.py's module docstring for the complete scope.

The flowsheet

The solved topology — every unit op's real duty, conversion, or split, read straight off a genuine converged solve.

FEED
PSA
Product
TAIL GAS

The stream table

Every stream's flow, temperature, pressure, and composition — real converged numbers, not placeholders.

See it live
Open this exact flowsheet in the workspace, already solved — tweak a spec and re-run.
Launch interactive model

Stop fighting legacy software. Build your first flowsheet in 60 seconds.