MTDATA – Phase Diagram Software from the National Physical Laboratory

 

 

 

Home 

News 

Products 


Training and Support 

FAQs 

Links 

Agents 

Other Services 

 

Services 

 

 

LIST

Function:

The LIST command is used to display the elements, components, substances, unaries and phases in the system under study, their classifications (see CLASSIFY) and any initial or equilibrium settings (or RANGEd values) established by the user. It also provides the basic tools for setting up an optimisation run in that it allows target experimental values and uncertainties to be associated with calculated properties or combinations of properties. Appropriate labels, weights for use during optimisation runs and abscissa settings for use during the plotting of results can be assigned to individual calculations or “experiments”. In addition, the LIST command allows the differences between calculated and experimental results or the identities and values of FIXED, STEPPED, LINKed and OPTIMISED parameters (see MODIFY) to be listed to the screen.

Parameters:

abscissa

label_of_experiment

parameter

property

result

system

value

uncertainty

weight

Defaults:

label_of_experiment = current PROPERTY name

parameter = all fixed, stepped, optimised parameters

result = all experiments

weight = 1.0

Examples:

list system = elements substances !

list system = components settings phases !

list property h !

list property gibbs_energy(Cr) !

list property = pressure(O2<g>) !

list property diff(h:user_variable(h1)) !

list property h val -123000 unc 5000 weig 1 lab 'jones1' abs x(SiO2) !

list result = experiment !

list result experiment(2,5,7,9,12) !

list parameter name(12) !

list parameter value !

Parameter values:


ABSCISSA

takes the values TEMPERATURE / USER_VARIABLE(*) / X(*) / W(*)

The ABSCISSA parameter is used to associate appropriate abscissa variables with individual calculations (or experiments) established using the PROPERTY parameter. Calculated values of properties associated with the same abscissa variable, selected via their LABEL, can be plotted against that variable, with symbols representing experimental data overlaid, using the PLOT VALUE command.

TEMPERATURE  selects the current TEMPERATURE as the appropriate ABSCISSA for the currently defined PROPERTY (see LIST PROPERTY) in graphs generated using the PLOT VALUE command.

USER_VARIABLE(*)    selects the current value of the USER_VARIABLE named in brackets as the appropriate ABSCISSA for the currently defined PROPERTY (see LIST PROPERTY) in graphs generated using the PLOT VALUE command.

X(*), W(*)    selects the current mole or mass fraction, respectively, of the component named in brackets as the appropriate ABSCISSA for the currently defined PROPERTY (see LIST PROPERTY) in graphs generated using the PLOT VALUE command.

LABEL_OF_EXPERIMENT

takes the value   <"main label [- reference] [: condition]">      where [ ] indicates an optional entry

The LABEL_OF_EXPERIMENT parameter is used to associate labels, entered in quotes, with individual calculations (or experiments) established using the PROPERTY parameter (see LIST PROPERTY). If no label is given, the appropriate PROPERTY name (Gibbs energy or temperature, for example) is adopted. Labels are used to identify individual calculations in tables generated using LIST RESULT and in graphs generated using PLOT ERROR and PLOT VALUE. In the case of PLOT VALUE, labels are also used to select results for plotting. Each label may consist of a main part, typically a PROPERTY name, and additional parts, typically an author’s name or reference and the experimental condition. The main part is used to provide ordinate annotation in PLOT VALUE graphs.

Use of the different parts of the label can be extremely useful when comparing calculated and experimental properties. The following is recommended:

label="property-reference:condition"

For example

label = "hmix-98smi/jon:1873"

where the property should indicate the property calculated, to be used in PLOTed diagrams as the ordinate / abscissa annotation. The reference should indicate the source of experimental data and the condition should indicate any special conditions (T, p, etc). When the PLOT command is used with experimental data identified in such a way, properties with the same reference and condition will be represented by the same symbol while different conditions will be represented by different lines in "plot value experiment !" type diagrams.

It is also possible to omit data in the experimental file from the calculated "plot value experiment !" type diagram by prefixing the label with a "*".

For example points with the following label

label = "*estimated"

will not appear on the diagram.

PARAMETER

takes the values NAME[(*)] / OFFSET[(*)] / VALUE[(*)] where [ ] indicates an optional entry

LIST PARAMETER is used to inspect the status of parameters previously flagged as FIXED, OPTIMISED, STEPPED or LINKED via the MODIFY command. Options allow parameter NAMEs, absolute VALUEs and OFFSETs from the values in the current data input (.mpi) file to be listed to the screen. The VALUE and OFFSET lists also display parameter values and offsets from the in memory store (see the SAVE and RESTORE commands). The status of an individual parameter can be inspected by entering its number or INDEX (see MODIFY INDEX) in brackets after the choice of NAME, OFFSET or VALUE. If no parameter INDEX is given, all FIXED, OPTIMISED, STEPPED and LINKED parameters are featured.

NAME(*)  displays the NAMEs of all FIXED, OPTIMISED, STEPPED and LINKED parameters. Alternatively, displays the NAME of one such parameter if a valid INDEX is supplied in brackets. Typical output is shown below.

          T(low)  T(high)
  Index     /K      /K     Parameter Name
    53    298.15  3000.00  ClK,Cl2Zn<LIQUID> *xi*xj
    55    298.15  3000.00  ClK,Cl2Zn<LIQUID> *xi*xj*(xi-xj)                        79    298.15   591.15  Cl2Zn<Cl2Zn> *xi
    83    591.15  1200.00  Cl2Zn<Cl2Zn> *xi

VALUE(*)  displays the current VALUEs of all FIXED, OPTIMISED, STEPPED or LINKED parameters. Alternatively, displays the current value of one such parameter if a valid INDEX is supplied in brackets. Typical output is shown below.

                          Data File     Current      Stored
  Index Type    Scale     Parameter    Parameter    Parameter
    53  Fix    .000E+00 -8.27400E+04 -1.45267E+05 -1.45267E+05               
    55  Opt.  5.000E+03 -4.00800E+04 -3.85740E+04   .00000E+00                     79  Opt.   .000E+00 -4.35419E+05 -4.25419E+05 -4.37145E+05                

    83    79   .000E+00 -4.56887E+05 -4.46887E+05 -4.58613E+05               

OFFSET(*)  displays the OFFSETs, or differences between current and data input (.mpi) file values, for all FIXED, OPTIMISED, STEPPED and LINKED parameters. Alternatively, displays the OFFSET appropriate to one such parameter if a valid parameter INDEX is supplied in brackets. Typical output is shown below.

                          Data File     Current       Stored
  Index Type    Scale     Parameter      Offset       Offset
    53  Fix    .000E+00 -8.27400E+04 -6.25270E+04 -6.25270E+04           
    55  Opt.  5.000E+03 -4.00800E+04  1.50600E+03  4.00800E+04                     79  Opt.   .000E+00 -4.35419E+05  1.00000E+04 -1.72600E+03             

    83    79   .000E+00 -4.56887E+05  1.00000E+04 -1.72600E+03              

PROPERTY

takes the values H / GIBBS_ENERGY[(*)] / TEMPERATURE[(*)]/ PRESSURE[(*)] / VOLUME / X(*) / W(*) / ACTIVITY(*)/ USER_VARIABLE(*) / SUM(*:*) / DIFFERENCE(*:*)/ PRODUCT(*:*) / RATIO(*:*) / LOG10(*) / LN(*)

where [ ] indicates an optional entry

LIST PROPERTY allows the values of certain calculated properties such as activities, enthalpies and mole fractions of components in phases to be listed to the screen following a successful phase equilibrium calculation. Operations such as SUM, DIFFERENCE, PRODUCT, RATIO, LOG10 and LN can also be performed, with calculated properties, constants or user variables as arguments.

By making use of PROPERTY, LABEL, ABSCISSA, VALUE, UNCERTAINTY and WEIGHT parameters within a single LIST command it is possible to associate a label, an appropriate abscissa variable, a target experimental value, an experimental uncertainty and a weight, used during optimisation, with each listed property. For example:   

list prop h val -123000 unc 5000 wei 2 lab 'H:Jones97' abs x(Mo) !                   

Such commands, along with those used to set up phase equilibrium calculations, form the basis of a typical EXPERIMENTAL_FILE (see DEFINE).

H  lists the total enthalpy of the system under consideration.

GIBBS_ENERGY(*) lists the total Gibbs energy of the system under consideration or the partial Gibbs energy of a component named in brackets. The CLASSIFY command should be used to establish appropriate reference states.

list property gibbs_energy !
list property gibbs_energy(Cr) !

TEMPERATURE(*)  lists the temperature of the system under consideration or, in the case of a phase boundary calculation, the temperature of the nth phase boundary within a specified temperature RANGE, the required boundary number n being supplied in brackets. 

list property temperature !
list property temperature(1) !

PRESSURE(*)   lists the total pressure of the system under consideration or the partial pressure of a gaseous species named in brackets.

list property pressure !
list property pressure(O2<g>) !

VOLUME  lists the total volume of the system under consideration.

X(*) lists the mole fraction of a component, named in brackets, either in a particular phase (if a phase name in angular brackets is appended to the component name) or in the system as a whole. For example:

list property x(Si) !
list prop x(CaO<LIQUID_OXIDE>) !


W(*)  lists the mass fraction of a component, named in brackets, either in a particular phase (if a phase name in angular brackets is appended to the component name) or in the system as a whole. For example:

list prop w(CaCl2) !
list property w(Fe<BCC_A2>) !
list property w(SiO2<LIQUID,2>) !

N(*)  lists the amount of individual species. For example:

list prop=n(CaO<LIQUID_OXIDE>) !

MASS(*)   lists the mass of individual species. For example:

list property=mass(Fe<FCC_A1>) !

ACTIVITY(*) lists the activity of a component named in brackets. The CLASSIFY command should be used to establish appropriate reference states.

list property activity(Mn) !

USER_VARIABLE(*) lists the value assigned to the user variable named in brackets.

SUM(*:*)  lists the result of adding one calculated property, user variable or constant to another. The property names, user variable names or numbers should be entered in brackets, separated by a colon, following the SUM keyword. For example:

list property sum(gibbs_energy:user_v(g12)) !
list property sum(x(Cr<LIQUID>):x(Ni<LIQUID>)) !

DIFFERENCE(*:*) lists the result of subtracting one calculated property, user variable or constant from another. The property names, user variable names or numbers should be entered in brackets, separated by a colon, following the DIFFERENCE keyword. That specified second is subtracted from that specified first. For example:

list property difference(h:user_v(h1)) !
list property diff(temperature:273.15) !

PRODUCT(*:*) lists the result of multiplying one calculated property, user variable or constant by another. The property names, user variable names or numbers should be entered in brackets, separated by a colon, following the PRODUCT keyword. For example:

list property product(5:gibbs_energy) !

RATIO(*:*)  lists the result of dividing one calculated property, user variable or constant by another. The property names, user variable names or numbers should be entered in brackets, separated by a colon, following the RATIO keyword. That specified first is divided by that specified second. For example:

list property ratio(gibbs_energy:2) !
list prop rat(x(FeO<LIQUID>:x(Fe2O3<LIQUID>)) !

LOG10(*)  lists the base ten logarithm of a calculated property, user variable or constant. The property name, user variable name or number should be given in brackets following the LOG10 keyword.

list property log10(pressure(O2<g>)) !

LN(*)  lists the natural logarithm of a calculated property, user variable or constant. The property name, user variable name or number should be given in brackets following the LN keyword.

list property ln(activity(H)) !

SQ_ROOT(*)  lists the square root of a calculated property, user variable or constant. The property name, user variable name or number should be given in brackets following the SQ_ROOT keyword.

list property=sq_root(pre(O2<gas>)) !

EXP(*)   lists the exponential of a calculated property, user variable or constant. The property name, user variable name or number should be given in brackets following the EXP keyword.

list property=exp(user_variable(gcu)) !


RESULT

takes the value EXPERIMENT[(*)]   where [ ] indicates an optional entry

The RESULT parameter is used to generate a table comparing the calculated values of all or selected properties accessed using LIST PROPERTY with target experimental data entered via LIST VALUE. Differences between calculation and experiment (errors) are expressed as multiples of experimental uncertainties entered using LIST UNCERTAINTY. This allow results corresponding to different types of property (such as Gibbs energies and mole fractions) to be compared on a common basis.

EXPERIMENT(*) lists the differences between calculated properties accessed using LIST PROPERTY and experimental values entered via LIST VALUE. Particular calculations or groups of calculations may be selected by entering the appropriate calculation numbers or LABELs in brackets after the EXPERIMENT keyword. For example:

list result experiment(1,5-9,10,12) !
list result exp(enthalpy) !
list res exp(98RED/HOT,57OLD/HAT) !

Typical output from list result experiment is shown below.

  No.    Label      Calculated  Experimental Uncertainty    Error     Weight
                     value (C)    value (E)      (U)       (C-E)/U
    1 PB:eutectic   3.04904E-03  5.00000E-03 1.0000E-03 -1.95096E+00 5.000E+00
    2 PB:eutectic   7.13620E-01  6.88000E-01 1.0000E-02  2.56196E+00 5.000E+00
    3 PB:liquidus   8.42863E-03  1.00000E-02 1.0000E-02 -1.57137E-01 1.000E+00
    4 PB:liquidus   2.54172E-02  2.60000E-02 1.0000E-02 -5.82789E-02 1.000E+00
    5 PB:liquidus   7.84687E-02  7.90000E-02 1.0000E-02 -5.31350E-02 1.000E+00
    6 PB:liquidus   1.20051E-01  1.23000E-01 1.0000E-02 -2.94886E-01 1.000E+00
    7 PB:liquidus   1.93897E-01  2.02000E-01 1.0000E-02 -8.10273E-01 1.000E+00
    8 PB:liquidus   2.60476E-01  2.72000E-01 1.0000E-02 -1.15236E+00 1.000E+00
    9 PB:liquidus   3.51968E-01  3.63000E-01 1.0000E-02 -1.10316E+00 1.000E+00
   10 PB:liquidus   6.20791E-01  6.06000E-01 1.0000E-02  1.47910E+00 1.000E+00
   11 PB:liquidus   6.88784E-01  6.67000E-01 1.0000E-02  2.17839E+00 1.000E+00
   12 PB:eutectic   7.03753E-01  6.88000E-01 1.0000E-02  1.57533E+00 5.000E+00
   13 PB:liquidus   7.44976E-01  7.24000E-01 1.0000E-02  2.09762E+00 1.000E+00
   14 PB:liquidus   8.45722E-01  8.23000E-01 1.0000E-02  2.27224E+00 1.000E+00
   15 PB:liquidus   9.04020E-01  8.90000E-01 1.0000E-02  1.40198E+00 1.000E+00
   16 Activity:800  8.88463E-03  1.40000E-02 2.0000E-02 -2.55769E-01 1.000E+00
   17 Activity:800  3.83371E-02  4.20000E-02 2.0000E-02 -1.83147E-01 1.000E+00
   18 Activity:800  1.00678E-01  9.50000E-02 2.0000E-02  2.83901E-01 1.000E+00
   19 Activity:900  9.27908E-03  1.70000E-02 2.0000E-02 -3.86046E-01 1.000E+00
   20 Activity:900  3.90124E-02  4.90000E-02 2.0000E-02 -4.99382E-01 1.000E+00
   21 Activity:900  1.01102E-01  1.08000E-01 2.0000E-02 -3.44877E-01 1.000E+00
   22 Activity:900  1.99475E-01  2.02000E-01 2.0000E-02 -1.26246E-01 1.000E+00
   23 Activity:900  4.71964E-01  4.92000E-01 2.0000E-02 -1.00180E+00 1.000E+00
   24 Activity:900  7.60795E-01  7.94000E-01 2.0000E-02 -1.66024E+00 1.000E+00
   25 Teutectic     4.28139E+02  4.27000E+02 1.0000E+00  1.13928E+00 5.000E+00
   26 Teutectic     7.68912E+02  7.67000E+02 1.0000E+00  1.91238E+00 5.000E+00
   27 DeltaHf      -3.13361E+04 -3.24700E+04 2.5000E+03  4.53558E-01 1.000E+00
   28 Hmelt         5.49836E+04  4.94600E+04 1.0000E+03  5.52355E+00 1.000E+00
   29 Tmelt         1.01381E+00   .00000E+00 5.0000E+00  2.02761E-01 5.000E+00
 Mean weighted square of errors of selected experiments
(omitting any undefined values) =  2.75865D+00

SYSTEM

takes the values ELEMENTS/ COMPONENTS/ PHASES/ SUBSTANCES/ UNARIES/ SETTINGS/ ALL

The SYSTEM parameter is used to LIST the current calculation SETtings and selected attributes of the system under study to the screen. Information accessible in this way is important in other commands, CLASSIFY and SET for example, where COMPONENTs, PHASEs and SUBSTANCEs are referred to by their numerical position in the appropriate SYSTEM list.

ELEMENTS  lists the ELEMENTS in the currently DEFINEd system. This is particularly useful if the COMPONENTS are non-elemental.

COMPONENTS    lists the COMPONENTS of the currently DEFINEd system, their status (NORMAL, ABSENT, FREE or PARA, see CLASSIFY), any associated reference phases (see CLASSIFY), overall amounts (see SET) and, in the case of FREE components, incremental amounts, DELTA, used as a basis for iteration towards equilibrium constraints. COMPONENTS may be elements or compounds.

SUBSTANCES   lists the individual SUBSTANCES in the currently DEFINEd system and their status (NORMAL or ABSENT, see CLASSIFY).

PHASES   lists the PHASES in the currently DEFINEd system, displays their status (NORMAL, ABSENT, number of MISCIBILITY gaps, see CLASSIFY)  and indicates how they are modelled, or how interactions between substances in the same phase are treated.

UNARIES  lists the UNARIES present in the currently DEFINEd system, their SOURCE database (see DEFINE) and the temperature range over which their thermodynamic data apply.

Unaries and substances are often identical. The most common case where they are not is that of phases modelled using different sublattices. Substance lists for such phases contain separate entries for each species (atom or ion, for example) on each sublattice. Unary lists, comprise combinations of such species, one on each sublattice. It is to such combinations that thermodynamic data are assigned.

SETTINGS   lists the current calculation SETtings (see SET) including the system temperature, system pressure or volume, total system amount or mass, amounts and masses of individual components, any temperature, pressure or composition RANGEs established, any equilibrium constraints and any USER VARIABLE values.

ALL  lists the COMPONENTS, SUBSTANCES, ELEMENTS, PHASES, UNARIES in the currently DEFINEd system as well as the current calculation SETTINGS.

list system all !

is equivalent to

list system comp subs elem phas unar sett !

VALUE

takes the values <experimental value > / NONE

The VALUE parameter of the LIST command is used to associate a target experimental value with a calculated PROPERTY accessed using the LIST PROPERTY command. This is usually done in an EXPERIMENTAL_FILE (see DEFINE) rather than interactively. Differences between calculated properties and experimental VALUEs, scaled using a stated UNCERTAINTY, contribute to the sum of squares of errors which is minimised during optimisation runs.

list property h value -125000 uncertainty 5000 !

A previously specified experimental VALUE can be cancelled by entering a new VALUE of NONE.

UNCERTAINTY

 takes the values <experimental uncertainty> / NONE

The UNCERTAINTY parameter of the LIST command is used to associate an UNCERTAINTY with an experimental VALUE entered using LIST VALUE, corresponding to PROPERTY accessed using LIST PROPERTY. This is usually done in an EXPERIMENTAL_FILE (see DEFINE) rather than interactively. The stated UNCERTAINTY is used to scale differences between calculated properties and experimental VALUEs before evaluating contributions to the sum of squares of errors, minimised during optimisation runs. Scaling allows errors associated with different types of PROPERTY (enthalpies and mole fractions, for instance) to be compared on a common basis.

list prop w(SiO2<LIQUID_OXIDE>) value 0.534 uncertainty 0.01 !

A previously specified UNCERTAINTY can be cancelled by entering a new value of NONE.

A negative UNCERTAINTY is treated as a percentage of the specified experimental VALUE (10% or 0.0254 below).

list prop act(Fe) value 0.254 unc -10 !

WEIGHT

 takes the values <weight for experiment> / NONE

The WEIGHT parameter of the LIST command allows each calculated PROPERTY, associated with an experimental VALUE and UNCERTAINTY, to be assigned a WEIGHT for use during optimisation runs. Entering a WEIGHT of 2 for a particular PROPERTY in an EXPERIMENTAL_FILE (see DEFINE) would double the contribution of that PROPERTY to the calculated sum of squares of errors. It would be as if the complete LIST PROPERTY command had been entered in the EXPERIMENTAL_FILE twice. If no WEIGHT is specified a WEIGHT of 1 is assumed.

list prop act(O2) value 0.238 uncertainty 0.01 weight 5 !

A previously specified WEIGHT can be cancelled by entering a new value of NONE.


General comments:

The parameters of the LIST command can be divided into two categories, those used to gain information (SYSTEM, PARAMETER, RESULT) and those used to set up calculations to be undertaken during optimisation runs (PROPERTY, VALUE, UNCERTAINTY, WEIGHT, ABSCISSA, LABEL_OF_EXPERIMENT).

Typically the latter parameters are used together within a single LIST command, accessing a calculated result and supplying the additional information necessary to incorporate that result in an optimisation run, such as a target value and experimental uncertainty. An EXPERIMENTAL_FILE, used to control optimisation runs, might contain many such LIST commands interspersed with CLASSIFY, RANGE, SET and COMPUTE commands, these being used to set up and perform individual calculations, making results available for LIST PROPERTY.

For the sake of clarity it is often useful to separate the ASSESSMENT module commands used in an EXPERIMENTAL_FILE from the numeric data provided. This can be done by making repeated calls to smaller sub-macros, which prompt for information. An example of such a macro, named b2o3act, designed to calculate B2O3 activities in Na2O-B2O3 melts, is shown below:

classify reference(2) LIQUID !
set w 1 w(2) ********
t ********
! compute !list property act(B2O3)
value ********
uncertainty ********
weight ********
abscissa ********
label ********
!

The use of macros such as b2o3act enables EXPERIMENTAL_FILEs to be written which take the form of simple tables of data. An example is given below:

; macro    w(2)  T/K  act(B2O3) uncert. weight  abscissa     label 
’b2o3act’  0.7   1123   0.05     0.02     1     x(B2O3)  ’act:76Green’
’b2o3act’  0.8   1123   0.21     0.02     1     x(B2O3)  ’act:76Green’
’b2o3act’  0.9   1123   0.84     0.02     1     x(B2O3)  ’act:76Green’
’b2o3act’  0.6   1273   0.02     0.01     1     x(B2O3)  ’act:76White’
’b2o3act’  0.8   1273   0.28     0.01     1     x(B2O3)  ’act:76White’
’b2o3act’  0.8   1273   0.31     0.02     1     x(B2O3)  ’act:76Brown’


 

Updated 5 August 2010