Expand description
§stages-thermo — a staged-separation (distillation) column solver
stages-thermo is a learning library and a fast steady-state column
engine for staged separations. It walks the full pedagogical ladder —
McCabe–Thiele → Ponchon–Savarit → Fenske–Underwood–Gilliland shortcut →
rigorous MESH (Wang–Henke, Burningham–Otto, Naphtali–Sandholm) — with every
method implemented from scratch and anchored to its textbook equations, and
it exposes a granular, batch-capable API (“numpy for distillation columns”).
The thermodynamics — K-values, enthalpies, and their derivatives — come
entirely from vle_thermo. This
crate adds no thermodynamics of its own; it is the first downstream consumer
of vle-thermo. See PLAN.md §1 for the full vision.
§Status
Milestone 1 (column model + McCabe–Thiele). Implemented so far:
thermo— the adapter over vle-thermo 0.9.x:thermo::ThermoSystemwith database-loaded components, φ-φ (Peng–Robinson) and γ-φ (van Laar) routes, bubble-point evaluation.- [
column] — the binary-sufficient column model (column::BinaryColumn,column::Feed,column::CondenserKind). binary— the equilibrium curve (binary::EquilibriumCurve) and the full McCabe–Thiele construction ([binary::mccabe_thiele]): operating lines, q-line, stage stepping, R_min with tangent-pinch detection, total reflux (N_min), N(R), Murphree efficiency.
The remaining method modules (shortcut, rigorous, numerics) land
milestone by milestone per ROADMAP.md; the target module tree is
documented in PLAN.md §6.
§Design rule (PLAN §7)
Exactly one module talks to vle-thermo: thermo. Everything else
consumes it through a provider interface, so a surrogate thermo model (the
inside-out inner loop, a stretch milestone) or a test mock can slot in
without touching the solvers.
Modules§
- binary
- Binary (two-component) staged-separation methods — rungs 1–2 of the pedagogical ladder (PLAN §4).
- column
- The column domain model — the objects every method shares.
- thermo
- The thermodynamics adapter — the only module that imports
vle_thermo(PLAN §7). - types
- Core error and report types shared across the crate.
Functions§
- version
- Return this crate’s version string (matches
Cargo.toml).