Sour-gas sweetening — six-category footprint — a PENG-ROBINSON process flowsheet
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.
1 views 0 forks
- Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
- 4 unit operations modeled: Regen, 2× Vocko, 2× Ventvoc, COMP.
- Focus areas: Sustainability, Emissions, Sour gas, Six impact categories.
- Thermodynamics
- PENG-ROBINSON
- Components
- methane, ethane, co2, h2s, benzene, ammonia
- Unit operations
- Regen2× Vocko2× VentvocCOMP
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("sour-gas-sweetening-emissions")
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
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.
Post-combustion CO₂ capture
A separator recovers 90% of the CO₂ from a flue-gas stream — the sustainability layer then tracks the captured tonnes.
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.
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.
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.
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.