MTDATA – Phase Diagram Software from the National Physical Laboratory







Training and Support 




Other Services 







The ASSESSMENT module provides tools to help in the task of deriving values for thermodynamic model parameters, which, when used as a basis for phase equilibrium calculations, give the best possible representation of a collection of experimental measurements obtained for a particular chemical system. This overall task of gathering data and generating values for parameters is referred to as data assessment or sometimes critical assessment since it involves comparing data of many different types, from many different sources, obtained using many different experimental techniques. The specific task of generating model parameters appropriate to a set of experimental data is called optimisation.

Experimental data for a particular system are supplied to the ASSESSMENT module via an experimental data file. Any property or combination of properties that can be calculated using MTDATA can feature in this file, which takes the form of a macro giving instructions for the calculation of each property and associating each calculation with an experimental value and uncertainty (using the LIST command). Properties typically considered in experimental files include activities, heats of mixing, equilibrium phase compositions and phase boundary temperatures and compositions. Best results are obtained where a good mix of thermodynamic measurements and phase equilibrium data are available.

Individual thermodynamic parameters from the data input (.mpi) file are referred to by number (or index) during the process of setting up an optimisation run. The SHOW command is used to reveal the index appropriate to each parameter. Once a parameter's index is known the parameter can be flagged for possible change during an optimisation run using the MODIFY command. Sets of parameters can also be linked together such that any change made to one will be mirrored in its partner(s). This is useful in ensuring that data remain consistent across temperature range boundaries. A optimisation run based upon a chosen algorithm can be initiated using the OPTIMISE command. During such a run the values of parameters flagged for optimisation are changed automatically to minimise differences between calculated properties defined in the experimental data file and their experimental values. The actual function minimised is the weighted sum of squared errors where an error is defined as the difference between calculated and experimental values of a property divided by the stated experimental uncertainty.

where n is the number of properties considered in the optimisation run, Ci is the calculated value of property i, Ei is the experimental value of property i, Ui is the uncertainty associated with Ei and Wi is the weight assigned to property i.

Optimisation runs can be monitored graphically or by means of text output. In the former case plots illustrate changes in the optimised parameters and corresponding changes in the weighted sum of squared errors as they happen. Typically an assessment will involve many optimisation runs with different numbers of parameters being changed and more experimental data being added at each stage.

As a prelude to an optimisation run it is often useful to obtain a crude impression of the effects of varying individual thermodynamic parameters. This helps in selecting suitable parameters for change. To facilitate this, one or two parameters can be flagged for stepping using the MODIFY command. On issue of the STEP_PARAMETER command the values of these parameters are varied automatically based upon a specified SCALE (magnitude of changes) and number of steps, a comparison between calculated properties and experimental data being made at each stage.

Properties calculated using parameter values resulting from an optimisation run can be compared with experimental data graphically using the PLOT command or in the form of a results table using the LIST command. In order to make more complex calculations using the new parameters it is possible to SWAP to other MTDATA modules while still retaining the optimised data in memory. If the new parameters are found to be unsatisfactory, perhaps due to a lack of experimental data to constrain their values, it is possible to UNDO the effects of an optimisation run and recover the parameter values appropriate at its start.

Optimised values of parameters can be saved in an in-memory store or saved in a data loading file for the purposes of updating an MTDATA database. Alternatively a set up file (MTDATA macro) can be written, allowing the exact state of the existing optimisation to be recreated at a later date.

Brief summary of commands

DEFINE is used to retrieve thermodynamic data for a system to be studied, either from a list of databases or from a previously created data input (.mpi) file. Additionally it is used to provide the name of the file (macro) containing calculation instructions and experimental data for any planned optimisation runs.

LIST provides the basic tools for setting up an optimisation run in that it allows target experimental values and uncertainties, labels, weights and suitable abscissa settings (for later plotting) to be associated with properties to be calculated. It can also be used, after optimisation, to examine thermodynamic parameter values and differences between calculated properties and experimental data. Alternatively it displays the elements, components, substances, unaries and phases in the currently defined system, their status (classifications) and any initial or equilibrium settings (including ranges) established previously.

CLASSIFY is used to remove particular components, phases or substances from consideration in calculations or to reintroduce those previously removed, to establish reference states for the thermodynamic properties of components, to flag "PARA" components, the relative amounts of which are to be fixed in all phases in which they appear, and to indicate potential miscibility gaps in phases. It is also allows computational parameters appropriate to open system calculations to be specified and the amounts of components to be set free to change.

MODIFY_PARAMETER is used to assign new absolute or relative values to thermodynamic parameters, to flag those parameters to be changed during stepping or optimisation, to link parameters together so they are changed in an identical manner and to provide scales for changes to parameters.

RANGE is used to specify temperature, pressure or composition ranges for consideration in phase boundary searches along with temperature, pressure or composition tolerances indicating the accuracy to which individual boundaries are to be found. Note that currently only temperature can be ranged.

SET is most commonly used to fix the system temperature, pressure or volume and initial amounts or masses of components, individually or in total, prior to a calculation. It can also be used to fix equilibrium partial pressures, molalities and amounts or masses of individual species, to associate group names with system compositions and to assign values to named user variables.

STEP_PARAMETER is used to initiate calculations in which the values of one or two thermodynamic parameters are stepped automatically, the level of agreement between calculated properties and experimental data from the current experimental data file being indicated at each stage in terms of the weighted sum of squared errors divided by the sum of weights. This is sometimes a useful prelude to a full optimisation run. The required number of steps must be specified.

SHOW lists the names, current values and indices of thermodynamic parameters from the current data input (.mpi) file to the screen. Parameters can be selected for listing by type (unary or interaction) or by phase.

PLOT is used to obtain diagrams comparing calculated properties with experiment. Two types of diagram can be plotted, bar charts of errors (differences between calculated and experimental results divided by experimental uncertainties) or lines joining calculated values associated with the same abscissa variable overlaid with symbols indicating experimental data. Weights are not shown in these diagrams.

SAVE is used to save the values of fixed parameters, parameters flagged for change during stepping or optimisation and parameters linked to others flagged for change, either to an in-memory store or to a data loading file ready for creating or updating an MTDATA database. Alternatively a set up macro can be written allowing the exact state of the current optimisation to be recreated at a later date.

COMPUTE is used to initiate phase equilibrium calculations based upon the current settings and classifications. The required type of calculation (stage or combination of stages) and method of initiation (initial point option) can be chosen.

OPTIMISE is used to initiate an optimisation run in which thermodynamic parameters flagged as optimised or linked are adjusted automatically to minimise differences between calculated properties and experimental data from an experimental data file. An appropriate optimisation algorithm, tolerance, maximum number of comparisons to be made between calculation and experiment and method of monitoring progress (text or graphical output) can be selected.

RESTORE is used to retrieve the values of fixed parameters, parameters flagged for change during stepping or optimisation and parameters linked to others flagged for change, from in-memory store. Existing values are overwritten.

UNDO_OPTIMISATION negates the effects of the last optimisation run performed. New values for thermodynamic parameters generated during the last optimisation run are overwritten by those current at the start of that run.

LASER is used on some MTDATA platforms to request hard copies of graphs plotted but not previously sent to a printer. It is not used in MTDATA for Windows 9x and NT.

RETURN takes the user out of FIT_AND_PLOT back to the module level.

SWAP is used to leave the ASSESSMENT module and enter another module, retaining the current optimisation set up. This allows test calculations to be performed in modules other than ASSESSMENT using the current set of optimised parameters.

<"Macro name"> runs a macro taken from a file. The name of the file should be entered in quotes. Commands can also be passed through to the operating system by prefixing them with a $ (dollar sign). The dollar sign and operating system command should be entered within quotes.

Further Information

A gentle introduction to using the options available in ASSESSMENT contains annotated examples, each directed towards achieving a particular outcome and shows typical combination of commands which would be necessary to achieve that end.

A simple summary of the commands available can also be used as an index to obtain more detailed help about each command.


Updated 4 July 2010