Example data for ternary phase diagram contour demo?

I want to use Igor Pro to generate example ternary phase diagrams as a demo for materials science classes. I have to admit that I am lost beyond the level of just putting single points on the diagram. I do not understand the data format that is required to create one contour, let alone to create a set of contours.

I would like to have an example of data for a hypothetical three component system (A - C) to show contours. In my case, the contours would be in temperature. Would someone be able to share some example A,B,C,Z data that I can add to the ternary package directly to show contours?

Once I understand the format of the data for the ternary package, I can take the next step to make a representative materials science/engineering demo.


Just make a fourth wave with the same number of points as the A,B,C components and fill it with Z data. If you select a Z wave in the New Ternary Diagram control panel, it will automatically make a contour plot.

If you have a ternary plot with points on it, and you want to add a contour, select Graph->Ternary Diagram->Add Ternary Diagram Contour. Select the A,B,C and Z waves in the popups and click Do It (new diagram) or Add (add ternary contour).

Making a contour plot is covered (perhaps too briefly) in the help file that you get when you click the Help button New Ternary Graph control panel.

It depends on the topology that you wish to represent. If you want to show something like melting in a ternary eutectic system, you will have multiple intersecting surfaces to contour. Unless you construct a very densely-packed grid near the intersection of surfaces (around cotectics, for instance), it's probably better to treat each surface separately for contouring, then find a way to mask the contours outside of the stability region for that surface.

If you know T(A,B,C), maybe it's better to calculate contours rather than relying on a contouring algorithm to get it right. For a series of A, calculate B (and C=1-A-B) that gives you some temperature, then run the A,B,C component coordinates through the ternary package to plot a curve in X-Y.

I have to admit that, for teaching purposes, I find it much easier to project images of ternary phase diagrams and to scribble on top of them rather than calculating the phase diagram. The only 'easy' way I know to construct the kind of ternaries that I'm used to is to use an Arrhenius parameterization of component distribution coefficients. For teaching purposes the output may not be too bad.

Tony: Thanks. The Igor Pro ternary package has been useful to demonstrate how to read compositions from a ternary diagram. I set up a dependency on C and change A or B to move a point around. Otherwise, I had hoped to illustrate two things: How temperature contours are to be understood and how eutectics in AB + BC (or other pairs) generate connecting contours. I've got a topology map of our local area to show to start the first topic. I'll continue with scribbling after that.

Do you want to reproduce real phase diagrams or make generalized ternary phase diagrams?

I just want to make a generalized ternary diagram to demonstrate these general learning outcomes:

* Demonstrate or determine the composition of a ternary component material from/as a point on the diagram (already done via my initial demonstration as well as via this tutorial: https://www.youtube.com/watch?v=GXap5CC8MN4).

* Demonstrate immiscibility gaps using this tutorial: https://www.youtube.com/watch?v=gGYHXhcKM5s

* Demonstrate how we should illustrate a eutectic tie line contour between two eutectic systems (e.g. AB to BC).

* Translate the above to how we should illustrate a common four-phase transition point (e.g. solids with A+B+C -> liquid)

* Demonstrate the process to obtain temperature contour lines (e.g. by analogy to topological maps), explain how we interpret these contour lines as variation in melting temperature with composition (e.g. reading steepness of the slopes), and read the compositions along any given isothermal contour.

To be fair, I am likely to do most of the work with "scribbling" and external demonstrations because this is also my first time stepping into the realm of ternary diagrams. I just thought that, when I would have a data set that could overlay some example contours (real or imaginary), I could stay within Igor Pro during a longer part of the lesson.

here's a method for creating fake ternary eutectic phase diagrams.

see attachment, and try

makeGrid(200, "waveA", "waveB", "waveC")
duplicate waveA LiquidusTemperature

The result contours quite nicely. You can choose melting and eutectic temperatures in the TernaryLiquidus function and vary the topology.

The code is a bit rough. I extracted it from an experiment that I used for teaching and cleaned it up a little bit.

Liquidus.ipf (4.35 KB) TernaryGraph.png (751.93 KB) example ternary eutectic plot with contours (862.38 KB)

Thank you Tony. The data and example are invaluable. I now see how a four column data set has to be generated and appended in order to generate contours.