MaximaLabs
Back to gallery
NGL fractionation, Mont Belvieu, Texas, USA

Rate-based distillation (Maxwell-Stefan, ChemSep-style) — a PENG-ROBINSON process flowsheet

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% C₅) 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).

195 views 0 forks

FEED
feed
dist
btms
COL
DIST
BOT
What this showcases
  • Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
  • 1 unit operations modeled: COL.
  • Focus areas: Rate-based, Maxwell-Stefan, Nonequilibrium, Distillation, Mass transfer.
Specification
Thermodynamics
PENG-ROBINSON
Components
n_pentane, n_hexane, n_heptane
Unit operations
COL
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("rate-based-ternary-distillation")
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

Pekin, Illinois, USA

Ethanol–water distillation

An 8-stage column concentrating ethanol overhead toward the azeotrope (the headline demo).

Tray efficiency — real trays vs ideal stages

The same ethanol–water column solved with a Murphree vapor tray efficiency of 0.7 instead of ideal equilibrium stages. A real sieve/valve tray never reaches full vapor-liquid equilibrium — the vapor leaving it only partly approaches the equilibrium composition with the tray liquid, mixing in un-equilibrated vapor from the tray below: y = E·K·x + (1−E)·y_below (Murphree 1925). At E = 0.7 each of these 12 trays does 70% of an ideal stage's work, so the overhead ethanol is lower than an equilibrium column of the same tray count would predict — which is exactly why a real column needs more trays than a shortcut (ideal-stage) calculation says. Both HYSYS and Aspen RadFrac expose this per-tray efficiency; set murphree_efficiency back to 1.0 to recover the ideal-stage column. The efficiency auto-selects the component-flow Naphtali-Sandholm solver (the reduced-form solvers carry no explicit per-tray VLE row to apply an efficiency to).

Reference model

Distillation column startup dynamics (feed-rate step)

An 8-stage ethanol-water column at a reduced startup feed rate. Solves the steady state normally; switch to the Dynamic solve mode with weir/level-controlled hydraulics enabled and step the feed rate up (e.g. 6 → 9 mol/s) to watch the bottoms draw genuinely rebalance to the new throughput as the tray inventories fill — a feed-rate disturbance no fixed-hydraulics dynamic model (incl. this same column's own default rigorous mode) can show at all. Honest bound: the vapor traffic is held at its steady-state value in this mode, so the distillate draw (condenser-level-controlled off vapor inflow) does not move for a feed-rate-only step — only the liquid/bottoms side responds.

Gas plant, Permian Basin, Texas, USA

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.

Gas plant, Permian Basin, Texas, USA

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.

Reference model (ChemSep)

Acetone–water distillation

A 12-stage column recovers acetone overhead from a dilute aqueous solvent-recovery feed — a common industrial acetone/solvent-recycling duty.

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