MaximaLabs
Back to gallery
Port Arthur, Texas, USA

Diesel hydrotreater with closed H2 recycle + amine wash — a PENG-ROBINSON process flowsheet

Diesel (an n-hexadecane carrier with a dibenzothiophene sulfur slice) and hydrogen react over a trickle-bed-equivalent reactor (dibenzothiophene + 3H2 → biphenyl + H₂S, 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 H₂S 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.

170 views 0 forks

OIL FEED
H2 Makeup
MIX
Fired Heater
HDT Reactor
HOT HP SEP
COOL
COLD HP SEP
Amine Absorber
H2S Product
Recycle Split
Purge
Recycle COMP
Liquid MIX
Letdown
feed
dist
btms
Stripper
Stripper Overhead
Hydrotreated Diesel
What this showcases
  • Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
  • 9 unit operations modeled: 2× Liquid MIX, 2× COOL, HDT Reactor, 2× COLD HP SEP, Amine Absorber, Recycle Split, Recycle COMP, Letdown, Stripper.
  • Focus areas: Hydrotreating, Desulfurization, H2 recycle, Amine treating, Recycle.
Specification
Thermodynamics
PENG-ROBINSON
Components
n_hexadecane, dibenzothiophene, biphenyl, h2, h2s
Unit operations
2× Liquid MIX2× COOLHDT Reactor2× COLD HP SEPAmine AbsorberRecycle SplitRecycle COMPLetdownStripper
Open in workspace

Opens in a new tab, loaded straight into the app — no setup.

Read the step-by-step guide
Python SDK

Reproduce 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("refinery-hydrotreater")
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

Gorgon LNG, Barrow Island, Western Australia

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.

Amarillo, Texas, USA

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.

Erlangen, Germany

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 H₂-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.

Reference model

Recycle loop

A mixer/heater/splitter loop with a tear stream — exercises Wegstein recycle convergence.

Reference model (ChemSep)

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).

Reference model (ChemSep)

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).

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