MaximaLabs
All unit operations

Crude distillation (CDU) simulation

1 crude feed -> distillate + side cuts + bottoms (in order)

Governing equations

The exact equations the solver works for a crude distillation (cdu) — the same math shown in the app's "Theory" panel, not a black box.

MESH column (see distillation) over the wide-boiling crude feed\text{MESH column (see distillation) over the wide-boiling crude feed}
cutk=liquid drawn at stage jk(default carve: composition and T taken from the converged tray)\text{cut}_k = \text{liquid drawn at stage } j_k\quad(\text{default carve: composition and } T \text{ taken from the converged tray})
Δbalance=kn˙k(xi,drawkxi,bot)(the carve’s knowingly-open per-component term)\Delta_{balance} = \sum_k \dot n_k\,(x_{i,draw_k} - x_{i,bot})\quad(\text{the carve's knowingly-open per-component term})
D+kcutk+B=F per component(rigorous_draws: side draws solved as real NS-MESH withdrawals)D + \textstyle\sum_k \text{cut}_k + B = F\ \text{per component}\quad(\text{rigorous\_draws: side draws solved as real NS-MESH withdrawals})
FF
crude feed molar flow [mol/s]
DD
overhead distillate flow [mol/s]
BB
bottoms (residue) flow [mol/s]
cutk\text{cut}_k
side-draw product k (kerosene, diesel, gas oil…) [mol/s]
jkj_k
tray the cut is drawn from — cuts come out volatility-ordered because their trays are
xi,drawkx_{i,draw_k}
liquid mole fraction of i on that draw tray
xi,botx_{i,bot}
liquid mole fraction of i in the bottoms
Δbalance\Delta_{balance}
the per-component error the default carve knowingly leaves open — set rigorous_draws=True to close it

Parameters

n_stages, feed_stage, reflux_ratio, distillate_to_feed [0..1], pressure [Pa], side_draws [[{stage, fraction}] — liquid cuts taken at trays between feed and top; distillate+draws fractions must sum < 1]. Outlets/edges in order: distillate, cuts…, bottoms. Use with petroleum-cut components / pseudocomponents under peng-robinson.

Example flowsheets that use it

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