This tool computes solid–liquid equilibrium for a two-component organic system: where each component starts to crystallize as the mixture cools, the eutectic point where both do, and how a solute's solubility changes with temperature. Use it for crystallization, purification, and formulation decisions. It runs on CPU.
How it works
For each component crystallizing as a pure solid, the solubility equation relates its liquid-phase mole fraction x and activity coefficient γ to its melting point T_m, enthalpy of fusion ΔH_fus, and (optionally) the heat-capacity difference ΔC_p between liquid and solid:
ln(x·γ) = −(ΔH_fus/R)(1/T − 1/T_m) + (ΔC_p/R)[(T_m/T − 1) − ln(T_m/T)]
- Simple eutectic: the solids are taken as pure and immiscible; solid solutions, cocrystals, and polymorphs aren't modeled.
- Liquid non-ideality (
activity_model):ideal(γ = 1, the default),nrtl(published parameters, or your own fitted pair from VLE Parameter Regression), orunifac(predicted from structure). - Melting data: your
tm_kandhfus_j_molare used when given; otherwise they are looked up in the openchemicalsdatabase. The source of each value is recorded.
Modes
mode | You get |
|---|---|
diagram (default) | Both liquidus branches across composition (grid_points, default 51), the stable liquidus, and the eutectic |
solubility | The solubility of the first component in the second from temperature_min_k to temperature_max_k, with the ideal solubility alongside for comparison |
Inputs
components: exactly two rows, each with a name (or SMILES) and, optionally, tm_k, hfus_j_mol, and dcp_j_mol_k. The properties table from Group-Contribution Properties also works, though its estimated melting data are rough.
Outputs
| File | Mode | Contents |
|---|---|---|
liquidus.csv | diagram | The liquidus temperature at each composition, which solid forms first, and both branches |
eutectic.csv | diagram | The eutectic composition and temperature |
solubility.csv | solubility | Solubility (mole fraction), ideal solubility, and activity coefficient at each temperature |
result.json | both | Model, assumptions, melting data and their sources, and warnings |
Each row has a status. A failed point where x·γ exceeds 1 near the melting point can mean the liquids separate into two phases, which this model doesn't handle.
Related tools
VLE / Flash for vapor–liquid equilibrium, Hansen Solubility Parameters for solvent screening, and PHREEQC Aqueous Speciation for minerals in water.