**!!!WARNING!!!**

This tutorial is out-of-date,
it was written for the 06 version of Perple_**X**. the best current tutorial for the calculation of
phase diagram sections is the
seismic velocity tutorial.
Although the seismic velocity tutorial illustrates the extraction of seismic
velocities from a phase diagram section, the basic calculation is typical of
phase diagram section calculations. The tutorial here has not been removed
because components of this tutorial illustrate features, e.g., the use of bulk
compositions as independent variables for a phase diagram section, that are still pertinent to the current version
of Perple_**X**
and not addressed in other Perple_**X**
tutorials.

IntroductionRunning BuildRunning VertexRunning PsvdrawUsing Werami to check and refine solution modelsFigures:Figure 1. Metapelite phase diagram section, high resolution, simplified melt modelFigure 2. Metapelite phase diagram section, low resolution, complete melt model

This is a bare bones tutorial
intended to illustrate the construction of phase diagram sections with
compositional variables by gridded minimization in Perple_**X**.
The calculation outlined here is Perple_**X**
example 19, which is briefly discussed in Connolly (2005).
The calculation concerns melting phase relations along a Barrovian geothermal
gradient for a metapelitic rock as a function of bulk water content. The type of
calculation required for this example is a minor variation on the
calculations described in the
pseudosection
and the
seismic velocity tutorials. Novice users should refer to these tutorials for
more complete explanation of the various prompts and methods. This tutorial
covers two themes not covered in earlier tutorials: the grid compression prompt,
and the use of WERAMI to refine the compositional parameters for solution
models.

Figure 1. Phase relations along a Barrovian geotherm (25 K/km, Pressure indicated on the right-hand axis) as a function of water content for a pelitic composition (0.021 Na2O, 0.038 K2O, 0.008 CaO, 0.050 MgO, 0.096 FeO, 0.189 Al2O3, 1.021 SiO2 in molar units) modified from , the maximum molar water content represented on the diagram corresponds to 5 wt% H2O. For the calculation the melt model was simplified by excluding the anL, fo8L, fa8L and sil8L endmembers, this simplification is the primary reason for the differences between the high resolution calculation and the low resolution calculation made here (Figure 2). For the high resolution calculation, phase compositions where discretized with an accuracy of better than 0.03 mol% (generating 7×106 pseudocompounds) on a 5-level grid with 40x40 nodes at the lowest level (625x625 nodes at the highest level).

In the following sections the prompts
from Perple_**X** programs are written in normal
font; user responses are **bold font**; and interspersed explanatory comments
are in red. Additional explanation on some
prompts is available via the (help)
links.

The user/BUILD dialog that defines the calculation is reproduced with commentary below:

C\jamie\Berple_X>

build

NO is the default ([cr]) answer to all Y/N prompts (help)

Enter name of computational option file to be created, < 100 characters, left justified [default = in]: (help)

in19.dat

A copy of this file is at in19.dat

Enter thermodynamic data file name, left justified, [default = hp02ver.dat]: (help)

hp02ver.dat

The current data base components are:

NA2O MGO AL2O3 SIO2 K2O CAO TIO2 MNO FEO NIOO2 H2O CO2Transform them (Y/N)? (help)

nCalculations with a saturated phase (Y/N)? (help)

The phase is: FLUID

Its compositional variable is: Y(CO2), X(O), etc.

n

In the current
version of Perple_**X**
H2O can be specified as a saturated phase or saturated component (despite
warnings to the contrary in the solution model files and earlier tutorials).

Calculations with saturated components (Y/N)? (help)

y

**warning ver015** if you select > 1 saturated component, then the order you enter the components determines the saturation heirarchy and may effect your results (see Connolly 1990).

Select < 6 saturated components from the set:NA2O MGO SIO2 AL2O3 K2O CAO TIO2 MNO FEO

NIO O2 H2O CO2

Enter names, left justified, 1 per line, <cr> to finish:

SIO2

Use chemical potentials, activities or fugacities as independent variables (Y/N)? (help)

n

Select thermodynamic components from the set:

NA2O MGO AL2O3 K2O CAO TIO2 MNO FEO NIOO2 H2O CO2

Enter names, left justified, 1 per line, <cr> to finish:

AL2O3

FEO

MGO

CAO

K2O

NA2O

H2O

**warning ver016** you are going to treat a saturated (fluid) phase component as a thermodynamic component, this may not be what you want to do. (help)

Select fluid equation of state:

(help)

0 - X(CO2) Modified Redlich-Kwong (MRK/DeSantis/Holloway)1 - X(CO2) Kerrick & Jacobs 1981 (HSMRK)2 - X(CO2) Hybrid MRK/HSMRK3 - X(CO2) Saxena & Fei 1987 pseudo-virial expansion4 - Bottinga & Richet 1981 (CO2 RK)5 - X(CO2) Holland & Powell 1991, 1998 (CORK)6 - X(CO2) Hybrid Haar et al 1979/CORK (TRKMRK)7 - f(O2/CO2)-f(S2) Graphite buffered COHS MRK fluid8 - f(O2/CO2)-f(S2) Graphite buffered COHS hybrid-EoS fluid9 - Max X(H2O) GCOH fluid Cesare & Connolly 199310 - X(O) GCOH-fluid hybrid-EoS Connolly & Cesare 199311 - X(O) GCOH-fluid MRK Connolly & Cesare 199312 - X(O)-f(S2) GCOHS-fluid hybrid-EoS Connolly & Cesare 199313 - X(H2) H2-H2O hybrid-EoS14 - EoS Birch & Feeblebop (1993)15 - X(H2) low T H2-H2O hybrid-EoS16 - X(O) H-O HSMRK/MRK hybrid-EoS17 - X(O) H-O-S HSMRK/MRK hybrid-EoS18 - X(CO2) Delany/HSMRK/MRK hybrid-EoS, for P > 10 kb19 - X(O)-X(S) COHS hybrid-EoS Connolly & Cesare 199320 - X(O)-X(C) COHS hybrid-EoS Connolly & Cesare 199321 - X(CO2) Halbach & Chatterjee 1982, P > 10 kb, hybrid-Eos22 - X(CO2) DHCORK, hybrid-Eos23 - Toop-Samis Silicate Melt24 - f(O2/CO2)-N/C Graphite saturated COHN MRK fluid 25 - H2O-CO2-NaCl Aranovich and Haefner 2004

5

The data base has P(bar) and T(K) as default independent potentials. Make one dependent on the other, e.g., as along a geothermal gradient (y/n)?

y

Here the problem is to calculate a phase diagram section along the conditions of a geothermal gradient.

Select dependent variable:

1 - P(bar) = f(T(K))

2 - T(K) = f(P(bar))

1

The dependence must be described by the polynomial

P(bar) = Sum (c(i) * [T(K)]^i, i = 0..n)

In Perple_**X**
geothermal gradients are defined by a polynomial of the form

Y = c

_{0}+ c_{1}X^{1}+ c_{2}X^{2}+ ... + c_{n}X^{n}

where Y is the
dependent variable, X is the independent variable, c_{0} ... c_{n
}are the polynomial coefficients and n is the order of the polynomial. Once
the user has chosen the dependent variable (P(bar) above), Perple_**X**
uses the independent variable for all subsequent prompts and graphics. The only
constraint on the independent variable is that it must increase or decrease
continuously.

The next prompts define the geothermal gradient as a function of the independent variable (T); to this end, we assume a linear gradient (polynomial of order n=1) passing through P=0 bar at T=273 K.

Enter n (<5)

1

Enter c(0)

-2651.16

Enter c(1)

9.70588

Specify computational mode:

(help)

1 - Unconstrained minimization [default]

2 - Constrained minimization on a grid

3 - Output pseudocompound data

4 - Phase fractionation calculations

Unconstrained optimization should be used for the calculation of composition, mixed variable, and Schreinemakers diagrams, it may also be used for the calculation of phase diagram sections for a fixed bulk composition. Gridded minimization can be used to construct phase diagram sections for both fixed and variable bulk composition. Gridded minimization is preferable for the recovery of phase and bulk properties.

2

Select y-axis variable:

1 - T(K)

2 - Composition X(C2) (user defined)

1

That you are not prompted for the X-variable may seem odd, but BUILD "knows" from the previous prompts that the only variables possible are now temperature and bulk composition. Since mode 2 calculations are for a 2-dimensional section, the diagram must have at least 1 compositional variable (yet to be defined), which by default is made the X-axis variable. This prompt now requests the Y-axis variable, which may be a second composition variable (as in an X-X diagram), or temperature as specified here.

Enter minimum and maximum values, respectively, for: T(K)

873 1123

In this mode VERTEX uses a multilevel grid to define true phase boundaries or pseudocompound assemblage boundaries, mode 1 is the most efficient, modes 2-4 should be selected if physicochemical properties are to be retrieved from the section.

Select grid refinement mode: (help)1 - Refine only true phase boundaries, compression on.2 - Refine only true phase boundaries, compression off [default].3 - Refine all phase boundaries, compression on.4 - Refine all phase boundaries, compression off.2

This choice
will resolve physical properties with the resolution of the lowest level grid
(below this will be specified as a 40x40 grid). To explain this by example: in
this calculation bulk water content will be made to vary along the X-axis from 0
to 5 wt%, thus for a 40x40 grid, bulk water content will vary in steps of 5/40^{ths}.
Because Perple_**X**
does not currently interpolate composition this means that after the calculation
if you ask (with WERAMI) what is stable at an arbitrary X-value, then the bulk
water content of the assemblage returned may differ from the X value by as much
as 5/40/2.

The resolution of the grid is determined by the number of levels (JLEV) and the resolution at the lowest level in the X- and Y-directions (ILOW and JLOW, respectively), such that the maximum resolution is equivalent to that obtained on a single level grid with 1+(ILOW-1)*2^(JLEV-1) nodes in the X-direction and 1+(JLOW-1)*2^(JLEV-1) nodes in the Y-direction. To force VERTEX to use a single level grid, set JLEV=1.

Enter the number of nodes (ILOW) in the X-direction for the lowest resolution grid (0<ILOW<2048) [default = 40]: (help)

40Enter the number of nodes (JLOW) in the Y-direction for the lowest resolution grid (1<JLOW<2048) [default = 40]: (help)

40Enter the number of levels (JLEV) for the grid (0<JLEV<10) [default = 4]: (help)

2These parameters define a multilevel grid equivalent to a regular X-Y grid with 79 x 79 nodes, change the parameters (y/n)?

nIn this mode all thermodynamic components must be constrained, constrain saturated components also (Y/N)?

yThe next prompts are for the saturated component constraints. Answering no at any point completes the set of constraints.

Constrain component SIO2 (Y/N)?

ySpecify component amounts by weight (Y/N)?

yThe bulk composition of the system will be computed as:

C = C0*(1-X(C1)) + C1*X(C1)

where X(C1) varies between 0 and 1, and C0 and C1 are the compositions specified next.

Enter weight amounts of the components: (help)

AL2O3 FEO MGO CAO K2O NA2O H2O SIO2

to define the composition C0

19.25 6.91 2.03 0.46 3.58 1.30 0.0 61.37

Enter weight amounts of the components: (help)

AL2O3 FEO MGO CAO K2O NA2O H2O SIO2

to define the composition C1

19.25 6.91 2.03 0.46 3.58 1.30 4.995 61.37Do you want a print file (Y/N)?

nEnter the plot file name, < 100 characters, left justified [default = pl]: (help)

plot19

**warning ver013** phase femg-1 has null or negative composition and will be rejected from the composition space.

Exclude phases (Y/N)? (help)

nDo you want to treat solution phases (Y/N)?

yEnter solution model file name [default = solution_model.dat] left justified, < 100 characters: (help)

solution_model.dat

**warning ver025** 0 endmembers for MELTS(GS) The solution will not be considered.

...output abridged...

**warning ver025** 1 endmembers for Ep(HP) The solution will not be considered.

Select phases from the following list, enter 1 per line, left justified, [cr] to finish: (help)

MnBio(HP) Bio(HP) Chl(HP) MnChl(HP) O(SG) E(SG)

Omph(HP) Cpx(HP) melt(HP) pMELTS(G) Opx(HP) Pheng(HP)

Sapp(HP) GaHcSp T MnSt(HP) Ctd(HP) Carp

hCrd Sud(Livi) Sud Cumm Anth Gl

Tr TrTsPg(HP) GlTrTs GlTrTsPg feldspar Pl(h)

AnPl AbPl Ab(h) Ab Kf(h) Kf

San MaPa KN-Phen MuCel PaCel MuPa

Pa Mu O(HP) Cpx(l) Cpx(h) Mont

Sp(JR) Sp(GS) Sp(HP) Neph(FB) GrPyAlSp(B GrPyAlSp(G

Gt(HP) GrPyAl(B) A-phase Chum Atg B

P Qpx Mn-Opx OrFsp(C1) AbFsp(C1) Pl(I1,HP)

Fsp(C1) MuPaMa(CH)

refer to the solution model glossary, or read the commentary within the solution model file itself, for more information about the solution models.

Bio(HP)

melt(HP)

Pheng(HP)

St(HP)

San

Pl(h)

Gt(HP)

The solution model file defines the following dependent endmembers:

mnts_i sdph_i fame_i fafchl_i mame_i mafchl_i fets_i

fsp4_i ftat_i hfcrd_i hmncrd_i fparg_i fts_i fgl_i

ncel_i nfcel_i

Exclude any of these endmembers (y/n)?

Answer no if you do not understand this prompt.n

Enter calculation title:

test 19

C\jamie\Berple_X>

vertexEnter computational option file name (i.e. the file created with BUILD), left justified:

in19.dat

`Reading thermodynamic data from file: hp02ver.dat Writing print output to file: print19 Writing plot output to file: plot19 Writing pseudocompound glossary to file: pseudocompound_glossary.dat Reading solution models from file: solution_model.dat`

`Writing bulk composition plot output to file: bplot19`

VERTEX creates an
additional file named by adding a prefix "**b**" to the plot file name "**plot19**",
this file, "**bplot19**", is needed by both PSVDRAW and WERAMI and should not
be deleted or moved independently of the primary plot file. The polygon file
mentioned below ("**pplot19**") is not used for this type of calculation.

`Generating pseudocompounds, this may take a while...`

`**warning ver114** the following endmembers are missing for Bio(HP)`

`mnbi mnts_i`

`Endmember configurational entropies (doc. eq. 8.2) for Bio(HP) are:`

`ann - 11.52622 phl - 11.52622 east - 0.00000`

`sdph_i - 0.00000`

`**warning ver041** icky pseudocompound names for solution model: Bio(HP)`

`refer to pseudocompound_glossary.dat file for pseudocompound definitions.`

`1678 pseudocompounds generated for: Bio(HP)`

`**warning ver041** icky pseudocompound names for solution model: melt(HP)`

`refer to pseudocompound_glossary.dat file for pseudocompound definitions.`

84483 pseudocompounds generated for: melt(HP)

Because of the large number of pseudocompounds generated for the melt phase this calculation may require the "large parameter" version of VERTEX.

... output abridged ...

Done generating pseudocompounds (total: 100489)

1.3% done with low level grid.

3.8% done with low level grid.

... output abridged ...

94.9% done with low level grid.

97.5% done with low level grid.

100.0% done with low level grid.

`Beginning grid refinement stage.`

`324 grid cells to be refined at grid level 2`

`...working (501 minimizations done)`

`refinement at level 2 involved 688 minimizations`

`2288 minimizations required of the theoretical limit of 6400`

C\jamie\Berple_X>

psvdraw

Enter the Perple_X plot file name:

plot19PostScript will be written to file:

plot19.ps

PSVDRAW converts the
numeric data in **plot19** to PostScript graphics in the file **plot19.ps**;
this file can be viewed in standard PostScript viewers (e.g., GhostView) or
edited in most modern graphical editors (e.g., CorelDraw or Illustrator).

Modify the default plot (y/n)?

n

The postscript output is plotted below (Figure 2).

Figure 2. Computed phase relations as output by PSVDRAW, this figure differs from Figure 1 partially because of low compositional resolution and the coarseness of the grid, but primarily because the high resolution model for the melt was simplified by excluding the anL, fo8L, fa8L, and sil8L endmembers. These endmembers were excluded after an analysis similar to that reproduced in the next section showed they were present in minor quantities. The most significant effect of the simplification is that the high temperature field sil+Gt+Pl+San+melt expands to higher water contents because of the absence of a calcium component in the melt.

Once a pseudosection has been calculated with VERTEX the program WERAMI can be used to recover information from the output. Calculations by gridded minimization in VERTEX, such as the present example (Figure 2), have two sources of discretization error (roughness): error associated with mapping on a grid, which may be reduced by refining the grid parameters; and error resulting from the finite spacing of the pseudocompounds used to represent that stable phases. The latter type of error is particularly important for complex solution phases such as a silicate melt, since the number of pseudocompounds necessary to resolve the composition accurately over the entire range of compositions possible may be astronomically large. A simple strategy to overcome this problem is to make an initial low resolution calculation and use the results to restrict the compositional range and refine the resolution of the solution model. For the present calculation the initial compositional range for the melt was specified by the following lines of the solution model "melt(HP)" in the solution model file "solution_model.dat":

0.0 0.75 0.03 | range and resolution of X(h2oL)

0.0 0.03 0.03 | range and resolution of X(fo8L)

0.0 0.03 0.03 | range and resolution of X(fa8:)

0.0 0.27 0.03 | range and resolution of X(abL)

0.0 0.06 0.03 | range and resolution of X(sil8L)

0.0 0.06 0.03 | range and resolution of X(anL)

0.0 0.30 0.03 | range and resolution of X(kspL)

where the first two numbers on each line give the minimum and maximum mole fraction of the endmember (indicated by the commentary on the right), and the third number gives the compositional resolution. Note that the fraction of the remaining endmember for this model (q8L) is not defined explicitly, but is determined by difference from the other endmembers. The compositions of the endmembers are:

h2oL = H

_{2}O

fo8L = Mg_{4}Si_{2}O_{8}

fa8L = Fe_{4}Si_{2}O_{8}

abL = NaAlSi3O_{8}

sil8L = Al_{3.2}Si_{1.6}O_{8}

anL = CaAl_{2}Si_{2}O_{8}

kspL = KAlSi_{3}O_{8}

A simple means of establishing the range of melt compositions (in terms of these endmembers) is to sample the stable melt compositions computed by VERTEX on a regular grid using the program WERAMI.

To reiterate, we have two goals in performing such a test:

1) To be certain that the existing subdivision range is not too restrictive, i.e., that a solutions composition is not artificially limited by the minimum and maximum values specified for the model. E.g., in the melt model above h2oL has an upper limit of 0.75, if we see that this composition is stable it is probable that we have artificially limited the melt water content and we should expand the range of water compositions considered and repeat the calculation.

2) To refine the range of compositions considered so that we can increase the compositional resolution (i.e., accuracy) of the model in question in subsequent calculations.

The WERAMI dialog that accomplishes this for end-members sil8L, h2oL, and siL is reproduced below:

C\jamie\Berple_X>

werami

Enter the VERTEX plot file name:

plot19Select operational mode:

1 - compute properties at specified conditions2 - create a property grid (plot with pscontor)3 - compute properties along a curve or line (plot with pspts)4 - as in 3, but input from file2Select a property:

1 - Specific Enthalpy (J/m3)

2 - Density (kg/m3)

3 - Specific heat capacity (J/K/m3)

4 - Expansivity (1/K, for volume)

5 - Compressibility (1/bar, for volume)

6 - Weight percent of a component

7 - Mode (Vol %) of a compound or solution

8 - Composition of a solution

9 - Grueneisen thermal ratio

10 - Adiabatic bulk modulus

11 - Shear modulus (bar)

12 - Sound velocity (km/s)

13 - P-wave velocity (Vp, km/s)

14 - S-wave velocity (Vs, km/s)

15 - Vp/Vs

16 - Specific Entropy (J/K/m3)

17 - Entropy (J/K/kg)

18 - Enthalpy (J/kg)

19 - Heat Capacity (J/K/kg)

20 - Specific mass of a phase (kg/m3-solid)

8Enter solution or compound name (left justified):

melt(HP)Compositions are defined as a ratio of the form:

Sum {w(i)*n(i), i = 1, c1} / Sum {w(i)*n(i), i = c2, c3}n(j) = number of moles of component jw(j) = weighting factor of component j (usually 1)

The sole complication in this problem is that we want to know the melt composition in terms of the model endmembers, but WERAMI defines compositions in terms of the systems components (usually oxides). The algebra is simple, but to provide an example we are interested in the mole fraction (or, in this case, equivalently number of moles) of the sil8L endmember. To relate this to number of moles of the system component Al2O3 we may write:

n

_{Al2O3}= 8/5 n_{sil8L}+ 1/2 n_{abL}+ 1/2 n_{kfsL }+ n_{anL}

then we have

n

_{abL}= 2 n_{Na2O}n

_{kfsL}= 2 n_{K2O}n

_{anL}= n_{CaO}

and
substituting these into the expression for n_{Al2O3} and rearranging we
obtain

n

_{sil8L }= 0.625_{ }n_{Al2O3}- 0.625_{ }n_{Na2O }- 0.625 n_{K2O }- 0.625 n_{CaO}

which is the equation for the composition of interest. In WERAMI such a composition can be created by specifying it as the "numerator" of a composition as done in response to the following prompts

How many components in the numerator of the composition?

4Component indices and weighting factors for the

compositions numerator?

1 - H2O

2 - FEO

3 - MGO

4 - CAO

5 - K2O

6 - NA2O

7 - AL2O3

8 - SIO2

7 0.625 6 -0.625 5 -0.625 4 -0.625How many components in the denominator of the composition? Enter zero to plot the numerator.

0

The compositional variable is: 0.6 AL2O3

The compositional variable is: -0.6 NA2O

The compositional variable is: -0.6 K2O

The compositional variable is: -0.6 CAO

The above output is unfortunate, but correct (some day I'll get around to fixing it).

Happy (y/n?)

yChange default variable range (y/n)?

nEnter number of nodes in the x and y directions: (help)

100 100Writing grid data to file:

cplot19

Range of >0 data is: 0.248365E-09 -> 0.300000E-01

The file **
cplot19** can be plotted with the Perple_**X**
program PSCONTOR, or in MatLab with the Perple_**X**
Matlab script "surface_plot".
In any case, the range reported above is the range of n_{sil8L }for the
calculation. Based on this result the line in the melt(HP) model:

0.0 0.06 0.03 | range and resolution of X(sil8L)

could be replaced with something like

0.0 0.045 0.015 | range and resolution of X(sil8L)

here the upper limit is not set to the upper end of the observed range because compositions are uncertain by roughly half the compositional resolution.

Evaluate additional properties (y/n)?

ySelect a property:

1 - Specific Enthalpy (J/m3)

2 - Density (kg/m3)

3 - Specific heat capacity (J/K/m3)

4 - Expansivity (1/K, for volume)

5 - Compressibility (1/bar, for volume)

6 - Weight percent of a component

7 - Mode (Vol %) of a compound or solution

8 - Composition of a solution

... output abridged ...

20 - Specific mass of a phase (kg/m3-solid)

8Enter solution or compound name (left justified):

melt(HP)Compositions are defined as a ratio of the form:

Sum {w(i)*n(i), i = 1, c1} / Sum {w(i)*n(i), i = c2, c3}n(j) = number of moles of component jw(j) = weighting factor of component j (usually 1)How many components in the numerator of the composition?

1Component indices and weighting factors for the

compositions numerator?

1 - H2O

2 - FEO

3 - MGO

4 - CAO

5 - K2O

6 - NA2O

7 - AL2O3

8 - SIO2

1 1How many components in the denominator of the composition? Enter zero to plot the numerator.

0The compositional variable is: 1.0 H2O

Happy (y/n?)

yWriting grid data to file:

ccplot19

Range of >0 data is: 0.450000 -> 0.690000

Given that the melt field extends to X(H2O) = 0, it may seem peculiar that the water content of the melt does not go to zero. The explanation for this is that the amount of melt goes to zero at X(H2O) = 0, but at the smallest non-zero value of X(H2O) the amount of water in the melt is 0.45. Thus we can replace the line in the melt(HP) model:

0.0 0.75 0.03 | range and resolution of X(h2oL)

with something like:

0.435 0.705 0.015 | range and resolution of X(h2oL)

and as a final
example consider n_{abL} (= 2 n_{Na2O}):

Evaluate additional properties (y/n)?

ySelect a property:

1 - Specific Enthalpy (J/m3)

2 - Density (kg/m3)

3 - Specific heat capacity (J/K/m3)

4 - Expansivity (1/K, for volume)

5 - Compressibility (1/bar, for volume)

6 - Weight percent of a component

7 - Mode (Vol %) of a compound or solution

8 - Composition of a solution

... output abridged ...

20 - Specific mass of a phase (kg/m3-solid)

8Enter solution or compound name (left justified):

melt(HP)

Compositions are defined as a ratio of the form:

Sum {w(i)*n(i), i = 1, c1} / Sum {w(i)*n(i), i = c2, c3}n(j) = number of moles of component jw(j) = weighting factor of component j (usually 1)How many components in the numerator of the composition?

1Component indices and weighting factors for the compositions numerator?

1 - H2O

2 - FEO

3 - MGO

4 - CAO

5 - K2O

6 - NA2O

7 - AL2O3

8 - SIO2

6 2How many components in the denominator of the composition? Enter zero to plot the numerator.

0The compositional variable is: 2.0 NA2O

Happy (y/n?)

yWriting grid data to file:

cccplot19

Range of >0 data is: 0.862049E-01 -> 0.180000

Thus we can replace the line in the melt(HP) model:

0.0 0.27 0.03 | range and resolution of X(abL)

with something like:

0.075 0.195 0.015 | range and resolution of X(abL)

In principle, this procedure should be repeated for every endmember that has a restricted compositional range in every solution that is stable in the calculated section. By imposing such restrictions it is possible to resolve solution compositions with high accuracy (e.g., 0.01 mol%).