Free energy function for a solid-liquid system, showing the solid spinodal and liquid making a eutectic in a solid binodal, with a three-phase region on the left


Ternary is a new free energy visualization tool. Inspired by Craig Carter's Mathematica scripts for binary mixtures, it uses qhull to calculate the convex hull of the free energy curve, and visualizes the result including two-phase tie lines and three-phase triangles. For multiple phases, such as the situation to the right, visualizing their intersection is tricky, but the principle is the same: the convex hull gives the minimum energy surface.

This consists of two libraries: libfreenergy and libgibbs, two example C-codes: ternary (output shown) and square, and a graphical user interface (GUI) called Ternary. The libfreenergy library computes free energies and their derivatives, and can be shared with phase field software, which uses free energies as a starting point. The RheoPlast project's ternary Cahn-Hilliard module uses libfreenergy to share free energy functions with Ternary. The libgibbs library includes the rest of the phase diagram isotherm calculation infrastructure.

To build: in the ternary directory, type:

./configure; make

To build the documentation, type:

make stamp-doc

Building ternary requires Geomview, Qhull, BLAS and LAPACK. Building the documentation uses Cxref, LaTeX (e.g. TeXLive), and HeVeA and/or LaTeX2HTML. The GUI requires Libglade.

Browse the source code

Plans for Ternary

The 2-D projection of the convex hull is the phase diagram at a single temperature.

Later versions will:

  • Calculate the whole temperature-dependent ternary phase diagram
  • Determine phase(s) and phase fractions at a given temperature as a function of composition

From this, one can easily do Scheil simulations and other neat equilibrium-related calculations.

Other thermodynamics visualization sites