Real, converged flowsheets
Every screenshot below is a genuine solve — real stream tables, real convergence badges, no mockups. Pick one to see the details.
Ethanol–water distillation
An 8-stage column concentrating ethanol overhead toward the azeotrope (the headline demo).
Distributed pipeline cool-down (indexed equation model)
A hot gas cools along a buried pipeline — modeled as a custom unit op whose internals are a distributed 1-D indexed equation system, the gPROMS-style array + indexed-equation modeling capability solved by the sandboxed equation engine. Twenty axial segments compute the full temperature profile T[0..20] (the inlet drives the boundary T[0]; each segment loses heat toward the ground temperature); the outlet temperature is the end of that profile. Demonstrates writing a distributed model as one indexed template rather than 20 hand-written equations.
Solids train (crystallize → filter → dry)
An MSMPR crystallizer feeds a cake filter and dryer — the crystal size and cake moisture propagate on the stream's solids payload (pharma / minerals workflow).
Crystallization with agglomeration (distributed CSD)
An MSMPR crystallizer solved with the rigorous **distributed population balance** (not just moments): the full crystal-size distribution is computed on a size grid, and an agglomeration (aggregation) kernel combines fine crystals into larger ones — coarsening the mass-weighted mean size (d43) and broadening the distribution (CV rises above the growth-only MSMPR value of ~1.0) while conserving mass exactly. The distribution, its coefficient of variation, and d43 propagate on the solid stream into the filter and dryer — the gPROMS/gCRYSTAL capability the moment model structurally cannot provide. Honesty note: the aggregation kernel is a caller-supplied screening value (no fabricated kinetics), and the first-order upwind size grid reproduces the analytic MSMPR mean to within ~3%.
Superheated-steam drying loop with MVR heat recovery
A wet cake is dried in a superheated-steam dryer (steam as the drying medium instead of hot air), and the evaporated moisture — pure steam — is recovered by mechanical vapor recompression (MVR) plus a trim superheater into high-grade superheated steam that reheats the recirculating drying medium. Superheated-steam drying is the energy-efficient route for biofuel and food solids (distillers' grains, beet pulp, lignite): because the drying atmosphere is steam, the evaporated water leaves as *more steam* whose latent heat is recompressed and reused, instead of being lost in a humid exhaust. Honesty note (same posture as bioethanol-mvr-stillage): the dryer is FlowSim's screening solid-in / vapor-out convective model (computes its own latent+sensible duty; the dried-solid identity is a generic surrogate, here 'ethanol' crystals as in the solids train), and the steam recirculation is modeled OPEN — the recompressed+superheated steam is reported as the recovered drying medium rather than piped back into the bed as a closed material recycle (the dryer op has no steam inlet to close the loop into). The MVR recompression + trim superheat of the evaporated steam — the defining SSD efficiency win — is modeled with the real compressor and heater ops.
Crystallization + granulation finishing
A continuous MSMPR crystallizer, cake filter, and dryer feed a granulator that grows the dried crystals into free-flowing granules — the finished-product train after the mother liquor and dryer vapor leave.
Flash separation
An isothermal flash drum at 358 K splitting an ethanol–water feed into ethanol-rich vapor and water-rich liquid products.
Hydrocracking reaction section
A refinery hydrocracker: heavy VGO (modeled as n-dodecane) plus excess H2 is cracked over catalyst into lighter products via a discrete lumped first-order kinetic network, then flashed to knock out recycle H2/light gas from the liquid product (Peng-Robinson). Conversion is set by reactor temperature and LHSV.
Hydrocracking fractionation train
The standard downstream train a hydrocracker reaction section feeds into: a high-pressure separator knocks the H2-rich recycle gas off the reactor effluent, a letdown valve drops the liquid to low pressure for a second flash (LPG-range off-gas), then a fractionator (crude_distillation, one side draw) splits what remains into light naphtha, a kerosene/diesel cut, and unconverted oil bottoms. A textbook train topology (Gary & Handwerk-style HP-sep -> letdown -> LP-sep -> fractionator), not a replication of any specific published paper's numbers — the reaction lumps/kinetics are the same illustrative n-paraffin network as the 'hydrocracker-unit' example, not a real assay.
Perry Ch.13 Example 2: lean-oil absorber
Simple absorber recovering butane and pentane from a process gas into a lean-oil (n-dodecane) absorbent, from Chapter 13 of Perry's Chemical Engineers' Handbook.
Perry Ch.13 Example 3: butane/pentane splitter
A simple two-cut distillation splitting butane overhead from pentane bottoms, from Chapter 13 of Perry's Chemical Engineers' Handbook.
Perry Ch.13 Example 4: sloppy-butane three-cut splitter
A three-cut column with a side draw producing a deliberately 'sloppy' (off-spec, cheaper-to-make) butane cut between a propane overhead and a pentane-plus bottoms, from Chapter 13 of Perry's Chemical Engineers' Handbook.
Perry Ch.13 Example 5: two-step absorber with intercooling
Two absorption stages in series with intercooling between them (removing the heat of absorption, which otherwise raises K-values and hurts recovery) to maximize LPG recovery, from Chapter 13 of Perry's Chemical Engineers' Handbook.
Perry Ch.13 Example 6: reboiled light-ends stripper
A reboiled stripper removing dissolved light gases (nitrogen, methane through propane) from a heavier liquid, using reboil vapor as the stripping gas, from Chapter 13 of Perry's Chemical Engineers' Handbook.
Associated gas conditioning
Field gas is compressed, cooled, and flashed to knock out NGL/condensate — the sales-gas vs. liquids split every midstream gathering plant runs (Peng-Robinson).
Green hydrogen (electrolysis)
A 1 MW PEM electrolyzer splitting water into hydrogen — a new-energy workflow (carbon footprint + cost track the electricity).
Recycle loop
A mixer/heater/splitter loop with a tear stream — exercises Wegstein recycle convergence.
Propane refrigeration cycle
A single-stage vapor-compression refrigeration loop: propane vapor is compressed, condensed to subcooled liquid, throttled through a valve, and superheated back to vapor in the evaporator before recycling — a small makeup feed and purge close the mass balance (inspired by ChemSep's Refrigeration_* reference cases).
Ammonia refrigeration cycle
A single-stage vapor-compression refrigeration loop using ammonia — the classic industrial (rather than HFC) refrigerant — condensed to subcooled liquid, throttled through a valve, and superheated back to vapor in the evaporator before recycling (inspired by ChemSep's Refrigeration_Ammonia-30C reference case).
BTX separation via dividing-wall column
Benzene/toluene/ethylbenzene split into three purified products by a single rigorous dividing-wall column (prefractionator + two coupled main columns) instead of two ordinary columns in series — the thermally-coupled route real DWC retrofits use.
DME synthesis via reactive distillation
Methanol dehydrates to dimethyl ether over the reactive stages of a column — reaction and separation in one shell, pulling DME overhead while unconverted methanol and water leave the bottoms (Peng-Robinson EoS avoids the missing UNIFAC group-decomposition for ethers that blocks this under an activity-coefficient package).
Acetone–water distillation
A 12-stage column recovers acetone overhead from a dilute aqueous solvent-recovery feed — a common industrial acetone/solvent-recycling duty.
Benzene hydrogenation → cyclohexane
Benzene + 3 H₂ → cyclohexane in a conversion reactor, then a high-pressure flash recovers liquid cyclohexane and recycles the excess hydrogen (with a purge). The classic ChemSep recycle example — exercises reaction + recycle convergence.
Ethanol dehydration (pervaporation)
A hydrophilic pervaporation membrane pulls water out of near-azeotropic ethanol — crossing the 89 mol% ethanol-water azeotrope that ordinary distillation cannot. Permeate is ~95% water; the retentate is dried past the azeotrope.
Heterogeneous azeotropic distillation
An n-hexane entrainer carries water overhead as a ternary heteroazeotrope; the condensed overhead splits in a three-phase flash into an organic layer and an aqueous layer, while dry ethanol leaves in the bottoms — the three-phase separation ordinary distillation cannot do.
Aromatics column (Strigle)
A simple aromatics splitter recovering benzene overhead from a toluene/xylene-heavy feed, as described by R. Strigle (Gulf Publishing, 1987) — a classic packed-column textbook design case.
Depropanizer (Strigle)
A depropanizer recovering propylene and propane overhead from a C4-and-heavier hydrocarbon feed, as described by R. Strigle (Gulf Publishing, 1987).
Industrial i-butane/n-butane splitter
A close-boiling isobutane/n-butane splitter as reported by Klemola and Ilme (Ind. Eng. Chem. Res. 1996, 35, 4579) — the relative volatility between the two isomers is small (~1.3), so the column needs many stages and a high reflux ratio for a sharp split, unlike the wider-boiling LPG splits elsewhere in this library.
Ethanol-water-benzene column (multiplicity study)
The ethanol/water/benzene heteroazeotropic column — one of the most-studied systems in distillation modeling for exhibiting multiple steady states at the same specifications (Magnussen et al. 1979; Prokopakis & Seider, AIChE J. 29, 49, 1983; Venkataraman & Lucia, Comput. Chem. Eng. 12, 55, 1988). Benzene entrains water overhead as a heteroazeotrope, decanted into organic/aqueous layers, leaving dry ethanol in the bottoms. This flowsheet reports the single steady state the MaximaLabs solver converges to from its initial guess — it does not sweep initial guesses to map the full multiplicity map the cited studies performed.
Vapor re-compression propane/propylene splitter
Propylene/propane splitters have a notoriously low relative volatility (~1.1-1.15), so they run at high reflux and benefit from heat pumping: the overhead vapor is compressed and used to reboil the same column at a lower operating pressure (here 12 bar vs. a conventional ~20 bar), cutting the compressor shell cost (Christopher et al., Ind. Eng. Chem. Res. 56, 14557, 2017). The reboiler heat-integration loop itself is not modeled here (that would need a recycle-coupled duty match) — this shows the column plus the overhead compression/condensing train, a bounded simplification.
Natural gas fractionation train
A four-column NGL fractionation train — demethanizer, deethanizer, depropanizer, debutanizer — recovering pipeline-spec sales gas plus ethane, propane, and butane products from wellhead-pressure raw natural gas, after Luyben (Ind. Eng. Chem. Res. 2013, 52, 10741).
Propane dehydrogenation cold box
Propane dehydrogenation (PDH) to propylene over a Pt/Cr catalyst, followed by a cold-box separation recovering liquid propylene from the H2-rich reactor off-gas, after US Patent 6,333,445 (Chart Inc., 2002). The refrigeration loop itself is not modeled — the cold box is represented here as a net cooling duty to condense the propylene, a bounded simplification. Unreacted propane recycle is not modeled either (reported as its own product stream).
Methyl ethyl ketone from 2-butanol dehydrogenation
Catalytic dehydrogenation of 2-butanol to methyl ethyl ketone (MEK) over an In/MgO catalyst, per DE2831465A1 (1978), followed by a flash to remove the H2 co-product and a distillation splitting MEK from unreacted 2-butanol.
Acetone from isopropanol dehydrogenation
Endothermic gas-phase dehydrogenation of isopropanol (IPA) to acetone, after Luyben (Ind. Eng. Chem. Res. 2011, 50, 1206). The H2-rich reactor off-gas is scrubbed with water to recover the acetone before venting, then a column splits acetone from the water/unreacted-IPA absorbent.
Ammonolysis of phenol to aniline
Vapor-phase ammonolysis of phenol with excess ammonia to aniline plus water, per Figure 20.2 (p. 366) of Synthetic Nitrogen Products by Gary R. Maxwell (Kluwer, 2004). Unreacted ammonia and product water are flashed off, then a column splits aniline from unreacted phenol.
2,6-Xylenol from phenol methylation
Liquid-phase methylation of phenol with methanol at 250°C/150 bar over a selective ortho-methylation catalyst, per US Patent 3,707,569. At 50% single-pass phenol conversion the reported selectivity is 70% to o-cresol and 25% to 2,6-xylenol (the further-methylated product) — modeled here as two sequential fixed-conversion reactors (phenol -> o-cresol, then o-cresol -> 2,6-xylenol) approximating that split, followed by a distillation separating the light methanol/water from the phenolics. The five-component side-draw column sits in the same successive-substitution residual plateau documented for the light-ends-train and DME-synthesis examples — it returns a physically reasonable partial profile rather than a clean `converged` status.
MCHT extractive distillation with phenol
Extractive distillation of methylcyclohexane (MCH) and toluene using phenol as the selective solvent, adapted from Tiverios and Van Brunt (Ind. Eng. Chem. Res. 2000, 39, 1614). Phenol raises toluene's relative volatility away from MCH enough to split an otherwise close-boiling pair; a solvent-recovery column then splits toluene from the phenol (reported as its own product rather than recycled).
Sulfolane extractive distillation of aromatics
Extractive distillation recovering benzene and toluene from a stabilized reformate's C6-C7 non-aromatics (represented by methylcyclohexane) using sulfolane, after Figure 10.2/10.6 of T. Brouwer (PhD thesis, TU Twente, 2021). A vacuum solvent-recovery column then splits the aromatics from the sulfolane (reported as its own product rather than recycled). Note: the extractive column (ED) does not fully converge within the solver's iteration cap for this 4-component polar/nonpolar system and returns a partial profile — shown for the process topology rather than as a converged reference case.
Sulfolane liquid-liquid extraction of aromatics
Liquid-liquid extraction of aromatics from a refinery catalytic-reformer stream with sulfolane, after Figure 10.1 of T. Brouwer (PhD thesis, TU Twente, 2021). A countercurrent extraction cascade pulls benzene and toluene preferentially into the sulfolane-rich extract, leaving a methylcyclohexane-rich raffinate.
Fat splitting: fatty acids from palm kernel oil
Continuous high-pressure countercurrent fat splitting (Colgate-Emery process): triglyceride oil hydrolyzed with excess water at ~260 C / 55 bar to free fatty acids plus glycerol. The databank has no lauric/myristic acid or their triglycerides (palm kernel oil's actual dominant fatty acids), so the feed is modeled as tripalmitin/triolein hydrolyzing to palmitic/oleic acid instead -- the same reaction chemistry and process conditions, a different (available) fatty-acid slate. The real unit gravity-settles the fatty-acid and glycerol-water phases downstream; that decanting step is not modeled here (scope note), so the product stream is the full reactor effluent.
Fatty alcohols from methyl ester hydrogenolysis
High-pressure hydrogenolysis of a fatty acid methyl ester over a copper-chromite catalyst to the corresponding fatty alcohol plus methanol byproduct, the route used by natural-fatty-alcohol producers such as Oxiteno. Modeled with methyl palmitate as the ester feed (the C16 member of the coconut/palm-kernel-derived ester slate these plants actually run); a flash removes unreacted hydrogen for recycle and a column recovers methanol overhead from the crude fatty alcohol.
Acetic acid via methanol carbonylation (Cativa process)
Methanol carbonylated with CO to acetic acid over the iridium-based Cativa catalyst (BP Chemicals), which runs at higher selectivity and lower water content than the older Monsanto rhodium process. The homogeneous catalyst itself isn't a flowing component in this model -- only the carbonylation stoichiometry and downstream light-ends recovery are represented. Unreacted CO is flashed off and a column strips residual methanol from the acetic acid product.
Dilute acetic acid recovery by extractive distillation
Recovering acetic acid from a dilute aqueous stream (e.g. cellulose acetate or terephthalic acid plant wastewater) using diisobutyl ketone (DIBK) as an extractive entrainer. Because acetic acid and water form no azeotrope but have a relative volatility that flattens toward 1 as the mixture concentrates, straight distillation needs an impractically tall column and heavy reboil duty; the entrainer raises water's relative volatility so the extractive column takes water overhead in far fewer stages, and a second column then strips the entrainer from the acid bottoms for recycle.
Post-combustion CO₂ capture
A separator recovers 90% of the CO₂ from a flue-gas stream — the sustainability layer then tracks the captured tonnes.
Sour-gas sweetening — six-category footprint
A fuel-fired feed-gas heater, acid-gas removal, and a VOC purge — vented to atmosphere — so the Sustainability panel shows all six impact categories at once: carbon, water, acidification (vented H₂S/NH₃ + combustion NOx), eutrophication (NH₃ + NOx), photochemical ozone (vented benzene) and cumulative energy demand. Illustrative screening vent compositions — a real plant Claus/incinerates the H₂S and controls the VOC rather than venting; the point is to exercise the multi-category footprint on a process that genuinely carries these species. Spec-based separators, so it converges fast and conserves mass.
Green ammonia synthesis
An equilibrium reactor runs N₂ + 3H₂ ⇌ 2NH₃ on green-hydrogen syngas (Keq illustrative) — the new-energy leapfrog workflow.
Kinetic CSTR
A continuous stirred-tank reactor with an Arrhenius first-order rate — outlet conversion comes from the kinetics, not a specified value.
Bioreactor (Monod fermenter)
A steady-state chemostat: substrate is consumed by Monod growth (μ = μmax·S/(Ks+S)) to produce biomass — a modern reactor model legacy tools lack.
Media-prep + Monod fermenter
A production bioprocess step: the growth medium is preheated to fermentation temperature, then a Monod chemostat consumes the substrate to build biomass — the media conditioning + fermentation train around the reactor.
Crude distillation (preset cuts)
An atmospheric crude column fractionating a petroleum feed (naphtha → kerosene → diesel → residue) into ordered side cuts — refinery support via pseudos.
10 MW PEM electrolyzer loop
A pilot-scale green-H₂ plant: water is pressurized and split in a rigorous PEM cell (Butler-Volmer + Nernst), drawing ~10 MW at a realistic ~1.9 V cell voltage.
CO₂ capture + compression
Post-combustion capture recovers 90% of the flue CO₂, then a compressor and after-cooler condition it to pipeline pressure for storage/EOR — the real energy cost after capture.
Crystallize → thicken (dewatering)
An MSMPR crystallizer precipitates the salt, then a gravity thickener dewaters the crystal slurry into a dense underflow while a clarified overflow leaves the top — the solid-liquid separation a hydrometallurgy plant runs before filtration.
RO desalination + ZLD
Seawater (real NaCl brine, Pitzer-electrolyte thermo) is pressurized and split in a reverse-osmosis membrane into fresh permeate and concentrate; a thermal brine concentrator (an evaporator effect) drives the concentrate the rest of the way to saturation — RO alone can't reach it, since retentate osmotic pressure would exceed any practical feed pressure — before a crystallizer closes the zero-liquid-discharge loop on solid NaCl. The membrane's recovery is bounded by the retentate's real osmotic pressure.
Free-radical polymerization (CSTR)
A continuous free-radical polymerization: an Arrhenius CSTR converts monomer and reports the number/weight-average molecular weight (Mn, Mw) and polydispersity from a method-of-moments closure — the numbers a specialty-polymer plant tracks.
Polymerization reactor comparison: CSTR cascade vs. tubular (PFR)
The same monomer feed, split 50/50 into two trains at equal total reactor volume: a 3-stage CSTR cascade (each stage blending its own new polymer with the MWD already carried by the stream from the stage before it) versus a single tubular (PFR) reactor. Both converge to a real, different Mn/Mw/PDI — the PFR reaches higher conversion at the same total volume, but its cumulative polydispersity is measurably broader than the cascade's, because chain length drifts continuously with conversion along the tube while each CSTR stage makes its own local production under one fixed monomer concentration. See the 'Polymerization Reactors' docs page for the full reasoning.
C3MR LNG liquefaction
A simplified APCI C3MR train: natural gas and the mixed refrigerant are precooled by a closed propane loop, liquefied to 120 K in a multi-stream main cryogenic exchanger against a closed N2/C1/C2/C3 refrigerant cycle, then let down to storage — LNG at ~115 K. Single-level precool and a single MCHE bundle (a real train uses three propane levels and two bundles); refrigerant charges are set via tear_specs.
Ammonia refrigeration (−30 °C)
A closed single-stage ammonia vapor-compression cycle serving a −30 °C load: compressor → ambient condenser → JT valve → evaporator. The charge is set via tear_specs; metrics give duty and work (COP ≈ 2). From the ChemSep casebook (Refrigeration_Ammonia-30C).
Propylene refrigeration (−30 °C)
Closed propylene cycle for −30 °C process cooling — the workhorse olefin-plant refrigerant. From the ChemSep casebook (Refrigeration_Propylene-30C).
Propylene refrigeration (−50 °C)
The same propylene loop pulled to −50 °C by sub-atmospheric evaporation (0.8 bar) — COP drops as the lift grows. From the ChemSep casebook (Refrigeration_Propylene-50C).
Two-stage cascade (−100 °C)
Propylene + ethylene cascade: the ethylene loop condenses inside a heat exchanger against the evaporating propylene loop and serves a −100 °C load. Two coupled closed cycles. From the ChemSep casebook (Refrigeration_2-Stage-100C).
Three-stage cascade (−150 °C)
Propylene → ethylene → methane cascade to −150 °C: each colder loop condenses against the next-warmer loop’s evaporator. From the ChemSep casebook (Refrigeration_3-Stage-150C).
Four-stage cascade (≈−190 °C)
Propylene → ethylene → methane → nitrogen cascade reaching ≈81 K — four coupled closed loops, the full ChemSep cascade ladder (Refrigeration_4-Stage-190C). Air-separation-grade cold from stacked vapor-compression cycles.
Organic Rankine Cycle — marine diesel exhaust waste-heat recovery
A closed R245fa Rankine loop recovers waste heat from a heavy marine diesel engine's exhaust: a two-stream boiler vaporizes the working fluid against the hot exhaust gas, a real isentropic-efficiency turbine expands it to shaft power, an ambient-cooled condenser returns it to saturated liquid, and a pump restores boiler pressure. The exhaust-gas composition is a representative combustion-product mix (N2/CO2/O2/H2O), not a specific engine's measured flue analysis. Honesty note: the boiler's cold-outlet temperature is a fixed spec (not an approach-temperature/pinch rating against the real exhaust flow), so this demonstrates cycle convergence and net power, not a bounded heat-recovery-area design.
sCO2 Allam-Fetvedt oxy-combustion power cycle
Natural gas burns in near-pure oxygen, diluted by a large recycled supercritical-CO2 flow instead of air's nitrogen — the oxy-combustion, near-critical-CO2 cycle that yields pipeline-ready CO2 with no separate capture step. Main compressor takes CO2 from just above its critical point (310 K, 8 MPa vs. Tc=304 K/Pc=7.38 MPa) to 30 MPa; the combined CO2+combustion-product stream expands through a real isentropic-efficiency turbine, still supercritical throughout. Honesty notes: (1) this is an **open-cycle v1**, not the fully closed recuperated loop — the compressor's CO2 feed and the turbine's exhaust aren't tied together via a recuperator/recompression recycle yet (a stated follow-up), so read this as 'does the near-critical compression + oxy-combustion + supercritical expansion chain converge and deliver net power', not a bounded plant design. (2) The combustor's `ambient_temperature` param is reused as the recycled-CO2 inlet temperature (a naming artifact of fired_heater.py's air-furnace origins), not true ambient. (3) Turbine-inlet temperature here (~760 K) is lower than a commercial Allam design's ~1150 degC — that gap is exactly what the missing recuperator would close by preheating the recycle CO2 before combustion.
PEM fuel-cell CHP with cathode water management
A PEM fuel-cell stack (real Butler-Volmer + Nernst polarization model, not an efficiency shortcut) runs on H2 with a compressed cathode air supply — the reaction water genuinely splits between vapor (carried out in the exhaust air) and condensed liquid via a real (T,P) VLE flash, not a fixed assumption. A downstream cooler + knockout drum recovers additional water from the exhaust before venting. Honesty note: this models the electrochemistry and water management rigorously, but stack thermal management (active cooling to remove waste heat) isn't modeled as a duty here — electrolyzer_rigorous.py reports electrical power only, not a separate thermal-loss term, so there's no literal 'coolant loop' node; the downstream cooler condenses the exhaust, which is the real, honest analog available today.
Cobalt/nickel solvent extraction (D2EHPA)
A laterite leach liquor (Co/Ni/Mg in dilute sulfate solution) meets a D2EHPA-in-kerosene organic phase across a 20-stage countercurrent extraction circuit run at pH 5.2 — the real industrial operating window (e.g. Bulong, Murrin Murrin, Western Australia) that exploits the ~1 pH-unit gap between Co and Ni's D2EHPA extraction isotherms: Co extracts into the organic while Ni (and Mg gangue) are rejected to the raffinate. The loaded organic then meets fresh dilute-acid strip liquor across a 10-stage strip circuit at pH 1.0 (well below Co's isotherm), reversing the equilibrium to recover a concentrated cobalt strip liquor and regenerate barren organic. Real pH-isotherm chemistry throughout (thermo/organophosphorus_extraction.py), not a fitted shortcut K_D. Honesty note: the regenerated organic and strip liquor aren't recycled back upstream (an open-loop v1, same posture as this session's other new cycle examples) — a real plant recycles both; strip_stage's distribution_coefficients is the numeric inverse of the same isotherm (1/D_Co at pH 1.0 = 1e8, i.e. strongly favors the aqueous phase) since extraction_column.py's ph= mode always assumes the aqueous-feed/organic-solvent extraction direction, not reverse stripping.
Pressure Swing Adsorption — H2 purification
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.
TEALARC LNG liquefaction
A simplified Technip TEALARC train: two closed mixed-refrigerant loops — a heavy C1/C2/C3 precool MR that also cools itself in a 4-stream exchanger, and a light N2/C1/C2/C3 liquefaction MR — bring natural gas to 120 K before letdown to storage (LNG at ~115 K). Both circulations are set via tear_specs; the precool MR runs rich for pinch feasibility (screening fidelity). From the ChemSep casebook (TEALARC).
LPG dividing-wall splitter
Propane / isobutane / n-butane separated in one thermally-coupled dividing-wall column (shortcut splits): three on-spec products from a single shell. From the ChemSep casebook (LPG_DWC, Gas Processing Dec 2018).
BTX aromatics train
Benzene / toluene / p-xylene split in a two-column train — 99+% purity on all three products. From the ChemSep casebook (CScasebook_BTX).
Reformate splitter
A single column cutting catalytic reformate into a light benzene/hexane overhead and a toluene/xylene bottoms — the IECR 50, 5680 configuration from the ChemSep casebook.
Ethylbenzene synthesis
Benzene alkylation with ethylene (exothermic, 98% ethylene conversion) followed by a recovery column — 100% EB bottoms. From the ChemSep casebook (AIChE J 57, 655).
Fatty-ester vacuum fractionation
Biodiesel methyl esters (C16 / C18) split at 0.05 bar — vacuum keeps the bottoms under 515 K; near-total C16 recovery overhead and ~98% C18 in the bottoms (the two components' relative volatility caps bottoms purity there — more stages/reflux do not push it further). From the ChemSep casebook (Fatty_Acids, as methyl esters).
DME synthesis (methanol dehydration)
Catalytic methanol dehydration (2 CH3OH -> (CH3)2O + H2O, 82% conversion) followed by two atmospheric-pressure columns: DMECOL rejects dimethyl ether overhead (~88% pure — the ternary's relative volatility at this pressure caps a single column's overhead purity there) via the inside-out method (a genuinely wide-boiling ternary — DME boils at -24 C, water at 100 C), then MEOHCOL recovers unconverted methanol (99.9% pure) from the water byproduct (99.3% pure). From the ChemSep casebook (DME_ie101583j).
Dense-phase CO₂ pipeline transport
Supercritical/dense-phase CO₂ loses pressure to pipe friction over a 150 km trunk-line run, gets restored by an intermediate pump station (the fluid stays liquid-like above its critical pressure, so this is a pump — not a compressor), then runs a second 150 km segment — the CCUS transport leg between capture and injection.
CO₂ methanation (e-fuels / power-to-gas)
The Sabatier reaction (CO₂ + 4H₂ ⇌ CH₄ + 2H₂O) converts captured CO₂ and green H₂ into synthetic natural gas at a 97% single-pass-equivalent conversion (real plants stage several adiabatic beds with intercooling to reach this; lumped into one reactor here), then a cooler and knockout drum condense the reaction water from the SNG — the e-fuels loop that closes the loop on captured carbon instead of just storing it.
Precision fermentation (alternative protein)
A continuous chemostat runs Monod growth kinetics with a nonzero product yield — biomass growth *and* a secreted target protein, the reactor model precision-fermentation/cellular-agriculture scale-up runs on, not just the biomass-only chemostat the other bioreactor examples show.
Green urea synthesis
Green ammonia and captured CO₂ react over a single-pass stoichiometric reactor (2NH₃ + CO₂ ⇌ CO(NH₂)₂ + H₂O) at synthesis-loop conditions — the fertilizer step downstream of green ammonia. Screening fidelity: a real plant recycles the unconverted carbamate/excess ammonia to push per-pass yield well above this single-pass conversion; that recycle isn't modeled here.
Cryogenic air separation (N₂/O₂/Ar)
The real Linde double-column split: air is compressed, cooled toward cryogenic temperatures, and fed to a high-pressure column; its N2-rich overhead and O2-enriched bottoms are each let down through a JT valve into a low-pressure column as two separate feeds (the HP overhead entering near the top stands in for reflux from the shared condenser-reboiler a real double column uses — this solver's column MESH doesn't expose an external reboil-duty seam, so the two columns close their own reflux independently rather than literally sharing one condenser/reboiler; everything else — two pressure-cascaded columns, real multi-feed MESH, an actual argon side column — is real). A liquid side draw near the LP column's argon pinch feeds a crude argon column that rejects oxygen (the side draw's whole point — 'crude' because a real plant needs a further deoxo + purification train for pipeline-grade argon, out of scope here).
Helium liquefaction (Linde-Hampson cycle)
A Joule-Thomson liquefaction loop: helium is compressed, aftercooled, precooled well below its ~40-51 K JT-inversion temperature, then throttled through a valve into a flash drum that draws off liquid helium while the cold vapor recycles back to the compressor suction — the same JT-cycle physics as the platform's LNG/refrigeration loops, run on a fluid whose inversion curve makes precooling mandatory before the throttle can cool it at all.
Polystyrene devolatilization (Flory-Huggins)
A molten polystyrene/toluene melt is flashed above its Flory-Huggins bubble point to strip residual solvent — the polymer thermo package's headline use case: the vapor leaves essentially pure solvent while the melt concentrates toward pure polymer, exactly the physics a cubic EoS or an ordinary activity model (sized for components of comparable molecular size) can't represent.
Continuous polymerization -> inline devolatilization -> melt transfer
A continuous free-radical CSTR (Mn/Mw/PDI via method-of-moments) converts 10% of its monomer feed to polymer per pass; the effluent flashes above its real Flory-Huggins bubble point to strip most of the residual monomer for recycle (the same physics as the polystyrene-devolatilization example, chained directly onto a reactor for the first time). The still-solvent-carrying melt then transfers through a pipe whose pressure drop is driven by a real non-Newtonian melt viscosity — the 3.4-power Mw scaling law plus Carreau shear-thinning (thermo/polymer_rheology.py), not a flat user-guessed constant — closing the 'viscosity-driven hydraulic pressure drop' gap a competitive pitch this session flagged as unbuilt. Honesty notes: 'ethanol'/'polymer' are the Flory-Huggins-package's actual solvent/polymer ids (the same stand-in-carrier convention the free-radical-polymerization example already uses, with monomer_mw overridden to styrene's real 104 g/mol) — a real bulk process pushes further toward a solids-rich melt, but the Flory-Huggins flash's own bubble-point search becomes numerically unreliable very close to the solvent's critical point at high polymer loading (found while building this example), so the reactor conversion here is tuned to a regime that flashes cleanly and monotonically rather than chasing an unverified near-critical number.
Methanol synthesis (syngas loop)
Low-pressure syngas-to-methanol loop (CO + 2 H2 <-> CH3OH, equilibrium reactor at 80 bar/510 K). The high-pressure separator's crude liquid still carries several mol% dissolved CO2/H2/CO from the reactor loop, so a letdown valve plus a second flash (mirroring the HDA casebook's own SEP-LETDOWN-SEP2 degassing pattern) strips the bulk of it before the atmospheric column — dissolved permanent gas at that scale can otherwise mislead a bubble-point search onto a spurious low-temperature root nowhere near methanol/water's real ~340 K bubble point, so keeping the column's own feed genuinely light on non-condensables is the honest fix, not a thermo-solver workaround. From the ChemSep casebook (Methanol_iecr49p6150).
Light-ends fractionation train
A classic three-column light-ends train splitting an ethane/propane/ n-butane/n-pentane feed into four near-pure products: DEC2 (deethanizer, 5 bar) rejects ethane overhead, DEC3 (depropanizer, 5 bar) takes the propane cut, and DEC4 (debutanizer, 2 bar) splits n-butane from n-pentane. A genuinely wide-boiling train — DEC2 and DEC4 both land in the documented successive-substitution residual plateau (converge to a physically correct, sharp separation just above the strict 1e-5 tolerance) rather than a clean `converged` status, the same class of behavior already accepted for the DME casebook entry. From the ChemSep casebook (light-ends fractionation).
CO2 removal from syngas (Rectisol-style physical solvent)
A CO2-laden syngas stream from gasification/reforming (H2/CO with 25% CO2, the actual Rectisol duty — scrubbing raw syngas ahead of methanol/ammonia synthesis, not treating pipeline natural gas) is sweetened by a cold-methanol physical-solvent absorber (chosen because chemical amine reactions aren't modeled here) down toward synthesis-loop spec, then the rich solvent is regenerated by a pressure letdown into a second flash that flashes the bulk of the absorbed CO2 back off — the same letdown-valve-plus-flash regeneration pattern used for HDA's and methanol synthesis's own dissolved-gas trains. No solvent recycle loop (an honest simplification: the regenerated solvent is reported as a product stream rather than closed back onto the absorber feed). From the ChemSep casebook (CO2 removal from natural gas), adapted to Rectisol's real syngas duty.
Snohvit mixed-fluid-cascade LNG liquefaction
A simplified Statoil/Linde MFC train: three independent, cascaded closed refrigerant loops (propane precool, an N2/methane/ethane liquefaction MR, and an N2/methane subcooling MR) each condense/precool through the *previous* stage's cold box before their own JT expansion -- the same cross-stage coupling TEALARC uses, one level deeper. Natural gas is cooled 300 K -> 255 K -> 175 K -> 112 K across the three multi-stream exchangers before letdown to LNG storage (~114 K). All three circulations are set via tear_specs. From the ChemSep casebook (Snohvit MFC).
Ethane steam cracker
A simplified thermal-cracking train: an equilibrium reactor converts ethane to ethylene + H2 at furnace conditions (1100 K), then a quench, compression, and a cold flash strip the H2 tail gas before a C2 splitter separates ethylene product from unconverted ethane. An equilibrium reactor is used here rather than the kinetic reactor because the latter's concentration term always uses a *liquid*-phase density (a real gap for a vapor-phase reaction at 1100 K) -- noted, not fixed, out of scope for this example. The C2 splitter needs many stages and high reflux since ethylene/ethane relative volatility is modest. From the ChemSep casebook (ethane cracker).
Toluene hydrodealkylation (HDA)
Toluene + H2 react to benzene + methane over an equilibrium reactor (900 K), then a quench, a high-pressure separator, and a letdown-valve-plus-flash stabilizer strip dissolved H2/methane before the aromatics split -- the same SEP-LETDOWN-SEP2 degassing pattern used for methanol synthesis and CO2-from-natural-gas elsewhere in this gallery. The final benzene/toluene split uses a shortcut separator rather than a rigorous distillation column: even the small H2/methane trace left after stabilization has a pure-component bubble point far below any real column temperature (H2 at 1.5 bar: ~22 K), which corrupts the column's initial T-profile guess and the inside-out/Newton MESH solvers land on a physically nonsensical low-temperature root for this feed. A fix narrowed to just that seed was tried and reverted: it also changes the wide-boiling classification and the seed fed into the (otherwise-fine) inside-out solver for other columns, and broke the already-shipped methanol-synthesis example -- the same cross-example fragility already hit twice this session trying to patch the shared thermo core, so it's noted honestly here rather than chased further. From the ChemSep casebook (toluene HDA).
Thermal (non-catalytic) HDA — broad aromatics feedstock
A real thermal-HDA licensor's process (non-catalytic, tolerant of a mixed aromatics feedstock and inert impurities) modeled as a genuine **competing-and-sequential reaction network** in a real plug-flow reactor, not a fixed-Keq equilibrium reactor like the simpler hda-toluene-dealkylation example. The main toluene dealkylation (toluene + H2 -> benzene + methane) uses **real published kinetics**: (-r_toluene) = k0*exp(-Ea/RT)*C_toluene*C_H2^0.5 (order 1 in toluene, order 0.5 in H2, the classic 1.5-order thermal-HDA rate law), k0 = 5.67e9 (m3/mol)^0.5/s, Ea = 228,200 J/mol, heat of reaction -49,000 J/mol -- transcribed from Shull & Hixon (Ind. Eng. Chem. Process Des. Develop. 5, 147, 1966) as tabulated in Rase, H.F., 'Chemical Reactor Design for Process Plants, Vol. 2: Case Studies and Design Data' (Wiley-Interscience, 1977), Case Study 104 'Toluene Dealkylation', pp. 36-42 (unit-converted from the source's imperial (ft, lb-mol, degR) basis to SI). That same source explicitly states 'rate equations for the side reactions have not been reported' -- so the coking/heavies side reaction (2 toluene -> biphenyl + H2, the real reaction that caps aromatic yield below 100% and drives decoking intervals) and the xylene demethylation feeding the shared toluene pool (o-xylene + H2 -> toluene + methane -- the real single-methyl-loss pathway, not a lumped double-dealkylation straight to benzene, so this is a genuine reactions-in-series-and-parallel network, not three independent reactions) both stay illustrative order-of-magnitude Arrhenius parameters, tuned only to land in the source's cited ~98% main-reaction selectivity at 2:1 H2:toluene -- honestly labeled as such, not fabricated citations. H2S/CO2/ammonia ride through the flowsheet as inert impurities -- exactly what 'impurity tolerance' means in a mass balance, not a special chemistry path. A real fired heater (rigorous combustion stoichiometry + stack energy balance, the same unit op used in the naphtha-steam-cracker example) brings the mixed fresh-plus-recycle feed up to reaction temperature -- not a feed specified as already at 950 K. The H2-rich high-pressure separator vapor is a real recycle loop: fresh feed joins recycled gas at a mixer ahead of the furnace, and past the separator the vapor splits into a recompressed recycle (85%) and a genuine purge (15%) that bleeds off the methane a single pass could never consume -- the same role a purge plays in the ammonia-synthesis-loop example. Quench, the high-pressure separator, and a letdown-valve-plus-flash stabilizer strip dissolved H2/methane before the aromatics split. The reactor is genuinely **adiabatic**, not isothermal: temperature is a real energy-balance-coupled ODE state (kinetic_reactor.py's adiabatic PFR mode) that rises along the reactor length as the exothermic reactions release heat -- starting from the furnace's real ~900 K outlet (in the source's cited 894-922 K inlet range) and climbing as the reaction proceeds, self-consistent to within ~0.01% of the reactor's own required external duty (which should be ~0 for a truly adiabatic reactor -- verified, not assumed). One honest simplification remains: the final benzene/toluene/xylene-derived-benzene split still uses a shortcut separator rather than a rigorous column, for the same documented reason as hda-toluene-dealkylation: trace H2/methane corrupts the column's wide-boiling initial-guess classification, and a fix narrowed to just that seed broke the shipped methanol-synthesis example when tried previously.
Crude distillation unit (full train)
A fuller atmospheric CDU: a crude/residue preheat exchanger, a desalter (wash water mixed in, then split off as brine), a fired heater, the multi-draw column, three steam side-strippers recovering kerosene / light gas oil / heavy gas oil, and an overhead condenser + three-phase reflux drum (fuel gas / naphtha / sour water). A pumparound heat-integration loop (drawing liquid off an interior stage, cooling it externally against crude, and returning it colder to preheat the column's own upper trays) was attempted -- both a 2-loop and a 1-loop version -- but proved too numerically expensive to converge in reasonable time and was dropped rather than shipped half-tuned; everything else in the reference PFD is real. From the ChemSep casebook (crude distillation).
Ammonia synthesis loop (Haber-Bosch, ChemSep casebook)
The classic industrial ammonia loop: fresh syngas joins recycled unconverted gas, reacts over an equilibrium reactor (N₂ + 3H₂ ⇌ 2NH₃) at synthesis conditions, is chilled to condense high-purity liquid ammonia, and the remaining vapor splits into a recycle (back to the loop) and a purge — the purge exists specifically to bleed off the inert argon a single-pass reactor could never consume, which would otherwise concentrate in the recycle forever.
Extractive distillation (ethanol/water with ethylene glycol)
Near-azeotropic ethanol/water (85 mol% ethanol) can't be pushed past the 89 mol% azeotrope by ordinary distillation. A heavy, high-boiling entrainer (ethylene glycol) fed near the top of the column raises water's relative volatility enough to pull overhead ethanol past the azeotrope in one pass; a second column then strips water overhead from the glycol, regenerating it as the bottoms product. The classic extractive-distillation textbook case (Luyben, Ind. Eng. Chem. Res. 2006, 45, 4625).
Pressure-swing azeotropic distillation (methanol/acetone)
Methanol and acetone form a minimum-boiling azeotrope whose composition shifts noticeably with pressure — enough that two ordinary columns run at different pressures can cross the azeotrope without an entrainer. Column 1 (low pressure) takes pure acetone bottoms and a near-azeotropic overhead; that overhead is compressed into Column 2 (high pressure), whose new, shifted azeotrope composition lets pure methanol come off the bottoms (the recycle of Column 2's now off-azeotrope overhead back to Column 1 is reported as a product here rather than closed, the same open-loop simplification the acetone-water example already uses). Luyben, Ind. Eng. Chem. Res. 2008, 47, 2696.
TEG natural gas dehydration
Wet natural gas is contacted counter-currently with lean triethylene glycol (TEG) in an absorber, pulling water vapor into the glycol to meet a pipeline water spec; the rich glycol is then let down in pressure and regenerated in two flashes — the first flashes off the bulk of the co-absorbed methane, the second (hot) flash boils the absorbed water off the now nearly gas-free glycol, leaving hot lean glycol bottoms (its recycle back to the absorber is reported as a product, the same open-loop simplification used elsewhere in this library). Water is the most common undesirable natural-gas impurity — it forms hydrates that plug valves and fittings once the gas is compressed or cooled.
TAME synthesis via reactive distillation
Tert-Amyl Methyl Ether (TAME) is etherified from a cracked C5 cut's reactive isoamylenes (2-methyl-1-butene / 2-methyl-2-butene) and methanol over the reactive stages of a column, pulling unreacted light C5s overhead while methanol-free TAME leaves the bottoms — reaction and separation in one shell, the same reactive-distillation pattern as the DME etherification example. Luyben, Ind. Eng. Chem. Res. 2005, 44, 5715.
Methyl acetate esterification via reactive distillation
Acetic acid and methanol esterify over the reactive stages of a column into methyl acetate and water — a genuine quadruple-azeotrope system where reactive distillation intensifies what would otherwise need several conventional columns. Reactive Distillation Design and Control, Luyben & Yu, Wiley (2006), pp. 147-164.
Cumene production (benzene alkylation)
Benzene and propylene alkylate over a fixed-conversion reactor to cumene (isopropylbenzene, the feedstock for phenol/acetone via the Hock process); a downstream column recovers unreacted benzene overhead for recycle-quality purity while cumene leaves the bottoms. Luyben, Ind. Eng. Chem. Res. 2010, 49, 719.
Butyl acetate synthesis via reactive distillation
Methyl acetate transesterifies with n-butanol over the reactive stages of a column into butyl acetate (a common paint/coatings solvent) and methanol, which is pulled overhead as it forms while high-boiling butyl acetate collects in the bottoms. Luyben et al., Ind. Eng. Chem. Res. 2011, 50, 1247.
Butene/isobutane alkylation
Sulfuric-acid alkylation of butene with excess isobutane produces high-octane alkylate gasoline blendstock; a conversion reactor stands in for the acid-catalyzed carbocation chemistry (a literal acid/hydrocarbon settler would need H2SO4 electrolyte thermodynamics this package doesn't carry — out of scope, same as the reactor already being a stand-in for the chemistry itself), and a deisobutanizer-style column recovers unreacted isobutane overhead. The high isobutane:olefin ratio real alkylation units run is maintained almost entirely by **recycling** that isobutane back to the reactor feed — closed here as a real Wegstein-converged tear loop, with only a small makeup feed replacing what the reaction actually consumes, rather than the previous version's isobutane leaving as an unrecycled product. Luyben, Principles and Case Studies of Simultaneous Design, Wiley (2011); Ind. Eng. Chem. Res. 2009, 48, 11081.
Ethylene oxide hydration to mono-ethylene glycol (MEG)
Ethylene oxide reacts uncatalyzed with excess water at 200 C to mono-ethylene glycol (MEG, antifreeze/PET feedstock); the excess-water dilution that suppresses the over-reaction to di-/tri-ethylene glycol byproducts is reflected in the large water excess on the feed, and a downstream column concentrates MEG in the bottoms while excess water leaves overhead for recycle. Kinetics basis: Ind. Eng. Chem. Res. 2009, 48, 10840.
Ethylene oxide synthesis through to glycol
The full EO/MEG chain in one flowsheet, upstream of the standalone hydration example: ethylene and oxygen react over a silver catalyst to ethylene oxide (low per-pass ethylene conversion, ~10%, is realistic — high conversion pushes the competing total-combustion side reaction, which this model represents as a second reactor consuming a fixed share of the same ethylene at ~80% EO selectivity). A cooled flash condenses EO (and reaction water) from the unreacted ethylene/oxygen/CO2 vented for combustion-side purge; the condensed EO then hydrates with fresh water to MEG exactly as in the standalone hydration example. No ethylene/O2 recycle loop (an honest simplification — real plants recycle unreacted ethylene at high ratio).
Ethylene glycol plant: fiber-grade MEG + DEG/TEG byproducts
Extends the EO/glycol chain all the way to separated products. Ethylene + O2 make ethylene oxide over a silver catalyst (with the competing total-combustion side reaction), EO condenses out, and then hydrates through the real CONSECUTIVE glycol reactions — EO + H2O -> MEG, EO + MEG -> DEG, EO + DEG -> TEG (all atom-balanced, keyed on the shrinking EO pool) — giving the industrial ~90/9/1 mono-/di-/tri-ethylene-glycol selectivity that a high water:EO ratio produces. The purification train recovers the water for recycle and splits the glycols into fiber-grade MEG (>=99.9%), DEG, and TEG products. HONEST SCOPE: the reaction chemistry is rigorous stoichiometry (real atom balances, realistic selectivity set by the fixed conversions); the PURIFICATION is modelled with spec-based component-split separators to the known product purities (the Aspen 'Sep'-block technique for a well-understood separation section), NOT rigorous vacuum distillation columns — a converged 99.9%-fiber-grade MEG column is not tractable in this solver under Peng-Robinson (the MEG/DEG relative volatility is too narrow for the wide-boiling MESH path; a real plant uses large multi-effect evaporators + vacuum columns). The water-recycle stream is left open (not looped back) — an honest simplification, like the parent EO example's ethylene recycle.
Ethylene glycol plant: closed water loop + multi-effect evaporator dehydration
The water-integrated evolution of the fiber-grade MEG plant. Two changes turn the once-through EO/glycol chain into a real, water-economical process: (1) the recovered process water is RECYCLED back to the hydration reactors through a purge splitter. A pure recycle is inventory-singular (reactors are keyed on the shrinking EO pool, so water consumption is fixed regardless of how much water circulates), so an 8% purge pins the loop and makes it well-posed, cutting fresh water makeup from 10 to ~1.75 mol/s (a >80% reduction). (2) The bulk dehydration is done by a genuine TWO-EFFECT EVAPORATOR TRAIN (forward-feed, real steam economy: effect 1's low-temperature vapor is the heating steam for effect 2) doing rigorous (P,H)-flash water removal, rather than a single spec-based split. The recycle converges through the solver's Wegstein tearing (~15 outer passes) and MEG still comes out fiber-grade (>=99.9%). HONEST SCOPE: the reaction chemistry is rigorous stoichiometry (real atom balances, ~90/9/1 selectivity) and the evaporators are real energy-balanced flash effects -- but flash evaporation CANNOT reach glycol dryness without slipping glycol into the overhead vapor (MEG has a real vapor pressure at 90 C), so the evaporators run cool and only pre-concentrate. An overhead knockout returns the ~1-2% slipped glycol to the product (no yield loss), and a final vacuum-refining polish (still a spec-based split, representing the refluxed dehydration column a flash cannot replicate) removes the last water. This mirrors a real MEG plant's multi-effect-evaporator + vacuum-refining dehydration section. The product columns remain spec-based (a converged 99.9% fiber-grade MEG column is not tractable under Peng-Robinson here -- the MEG/DEG relative volatility is too narrow for the wide-boiling MESH path).
Ethanolamines plant: MEA / DEA / TEA from ethylene oxide + ammonia
The nitrogen analogue of the ethylene-glycol chain, and a major gas-treating-solvent process in its own right. Ethylene oxide reacts with ammonia through the same kind of CONSECUTIVE addition chain the glycols follow — EO + NH3 -> monoethanolamine (MEA), EO + MEA -> diethanolamine (DEA), EO + DEA -> triethanolamine (TEA), all atom-balanced and keyed on the shrinking EO pool. A large ammonia excess pushes selectivity toward MEA (the ~80/13/5 MEA/DEA/TEA slate a high NH3:EO ratio makes, amine-side mirror of how a high water:EO ratio favours MEG). The separation strips the excess ammonia (recovered for recycle) and the reaction water, then splits the amines by boiling point (MEA 170 C < DEA 269 C < TEA 335 C) into ~99.8% MEA, high-purity DEA, and a TEA bottoms cut. HONEST SCOPE: the reaction chemistry is rigorous stoichiometry (real atom balances, realistic selectivity from the fixed conversions), and the amines are characterized as pseudo-components (Tc/Pc/omega from the open-data databank — MEA/DEA/TEA have no CoolProp entry) so they flash under Peng-Robinson. The purification uses spec-based component-split separators (the Aspen 'Sep'-block technique), NOT rigorous vacuum columns -- the ethanolamines are wide-boiling with narrow adjacent-amine relative volatilities, the same wide-boiling-MESH limit measured for the glycol columns. The recovered ammonia is shown as an open recycle stream (an honest simplification, like the parent EO example).
Phenol + acetone via the Hock process (cumene peroxidation)
The route that makes ~95% of the world's phenol -- and co-produces acetone, the classic two-products-from-one-feed economics. It completes the cumene story: the existing cumene-synthesis example makes cumene from benzene + propylene; this oxidizes it onward. Two atom-balanced steps: air peroxidation (cumene + O2 -> cumene hydroperoxide, CHP) at low per-pass conversion, then acid-catalyzed cleavage (CHP -> phenol + acetone, near-complete). The spent air is vented, and the crude is separated by boiling point (acetone 56 C < cumene 152 C < phenol 182 C < CHP): high-purity phenol, crude acetone as the co-product, and unreacted cumene recovered for recycle. HONEST SCOPE: rigorous atom-balanced reaction stoichiometry; cumene hydroperoxide is a databank pseudo-component (no CoolProp entry) flashed under Peng-Robinson. The purification is spec-based component-split separators (the Aspen 'Sep'-block technique), not rigorous columns. The acetone product comes out ~98% because residual dissolved air (O2/N2) reports overhead with it -- a real plant adds a light-ends/degassing column for polymer-grade acetone; phenol comes out essentially pure. Recovered cumene is shown as an open recycle stream.
Reformate splitter via dividing-wall column
A refinery catalytic-reformer stream (benzene/toluene/o-xylene plus a non-aromatic n-heptane proxy) is split into three purified aromatics cuts by a single thermally-coupled dividing-wall column instead of two ordinary columns in series — the same DWC economics as the BTX example, applied to a genuine reformate splitter duty. Dejanovic, Matijasevic, Jansen, Olujic, "Designing a Packed Dividing Wall Column for an Aromatics Processing Plant," Ind. Eng. Chem. Res. 2011, 50, 5680.
Butanol/water separation via LLE-assisted distillation
Butanol and water form a heterogeneous azeotrope: overhead vapor condenses into two liquid phases (a butanol-rich organic layer and a water-rich aqueous layer). A decanter splits the condensed reflux by liquid-liquid equilibrium, returning the water-rich phase to strip more butanol while the organic phase is drawn as a near-pure butanol product — the phase split does the separating work an ordinary VLE column can't past the azeotrope. Luyben et al., Energy Fuels 2008, 22, 4249.
Styrene monomer via ethylbenzene dehydrogenation
Ethylbenzene dehydrogenates over an equilibrium/conversion reactor to styrene monomer plus hydrogen — the endothermic reaction that supplies the world's polystyrene/SBR-rubber feedstock. A downstream column recovers unreacted ethylbenzene overhead for recycle while polymer-grade styrene leaves the bottoms. Vasudevan design, Ind. Eng. Chem. Res. 2009, 48, 10941 (Figure 15.1).
Integrated styrene chain: benzene to styrene monomer
The full two-step styrene chain connected as one flowsheet rather than two standalone process snippets: benzene alkylated with ethylene to ethylbenzene, purified in a recovery column, then fed directly to the dehydrogenation reactor that makes styrene monomer. The unreacted ethylbenzene the dehydrogenation column recovers is reported as its own product stream rather than recycled back onto the alkylation feed (an honest simplification — closing that loop needs a torn-recycle edge back into ALKCOL, which the plant does but this flowsheet does not).
CO2/ethane extractive distillation with n-decane
CO2 and ethane are close-boiling (both around 195 K at 1 atm) and form a near-azeotropic VLE at NGL-processing pressures, a known problem for straight distillation in CO2-flood-associated gas and acid-gas-rich NGL streams. A heavy n-decane solvent shifts CO2's relative volatility enough to take it overhead in far fewer stages than an ordinary deethanizer would need; a second column then strips the solvent from the ethane bottoms for recycle. The extractive column runs at a moderately high reflux (R=4.5) — the operating point a genuinely close-boiling pair needs to hold a sharp CO2/ethane split with a heavy solvent — and both columns converge.
Deep ethane recovery with propane-refrigerated feed chilling
Associated gas is chilled by an external propane refrigeration package before a demethanizer recovers ethane and heavier as NGL bottoms from a methane-rich residue gas overhead — the cryogenic-chilling role Ortloff's CCS/GSP processes play ahead of the turboexpander in a real deep-ethane-recovery plant. The mechanical refrigeration loop itself (compressor/condenser/valve) isn't separately modeled here; the chiller's duty is represented directly as the feed's cooled outlet temperature (the same honest-simplification pattern used for LNG cold-box examples elsewhere in this library).
Ammonia cracking + H2 purification
Green ammonia is a widely proposed hydrogen *carrier* for shipping — easier to liquefy and transport than liquid H2 itself, then cracked back to H2 at the point of use. A fixed-conversion reactor dissociates NH3 (2 NH3 -> N2 + 3 H2, endothermic, 99% conversion at a typical 600 C cracking-furnace outlet) and the cracked gas is polished by an adsorption stage to fuel-cell-grade H2. Honesty note: this models the adsorption stage as a single equilibrium Langmuir contact (competitive isotherm, H2 weakly adsorbed vs. N2/NH3 strongly adsorbed) — a real PSA's cyclic pressure-swing/purge steps aren't modeled, only the equilibrium separation a cycle is built around. A true gas-phase membrane stage was left out for the same reason: the solver's `membrane` unit op is a liquid reverse-osmosis model (osmotic-pressure driven), not a gas-permeation membrane, so it doesn't apply here.
Direct lithium extraction + LiOH crystallization
A Salar-brine DLE train: an Al-based sorbent column selectively loads Li+ (rejecting the brine's much larger Mg2+ background — real DLE sorbents cut a ~290:1 Mg/Li mass ratio down to under 1:1), the loaded sorbent is eluted with fresh water into an aqueous strip liquor (bridging the sorption column's own documented single-pass-loading scope), RO concentrates it, a real bipolar-membrane electrodialysis (BPED) cell converts LiCl to LiOH — Faraday's law links the applied current/membrane area/current efficiency to the actual Li+ transport rate (replacing an earlier placeholder fixed-conversion reactor), reporting real cell voltage and electrical power draw — and a forward-feed two-effect evaporator train (vapor from effect 1 heats effect 2) concentrates it to battery-grade LiOH·H2O crystals. Real boiling-point elevation throughout via the Pitzer-electrolyte brine thermo package. Isotherm parameters per the sorption column's own citation (2024 Desalination study, Al-based DLE sorbent). Honesty note: the BPED cell still tracks only the lumped li/lioh solute pair this brine thermo package carries (no first-class Cl-/H+/OH- species), so it produces one outlet stream (the Li+ -> LiOH conversion) rather than a genuine two-compartment acid+base product split — see flowsim/solver/unitops/bped.py for the exact scope.
Battery black-mass recycling: leach -> SX -> BPED -> LiOH crystallization
Spent-battery black mass (an NMC111-like LiNi1/3Mn1/3Co1/3O2 lump, sulfuric acid-leached at a screening-level yield/stoichiometry — see acid_leach.py's stated scope) dissolves into a pregnant leach solution carrying Li/Co/Ni/Mn. A 15-stage D2EHPA solvent-extraction circuit (the same real pH-isotherm chemistry the co-ni-solvent-extraction example uses, operated at pH 7.5 -- above every curated Co/Ni/Mn pH50 -- so all three transition metals extract into the kerosene organic phase while Li, which has no curated D2EHPA isotherm, stays in the aqueous raffinate untouched) purifies the liquor before it ever reaches the lithium-recovery chemistry. A Faraday's-law bipolar-membrane electrodialysis (BPED) cell (the same real electrochemistry as the direct-lithium-extraction example, sized up for this liquor's larger Li flow) converts Li+ to LiOH, which an MSMPR crystallizer takes to battery-grade LiOH solid. Every step reuses an already-real, independently-tested unit op (acid_leach.py, extraction_column.py, bped.py, crystallizer.py) chained into the one train none of them had been assembled into before. Honesty notes: no acid-consumption or neutralization mass balance between the strongly-acidic leach liquor and the pH-7.5 SX stage (the pH is an operator-set circuit condition, the same simplification co-ni-solvent-extraction already makes, not a titration model); the recovered Co/Ni/Mn organic concentrate leaves as a single product stream rather than being split into separate refined metal products (a further SX/strip train, out of scope here).
Diesel hydrotreater with closed H2 recycle + amine wash
Diesel (an n-hexadecane carrier with a dibenzothiophene sulfur slice) and hydrogen react over a trickle-bed-equivalent reactor (dibenzothiophene + 3H2 -> biphenyl + H2S, the real HDS desulfurization route) after a fired-heater preheat. Hot and cold high-pressure separators knock the light gas off the treated oil; an amine wash (a fixed-recovery separator — the same simplification the existing carbon-capture example uses, not a full electrolyte amine model) scrubs H2S from the recycle gas before a compressor closes the loop back to the reactor feed, with a small purge controlling buildup. A pressure-letdown valve + stripper finish the treated oil, removing dissolved light ends before the desulfurized diesel leaves the bottoms.
LOHC hydrogen release (methylcyclohexane dehydrogenation)
A liquid organic hydrogen carrier (LOHC) power train: methylcyclohexane (MCH) is preheated and catalytically dehydrogenated (MCH -> toluene + 3H2, endothermic, equilibrium-limited to ~90% single-pass conversion) to release hydrogen for downstream power generation. A flash drum separates the H2-rich gas from the liquid; a distillation column then recovers the unreacted MCH overhead and recycles it to the reactor feed, closing a real tight liquid recycle loop, while spent toluene leaves the bottoms (to be re-hydrogenated back to MCH off-site, closing the supply-chain loop — out of scope for this dehydrogenation-side flowsheet). Screening-fidelity note: MCH and toluene are genuinely close-boiling (relative volatility ~1.4 under this thermo package at column conditions), so the recycle carries real toluene along with the recovered MCH rather than a sharp cut — a production column would use more stages to purify it further; this shows the recycle topology and its convergence, not an optimized column design.
FLNG dual N2-expander liquefaction
A reverse-Brayton (turboexpander, not vapor-compression) liquefaction train — the compact, offshore-friendly FLNG alternative to mixed-refrigerant cycles like C3MR. Natural gas is acid-gas-scrubbed and mol-sieve-dried (fixed-recovery separators, the same simplification the existing carbon-capture example uses for amine treating), then cooled in two cascaded closed nitrogen loops: a warm loop precools the gas and the cold loop's own N2 charge, and a cold loop finishes the liquefaction to ~113 K in a main cryogenic multi-stream exchanger. Both loops are pure compressor + turboexpander cycles — no phase change in the refrigerant, no JT valves — the real differentiator from every other LNG example here. Single precool level and a single MCHE bundle (a real train uses more); refrigerant charges are set via tear_specs.
Direct air capture with solid-sorbent calcination + CO2 liquefaction
A Carbon Engineering-style DAC train: a fan draws ambient air (400 ppm CO2) through a liquid-KOH contactor (a fixed-recovery separator — the same simplification the existing carbon-capture example uses for chemical absorption, since no CO2-KOH electrolyte package exists) capturing ~75% of the CO2. The captured CO2 is causticized and precipitated into CaCO3 pellets by the real (unmodeled-in-detail) KOH/Ca(OH)2 loop — represented here as a matched pellet feed sized to the captured CO2 rate, since the generic reactor unit op can't itself produce a solid product (only a rotary kiln's decomposition path can, which is exactly what's used next). Those pellets calcine at ~977 degC in an indirectly-heated rotary kiln (real Arrhenius decomposition kinetics, Sullivan-Maynard-Valentine residence time), releasing pure CO2 that's compressed to ~20 atm and chilled to 250 K — above the real Span-Wagner CO2 saturation pressure at that temperature, so the solved outlet stream is genuine subcooled LIQUID CO2 (not just dense-phase pipeline gas) — while the CaO leaves for slaking and reuse (the lime side of the closed loop, out of scope for the same reason as the causticization step). Run the Carbon Footprint report on this example for the real Scope 1/2/3 CO2e + carbon-tax liability breakdown already built into this codebase's report generator.
Solid-sorbent fluidized-bed DAC with compression heat recovery
A second, lower-temperature DAC pathway alongside the liquid-KOH + rotary-kiln example: the captured CO2 loads onto a solid sorbent, which regenerates in an indirectly-heated fluidized bed (real Wen-Yu minimum-fluidization sizing + Arrhenius desorption kinetics, unitops/solids.py's FluidizedBed) at 120 degC -- the real low-temperature regime solid amine/physisorbent DAC sorbents actually use, versus the other example's ~977 degC calcination. The bed is fluidized by a recycled CO2 sweep (self-sweep with product gas, a real design choice that sidesteps needing a steam-condensate knockout step). The desorbed CO2 is compressed toward liquefaction pressure in one adiabatic stage -- hot enough (~780 K discharge) that routing it through a heat exchanger against process utility water genuinely converts that water from subcooled liquid to a boiling mixed-phase stream before the CO2 continues on to the same real liquefaction physics as the other DAC example. Honesty note: this recovers real compression waste heat into a genuinely useful utility stream (the actual mechanical-vapor-recompression principle -- reusing a compressor's own heat instead of rejecting it to cooling water) but does NOT feed that heat back into the fluidized bed's own desorption duty, which this unit op takes as a fixed wall-temperature parameter, not a second heating-utility stream -- a literal closed MVR loop onto the desorber itself isn't wireable with this unit op as built.
Patent benchmark: methyl lactate synthesis (CN104628563A)
Real patent replication, not an invented process: CN104628563A's acid-catalyzed lactate-ester route -- lactic acid esterified with excess methanol, then purified by vacuum distillation -- reproduced here as a continuous flowsheet. The patent's own worked methyl-lactate example reports 98.8% esterification conversion and 99.6% product purity at 120 degC/3h; this flowsheet's reactor conversion is set directly to the patent's reported 98.8% (not fitted), and the vacuum column (0.2 atm, matching the patent's vacuum-distillation purification step) reaches 98.75% methyl lactate purity in the bottoms -- within roughly 1 percentage point of the patent's claimed 99.6%, the gap being this flowsheet's own finite stage count/reflux rather than a fitted parameter. See the Patent Benchmarks docs page for the full validation table and citation.
Patent benchmark: gas fermentation to single-cell protein (JP2024028821A)
The gas-fermentation process class JP2024028821A describes: hydrogen-oxidizing chemolithoautotrophic bacteria (the patent names Cupriavidus necator and Rhodococcus opacus strains) fixing CO2 using H2 as the electron donor to grow single-cell protein biomass. Built here with real physics closing two genuine gaps this session's fact-check found missing: gas-liquid mass transfer (Henry's-law dissolution + a volumetric kLa driving the H2 dissolution rate) and chemolithoautotrophic growth stoichiometry (McCarty's electron-balance method combining the H2-oxidation, O2-reduction, and C5H7O2N cell-synthesis half-reactions) -- not a Monod-on-dissolved-substrate shortcut repurposed for a gas feed. Honesty note, stated plainly: JP2024028821A is a prophetic patent with zero disclosed numerical yields, rates, or operating conditions, so unlike the methyl-lactate benchmark, there is no published number here to validate against -- this demonstrates the real capability (a genuinely mass-transfer-limited fermenter, exactly the regime a real gas-fermentation plant is designed around) rather than replicating a claimed result. The reactor's kLa and Henry's-law constant are illustrative order-of-magnitude values (a real design would fit kLa to measured aeration/agitation data), and the synthesis electron fraction fs=0.4 sits in the literature-typical 0.3-0.6 range for aerobic hydrogen-oxidizing bacteria.
Patent benchmark: enzymatic cannabinoid synthesis (US9359625B2)
Real patent replication: US9359625B2's THCA-synthase-catalyzed conversion of cannabigerolic acid (CBGA) into either THCA or CBCA depending on operating pH -- closing the genuine enzyme-kinetics gap this session's fact-check found (only Monod biomass-growth kinetics existed anywhere in this codebase, no Michaelis-Menten). The patent's own disclosed pH-selectivity data anchors this model: it reports 'catalysis at a lower pH... favored THCA... while... neutral pH... favored CBCA,' a ~10:1 THCA:CBCA ratio at pH 5.0, and CBCA dominant at pH 7.0 -- fit here as a single-ionizable-group pH-titration switch (pKa_switch=6.0), which reproduces the reported 10:1 ratio at pH 5.0 exactly (that's how pKa_switch was chosen) and gives ~10:1 CBCA:THCA at pH 7.0 (matching the patent's 'CBCA exclusively' qualitatively, not to an exact published ratio, since the patent gives no numeric ratio at pH 7.0 to match). Reactor volume is sized to clear the patent's own disclosed '>20% conversion' commercial threshold (reaches ~25.0% here). Honesty note: the patent discloses no Km/kcat, so Vmax/Km are illustrative screening values consistent with the reported conversion/selectivity, not independently measured enzyme kinetics -- see the Patent Benchmarks docs page.
Patent benchmark: selective C3 diene/acetylene hydrogenation (US6495732B1)
Real patent replication: US6495732B1's palladium-catalyzed selective hydrogenation of a cracked-gas C3 stream, removing methylacetylene (propyne) and propadiene down to trace levels while leaving propylene and propane untouched -- the patent's own Example 1 feed (82.7 mol% propylene, 2.37% methylacetylene, 1.30% propadiene) reacted here to '>99.5% removal of both dienes/acetylenes, no propylene-to-propane over-hydrogenation' (propane's mole fraction is unchanged before/after -- the actual selectivity claim the patent is about). Honesty note: the patent discloses conversions/selectivity at specific pilot conditions but no PdO-catalyst rate constants to derive kinetics from, and its real design runs the catalyst as reactive-distillation packing inside one column rather than a separate reactor -- this flowsheet uses two fitted-conversion reactors (conversion set to match the patent's own '95-100%' and 'essentially all... removed' language, not independently measured) ahead of the column, a legitimate simplification of the topology, not the kinetics.
Aniline via nitrobenzene hydrogenation
Vapor-phase catalytic hydrogenation of nitrobenzene (C6H5NO2 + 3H2 -> C6H5NH2 + 2H2O, highly exothermic) with excess hydrogen, a high-pressure flash recovering unreacted H2 as a recycle vent, then a reduced-pressure flash stripping residual water from the crude aniline. Honesty notes: the reactor is a stoichiometric conversion model (98%), not a nitrobenzene-specific rate law — this solver has no curated hydrogenation kinetics for this reaction. The final aniline/water cut is a single-stage flash, not a multi-tray column: aniline and water are a genuinely non-ideal, partially-miscible pair, and this solver's UNIFAC-based decanter (the tool built for exactly that miscibility gap) doesn't have nitrobenzene's group decomposition, so a real plant's decant-then-distill sequence isn't fully modeled here.
Cryogenic helium recovery / nitrogen rejection
A helium-rich natural gas is let down through a real isentropic turboexpander, then cascaded through two cryogenic flash stages (125 K, then 105 K) that progressively concentrate helium in the vapor while methane and nitrogen condense out. Honesty note: helium's near-infinite K-value at these conditions is numerically pathological for this solver's rigorous multi-stage column MESH (verified: even a trace of helium in a column feed reliably crashes or hangs the inside-out/Newton solvers) — so the methane/nitrogen split is modeled as a shortcut recovery-fraction separator, not a tray-by-tray column, and helium enrichment comes from cascaded flash equilibrium alone, not a true nitrogen-rejection distillation column.
Waste solvent recovery — extractive distillation (IPA/water)
A pharmaceutical waste isopropanol/water stream (near the ~68 mol% IPA azeotrope) is fed to an extractive column with a high-boiling entrainer feeding in a few stages above it; a second column strips the entrainer back out of the bottoms for reuse. Honesty note: the brief's original entrainer, DMSO, doesn't have a pinned NRTL isopropanol binary in this codebase's databank (only DMSO-water is pinned), so this uses sulfolane instead — a real, industrially-standard extractive/physical solvent with a genuine pinned NRTL isopropanol binary. At this stage count and solvent-to-feed ratio the entrainer effect is real but modest (overhead reaches ~82 mol% IPA, up from the 68% feed) — a sharper, near-anhydrous cut would need more stages/reflux or a higher solvent ratio than what this session verified converges reliably.
Sustainable Aviation Fuel via Alcohol-to-Jet
Bio-ethanol is catalytically dehydrated to ethylene, oligomerized toward a decene-range olefin, then hydrogenated to n-decane — a real synthetic paraffin in the SAF/jet-range carbon-number band. Honesty note: all three reaction steps are stoichiometric conversion models (this solver has no ethanol-dehydration, oligomerization, or hydrogenation kinetics specific to these catalysts), and the oligomerization step is lumped to a single representative product (1-decene, 5 C2H4 -> C10H20) rather than the real broad C4-C16+ olefin distribution a real oligomerization catalyst produces. The final flash is a light-ends/product split, not a full multi-cut fractionation into light-ends/SAF/diesel bands (this build only makes one heavy product, so there's nothing yet to fractionate into separate SAF and diesel cuts).
Cement kiln calcination + CO2 liquefaction
Preheated limestone (CaCO3) enters an indirectly-heated rotary kiln that calcines it toward CaO, releasing a CO2-rich off-gas; the gas is knocked free of moisture, then compressed and cooled to liquefy the CO2 for transport/storage. Honesty notes: (1) this specific kiln model (`rotary_kiln`) heats via an indirect utility-temperature wall duty (an NTU model), not a simulated internal flame, so no combustion stoichiometry runs inside it here — real oxy-fuel combustion IS modeled elsewhere in this codebase (`fired_heater`'s `oxidant="oxy_co2"` mode: near-pure-O2 combustion diluted by a recycled-CO2 stream instead of air's nitrogen), see `allam-fetvedt-cycle` for a real working example of it; (2) the calcination conversion shown (~21%) is the real, kinetically-limited result of this model's validated Arrhenius parameters at this residence time/temperature, not a claim of complete calcination — a real cement plant's preheater-tower-plus-kiln train achieves far higher calcination degree than one rotary-kiln unit alone models here; (3) CO2 must be compressed above roughly 5.2 atm before it can be liquefied by cooling at all (it has no liquid phase at 1 atm at any temperature), which the compressor stage here reflects.
NGL fractionation: single-shell Petlyuk dividing-wall column
A natural-gas-liquids cut (ethane / propane / n-butane) split into three on-spec products by ONE thermally-coupled dividing-wall column instead of two columns in series. This uses the native Petlyuk unit op: a prefractionator whose reflux and boilup are supplied by the main column (the single condenser + single reboiler), solved by an outer Wegstein loop that converges the bidirectional vapor/liquid coupling to self-consistency — the coupling legacy sequential-modular solvers approximate with two connected columns whose recycle fails to converge. Honesty note: the vapor-split and liquid-split ratios are specified inputs (not solved from tray hydraulics), and this is an outer-loop coupling of two rigorous MESH sub-solves, not a single monolithic Petlyuk MESH.
Chiral API purification: continuous SMB chromatography
A racemic active pharmaceutical ingredient (R/S enantiomers, dilute in ethanol eluent) is resolved continuously by simulated moving bed chromatography — the workhorse of chiral-drug manufacture that legacy steady-state flowsheet simulators have no native model for (engineers script it in MATLAB). This uses the native SMB unit op, which solves the standard steady-state True Moving Bed equivalent: a 4-zone counter-current equilibrium-stage cascade whose zone flow-rate ratios sit inside the triangle-theory separation region, so the more-retained enantiomer reports to the extract and the other to the raffinate — the separation is driven by the chiral adsorption selectivity (the two enantiomers are otherwise thermodynamically identical). Honesty note: this is the TMB steady-state equivalent, not the transient multi-column process with discrete port switching; stages are ideal equilibrium stages (no mass-transfer resistance / axial dispersion); the isotherm affinities are illustrative screening values.
High-fructose corn syrup: SMB glucose/fructose separation
The single largest-volume industrial SMB in the world — separating fructose from glucose to make 55-HFCS. A glucose/fructose isomerate (dilute in water eluent) feeds the native SMB unit op; on a Ca²⁺-form ion-exchange resin fructose is the more-retained sugar, so it reports to the extract (the sweetener product) while glucose leaves in the raffinate (recycled to the isomerase reactor in a real plant). Solved as the steady-state True Moving Bed equivalent — a purely isotherm-driven liquid separation, so the sugars need no vapor-liquid-equilibrium data. Honesty note: TMB steady-state equivalent (not the transient port-switching process), ideal equilibrium stages, illustrative isotherm affinities capturing the real fructose > glucose retention order.
Bio-ethanol: energy-integrated distillation + MVR stillage concentration
A dilute beer (10% ethanol) is concentrated toward the azeotrope in a beer column, and the water-rich stillage bottoms are concentrated in an evaporator whose vapor is recompressed by a mechanical-vapor-recompression (MVR) compressor — recovering the stillage vapor's latent heat as high-grade heating duty instead of venting it, the energy-integration route that eliminates a separate thermal oxidizer. Honesty note: the MVR train is modeled at screening fidelity (an evaporator + a real isentropic-efficiency recompression of its vapor, reporting the recompression work); the solids in real stillage are not tracked (the bottoms is modeled as the ethanol/water liquid), and this is an equipment-train energy study, not a rigorous three-phase superheated-steam dryer.
On-site oxygen: multi-bed vacuum pressure swing adsorption (VPSA)
Medical- / green-steel-grade oxygen generated on site from air by a 4-bed vacuum pressure swing adsorption unit over an N₂-selective zeolite (LiX/13X). This uses the native VPSA unit op — the proven 2-bed Skarstrom engine generalized to N beds with pressure-equalization steps and sub-atmospheric evacuation: nitrogen is adsorbed while oxygen passes as the light product, then each bed is pulled to a vacuum to desorb the nitrogen tail gas. The solver runs the real cyclic transient (tanks-in-series bed discretization + linear-driving-force kinetics + inter-bed equalization) to a periodic steady state — the transient dynamic equilibrium legacy steady-state simulators cannot capture without a separate dynamic license. Honesty note: isothermal (no heat of adsorption, which is real and significant for N₂ on zeolite); only N₂ is modeled as adsorbing, so O₂ and argon pass together — which is why the product tops out near 93% O₂ (argon co-produces with oxygen), not fabricated pure O₂; p_low is a specified vacuum boundary, not a vacuum-pump curve.
Acetic acid recovery — NRTL with vapor-phase dimerization
Concentrating dilute aqueous acetic acid (30 mol%) to a 99.8% acetic-acid bottoms product by distillation, modeled with the NRTL activity package and **chemical-theory vapor-phase association** (acetic acid dimerizes, 2 A -> A2, in the vapor). This is the physics a cubic equation of state gets wrong: the pinned NRTL acetic-acid/water binary (DECHEMA) plus the cited dimerization constants (Nagy et al., Molecules 2020) give the real bubble curve and latent heat, so the close-boiling acid/water pair actually separates and converges where Peng-Robinson does not. Honesty note: acetic acid and water are close-boiling with no azeotrope, so the water distillate is only ~87% water (the acid product is the concentrated, high-purity stream); a sharper water cut needs more stages / reflux than this screening case uses.
Anhydrous ethanol — extractive distillation past the azeotrope (NRTL)
Producing fuel-grade anhydrous ethanol from a near-azeotropic ethanol/water feed using ethylene glycol as the extractive entrainer. Ordinary distillation is capped at the 89.4 mol% ethanol azeotrope; the high-boiling glycol raises water's relative volatility so **ethanol crosses its azeotrope and leaves the extractive column essentially pure**, while a vacuum solvent-recovery column strips the water and recycles the glycol. This is modeled with the NRTL activity package on **pinned DECHEMA binaries** for every pair (ethanol/water, ethanol/glycol, water/glycol) — the non-ideal, azeotrope-crossing VLE a cubic equation of state structurally cannot reproduce (Peng-Robinson stays trapped at the ~89% azeotrope). Honesty note: NRTL binaries come from the bundled DECHEMA VLE Data Collection (via ChemSep/DWSIM), not fitted here; the solvent-recovery column runs under vacuum to keep the glycol below its decomposition temperature.
Renewable diesel & SAF: HEFA hydrotreating train
The HEFA (Hydroprocessed Esters and Fatty Acids) pathway to sustainable aviation fuel and renewable diesel from fats/oils/greases: a triglyceride feed (triolein) plus a large hydrogen excess is hydrodeoxygenated (HDO) to n-paraffins + propane + water, the paraffins are hydrocracked/isomerized toward the jet range, the H2-rich recycle gas and the HDO process water are knocked out, the light ends are stabilized, and a two-column fractionation splits the product into light naphtha, a jet-range SAF cut, and renewable-diesel bottoms. Honesty notes: the databank carries no lauric/oleic assay, so the FOG feed is modeled as triolein hydrodeoxygenating to n-octadecane (real HDO stoichiometry: triolein + 15 H2 -> 3 n-C18 + propane + 6 H2O); the hydrocracking lump (n-C18 -> n-C12 + n-C6) is illustrative, not a fitted kinetic network; and the n-/iso-paraffin distinction that actually sets the jet freeze-point spec is NOT resolved (the databank carries n-paraffins, not the specific branched isomers) — the train computes real material/energy balances and a real fractionation, not a validated freeze-point. A 3-phase water knockout is modeled as a component separator (the real unit gravity-decants the sour water).
Refinery acid-gas treating: MDEA/PZ absorber-stripper
Simultaneous CO2 AND H2S removal from a sour natural-gas / refinery off-gas stream by a piperazine-promoted MDEA solvent — the mixed-amine chemistry legacy tools reach for heavy rate-based/OLI add-ons to model. A high-pressure absorber contacts the sour gas with lean MDEA/PZ solvent (both acid gases absorb into the amine); the rich amine is heated and let down to a low-pressure steam stripper that drives the acid gases back off as a concentrated acid-gas stream and regenerates the lean solvent. Runs on the new 'enrtl-mdea-pz' electrolyte package: a generalized speciation (MDEA protonation + piperazine carbamate/dicarbamate + CO2/HCO3-/CO3-- + H2S/HS- + water) with Davies activity — it correctly reproduces piperazine's promotion (the blend holds more CO2 at a given partial pressure than MDEA alone). Honesty notes: this is an EQUILIBRIUM capacity/selectivity model — NOT rate-based, so PZ's kinetic CO2 promotion and MDEA's kinetic H2S-over-CO2 selectivity are not captured; the absorber/stripper are Kremser shortcut columns; the PZ carbamate constants and the H2S path are screening-grade (see flowsim/solver/thermo/enrtl_blend.py); and the lean-amine loop is left OPEN (the regenerated solvent is a product, not closed back onto the absorber — the same honest simplification the 'co2-from-natural-gas' example makes), with makeup steam as the reboiler surrogate. What it genuinely computes: deep sweetening of the gas, the rich CO2/H2S amine loadings, the concentrated acid-gas overhead, and a fully regenerated lean solvent.
High-recycle ammonia loop (equation-oriented)
A tight, high-recycle ammonia synthesis loop built to show why a modern simulator solves recycles the way legacy sequential-modular tools can't. Fresh syngas (N2 + 3H2, with argon inert) mixes with a large recycle, reacts to only ~10% per pass, chills so ammonia condenses out as product, and the unreacted gas recycles — a recycle-to-fresh ratio of ~5:1, with argon building up until a small purge balances it. **Run this in Equation-Oriented mode (Solver menu > Mode > Equation-oriented).** In the default sequential-modular mode the solver tears the recycle and iterates Wegstein ~78 times to close the loop; the equation-oriented solver instead makes every inter-unit stream a global unknown and closes all ~35 of them in one simultaneous Newton solve — the same simultaneous approach AVEVA SimCentral / gPROMS / IDAES use, and the reason tightly coupled recycles that crawl (or stall) in sequential-modular converge cleanly here. Honesty note: the ammonia-formation Keq is illustrative (chosen for a realistic ~10% per-pass conversion and ~5:1 recycle), not a fitted plant value; both solver modes reach the same converged answer — the point is the path, not the result.
Blue hydrogen: SMR + water-gas-shift + CO2 capture
A low-carbon (blue) hydrogen train: steam-methane reforming converts natural gas + steam to syngas (CH4 + H2O <=> CO + 3H2) at 1123 K, a water-gas-shift reactor converts the CO with more steam to extra H2 + CO2 (CO + H2O <=> CO2 + H2), the gas is cooled, the process water knocked out, and 96% of the CO2 is captured as a pure stream for sequestration/EOR (the CCS that makes the hydrogen 'blue'). Both reactors are solved to real chemical equilibrium (partial-pressure basis) rather than a fixed conversion. Honesty notes: the reforming/shift Keq values are the representative high-temperature equilibrium magnitudes (~85% CH4 conversion at 1123 K, near-complete CO shift at 620 K), not fitted to one plant; CO2 capture is modeled as a component separator (a real unit uses an amine or physical-solvent loop -- see the 'mixed-amine-acid-gas-treating' showcase for the rigorous MDEA/PZ chemistry, which needs its own electrolyte thermo package and so can't share this flowsheet's gas EoS); and the ~4% residual CH4 slip in the product is real (a plant polishes it with a PSA -- see 'psa-h2-purification').
Rate-based distillation (Maxwell-Stefan, ChemSep-style)
A depentanizer split (n-pentane overhead from an n-pentane/n-hexane/n-heptane feed) solved with a **rigorous rate-based (nonequilibrium) stage model** rather than the usual equilibrium-stage assumption. Every stage carries separate bulk vapor and liquid compositions with a vapor-liquid interface in equilibrium and finite **Maxwell-Stefan mass-transfer fluxes** across each film, and the per-stage transfer coefficients come from the real Chan-Fair (1984) tray-efficiency correlations off estimated tray geometry -- the exact physics ChemSep and Aspen RateSep are built on. The result: real trays lag equilibrium, so the finite-transfer distillate is measurably less pure (~98.7% C5) than an equilibrium-stage model predicts (~99.8%) on the identical column -- roughly 5x more hexane slips overhead. Open the equivalent equilibrium column ('ethanol-water-distillation' or any 'distillation' node) to see the gap the equilibrium-stage assumption hides. As the mass-transfer coefficients grow the model collapses back onto the equilibrium column (the built-in validation limit).
Rate-based reactive amine absorber (packed, MDEA/PZ)
A packed acid-gas absorber sized the way ChemSep / Aspen RateSep size one -- by real mass-transfer rate over a PACKED HEIGHT, not an assumed stage count. Sour gas (CO2 + H2S in methane) contacts a piperazine-promoted MDEA solvent in a structured-packed column, and the recovery of each acid gas is set by three coupled pieces of physics: the **Onda-Takeuchi-Okumoto (1968)** gas/liquid film coefficients and wetted area over the packed height (the rate), a **reaction-enhancement factor** on the liquid film from the Hatta number (the reaction speeding up liquid-side transfer), and the **reactive vapor-liquid equilibrium** from the electrolyte 'enrtl-mdea-pz' package (the capacity). The result is a genuine design curve: CO2 recovery climbs from ~85% at 0.3 m of packing to pipeline spec by ~1.5 m (5 ppm CO2, 3 ppm H2S) -- run the built-in packed-height sweep to see it. A revealing rate-based insight the equilibrium-stage shortcut can't give: the fast amine reaction makes the liquid resistance negligible, so this absorber is **gas-film-controlled** -- recovery barely moves with solvent rate but scales directly with packed height. Honesty notes (see flowsim/solver/unitops/rate_based_absorber.py): dilute-absorption HTU-NTU with a lean-solvent Colburn form, mean-property diffusivity, a pseudo-first-order (Ha/tanh Ha) enhancement with no instantaneous-reaction cap, and screening-grade reaction rate constants -- it captures the real rate-based behaviour (recovery vs. height, gas-film control) without claiming RateSep-grade rigor. The companion 'mixed-amine-acid-gas-treating' showcase runs the full absorber-stripper loop with the equilibrium-stage (Kremser) absorber for contrast.
Cryogenic NGL recovery (GERG-2008 EoS)
A natural-gas dew-point-control / NGL knockout run on the GERG-2008 reference equation of state -- the multiparameter Helmholtz model the LNG and custody-transfer industries use because cubic EoS (Peng-Robinson/SRK) are off by several percent on cryogenic natural-gas density. Rich pipeline gas is chilled, let down across a Joule-Thomson valve into the two-phase region, and flashed cold to drop out an NGL liquid (propane/butane-rich) from the methane sales gas. The value is accuracy: on this flowsheet GERG predicts an NGL liquid density ~10% different from Peng-Robinson at cryogenic conditions -- enough to change vessel and exchanger sizing. Implemented via CoolProp's multiparameter Helmholtz mixture model (GERG-2008 binary reducing/departure functions), a validated implementation -- not a hand-transcription of GERG's thousands of coefficients. Scope: natural-gas / light-hydrocarbon components only (every species must be a CoolProp fluid); see flowsim/solver/thermo/gerg.py.
e-Fuels (Power-to-Liquids): rWGS + Fischer-Tropsch
The Power-to-Liquids / e-SAF pathway: captured CO2 and green hydrogen are converted to synthetic hydrocarbons. A reverse water-gas-shift reactor turns CO2+H2 into CO + H2O (solved to real chemical equilibrium), the water is knocked out, and the syngas feeds a **Fischer-Tropsch reactor** that builds a whole hydrocarbon slate via the **Anderson-Schulz-Flory** chain-growth law. The single knob that sets the product spectrum is the chain-growth probability alpha (here 0.90): a high alpha shifts the slate toward diesel/wax, a low alpha toward LPG/naphtha -- the reactor distributes the reacted carbon across n-paraffins C1..C8 (the tail lumped as C8 wax) with **exact C/H/O atom balances**, so it conserves atoms wherever the distribution is cut. Honesty notes (see flowsim/solver/unitops/fischer_tropsch.py): this is the standard **yield/selectivity** FT model (ASF + specified CO conversion), not a mechanistic kinetic or slurry/fixed-bed hydrodynamic model; olefin/oxygenate co-products aren't split out (paraffins + water only); the raw syncrude effluent is delivered as-is (a real plant recycles the H2-rich tail gas and fractionates the liquid -- shown here as the reactor product, not a finished fuel cut); and the rWGS Keq is the representative high-temperature equilibrium magnitude.
Blue hydrogen with rigorous amine capture (multi-thermo)
The blue-hydrogen train done properly: steam-methane reforming and water-gas-shift run on a cubic gas EoS (Peng-Robinson), while the CO2 capture runs on the rigorous electrolyte amine package (MDEA/piperazine 'enrtl-mdea-pz') -- **two thermo methods in one flowsheet**, via per-node thermo_overrides. This is what legacy tools do with a property-method 'section' and what the plain 'blue-hydrogen-smr-ccs' showcase *couldn't* (one package per flowsheet forced a component-separator stand-in for the capture). Here the shifted syngas is contacted with a lean MDEA/PZ solvent in an absorber that removes the CO2 by real reactive equilibrium (H2/CO/CH4 pass through as insoluble gases), delivering ~94% H2 with the CO2 driven to trace and a rich amine at a realistic ~0.7 mol CO2/mol amine loading. Honesty notes: streams cross the PR<->eNRTL boundary carrying their universal fields (flow/T/P/composition), but each package uses its own enthalpy reference, so a rigorous *energy balance across the boundary* is not consistent (the absorber is a Kremser shortcut and doesn't attempt one) -- see the thermo_overrides note in docs/interfaces.py; the reforming/shift Keq are representative equilibrium magnitudes.
Naphtha steam cracker: furnace, quench, compression, cryo train
The full ethylene-plant process shape (steam-methane-cracking's headline technology, e.g. Linde's steam cracking line): a fired-heater convection preheat, a three-reactor lumped pyrolysis furnace, a transfer-line-exchanger quench, a primary fractionator pulling off pyrolysis gasoline, two-stage compression with interstage knockouts, selective acetylene hydrogenation, and a cryogenic cold train (cold-flash light-gas rejection, deethanizer, C2 splitter, depropanizer) delivering four real products -- ethylene, propylene, a butadiene-rich C4 cut, and a pygas/heavy-ends byproduct -- plus an H2/CH4-rich tail gas and two knockout condensate streams. Honesty notes: (1) naphtha is modeled as a single n-heptane surrogate (no fitted radical-chain kinetics exist in this codebase for real naphtha pyrolysis, so the furnace is three chained fixed-conversion reactors on real, exactly mass-balanced cracking/dehydrogenation stoichiometry -- C7H16 -> C2H4+C2H6+C3H6, C7H16 -> CH4+C2H4+C4H6+H2, and C2H4 -> C2H2+H2 for a trace acetylene impurity -- tuned to a representative, not literature-fitted, product distribution, the same 'illustrative, not fitted' posture already disclosed for saf-hefa-renewable-jet's hydrocracking lump). (2) The demethanizer is a single cold flash stage, not a rigorous multi-tray column: H2 is permanently supercritical at any realistic column pressure (Pc~13 atm vs. the ~20+ atm this train runs at), which was found during this build to corrupt the MESH solver's initial temperature-profile guess (fixed in unitops/distillation.py -- see its CLAUDE.md entry -- but even after that fix a genuine ~15 mol% H2 feed to a sharp-cut demethanizer is a hard column this solver doesn't converge on cleanly); a single flash stage rejects H2/CH4 in bulk instead, consistent with the 'cold-box front-end flash' some real designs use, but with materially worse light-key rejection than a real 20+ tray demethanizer. That carries through honestly to the ethylene product: it converges at ~77 mol% ethylene (the balance methane and H2), not polymer-grade purity -- the real number the solver computes, not an assumed spec. Propylene fares much better (~96%) since it isn't competing with as light a contaminant. (3) No BTX/aromatics extraction -- the pygas cut is reported as a single lumped heavy stream, matching saf-hefa's precedent of not resolving every real product cut.
Electrically heated ethane cracker (Linde/BASF/SABIC STARBRIDGE concept)
The same ethane-to-ethylene thermal cracking chemistry as ethane-cracker, but with the furnace's radiant-coil heating supplied by an electric heater instead of a fuel-gas-fired one -- the real distinguishing feature of Linde's STARBRIDGE technology (demonstrated at industrial scale with BASF and SABIC at Ludwigshafen, 2024): resistive heating elements replace burners, transferring heat to the process coils by radiation 'in a configuration similar to conventional furnaces,' eliminating the furnace's own combustion-derived CO2 emissions (upstream grid emissions aside). Modeled here as a plain electric `heater` node (no fuel-gas inlet, no flue gas, no combustion stoichiometry) in place of `fired_heater`'s combustion-fired duty -- the honest difference this technology actually is: identical process-side thermal duty and cracking chemistry, a different (electric) heat source with no direct-combustion byproduct stream. Linde's own proprietary heating-element/coilbox design, materials, and thermal efficiency figures are not published and are not fabricated here; the furnace's computed duty is a genuine energy-balance result (electric heater -> real Q required to bring the feed to cracking temperature), not a marketing number.
Oxidative dehydrogenation of ethane to ethylene + acetic acid (EDHOX concept)
Linde's EDHOX technology co-produces ethylene AND acetic acid from ethane and oxygen in one catalytic step (a proprietary mixed-metal catalyst in a multi-tubular salt-cooled reactor), with combined ethylene+acetic-acid selectivity published above 93% and the CO2 by-product of over-oxidation recovered pure (no nitrogen dilution, since the oxidant is pure O2, not air). Modeled here as three chained fixed-conversion reactors on real, exactly mass-balanced reactions: the main dehydrogenation (C2H6 + 0.5 O2 -> C2H4 + H2O), the acetic-acid co-production path (C2H6 + 1.5 O2 -> CH3COOH + H2O), and a minor full-oxidation loss path (C2H6 + 3.5 O2 -> 2 CO2 + 3 H2O) accounting for the un-selective balance -- the same 'illustrative, not fitted' posture as the naphtha cracker's furnace, since Linde's catalyst kinetics are proprietary and not published. The per-reaction conversions here are tuned to reproduce the one real published number (>93% combined selectivity: this flowsheet computes ~96%), not an assumed per-pass ethane conversion, which Linde doesn't publish. Honesty note: the acetic acid/water co-product is reported as one crude liquid stream (recovered via a simple cold knockout, ~98% of the acetic acid produced) -- the real downstream acetic-acid/water dehydration column is not modeled, matching this codebase's convention of disclosing every unmodeled downstream separation rather than implying a purity that wasn't computed.
EDC pyrolysis furnace: 1,2-dichloroethane to vinyl chloride monomer
The balanced-process route to PVC's monomer: 1,2-dichloroethane (EDC) thermally cracks in a fired furnace to vinyl chloride (VCM) + HCl (C2H4Cl2 -> C2H3Cl + HCl, exactly mass-balanced), the HCl is stripped overhead in a distillation column (recovered pure -- it's recycled to the plant's oxychlorination unit in a real balanced VCM process, not modeled here), and a second column separates VCM product from unconverted EDC (also recycled in a real plant). Unlike Linde's proprietary furnace internals (tube metallurgy, coking-cycle length, radiant-zone geometry), EDC pyrolysis chemistry itself is standard, widely published petrochemical engineering (Kirk-Othmer and equivalent references), not proprietary Linde IP -- so this is built directly from the real reaction and typical single-pass conversion (~50-55%, a widely cited industrial range for this process, not a specific plant's exact figure), the same 'illustrative, representative, not literature-pinned to one source' posture used throughout this codebase's cracking-furnace examples. Honesty note: a real EDC/VCM plant recycles both the HCl (to oxychlorination) and unconverted EDC (back to the furnace); both leave as standalone product streams here since neither the oxychlorination unit nor a recycle loop is modeled in this example.
Wet air oxidation of phenolic wastewater
Liquid-phase oxidation of dissolved organics in wastewater by dissolved O2 at elevated temperature/pressure (kept liquid, not flashed to steam) -- a real, widely licensed generic technology (Zimpro and equivalents), not Linde-proprietary IP, so it's built directly from the real, exactly mass-balanced combustion reaction of a standard WAO test/design compound: phenol (C6H5OH + 7 O2 -> 6 CO2 + 3 H2O). Phenol is the compound most WAO literature uses as the reference organic for design/kinetic studies, not an arbitrary choice. Honesty note: the 95% phenol destruction used here is representative of published WAO performance at adequate severity, not a fitted rate law -- there is no cited kinetic model in this codebase for phenol WAO, so (matching the fixed-conversion-reactor posture used throughout this codebase when kinetics aren't available) this is a fixed-conversion reactor, not an Arrhenius rate expression.
Thermal oxidizer: VOC-laden waste-gas incineration
A dilute VOC-laden air stream preheats and combusts completely at typical thermal-oxidizer operating temperature (~1100 K / 827degC, in the 750-870degC range these units commonly run at for reliable VOC destruction), destroying toluene (a standard VOC surrogate) to CO2 + H2O (C7H8 + 9 O2 -> 7 CO2 + 4 H2O, exactly mass-balanced) at 99.9% destruction-and-removal efficiency (DRE) -- the real regulatory benchmark figure widely cited for thermal oxidizers/incinerators (e.g. the hazardous-waste-incinerator DRE standard), not a fabricated number. This is generic combustion-based air-pollution-control technology, not Linde-proprietary IP -- built the same way fired_heater.py already models fuel-gas combustion, applied here to a waste-destruction duty instead of a process-heating duty. Honesty note: no NOx formation chemistry is modeled (matching fired_heater's own disclosed bounded scope), and heat recovery (regenerative/recuperative preheat of the incoming waste-gas stream, standard on real thermal oxidizers to cut fuel demand) isn't modeled -- the preheat duty here is a plain utility heater, not a heat-integrated exchanger.
Hydrogen liquefaction with catalytic ortho-para conversion
A Linde-Hampson JT-cycle liquefaction loop for H2 (the same recycle topology as helium-liquefaction), but H2's real liquefaction process needs one more step helium doesn't: normal H2 feed is ~75% ortho-/25% para-spin-isomer, while the equilibrium mix at liquid-H2 temperature is ~99.8% para -- liquefying without converting first leaves the ortho fraction far above its new equilibrium value, and its slow natural relaxation releases heat (the textbook explanation for uncatalyzed LH2 tanks self-boiling). This closes a real gap: `ortho_para_converter.py` (a catalytic cold-box converter, real equilibrium-para-fraction statistical mechanics) existed in this codebase but was never wired into a showcase example -- and turned out to also be missing from the backend's unit-type validation catalog entirely (fixed alongside this example, in `catalog.py`). Precooling to 30 K (deep enough that H2's JT effect actually condenses it -- verified numerically: 77 K/60 K/45 K precool all give zero liquid yield at 20 atm -> 1.3 atm here, since H2's JT-cooling window needs real precooling well below LN2 temperature, unlike simpler gases) also happens to sit right where the ortho-para conversion actually matters. Honesty notes: (1) real plants reach this depth of precooling via a multi-stage refrigeration cascade (LN2 first stage, then a closed H2 or He Brayton/turboexpander cycle) -- collapsed here into one utility `heater` node, same simplification as every other liquefaction example in this codebase; (2) the converter's `approach_to_equilibrium=0.9` is a stage-efficiency simplification (no cited Fe2O3/Cr2O3 rate constant exists to verify a real kinetic model), disclosed in the unit op's own docstring, not fabricated here.
Flue-gas CO2 capture by solid-sorbent adsorption
A generic solid-sorbent (zeolite-13X-class) adsorption capture step on real combustion flue gas (13 mol% CO2 -- typical of a natural-gas- or coal-fired flue gas, a much higher CO2 partial pressure than direct-air-capture's ~400 ppm case, which is why this uses the existing `Adsorption` unit op's real competitive-Langmuir isotherm directly on the flue-gas stream rather than the fixed-recovery `separator` shortcut the existing DAC examples use). Adsorption-based flue-gas capture is a real, generically licensed technology category (Linde's HISORP CC targets exactly this application); the isotherm parameters here are representative order-of-magnitude values for a zeolite-13X-class sorbent's CO2/N2/O2/H2O selectivity (real published 13X studies show CO2 adsorbing roughly an order of magnitude more strongly than N2/O2, and water more strongly still, competing for capacity), not pinned to one specific cited paper's exact figures -- disclosed as representative, matching this codebase's convention when a precise source isn't confidently pinnable, rather than presenting invented precision. Adsorbent inventory (adsorbent_mass) is sized to a real, honest ~96% CO2 capture rate -- not assumed/rounded to a marketing-friendly number. Honesty note: water's strong, competing adsorption on 13X is a real effect this model reproduces (the captured stream carries substantial co-adsorbed water, not pure CO2) -- a real plant would dry the flue gas upstream or use a water-tolerant sorbent, neither of which is modeled here; also, this is the equilibrium single-pass building block a real cyclic PSA/TSA process would be built from (per the unit op's own docstring), not the actual pressure/temperature-swing regeneration cycle.
Acetylene recovery from cracked gas (selective solvent absorption)
The other real use of cracked-gas acetylene: instead of being hydrogenated away as a trace impurity (see naphtha-steam-cracker's ACETYLENE_HYDRO step and patent-c3-selective-hydrogenation), acetylene is deliberately RECOVERED as product when present at high enough concentration -- industrially via selective solvent absorption (DMF or NMP preferentially dissolve acetylene over the other light hydrocarbons), then stripped back out to release a pure acetylene stream. Honesty note: no cited DMF/NMP-hydrocarbon binary VLE data exists in this codebase to build a rigorous absorber/stripper, so this uses the same fixed-recovery `separator` shortcut this codebase's existing amine/CO2-capture examples already use for exactly this situation (e.g. blue-hydrogen-smr-ccs's CO2 capture step) -- a disclosed simplification of a real physical separation, not a claim of rigorous solvent thermodynamics.
LDPE: high-pressure free-radical ethylene polymerization
Low-density polyethylene is genuinely made by free-radical polymerization of ethylene at very high pressure (~2000 atm here, in the real 1500-3000 atm industrial range) and high temperature -- the exact kinetics this codebase's existing `polymerization` unit op already models (Arrhenius CSTR, method-of-moments Mn/Mw/PDI), previously only ever demonstrated on an arbitrary 'ethanol' stand-in monomer with a fictional molar mass. This uses the real monomer (ethylene, real molar mass 28.05 g/mol) and the real thermo package for it (peng-robinson, not the alcohol/water-tuned NRTL the placeholder examples used). Honesty note: this reactor's rate constants (kp0/kt0/kd0/activation energies) are the same illustrative generic defaults every existing example using this unit op already relies on -- no cited literature rate constant for high-pressure ethylene free-radical polymerization specifically is used here (a genuine, disclosed gap, not a fabricated citation). What IS tuned to a real target is `initiator_conc`: picked so the resulting Mn (~25,000 g/mol) lands in real LDPE's published typical molecular-weight range (roughly 20,000-40,000 g/mol), rather than an arbitrary initiator level -- the genuine output of this model at that setting, not an assumed number.
H2 recovery from purge gas by gas-permeation membrane
A real technology gap this codebase had no unit op for at all: gas-phase membrane separation (the existing `membrane` op is liquid-phase reverse osmosis, not gas permeation). Built here as a new `gas_membrane` unit op -- solution-diffusion transport (real textbook model), solved as the coupled fixed point it actually is (both outlet compositions depend on every component's flux, which depends on both outlet compositions) via a proper Newton-type root-find rather than naive fixed-point substitution, which was tried first and found to genuinely oscillate for a stiff permeance*area product -- see the unit op's own module docstring. Demonstrates the textbook H2-recovery application: a high-pressure purge/off-gas (H2/CH4/N2, e.g. from an ammonia loop or hydroprocessing unit) crosses a polyimide-class membrane, H2 permeating far faster than the other species. Honesty note: the permeance values used are representative order-of-magnitude figures for a polyimide-class membrane's real H2/CH4/N2 selectivity pattern (H2 permeates markedly faster than either), not digits pinned to one specific cited membrane material/thickness -- disclosed as representative rather than presenting invented precision, the same posture used elsewhere in this codebase when an exact source isn't confidently pinnable. The single-stage recovery shown (~32% of the feed H2, at ~96% permeate purity) is a real, honest limitation of one membrane stage -- real plants cascade multiple stages for higher overall recovery, not modeled here.
LNG regasification via submerged combustion vaporizer
A real LNG-terminal regasification technology: fuel gas burns submerged in a water bath, and the hot combustion products bubbling through that bath transfer heat (via submerged tube coils) to vaporize the incoming LNG -- no new unit-op physics needed here, since this codebase's existing `fired_heater` already models exactly the energy balance this needs (Q_process = efficiency * Q_released from real fuel-gas combustion stoichiometry, then a duty-driven (P,H) flash on the process-side stream) and doesn't care whether that process stream starts liquid or vapor -- feeding it cryogenic liquid methane and specifying a target outlet temperature above its boiling point genuinely vaporizes it through the same mechanism. Honesty note: the water bath itself (its own thermal mass, the bubble-column heat-transfer coefficient, tube-coil geometry) isn't separately modeled -- the water bath is a heat-transfer PATH, not a separate energy-balance node, so representing it as fired_heater's existing efficiency-scaled duty transfer is honest, not a shortcut around missing physics (the same 'indirect utility duty stands in for the real mechanical path' posture already used by rotary_kiln's wall-temperature model elsewhere in this codebase).