Introduction to molecular thermodynamics, equations of state, equations for activity coefficients, thermodynamic property determination, multicomponent phase equilibrium, process analysis, and chemical equilibrium.
The whole course is one criterion — at fixed temperature and pressure a system settles into the state of lowest Gibbs energy — applied under steadily weaker assumptions. The first three modules build the quantity that criterion needs. The last three apply it, each one dropping an assumption the module before it relied on.
Modules 1–3 — building the quantity
How pressure, volume and temperature are related for a real fluid. It says how the fluid responds — not, by itself, which phase it will be in.
Equilibrium is governed by chemical potential, which has no absolute value and runs to minus infinity at zero pressure. Fugacity is constructed to replace it — and the equation of state is what computes it.
The same quantities for a mixture: partial molar properties, activity, excess Gibbs energy. Gibbs-Duhem then fixes what the last three can be, so the components cannot be modelled one at a time.
Modules 4–6 — applying it
Equal fugacity in both phases, with the model now fitted to measured data rather than derived. Where the course stops asking what the equations say and starts asking whether the data can be believed.
A flash returns a solution to the equations it was handed, and that need not be the lowest-energy state. The tangent plane test asks the question a flash cannot: is this the global minimum?
The same minimisation, constrained now by an element balance instead of by a phase split. Nothing new is introduced, and it ends at the calculation an equilibrium reactor block performs.
This page is the primary reference for the course. Work through it in module order — each one assumes the one before it. Modules 1 to 3 come before the midterm; Modules 4 to 6, from vapour-liquid equilibrium onwards, are the second half.
Slides open in the browser — nothing to download, and they work on a phone. Press F for full screen, E for a printable layout, ? for every shortcut. Every equation is live text, so it stays sharp at any zoom and can be copied.
Each notebook opens in Google Colab in one click. Nothing to install, no Python on your own machine, and the course toolkit downloads itself in the first cell. Reading a notebook is not doing it — change a number and find out what breaks.
Every module ends in a short set of questions. Write your answer down first, then open the model answer. A question you can only answer after reading the answer is a question you cannot answer.
Any number produced by a machine — your code, a library, or an AI assistant — must be reproduced by an independent route before you report it: from-scratch code, a reference implementation, or an analytical limit. An unverified result scores zero whether or not it happens to be right.
Slides open in the browser — no download, and they work on a phone. Press F for full screen, E for a printable layout, ? for every shortcut. Every equation is live text, so it stays sharp at any zoom.
A physics-driven perspective
Fifty-six slides tracing one argument: every equation of state was written because the previous one omitted physics that turned out to matter. Ideal gas to van der Waals to the cubics to SAFT to electrolyte models, with the cost of each addition made explicit.
Both parameters are fixed by the critical point alone, so the equation carries nothing about molecular shape or polarity — the role the acentric factor was later invented for. SRK and PR did not repair it; they fix Zc at 1/3 and 0.307 instead. A cubic can be made to reproduce Zc only by giving up accuracy elsewhere, and vapour pressure was judged worth more.
The volume dependence of the attractive term: the denominator becomes v(v+b) + b(v−b) rather than v(v+b). Saturated liquid density improves substantially; vapour pressure barely moves. That is why PR became the standard wherever liquid density feeds equipment sizing.
It is exact as an infinite series in density. Truncated after B or C it is limited to densities where the neglected terms are small — roughly up to half the critical density. A liquid is far outside that, and the higher coefficients are neither known nor usefully convergent there.
Fine for stage-by-stage distillation, which is driven by K-values and therefore by vapour pressure. Ruinous for anything sized by volume — vessel and line sizing, relief capacity, storage inventory, or a level inferred from density.
Why pressure is not the driving force
Chemical potential is the true driving force, it is unusable in raw form, and fugacity is the quantity constructed to make it usable. The module ends by deriving the Maxwell equal-area construction — presented in Module 1 as a recipe to be accepted — from equality of fugacity.
It has no absolute value — only differences from a reference are defined — and for an ideal gas it runs to −∞ as pressure goes to zero. A quantity with no zero and an infinite limit cannot be tabulated or compared across substances.
No. It is defined by RT d ln f = dμ at constant T, with f/P → 1 as P → 0. The units and the ideal-gas limit follow from that choice of reference; they are not the meaning. Two phases in contact are at the same pressure whether or not they are at equilibrium — it is equal fugacity that identifies equilibrium.
The liquid molar volume. The exponent is vL(P − Psat)/RT, so a compact liquid such as water needs several times the pressure above saturation that a bulky one such as n-hexane does before the correction reaches 1 per cent. Negligible near saturation, never negligible at high pressure.
Equality of fugacity between the two roots of the same isotherm. Write that condition out, integrate, and the equal-area statement drops out — the two are one equation reached from opposite ends, not two independent facts. The Module 2 notebook does this numerically and the two pressures agree to eleven figures.
Partial molar properties, activity, and the constraint that ties them
The mixture toolkit with the rigour Module 1 applied to pure fluids: partial molar properties, fugacity in a mixture, excess properties, activity and its reference state, and the Gibbs-Duhem constraint that makes an activity coefficient model a choice of excess Gibbs energy rather than an item on a list to memorise.
No. It says that adding a mole of that species at fixed T, P and other amounts decreases the total volume, because the added species orders and compresses the solvent around it — electrostriction, for small ions. It is a derivative of a mixture property, not a property of the molecule.
Gibbs-Duhem forbids it: at fixed T and P, x1 d ln γ1 + x2 d ln γ2 = 0, so choosing one fixes the other. A better pointwise fit that breaks the constraint is not a better model — it is a pair of curves that cannot both be true. Fit quality will never tell you this; only the residual will.
γ*(Henry) = γ(Lewis-Randall) / γ∞. Choose Henry when the pure liquid does not exist at the conditions of interest — a dissolved gas, or a solute above its critical temperature — because Lewis-Randall then needs a hypothetical reference state.
Not by itself. GE = HE − TSE, and the excess entropy term can carry all of it. Near room temperature ethanol/water has a positive GE with a negative HE — mixing releases heat — and the positive value comes entirely from −TSE. Separating them needs the temperature dependence.
Building an activity coefficient model from data
Four descriptions of the same equilibrium; the four classes of binary solution — ideal, positive deviation, negative deviation and partial miscibility — with the criterion that decides which one you have; then the full working cycle — what a VLE apparatus measures and how well, whether a published dataset can be believed, which model fitted against which objective, and how that model is carried into an equation of state. The module where the course stops being about equations and starts being about evidence.
The point test. The area test integrates ln(γ1/γ2) across the whole range, so equal and opposite errors cancel and a systematically wrong dataset can pass. The point test looks at each residual and cannot cancel. Passing the integral while failing point by point means the errors have structure.
Nothing in the fitting. The data do not constrain the dilute ends, and the disagreement is an honest measure of what they can support. Quoting γ∞ from such a fit is extrapolation reported as a result.
Each objective minimises a different residual — in P, in y, in γ, in ln γ — and so weights the composition range differently. Decide by what the model is for: fit in P if you will predict pressures. Never rank models across objectives by a single fit statistic, because the statistics are not measuring the same quantity.
The size of the deviation relative to the ratio of pure vapour pressures. An azeotrope needs γ1/γ2 = P2sat/P1sat to have a root between 0 and 1, so at the ends it is γ1∞ against P2sat/P1sat. If the components boil far enough apart, no achievable deviation closes the gap — which is why methanol/water does not azeotrope and ethanol/water does.
Because one binary at one temperature is not the claim. The GE rules carry a fitted activity model into the equation of state, so the same parameters work for strongly non-ideal and asymmetric mixtures where a single kij has no shape to give. Wong-Sandler additionally keeps the second virial coefficient quadratic in composition, which is what lets it extrapolate in temperature and pressure; Huron-Vidal violates that by 2.2 per cent of the excess second virial on this system and 22.9 per cent on ethanol/water.
Because the local-composition models — Wilson, NRTL, UNIQUAC — are built from pairwise interactions, so the N-component expression is assembled from the N(N−1)/2 binary parameter sets with nothing further fitted. Margules and van Laar have no such extension. It is the practical reason the local-composition forms displaced the empirical ones, and it is also a prediction: the ternary is not validated by the binary data it was built from.
Only T, P and x — the vapour composition is computed rather than measured. Prefer it because y is the hardest of the four to measure and carries the largest error, so a fit that never touches it can be more trustworthy than one that does.
The question a flash calculation cannot ask
A flash solves the equilibrium equations it was given, and those equations have solutions that are not the global minimum. This module supplies the missing test — the tangent plane criterion — and then follows it into liquid-liquid equilibrium, distillation boundaries and retrograde condensation.
Whether that answer is the global minimum of the Gibbs energy. The equations have several solutions and the flash finds whichever lies near its initial guess. A local minimum converges just as cleanly, with no warning.
The feed is stable if and only if TPD(w) ≥ 0 for every trial composition w. It quantifies over all w rather than solving for a particular one — which is also why the difficulty lies in the search, not in the formula.
The binodal is where two compositions share a common tangent — equal chemical potentials. The spinodal is where the curvature of G changes sign. Between them the mixture is metastable: stable against small perturbations, unstable against large ones. That is the region where a flash returns a locally sound, globally wrong answer.
The stretch between the critical point and the cricondentherm, where the dew-point branch turns back on itself so an isothermal path crosses it twice. It follows from the shape of the envelope, not from anomalous fluid behaviour.
The same criterion, under a different constraint
Nothing new is introduced. The equilibrium criterion, the fugacity coefficient and the activity coefficient from the earlier modules are applied to a new constraint, and the module ends where the whole course has been heading: one constrained minimisation of the Gibbs energy, which is what an equilibrium reactor block in a process simulator solves.
Extent needs you to have written the reactions: the stoichiometry is your input, and a product you did not think of cannot appear. Minimisation needs only a species list and an element balance, and will find products you did not anticipate — which is exactly why a simulator's equilibrium reactor uses it.
carbon from a property database when you mean graphite?
Because the name resolves to a different allotrope, with a different standard entropy and no defined formation enthalpy. Graphite is the reference state with ΔHf = 0 by definition, and the substitution shifts every ΔG in which solid carbon appears. The Module 6 notebook makes you check this against the Boudouard reaction.
Everything except long-range electrostatics. The rise comes from short-range ion-ion repulsion and from the loss of free solvent as ions are hydrated — the terms Pitzer's virial-like expansion adds on top of the Debye-Hückel core.
Activity instead of concentration inside the Nernst term, and the temperature dependence of E° through ΔS. At practical concentrations both are larger than the measurement error.