page last updated: 28.11.2011

# Activity-Composition model documentation

Each mineral that exhibits solid-solution in a given chemical system must have an activity-composition (a-x) model that describes the distribution of elements on sites and the interaction energies. The a-x models used in thermocalc are all macroscopic models with the interactions being written between endmembers rather than between sites. See the following papers for details:

Powell, R & Holland, T.J.B., 1993. On the formulation of simple mixing models for complex phases American Mineralogist 78, 1174–1180.

Holland, T.J.B. & Powell, R, 1996a. Thermodynamics of order–disorder in minerals. 1: symmetric formalism applied to minerals of ﬁxed composition. American Mineralogist 81, 1413–1424.

Holland, T.J.B. & Powell, R., 1996b. Thermodynamics of order–disorder in minerals. 2: symmetric formalism applied to solid solutions. American Mineralogist 81, 1425–1437.

Powell, R, & Holland, T.J.B., 1999. Relating formulations of the thermodynamics of mineral solid solutions: activity modelling of pyroxenes, amphiboles and micas. American Mineralogist 84, 1–14.

Holland, T.J.B. & Powell, R., 2003. Activity-composition relations for phases in petrological calculations: an asymmetric multicomponent formulation. Contributions to Mineralogy and Petrology, 145, 492–501

Holland, T.J.B. & Powell, R., 2006. Mineral activity-composition relations and petrological calculations involving cation equipartition in multisite minerals: a logical inconsistency. Journal of Metamorphic Geology 24, 851–861.

In addition there is further explanation of the a-x models in the short course documentation.

There are two key aspects to the types of models used 1) related to the distribution of an element on different sites and 2) related to the ideal/non-ideal nature of mixing between endmembers.

Regarding the distribution of elements on sites there are two types of model, being

Equipartition models: where the distribution of two or more (eg Fe-Mg) elements is the same on each site on which they reside. (eg XFe,M1 = XFe,M2 = XFe,bulk). Equipartition models are currently being phased out (Powell & Holland, 2006)

Order-disorder models: where the distribution of two or more elements is different on different sites (eg XFe,M1 ≠ XFe,M2 ≠ XFe,bulk). This is achieved via one or more order parameters (typically “Q” or “N”) as compositional variables in conjunction with one or more ordered endmembers. (Holland & Powell 1996a, b).

In addition to these models some elements may be equi-distributed between sites (e.g. Mn in many minerals). This is done especially when that element is a relatively minor component of a phase and there is little to no information on its distribution. A single model may involve order-disorder for some elements and equipartition for others. For example the most commonly used chlorite model involves order-disorder for Al distribution but involves equipartition for Fe-Mg.

Regarding the ideal-non ideal nature of the interaction energies, there are currently three types of models, being:

Ideal mixing (ideal): There are no non ideal interactions between endmembers so no interaction parameters (W’s) are needed. Relatively few models in use are ideal.

Symmetric formalism (sf): the interaction between two or more endmembers is non-ideal, but symmetric (ie Wij = Wji ≠ 0). This is the most common type of model currently in use. See Powell & Holland (1993) for details.

Asymmetric formalism (asf): the interaction between one or more endmembers is non-ideal and asymmetric. Asf uses a “van laar” formulation for the non-ideality in which the constraint Wij = Wji ≠ 0 is modified to asymmetry via an asymmetry parameter a for each endmember which determines the degree of asymmetry. If ai = aj then the interaction remains symmetric but if ai ≠ aj the model is asymmetric. See Holland & Powell (2003).

All models involve some combination of the above site distribution models and the mixing models. For example the simplest a-x models involve equipartition and ideal mixing. More complex models such as amphibole involve a combination of order-disorder with asymmetric formalism.

### Structure of a-x coding

The a-x models in a thermocalc a-x file are constructed in a standardised way as blocks of information or code (commonly with blocks separated by “%--------------------“). The blocks of code in the current structure are as follows

- Mineral name, reference, definition of compositional variables followed by mineral abbreviation, number of end members and starting guesses
- Definitions of the end-member proportions in terms of the compositional variables
- Type of mixing model followed by interaction energies (W’s) and asymmetry parameters (a’s) where required
- Number of site terms followed by definition of site occupancies for each element that mixes on that site
- Definitions of ideal mixing activities and any DQF adjustments needed

below is an annotated example of some a-x coding for garnet:

% =============================================================

% Garnet: CFMAS

% White, RW, Powell, R & Holland, TJB (2007)

% Progress relating to calculation of partial melting equilibria

% for metapelites. Journal of Metamorphic Geology, 25, 511-527.

%

% garnet here is LESS asymmetric than that of the above paper -

%

% x(g) = Fe/(Fe + Mg),

% z(g) = Ca/(Fe + Mg + Ca)

g 3 %mineral abbreviation and # of endmembers

x(g) 0.6191 %starting guess for x

z(g) 0.02761 %starting guess for z

% --------------------------------------------------

% below are the definitions of the end-member proportions

p(alm) 1 2 1 1 -1 z 0 1 1 x

p(py) 1 2 1 1 -1 z 1 1 -1 x

p(gr) 1 1 0 1 1 z

% --------------------------------------------------

asf % means asymmetric formalism so W’s & alpha’s expected

% below are the interaction energies for each pair in

% the form a + bT + cP

W(alm,py) 2.5 0 0

W(alm,gr) 10 0 0

W(py,gr) 45 0 0

% below are the alphas for each endmember in

% the form a + bT + cP these numbers mean that alm-py

% interaction is symmetric but alm-gr & py-gr are

% asymmetric

alm 1 0 0

py 1 0 0

gr 3 0 0

% --------------------------------------------------

3 % no of site fractions

% below are the definitions of the site fraction occupancies

xFeX 1 2 1 1 -1 z 0 1 1 x

xMgX 1 2 1 1 -1 z 1 1 -1 x

xCaX 1 1 0 1 1 z

% --------------------------------------------------

%below are the ideal mixing activities

alm 1 1 xFeX 3

py 1 1 xMgX 3

gr 1 1 xCaX 3

%=================================================

Each of the proportions and site fractions (eg p(alm), p(gr), xFeX etc) can be called terms (following the terminology in the course notes). Note that for the “p” terms, W’s, a’s and ideal activities, the endmembers always occur in the same order (eg alm, py, gr). In the case of the W’s this order is pairwise so for a phase with 3 endmembers (1, 2 & 3) this order is (1,2), (1,3) (2,3). In the model, each term is followed by code such as:

p(alm) 1 2 1 1 -1 z 0 1 1 x

or

xFeX 1 2 1 1 -1 z 0 1 1 x

that defines their value as a function of the defined compositional variables. While this example is relatively simple, this code can get quite complex especially where a large number of elements may reside on a given site or where an order-disorder parameter is involved. An example of a more complex term for the site fraction for Fe2+ on M4 in an orthoamphibole is given below:

xFeM4 5 1 0 3 1 Q2 1 x 3/2 Q1

2 0 1 -1 f 0 1 1 Q2

2 0 1 -1 c 0 1 1 x

2 0 1 -1 Q2 0 1 1 y

2 0 1 -1 x 0 1 1 z

Further explanation of reading this code is given in the pdf course notes. If you are interested in understanding thermocalc a-x codes a useful script is “incax yes” which prints the a-x relationships in the log file in a standard mathematical format. For example, the garnet model above is printed in the log file as:

--------------------------------------

g

starting guesses

x(g) = 0.6191

z(g) = 0.02761

site fractions

xFeX = (1 - z) x

xMgX = (1 - z) (1 - x)

xCaX = z

proportions

alm = (1 - z) x

py = (1 - z) (1 - x)

gr = z

ideal mixing actvities

alm = xFeX^3

py = xMgX^3

gr = xCaX^3

non-ideality by van laar

W(alm,py) = 2.5

W(alm,gr) = 10.0

W(py,gr) = 45.0

v(alm) = 1.00

v(py) = 1.00

v(gr) = 3.00

This facility is particularly useful if you are coding minerals yourself, as a way to check you have not made errors.

### Understanding the code

The code that follows the terms can be thought of as blocks, each block defining either the number of following blocks (in the case of block1 below) or a function (eg 1 - x) for other blocks. For example, a simple bit of code in general may look like:

Term Block1 Block2

eg

term block1 block2

xCaX 1 1 0 1 1 z

A slightly more complex one (for an order-disorder opx) may have the form

Term Block1 Block2

Block3 Block4 Block 5

Eg

x(Mg,M1) 2 1 1 2 -1 y 1/2 Q

2 0 1 -1 x 1 1 -1 y

In each case, the first block on each line defines how many blocks are to follow with Block1 always having two numbers. Using the opx example above:

- Block1 is “2 1” referring to the number of lines “2” and the number of blocks that follows on that line “1”.
- The other defining block (Block 3) has only one number “2” that defines how many blocks occur on that line (in this case two blocks, being Block4 & Block5). Multiple blocks on one line represent functions that get multiplied, whereas different lines are added. So for the opx example above the basic structure becomes

X(Mg, M1) = Block2 + Block4 x Block5.

The function blocks themselves each have a standard form of:

int numvar mult1 var1 mult2 var2…..

where int=integer, numvar=number of variables, mult1=multiplyer for variable 1, var1=variable 1

starting with a simple code

term block1 block2

xCaX 1 1 0 1 1 z

Block1 says there is one line of code with one function block (Block2). Block 2 can be read as “z” (ie “ 0 + 1z” ). Likewise for a slightly more complex example

xFeX 1 2 1 1 -1 z 0 1 1 x

block1 = 1 line with 2 function blocks, Block2 = 1 – z, and Block3 = x

(ie xFeX = (1 – z)x). The code below:

x(Mg,M1) 2 1 1 2 -1 y 1/2 Q

2 0 1 -1 x 1 1 -1 y

reads as x(Mg,M1) = 1 – y + 1/2Q – x(1 – y)

A more complex term function such as

xFeM4 5 1 0 3 1 Q2 1 x 3/2 Q1

2 0 1 -1 f 0 1 1 Q2

2 0 1 -1 c 0 1 1 x

2 0 1 -1 Q2 0 1 1 y

2 0 1 -1 x 0 1 1 z

reads as:

xFeM4 = (Q2) + x + 3/2(Q1) – f(Q2) – cx – (Q2)y –xz

In terms of deriving the functions that determine mineral endmember proportions and site fractions, there is a detailed example invoving biotite given in the “datafile construction” section of the course notes pdf.

In general, there are a number of steps that must be taken when setting up an a-x model such as deciding the composition space of the model, endmembers, which elements mix on which sites, whether or not you require order-disorder parameters and what composition variables are to be used. Again, you should consult the course notes and the relevant papers.