Blue hydrogen with rigorous amine capture (multi-thermo) — a PENG-ROBINSON process flowsheet
The blue-hydrogen train done properly: steam-methane reforming and water-gas-shift run on a cubic gas EoS (Peng-Robinson), while the CO₂ 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 CO₂ by real reactive equilibrium (H₂/CO/CH₄ pass through as insoluble gases), delivering ~94% H₂ with the CO₂ driven to trace and a rich amine at a realistic ~0.7 mol CO₂/mol amine loading.
Modeling assumptions & limitations
- 1Streams 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; the reforming/shift Keq are representative equilibrium magnitudes.
348 views 6 forks
- Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
- 4 unit operations modeled: 2× WGS, 2× Cool2, Knockout, ABS.
- Focus areas: Blue hydrogen, Multi-thermo, Amine capture, MDEA, Electrolyte, CCS.
- Thermodynamics
- PENG-ROBINSON
- Components
- methane, water, co, co2, h2, mdea, pz
- Unit operations
- 2× WGS2× Cool2KnockoutABS
Opens in a new tab, loaded straight into the app — no setup.
Read the step-by-step guideReproduce this exact result from Python — the real client.get_example() → run_and_wait() path, not a mockup.
from flowsim.sdk import FlowSimClient
client = FlowSimClient()
example = client.get_example("blue-hydrogen-amine-multithermo")
sim = client.create_simulation(example["title"], example["flowsheet"])
result = client.run_and_wait(sim["id"])
print(result["status"]) # "converged"
streams = client.streams(sim["id"])Related models
High-CO2 LNG with amine capture and CO2 reinjection
One 5.3 Mtpa LNG train on a reservoir whose gas is 14 mol% CO₂, where the CO₂ is not vented but compressed to dense phase and injected — 2.8 Mtpa of it, at 200 bar, which is the scale that makes this a storage project rather than a gesture. Two things make this different from every other LNG example here. First, the acid-gas removal is real chemistry, in the same flowsheet as the cryogenics: per-node thermo_overrides run the absorber, the rich/lean loop and the stripper on the 'enrtl-mdea-pz' electrolyte package (MDEA protonation + piperazine carbamate/dicarbamate speciation) while the gas train and the cold end run Peng-Robinson — the amine unit and the MCHE are not two models bolted together, they are one solve. Second, the CO₂ goes somewhere: the stripper overhead is knocked back, two-stage compressed with interstage cooling and drying, and pumped to 200 bar as a ~96 mol% dense-phase stream ready for a reinjection well, rather than leaving as a vent. The sweet gas is water-washed, dried and liquefied in the C3MR cold end to LNG at ~116 K.
MDEA bulk CO2 removal from shifted syngas
Bulk CO₂ removal ahead of a hydrogen or ammonia unit on N-methyldiethanolamine, the tertiary amine that forms no carbamate and so carries up to one mole of CO₂ per mole as bicarbonate: 200 mol/s of shifted syngas (18% CO₂, 70% H₂) at 30 bar against 450 mol/s of 45 wt% MDEA (11 mol%), regenerated at 1.8 bar with steam. The enrtl-mdea package uses the proton-acceptor speciation only. What it computes: the treated syngas at 85% H₂ / 12% CO with the CO₂ gone, a rich loading of 0.75 mol/mol, a 37 mol/s CO₂ product at 94 mol% and 2.7 MW on the rich heater. Bounds: Kremser stages (the K at the entering liquid, so the absorber captures to completion where a real MDEA absorber is kinetically slow and leaves a slip), open loop, and the loading model caps at 0.99 — the solvent rate is set so the rich end stays well below it, because past the cap the model keeps absorbing.
Refinery acid-gas treating: MDEA/PZ absorber-stripper
Simultaneous CO₂ AND H₂S 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 + CO₂/HCO₃-/CO₃-- + H₂S/HS- + water) with Davies activity — it correctly reproduces piperazine's promotion (the blend holds more CO₂ at a given partial pressure than MDEA alone).
Blue hydrogen: SMR + water-gas-shift + CO2 capture
A low-carbon (blue) hydrogen train: steam-methane reforming converts natural gas + steam to syngas (CH₄ + H₂O <=> CO + 3H2) at 1123 K, a water-gas-shift reactor converts the CO with more steam to extra H₂ + CO₂ (CO + H₂O <=> CO₂ + H₂), the gas is cooled, the process water knocked out, and 96% of the CO₂ 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, and each reactor's Keq is COMPUTED from its species' formation properties with ideal-gas Cp(T) integrated to the reactor temperature ('keq_from_gibbs') rather than typed in: 80.0% CH₄ conversion at 1123 K and an 11x CO knock-down at 620 K are what the thermodynamics give, not numbers chosen to look right. (This card previously stated Keq = 800 for the reformer where the formation properties say 500, and claimed ~85% conversion on the strength of it.).
MEA post-combustion CO2 capture (electrolyte NRTL)
The reference amine process on the reference amine: flue gas (12% CO₂ at 1.1 bar, 313 K) scrubbed with 30 wt% aqueous monoethanolamine at a lean loading of 0.20 mol CO₂ per mol MEA, the rich solvent pumped and heated to 388 K, steam-stripped at 1.9 bar, and the overhead condensed at 313 K into a CO₂ product and a reflux-water stream. It runs on the enrtl package — carbamate/bicarbonate/protonation speciation with Davies activity, the CO₂ partial pressure a function of loading and temperature — which is what sets the rich loading of 0.53 mol/mol the absorber reaches and drives the stripper the other way at 390 K. What it computes: 24 mol/s of CO₂ into 695 mol/s of rich solvent, a 39 mol/s CO₂ product at 94 mol% after the condenser knocks out 109 mol/s of water, 3.9 MW of rich-solvent heating for 650 mol/s of circulation (the sensible-heat penalty the sensitivity sweep traces against solvent rate) and 6.8 MW of overhead condensing.
AMP post-combustion CO2 capture (hindered amine)
The MEA capture loop run on 2-amino-2-methyl-1-propanol: the same flue gas (12% CO₂ at 1.1 bar), 30 wt% AMP (8 mol%) at a lean loading of 0.10, steam stripping at 1.9 bar and an overhead condenser. AMP is sterically hindered — its carbamate is unstable, so CO₂ goes to bicarbonate and one mole of amine can carry one mole of CO₂ where MEA's carbamate stoichiometry stops at half — and the enrtl-amp package's speciation reproduces that: the rich loading comes out at 0.70 mol/mol against the MEA card's 0.53, so 500 mol/s of solvent does what 650 mol/s of MEA did, with 3.1 MW on the rich heater instead of 3.9. The CO₂ product is 27.7 mol/s at 93 mol%. Same.