MaximaLabs
Thermodynamics

The physics engine, not a black box

Every unit op calls the same flash calculation thousands of times. It's built on Rachford-Rice vapor-fraction solving, successive substitution on K-values, and a Newton-Raphson polish — and validated against a named reference dataset, not just 'looks right.'

Mixed feed
Flash drum
Vapor
Liquid

A flash drum — the foundational calculation every unit op calls thousands of times, live and draggable.

See the math

The exact vapor-liquid equilibrium equations solved at every flash call — fetched live from the same catalog the in-app math panel renders.

Ki=yixi=γiPisat(T)PK_i = \frac{y_i}{x_i} = \gamma_i\,\frac{P_i^{sat}(T)}{P}
izi(Ki1)1+ψ(Ki1)=0(Rachford-Rice)\sum_i \frac{z_i\,(K_i-1)}{1+\psi\,(K_i-1)} = 0 \quad(\text{Rachford-Rice})
xi=zi1+ψ(Ki1),yi=Kixix_i = \frac{z_i}{1+\psi(K_i-1)},\qquad y_i = K_i x_i
Symbols
K
equilibrium ratio K=y/x — how strongly a component favours the vapour; K>1 boils off, K<1 stays in the liquid
y
vapour-phase mole fraction
x
liquid-phase mole fraction
z
overall feed mole fraction — what splits between the two phases
\psi
vapour fraction — the share of the feed that flashes to vapour (Rachford-Rice solves for it)
\gamma
liquid activity coefficient — the non-ideality correction; γ=1 is an ideal mixture, γ>1 means the components 'dislike' mixing and volatility rises
P^{sat}
pure-component vapour pressure [Pa] — how eager a pure component is to boil at this temperature
P
system pressure [Pa]
T
temperature [K]

Live from the same catalog the app's own "math" tab renders — not a screenshot.

NRTL Txy phase diagram and equilibrium x-y plot for ethanol-water

Txy envelope + x-y equilibrium — the same NRTL package behind the headline demo.

Residue-curve map with azeotrope detection for ethanol, water, and methanol

Residue-curve mapping with automatic azeotrope detection.

Engine capabilities

What this solver actually handles, not a feature-list promise.

Peng-Robinson & Soave-RK

The default cubic equations of state for hydrocarbon and light-gas systems — pressure, density, and fugacity from the same consistent EoS across the whole flowsheet.

NRTL & UNIQUAC for non-ideal liquids

Activity-coefficient models for polar and alcohol-water systems, including the ethanol-water binary interaction parameters the headline distillation demo depends on.

IAPWS steam tables

Industry-standard water/steam properties for utility and power-cycle streams, alongside the general-purpose EoS packages.

Electrolyte NRTL

Aqueous-electrolyte activity coefficients for acid-gas and salt systems, including the CO2-MEA carbon-capture chemistry the eNRTL package is scoped to.

Rachford-Rice flash, always

Wilson K-value estimates seed a Rachford-Rice vapor-fraction solve, refined by successive substitution and a Newton-Raphson polish — handling subcooled, superheated, and two-phase streams the same way everywhere.

Validated, not assumed

Flash and phase-equilibrium behavior are checked against published reference data with a stated acceptance tolerance, so a converged result means something — not just that the solver stopped iterating.

Scripted from Python

The same engine, called from the flowsim SDK.

from flowsim.sdk import FlowSimClient

client = FlowSimClient()
packages = client.thermo_packages()  # GET /api/thermo-packages
flowsheet["thermo_package"] = "nrtl"
sim = client.create_simulation("Flash separation", flowsheet)
client.run(sim["id"])

See it on your own process

Every number on this page comes from a real, converged flowsheet — open the workspace and run one yourself.

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