MaximaLabs
All unit operations

Shortcut distillation (FUG) simulation

feed -> distillate + bottoms

Governing equations

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

αi=Ki(Tbub,F)/KHK(Tbub,F)(relative volatility, evaluated once at the feed bubble point)\alpha_i = K_i(T_{bub,F})\,/\,K_{HK}(T_{bub,F}) \quad(\text{relative volatility, evaluated once at the feed bubble point})
Nmin=ln ⁣[(xD,LK/xD,HK)(xB,HK/xB,LK)]lnαLK(Fenske, minimum stages at total reflux)N_{min} = \frac{\ln\!\left[(x_{D,LK}/x_{D,HK})\,(x_{B,HK}/x_{B,LK})\right]}{\ln\alpha_{LK}}\quad(\text{Fenske, minimum stages at total reflux})
iαiziαiθ=1q,Rmin+1=iαixD,iαiθ(Underwood, θ between αHK=1 and αLK)\sum_i \frac{\alpha_i z_i}{\alpha_i - \theta} = 1 - q,\qquad R_{min} + 1 = \sum_i \frac{\alpha_i x_{D,i}}{\alpha_i - \theta}\quad(\text{Underwood, } \theta \text{ between } \alpha_{HK}{=}1 \text{ and } \alpha_{LK})
R=RRminspecRmin(default 1.3, or a user-specified R)R = \frac{R}{R_{min}}\Big|_{\text{spec}} \cdot R_{min}\quad(\text{default 1.3, or a user-specified } R)
x=RRminR+1,Y=1exp ⁣[1+54.4x11+117.2xx1x],N=Nmin+Y1Y(Gilliland/Molokanov, actual stages)x = \frac{R-R_{min}}{R+1},\quad Y = 1 - \exp\!\left[\frac{1+54.4x}{11+117.2x}\cdot\frac{x-1}{\sqrt{x}}\right],\quad N = \frac{N_{min}+Y}{1-Y} \quad(\text{Gilliland/Molokanov, actual stages})
(NrectNstrip)=[zHKzLK(xB,LKxD,HK)2BD]0.206(Kirkbride, feed-stage location)\left(\frac{N_{rect}}{N_{strip}}\right) = \left[\frac{z_{HK}}{z_{LK}}\left(\frac{x_{B,LK}}{x_{D,HK}}\right)^2\frac{B}{D}\right]^{0.206} \quad(\text{Kirkbride, feed-stage location})
α\alpha
relative volatility K_i/K_HK — how much more volatile a component is than the heavy key, evaluated once at the feed bubble point (the shortcut's one thermo call)
KK
equilibrium ratio K=y/x at the feed bubble point
LKLK
light key — the more-volatile of the two components the split is specified around
HKHK
heavy key — the less-volatile of the two components the split is specified around
NminN_{min}
Fenske minimum stages — the theoretical minimum at total reflux (infinite energy, zero product)
xDx_{D}
distillate mole fraction
xBx_{B}
bottoms mole fraction
zz
feed mole fraction
qq
feed thermal condition (1 = saturated liquid)
θ\theta
Underwood root — the common factor between the minimum-reflux vapour and liquid Underwood equations, bracketed between α_HK=1 and α_LK
RminR_{min}
Underwood minimum reflux — the least reflux that can still reach the specified split, at infinite stages
RR
actual reflux ratio — R_min scaled up by a safety factor (default 1.3) or set directly
NN
Gilliland/Molokanov actual stage count at the chosen reflux — always more than N_min, less at higher R
NrectN_{rect}
rectifying-section stages (above the feed)
NstripN_{strip}
stripping-section stages (below the feed)
DD
distillate molar flow [mol/s]
BB
bottoms molar flow [mol/s]

Parameters

light_key + heavy_key [feed component ids, required], recovery_lk_distillate/recovery_hk_bottoms [0..1, default 0.99], reflux_ratio [>0, optional — omit to use r_over_rmin x R_min], r_over_rmin [default 1.3, Gilliland R/Rmin ratio], pressure [Pa] — Fenske-Underwood-Gilliland-Kirkbride shortcut sizing (Aspen DSTWU equivalent), a fast screening estimate of stages/reflux/feed-stage from a light/heavy-key split, no per-stage profile. Feed -> distillate + bottoms. Always solves at shortcut fidelity; use `distillation` with fidelity='rigorous' for a full MESH solve

Example flowsheets that use it

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