Worked Example · D1

Compare Phase Enthalpies at Common Pressure

Minimize two invented phase branches at the same pressure, preserve the pV contribution, and locate a synthetic enthalpy crossing without making a stability claim.

Plot both branches and inspect their structures

A real comparison starts by opening the competing phase structures, checking their state identities, and plotting each energy-volume or enthalpy-pressure branch over the same range. At a chosen pressure, inspect the minimizing volume on both branches and the pressure-volume contribution before locating a crossing. Compare the pressure range and phase candidates with the relevant literature through visual tools and literature sources.

Optional common-pressure exercise: both phase branches are invented conceptual data. Use them only after inspecting two accepted real branches; the script tests common-pressure bookkeeping and cannot support a material phase boundary or stability claim.

Use this fixture after two phase branches have been fitted over a common supported pressure interval. It checks the common-pressure operation with invented analytic alpha and beta branches; it is not a material calculation.

From the repository root, print the complete sampled enthalpy report:

python3 examples/practical-guides/eos_phase_enthalpy.py

The output contains the fixture crossing and sampled enthalpy records. Inspect both branches, not only the reported crossing.

Minimize each phase independently

At every external pressure pp, evaluate

Hi(p)=min⁡V[Ei(V)+pV].H_i(p)=\min_V\left[E_i(V)+pV\right].

Alpha and beta normally minimize at different volumes. They must use the same pressure, energy convention, and cell or formula-unit normalization. The fixture converts GPa to eV per cubic angstrom with ASE 3.29.0 before adding pVpV.

Confirm in each sample that the pressure is common, the minimizing volume is phase-specific, and pVpV has energy units. Comparing both phases at one arbitrary common volume is not this calculation.

Locate and challenge the crossing

The invented beta branch begins 0.080.08 eV per abstract cell above alpha at zero pressure but has a smaller equilibrium volume. In the fixture it is lower in enthalpy by 6 GPa, and bisection finds equality near 2.6209 GPa.

Treat that value as a regression target. For real phase curves, repeat the minimization across accepted EOS forms, fit windows, numerical settings, and candidate branches. A crossing is usable only when both minimizing volumes lie inside supported data ranges and each phase retains its intended structural and electronic identity.

Claim boundary

A crossing satisfies

Hα(pt)=Hβ(pt)H_\alpha(p_t)=H_\beta(p_t)

for the represented branches. Report the accepted pressure range, both minimizing volumes, phase-set scope, and sensitivity. If a third phase lies lower, or fit and numerical variation are comparable to the claimed resolution, the two-phase transition is unresolved or pre-empted.

The fixture contains no DFT run, pathway, barrier, nucleation model, phonons, elastic tensor, finite-temperature contribution, or experimental pressure calibration. It verifies common-pressure minimization, unit conversion, bracketing, and sign change only.

Official and primary sources

Ways to work: PythonAtomic Simulation Environment

Companion checked with: Python 3.12; ASE 3.29.0.

Reproducibility note

The companion material was checked with Python 3.12; ASE 3.29.0. It tests only the bounded software or analysis behaviour described here; it does not establish numerical convergence, model validity, or a material property.