MTDATA – Phase Diagram Software from the National Physical Laboratory









MTDATA Demonstration : Salt Systems


  1. Introduction
  2. The KCl-NaCl system
  3. The Li2CO3-Na2CO3-K2CO3 system
  4. The NaCl-KCl-Na2SO4-K2SO4 system
  5. Reciprocal diagrams


A wide range of technologies are based around the behaviour and properties of salts either in crystalline form or, more often, in a molten form. For example the electrical properties of salts are crucial to their role as electrolytes either as a means of storage of energy eg in fuel cells or batteries or as a means of refinement or extraction of metals from ores. Molten salts are also used in high pressure discharge lamps in order to improve their performance and their colour rendition. Molten salts can also be used as solvents facilitating chemical reactions and because of this they are also potentially corrosive.

The modelling of the processes involved in those applications requires thermodynamic data for the multicomponent solid and liquid solutions involved. For this purpose a database has been developed for the binary, ternary and reciprocal salt systems, which is used in conjunction with MTDATA in order to make the calculations required for multicomponent systems. Because all the data are both self consistent and referred to standard data for the elements they can be used for calculations in conjunction with other types of phases including alloys, oxides, gases etc. The database developed covers the halides, sulphates, carbonates, hydroxides of alkali, some alkaline earth and other metals.

The KCl-NaCl system

The first system to be examined is a binary system, in this case the KCl-NaCl system. The ACCESS module is used to retrieve the data by defining the system and the database where the data are stored. The thermodynamic data for the liquid phase are modelled in a way which takes account of the ionic nature of the phase. The model allows data to be mixed for monovalent ions (eg alkali metals, halides), divalent ions (eg alkaline earth ions, sulphates, carbonates) etc. In order to invoke this model it is also necessary to specify that charged species are required.

ACCESS OPTION ? define system 'KCl,NaCl,Cl/-' source salts !
salts           - NPL Salts Database, version 1.0 - 16/3/93


The LIST command can be used to find out the phases for which data have been retrieved.

ACCESS OPTION ? list system phases !

   2     LIQUID**:1:1   NORMAL    SUBLAT. VAR. NO VA

The MONOCLINIC phase is not required for this particular system and therefore could be removed by using the CLASSIFY command

ACCESS OPTION ? classify absent phase(mono) !

Finally the SAVE command is used to write the data into a file for subsequent use. Input of the command RETURN leaves the ACCESS module and allows entry of the BINARY module in order to initiate the calculation of the phase diagram.

ACCESS OPTION ? return binary

Once in the BINARY module it is necessary to read in the datafile that has just been created using the ACCESS module. This is performed by using the DEFINE command. The file had been saved with the default name DEF.MPI. Unless a filename is specified this file will be read in.

BINARY OPTION ? define !

The phase diagram of the KCl-NaCl system has a miscibility gap within the HALITE phase at low temperatures. To calculate the phase diagram at these low temperatures MTDATA is asked to look for one using the CLASSIFY command. The LIST command is used to check that MTDATA has taken note of this.

BINARY OPTION ? classify misc(halite) 1 ! list system ph !
   1     HALITE         1  M-G    REDLICH-KISTER
   2     LIQUID         NORMAL    SUBLAT. VAR. NO VA

Finally it is necessary to specify the temperature range for the calculations and to enter the COMPUTE command. In the first diagram the high temperature region between say 900 K and 1200 K is examined with a 5 K step size between calculations.

BINARY OPTION ? step t 900 1200 5 ! compute !

A box appears on the screen as a frame for the calculated phase diagram. The user is invited to use the cursor to initiate calculation in a two phase field. The phase diagram as originally calculated is not shown here. Instead the calculated phase diagram is replotted with experimental information superimposed.

BINARY OPTION ? replot exper 'kclnaclh.exp' go

In a similar way the low temperature phase diagram can be calculated and the results replotted with experimental data superimposed.

BINARY OPTION ? step t 500 900 5 ! compute !
BINARY OPTION ? replot exper 'kclnacll.exp' go

The Li2CO3-Na2CO3-K2CO3 system

MTDATA can also be used to calculate phase diagrams for ternary salt systems. In the following example the Li2CO3-Na2CO3-K2CO3 system is examined which is of potential interest in the design of materials for use in fuel cells. Firstly the ACCESS module is used to retrieve and store the data for this system.

ACCESS OPTION ? define system 'K2CO3,Li2CO3,Na2CO3,CO3/-2' sou salts !
salts           - NPL Salts Database, version 1.0 - 16/3/93


Occasionally MTDATA provides helpful warning messages, here to indicate a possible missing item of data. In this case it can safely be ignored.

ACCESS OPTION ? return ternary

Having saved the data into a datafile the TERNARY module can be used to calculate the phase diagram. First it is necessary to use the DEFINE command to indicate the datafile to be used - here the default file DEF.MPI. The data are read into the program.


The temperature must be specified using the SET command.

TERNARY OPTION ? set t 700 !

The COMPUTE command initiates the calculation of the ternary isothermal section


A triangular grid appears on the screen as a frame for the calculated phase diagram. In an analogous way to the use of the BINARY module the cursor may then be used to initiate calculation in a two phase field.

The NaCl-KCl-Na2SO4-K2SO4 system

Many commercial alloys operating at high temperatures are susceptible to corrosive attack from molten salts. Typically an alkali metal halide is transported into the vapour phase, reacts with any sulphur and oxygen species to form sulphates which deposit on the alloy in the form of a complex solid or molten salt. This salt mixture may dissolve the protective oxide layers (eg Cr2O3) on the alloy exposing the material to corrosive attack. One of the key salt systems responsible for this "hot salt corrosion" is NaCl-KCl-Na2SO4-K2SO4.

These salts form what is called a "reciprocal system" - there are four pure salts involved linked together by a chemical equation. Phase diagrams for such a system are similar to ternary phase diagrams - it is possible to plot isothermal sections but in this case the four pure components form corners as a square with each side representing a binary system such as the KCl-NaCl system shown earlier. In this system the liquid phase alone forms a continuous series of solutions across the system and must be modelled according to a model which takes account of the chloride and sulphate anions.

It is of interest to calculate the pseudo binary section between pure NaCl and K2SO4. To do this it is necessary to use the "ISOPLETH" application of MTDATA.

ACCESS OPTION ? def sys 'NaCl,K2SO4,KCl,Cl/-' sou salts !
salts           - NPL Salts Database, version 1.0 - 16/3/93


Isopleths or pseudo binary sections can be calculated via the APPLICATION module.

ACCESS OPTION ? ret app def !

There is a miscibility gap in the HALITE phase of the KCl-NaCl system.

APPLICATION OPTION ? cl misc(hal) 1 !

Isopleth calculations are initiated by invoking the ISOPLETH macro.

APPLICATION OPTION ? 'mt-isopleth.mac'
                    I S O P L E T H    0 0 1

Isopleth - the calculation of pseudo binary sections through
                     multicomponent systems

It is now necessary to define certain parameters for the calculations.

Enter composition tolerance (typically 0.0001) ?
: 0.0001
Enter number of temperature steps (perhaps 30) ?
: 100

APPLICATION OPTION ? set "NaCl" 1.0 0.0 0.0 !
APPLICATION OPTION ? set "K2SO4" 0.0 1.0 0.0 !
APPLICATION OPTION ? range "NaCl" "K2SO4" 100 !
APPLICATION OPTION ? range temperature 600 1400 0.1 ! comp !

The calculation then proceeds automatically by calculating individual phase boundaries for a range of compositions and temperatures. These appear on the screen as discrete points. Phase fields may be labelled easily using a graphics cursor which appears after the calculations have been completed. The diagram may be replotted in which case the phase boundaries appear as solid lines as in the next figure.

Reciprocal diagrams

Isothermal sections of reciprocal salt systems can be calculated using the TERNARY module. Often diagrams for reciprocal systems are shown with a constant number of cation ions per component eg Na2Cl2 is used instead of NaCl. ACCESS allows components to be defined in this way.

ACCESS OPTION ? def sys 'Na2SO4,Na2Cl2,K2SO4,Cl/-' sou salts !
salts           - NPL Salts Database, version 1.0 - 16/3/93

ACCESS OPTION ? ret ter d !

As before it is necessary to tell MTDATA to look for a miscibility gap within the HALITE phase. After setting the temperature the reciprocal isothermal section can be calculated through use of the compute command specifying that the diagram should be reciprocal in type rather than using the triangular grid normal for ternary phase diagrams.

TERNARY OPTION ? clas misc(hal) 1 !
TERNARY OPTION ? set t 900 !
TERNARY OPTION ? comp diag recip !

Diagrams such as the previous isothermal section can be combined together to form liquidus projections by making use of an MTDATA metafile. A named metafile is opened and all diagrams calculated while it is open are saved to it automatically. When the metafile is closed, the diagrams can be replotted, superimposed, using the UTILITY module's PLOT command.

TERNARY OPTION ? clas misc(hal) 1 !
TERNARY OPTION ? clas misc(hal) 1 !
TERNARY OPTION ? [metafile=liqpro.mta
TERNARY OPTION ? set t 700 ! compute diag recip !
TERNARY OPTION ? set t 750 ! compute diag recip !
TERNARY OPTION ? set t 800 ! compute diag recip !
TERNARY OPTION ? set t 1300 ! compute diag recip !
TERNARY OPTION ? [metafile=none
TERNARY OPTION ? return utility
UTILITY OPTION ? plot file 'liqpro.mta' !

MTDATA metafiles provide an easy way for diagrams to be combined. Diagrams saved in metafiles can also be edited, before plotting, for example to add extra annotation.