MaximaLabs
Back to gallery
Light naphtha isomerization unit, Corpus Christi, Texas, USA

C5/C6 isomerization: why the colder catalyst wins — a PENG-ROBINSON process flowsheet

The light end of a gasoline pool. Straight-chain C₅/C₆ paraffins have poor octane, their branched isomers have good octane, and the reaction between them is a simple reversible exothermic rearrangement. Which means the equilibrium gets worse as the reactor gets hotter — and that single fact, not activity, is the technology choice in this unit. Run the built-in temperature sweep: this light straight-run naphtha reaches 74.9% iso-C₅ and 67.2% iso-C₆ at 400 K (the chlorided-alumina window) and only 65.3% and 57.6% at 530 K (the zeolitic window). A chlorided-alumina catalyst does not beat a zeolite by being more active; it beats it by approaching a better equilibrium. That is also why the two are not interchangeable in a revamp — a zeolitic unit cannot be pushed to alumina octane by running harder, only by running colder than its catalyst allows. Two things the flowsheet shows directly: moles are conserved exactly (one molecule in, one molecule out — 100.00000 mol/s out for 100 in, the module's own gate), and the benzene and cyclohexane in the feed pass through untouched at 4.00% and 6.00%, because a component named in no pair is not something this block pretends to convert. Only two pairs are written (n-pentane/isopentane and n-hexane/2-methylpentane) and that is deliberate: pairs are applied in sequence over a shared mole pool, so two pairs sharing one normal would let the second redistribute what the first already converted. A real C₆ network (n-hexane / 2-MP / 3-MP / 2,2-DMB / 2,3-DMB, each with its own equilibrium) is a coupled problem this block does not solve — see the.

Modeling assumptions & limitations

  1. 1In. **K_ref and the heat of reaction are inputs, not predictions**: they come from the catalyst licensor or a pilot run and differ by catalyst, so the ones here are illustrative, fitted to put the unit in the published operating window rather than taken from a source. The fitted heats land at -6.9 and -6.0 kJ/mol, the right magnitude for a paraffin skeletal isomerization — a sanity check on the fit, not a citation. `approach_to_equilibrium` (0.96 here) is where a real catalyst's shortfall against equilibrium goes, and is likewise the caller's to supply. **Octane is deliberately not reported.** The block returns it only when given a `research_octane` table, because pure-component RON is published but blending octane is not linear — a component's contribution to a real pool differs from its pure value, sometimes by several numbers — so a shipped table would hand back a blend calculation the number cannot support. Not modelled: kinetics and space velocity, catalyst deactivation, chloride injection, hydrocracking side reactions, benzene saturation (a real duty in a modern ISU), and the deisohexanizer recycle that a real unit uses to push past single-pass equilibrium — that last one is a flowsheet you draw around this block, not something it does internally. Refs: Meyers
  2. 2Handbook of Petroleum Refining Processes ch. 9; Gary, Handwerk & Kaiser, Petroleum Refining ch. 11.

35 views 0 forks

LSR Naphtha
ISOM
Isomerate
What this showcases
  • Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
  • 1 unit operations modeled: ISOM.
  • Focus areas: Isomerization, Refining, Octane, Equilibrium, Light naphtha, ISU.
Specification
Thermodynamics
PENG-ROBINSON
Components
n_pentane, isopentane, n_hexane, 2_methylpentane, benzene, cyclohexane
Unit operations
ISOM
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("isomerization-c5-c6")
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

Hydrocracker complex, Jamnagar, India

Hydrocracking reaction section

A refinery hydrocracker: heavy VGO (modeled as n-dodecane) plus excess H₂ is cracked over catalyst into lighter products via a discrete lumped first-order kinetic network, then flashed to knock out recycle H₂/light gas from the liquid product (Peng-Robinson). Conversion is set by reactor temperature and LHSV.

Hydrocracker complex, Jamnagar, India

Hydrocracking fractionation train

The standard downstream train a hydrocracker reaction section feeds into: a high-pressure separator knocks the H₂-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.

Contact process (H2SO4 plant)

Sulfuric acid: catalytic SO2 oxidation (contact process)

The heart of a sulfuric-acid plant: roaster/burner gas (SO₂ in excess air) is oxidized to SO₃ over a vanadium-pentoxide catalyst bed, then the SO₃ is absorbed to make acid. The converter is a Gibbs-minimization reactor (Aspen RGibbs equivalent) that finds the SO₂ ⇌ SO₃ equilibrium from first-principles formation energies — no assumed conversion — so it captures the real design tension of the contact process: the reaction SO₂ + ½O2 → SO₃ is exothermic, so a lower bed temperature drives the equilibrium toward SO₃ (higher conversion) while a higher temperature is needed for catalyst activity. At 700 K this converts ~99% of the SO₂; raise the sensitivity temperature and watch the equilibrium conversion fall — the reason real plants use multiple catalyst beds with interstage cooling. The SO₃-rich gas then goes to an absorption tower (modeled as SO₃ capture into the acid product, leaving a spent tail gas of N₂ + excess O₂). Formation-energy source: CRC Handbook / NIST-JANAF (ΔHf°/ΔGf° for SO₂ and SO₃).

Blue-H2 / CCS plant, Teesside, United Kingdom

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.

Sulfur recovery unit, Rotterdam, Netherlands

Claus sulfur recovery unit (SRU): the 2:1 ratio that sets the ceiling

The back end of the amine train, and the unit that keeps a refinery's sulfur out of the atmosphere. Acid gas off an amine regenerator (60% H₂S, 36% CO₂) is part-burned in a reaction furnace, then reacted over two catalyst beds with sulfur condensed between them. The whole design follows from one number. The furnace burns a fraction phi of the H₂S to SO₂ (H₂S + 3/2 O₂ → SO₂ + H₂O); the Claus reaction then consumes them at 2:1 (2 H₂S + SO₂ → 3 S + 2 H₂O). Burn exactly one third and the effluent arrives at precisely 2 H₂S per SO₂, so neither reagent is left over — which is why air demand, not catalyst, is the manipulated variable in every real Claus plant. Off-ratio, the excess reagent walks straight through to the tail gas and recovery is capped by a stoichiometric ceiling min(3phi, 3(1-phi)/2) that no amount of catalyst can beat. Run the built-in combustion-fraction sweep to see it: recovery peaks at 95.3% at phi = 1/3 and falls away symmetrically — 85.8% at phi = 0.30 and also 85.8% at phi = 0.40, 71.5% at phi = 0.25 and also at phi = 0.50, because the ceiling's two branches cross at one third. Air demand is not symmetric though (128.6 vs 171.4 mol/s at those same two points), so over-firing costs blower duty on top of the lost sulfur. At the design point the unit makes 57.17 mol/s of liquid sulfur from 60 mol/s of H₂S against a 142.9 mol/s air demand, and the 2.84 mol/s of sulfur reaching the tail gas is still at exactly 2:1 H₂S/SO₂ — the unconverted reagents leave in the ratio they were fed, which is what a tail-gas treating unit downstream is sized for. The sulfur atom balance closes exactly (60.000 mol/s S in, 57.165 as liquid sulfur + 2.835 in the tail gas). Staging is why two beds get to 95%: each converts a fraction of what is left, so X_total = 1 - (1-X_thermal)*prod(1-X_i) — 0.65 thermal then 0.70 and 0.55 catalytic.

Reference model (three-lump riser)

FCC riser: the gasoline optimum

A fluid catalytic cracking riser — the unit that makes most of a refinery's gasoline — showing the one result that decides how you run it. Gas oil cracks to gasoline, but gasoline overcracks to gas and coke, and the catalyst deactivates as coke lays down. Those three together mean gasoline goes through a MAXIMUM in contact time: past the optimum, running the riser harder destroys product while conversion keeps climbing. Open the sensitivity and the curve draws itself — that hump is the whole point. A first-order network (all hydrocracker can express) makes gasoline rise monotonically with conversion and would recommend exactly the wrong operation. The cat/oil ratio is computed, not chosen: cracking is endothermic and the only heat source is the sensible heat of hot regenerated catalyst, so the circulation follows from a heat balance and lands in the real 5-10 band. That is the number tying the riser to the regenerator an operator actually turns — raise the regenerator temperature and watch it fall. The rate constants here are illustrative and are NOT any real feed's kinetics. The unit op deliberately ships none: an FCC lump matrix is regressed from one feed on one catalyst, it is licensor-proprietary, and a fabricated one would decide the answer while looking authoritative. A riser without constants fails validation and says why. Bring your own regression and this becomes your riser. Bounded: three lumps (no per-cut gasoline detail), isothermal riser (a real one drops 30-60 K as the endotherm bites), no catalyst/vapour slip, and no regenerator — coke burn and the air rate are a separate unit this does not model.

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