Petrology Resources


Perple_X is a popular software package for calculating phase equillibria, written by Jamie Connolly (ETH Zürich). It is capable of handling a very wide range of diagram types in simple or complex chemical systems, and is commonly used for calculating (i) P-T, T-X or P-X pseudosections (e.g. here), (ii) path-dependent equilibria involving fractionation of certain phases (e.g. here) and (iii) rock properties for geodynamics simulations. A common criticism is that the core principle that makes Perple_X so flexible (the so-called pseudocompound approximation) can make it prohibitively slow. This is worst for calculations involving very complex phases (e.g. melt and some implementations of amphibole and micas), where the compositional resolution (which partly governs 'quality' of the resultant diagram) needs to be reduced below ‘acceptable’ levels to get the program to run at all.

Paralyzer has been designed to significantly reduce this problem. It is conceptually simple: most phase diagrams can be calculated in multiple independent segments rather than a single large block, permitting simple parallelization of the calculation on multi-CPU computers (saving computation time). More importantly, splitting up the problem substantially reduces the total number of pseudocompounds required to describe complex minerals at any given resolution. The time saving associated with this can be very dramatic (~ one order of magnitude for common phase diagram calculations), and it permits calculation of diagrams that simply wouldn’t be possible otherwise.

Implementation of Paralyzer is currently as a Matlab script which controls Perple_X’s free energy minimization program (vertex). There is effectively no learning curve for anybody who has used Perple_X and has a copy of Matlab – simply click ‘go’ and the script will take standard vertex input files, split them into a number of segments, run them in the most efficient way it can on a single or multi-CPU computer, and recompile the results into a single set of outputs. These can be analyzed as normal with the Perple_X programs werami and pssect. Eventually this might be exported to work without Matlab, but probably not in the very near future.

QuiB Calc

QuIB Calc is a MATLAB® script written by Kyle Ashley to estimate the pressure at which quartz inclusions were sealed by garnet. An overpressure can be retained in the inclusions after exhumation due to elastic differences between them and the host garnet. Raman spectroscopy of fully encapsulated quartz inclusions can retrieve the extent of this preserved over-pressuring. With associated temperature estimates, initial formation pressures may be calculated with QuIB Calc. The script provides a simple interface for ease of use and robust calculation with one of several elastic models. More information about the program is given in an associated paper, which can be found here.

Excel files

I have written a number of Excel spreadsheets and macros for a variety of purposes such as recognizing mineral phases from microprobe analyses and re-normalizing the analyses accordingly. Programs like this should always be used with extreme caution (and possibly cynicism), but I provide here links to both my Excel sheets and some that were written by other people and I have always found to be very useful.


Regardless of the program that calculated them, if you’ve recently seen calculated metamorphic phase equilibria for crustal rocks, they likely used thermodynamic data from the THERMOCALC project. Lead by Tim Holland (University of Cambridge) and Roger Powell (University of Melbourne), and consisting of both thermodynamic data and software for their manipulation, this endeavor is now thoroughly documented by their long-term collaborator Richard White (University of Mainz).

Other stuff coming soon...

To be compiled in the not too distant future...