Scientific Projects hosted by MSI may be time limited or ongoing, performed as public research or customer directed contract work.

ThermoChemTool - User's Guide

Table of Contents
General structure of the program
Help files of the menus
Data on the solubility of H, C, N, and O in metals

        Initiates file download  Read the User's Guide as PDF.  (150KB)

General structure of the program


The program is a 32 bit Windows application. All files used in addition to the program file are text files. As filter in file save and file load processes we use: Data.txt for data files, H.txt for help files and Plot.txt for [T,F(T)] point data files. Thus, the user is not troubled if Microsoft changes again the formats and he has direct access to these files to change or manipulate them, of course on his personal responsibility. You have not  to use the filter names for personal files, but the program runs smoother if you do this.

The table of functions is printed also as text file with the old-fashioned courier type fond in order to remain independent of changes of fond standards. If the table has to be inserted correctly into a manuscript it may be no big problem to do this by the text program used.

The curve plots are printed as bitmap files. They can serve as a sketch for a figure in a manuscript and further optimized by the text or graphic program.

The data files are text files too. Each data set is written in a line with this structure:


The numeric values are defined as double and written as string variable too.

Data set of thermochemical functions

The data set for reactions of H, C, N, and O with metals, offered in the program file DataBasis.txt, is used as standard set of the program and has been chosen according to conventions used also in many data compilations. H means ∆H, i.e Ho at 298.16 K of reaction products minus reactants. S means ∆S, i.e So at 298.16 K of reaction products minus reactants. cp means ∆cp, i.e cp at 298.16 K of reaction products minus reactants. cp(T) is given as:

cp = a + b*1E‑3*T + c*1E5/T2  + d*1E‑6*T2.

By this definition we get (for details read a textbook on thermochemistry):

  H(T) = Ho(To) + a(T‑To) + 1/2*b*1E‑3*(T2 ‑To2 )

             ‑ c*1E5*(1/T‑1/To) + 1/3*d*1E‑6*(T3 ‑To3 )

  S(T) = So + a(lnT‑lnTo) + b*1E‑3*(T‑To)

             ‑ 1/2*c*1E5(1/T2 ‑1/To2) +1/2*d*1E‑6*(T2 ‑To2 ),

Tmin is used as To in the program.

Tmin, Tmax  define the temperature range, given by the authors. Thus, the complete data  set consists of:

System name, reaction equation, references, Tmin, Tmax, H, S, a, b, c, d, and l as a zero string available for the user.

The selection of data is made by the system name which consists of the symbols of the chemical elements occurring in the reaction equation. The elements are written as capitals and in alphabetic order. A system name has the following structure:

SystemName =‘E1’[+’  ‘+’E2’[+’  ‘+’E3’[ +’  ‘+’E4’[+’  ‘+’E5’[ +’  ‘+’E6’]]]]]+’ ‘

The reaction equation specifies the individual reaction and references or comments are given in variable Ref.

In most cases the factors a to d are zero, since only the two most important quantities H and S are known and suffice for realistic estimations within the error of the experimental data they rely on. The factors a to d are included in the program to assist more detailed thermochemical analyses sometimes made by experts.

In the data sets temperatures are given in K and energies in Joule.


The menus control the data input and output.

Data input is made by the menu Get data  by selection of the data sets beginning with the system name chosen, and their transfer from the data file to the work store opened for the present session. 

The input of data found in the literature to the work store requires two steps. They must first be filled into a private data file (TempData.txt, PrivData.txt or another one, ...Data.txt) by the menu Data input. Then you can use the menu Get data and have them available in the work store for output procedures.       

Data output is performed by the menus Show data and Plot. The conversion of  units are only active in the output procedures and in the menu Data input where correct data sets must be produced before they can be saved in the data files.

The menu Calculate produces data sets of new reactions by addition of data sets available in the work store which are multiplied by factors chosen by the user. This data set must then be written into one of the private data files and then filled into the work store by Get data. Only then you can use the new data in output procedures.

By the menu File care you can look into the files and delete one data set or all sets in a data file. The data file ‘DataBasis.text’ with the evaluated data on (H-C-N-O-Me) systems is write protected and should not be changed unless a backup is made. If a user has made a file with his own basic reactions he can save it as DataBasis.txt after he has renamed the original file DataBasis.txt for further use.  


Actions of Menus in the program
Actions of Menus in the program


In practical use there are two big chances for making mistakes.

  1. Errors in the conversion of energy and temperature units.
  2. The use of incompatible standard states for the activity a in thermochemical  functions.

This program avoids to large extend errors of type 1.) by the routines available. The data stored in the data files and transferred from there to the work store for a specific session are given in units Joule and K. Also the input of new data to personal data files by the user is converted to these units.

The output procedures providing data sheets, tables, or curve plots begin with the input of these standard data from files to the work store. The data selected can then be presented for temperature in   K, C, F, and for energy in cal/mol, Joule/mol, eV/molecule.

Standard states

The problem of avoiding type 2.) errors with respect to the standard state unfortunately has to remain in the responsibility of the user. It is the problem of definition of the units for the activity a  in the entropy terms ( for details consult textbooks of thermochemistry ). However, the definitions for  a  in the data sets of the file DataBasis  are given below.

The pressure standard state of hydrides, nitrides and oxides in the DataBasis file uses as pressure unit 1 atm. The solution reactions for H, N, O use as standard state the ideal diluted solution model with p in atm and the concentration x of the dissolved atoms x in mole fraction, (not in wt% or at% !). The problem of choosing compatible standard states for calculation is described in more detail below in the menu Opens internal link in current windowCalculation.

Help files of the menus


This menu provides the procedures for unit conversion of data input and output. One can change units by this menu any time. The user is reminded to check units also when entering some of the other menus.

In the lower part there is an input for three constants to adapt the presentation of the equilibrium constant lg Kp. This enables the user to Opens internal link in current windowplot a pressure or concentration term as a function of temperature.

The following examples shall demonstrate this: 

The reaction  2Al + 3/2O2  → Al2O3  gives an equilibrium constant

lg Kp0  = lg (a(Al2O3) / {a(Al)² * p(O2)3/2}) = ‑G / (RT ln 10).

a(Al2O3) and a(AL) are 1 by definition and p(O2) is given in atm. If you wish to plot the dissociation pressure of Al2O3 as a function of T you have to change the lg Kp0  function to

lg Kp = (-3/2) * lg Kp0  + 0 ,  ( A : = -3, B : = 2, C : = 0).

With C you can change the pressure units. E.g. C : = 3 gives millibar.

The reaction   1/2H2 → H(in Ti)  has the equilibrium constant

lg Kp0  = lg (a(H in Ti) / p(H2)1/2 ) = ‑G / (RT ln 10).

a(H in Ti) is given in mol fraction. If you wish to plot the concentration of

H (dissolved in Ti at 1 atm) in at % you have to set C : = 2.

If you need the equilibrium H2 pressure for 1 at% H you set

A : = -2, B : = 1, C : = -4.

The input of A and B requires integers, decimals are removed. lg is common logarithm, ln is natural logarithm, a are activities. For elements and stoichiometric compounds a = 1 holds and the activity a of the solution reaction is defined in the DataBasis file as an ideal diluted solution with a(H in Ti) = n(H atoms) / [n(H atoms) + n(Ti atoms] in mol fraction x. lg Kp  is the standard equilibrium constant of the reaction as defined by the data set.



Get data

This routine is responsible for finding relevant data in the files by the input of a system name. The system name is the alphabetic sequence of the elements occurring in the reaction equation. Correct writing is very important and checked carefully by the program.

Existence and correct writing of each element symbol is checked when leaving its edit box. Confirm the end of input by pushing the buttons Make system name and Insert data to store.

The data available in a file belonging to the same system name are given to the work store and characterized in the list of content by the reaction equation. The input of data from various files finally provides the set of data required for presentation or calculation.

Data not needed can be deleted.


Show data

With this menu you can look at the data of a reaction selected from the work store.

The data sheet shows the data set read from the file in the units chosen. You can get a screen copy of the sheet.

The table shows the values of thermochemical functions calculated from these data for various temperatures. The values for Tmin and Tmax and the temperature steps are proposed by the program, but you can choose also other numbers. If you need function values at specific temperatures you can insert these T values as Tmin or Tmax. The table shown can be printed as screen copy or saved as a text file for further use in personal documents.



With this menu the thermochemical functions cp, H, S, G, lg Kp of one or several reactions can be plotted vs. temperature or 1/T, respectively. The units of the plot can be chosen optionally. The length and scales of the axes are at first proposed by the program according to the temperature range given in the data set, but they can be changed to fit the taste of the user.

In the plot lg Kp vs. 1/T dashes at the top can be printed at T values n*500K, n*200K, n*100K, n*50K, n*20K, or n*10K by pushing a button and plotting it again.

The plotted data points (T, function(T)) of the curves can also be stored in a text file of data points for further use in other plot programs. The lines have this structure:

T+'   '+function(T)+'   '+'fat/thin'.

fat means data within the limits of definition, thin means extrapolation.

A bitmap of the curves can be stored, too, for further use.

Finally, a screen copy can be printed. The comments written can remind details of the reactions or curves and, in addition, the names of the file or bitmap can be read from the printed copy.



In compilations of thermochemical data the values for the formation of compounds from the elements are found. The ∆cp, ∆H and ∆S values of these reactions can be combined by multiplying with a factor and addition or subtraction  in exactly the same way as the chemical symbols in order to form a new reaction equation. The result of this procedure gives the reaction data of the new reaction.

 1*(2Al + 3/2O2 → Al2O3)          ∆G(Al2O3): = G(Al2O3)‑2G(Al)‑3/2G(O2)
‑3*(H2 + 1/2 O2 → H2O )
‑3*[ ∆G(H2O): = G(H2O)‑G(H2)‑1/2G(O2)]
      2Al + 3H2O → Al2O3 + 3H2        ∆G(new): = G(Al2O3)+3G(H2)‑2G(Al)‑3/2G(H2O)

This example for G demonstrates how the data set of the new reaction is obtained by multiplication of the second data set by a factor of ‑3 and addition. The pointers in the equations on the left hand  defines: The reactants on the left side of the equation form the reaction products on the right side. Using ‑1 and 3 as factors yields the backward reaction with opposite signs of the energy terms in the new data set.

One problem is left to the care of to the user, the problem of compatible standard states.

The activity for stoichiometric compounds  is defined to be 1 and for gases the pressure is normally defined to be 1 atm. That is no real problem.

For diluted solutions  (mole fraction x < 0.03) one can write a reaction equation

 C → C(in Fe)         

and define the activity as a = x. This has the consequence that we define a new artificial standard state, carbon in iron with the concentration x = 1. The reaction energy and entropy values represent the difference between these two standard states. This sounds somehow crazy. However, also for the solution of gases, H2 → 2H(in Fe) we obtain a clear definition for the Sievert's constant x2/p = Kp(T). The "heat of solution", the enthalpy change of this reaction, is a very informative term for such type of reactions. The data file DataBasis.txt contains a collection of solution data for H, C, N, and O in metals using these standard states.

Whenever data of solutions, mixtures or alloys are used in calculations one has to check carefully the standard states with respect to p and a (i.e. pressure and concentration units). The definition of the activity of an element as an element in a mixture defines also the standard state of ∆S of a reaction. Big mistakes can arise in this corner. A look at relevant chapters in a text book may be helpful to avoid drastic errors caused by mixing incompatible standard states in calculations.

Another point one has to consider when using literature data is to check whether the term G(Al2O3) means ∆G, i.e. the reaction Gibbs free energy of formation from the elements, like in this program, or the absolute value of G. An example how to handle this problem is discussed in the menu Opens internal link in current windowData input [2,3].

Data Input

With this menu you make new data sets in in the style of this program and save them in data files, e. g. in the files PrivData.txt or TempData.txt already existing, or in any other file with a new name ...Data.txt.

At first you are asked to define the units of input data and the system name of the reaction. Then you have to enter the type of data presentation you found in the literature and have to write the reaction equation and the reference or other comments.

Then a data sheet is shown which contains already the system name, the reaction equation and reference and the units of the data, you are inserting now. The sheet asks for Tmax and Tmin of the data. Tmin is frequently 298 or 300 K and Tmax the melting point of a compound or the highest temperature of experiments.

The types of data presentation accepted by the program are:


  1. Ho, So : In many data collections these most important constants of a reaction are found. Since the values at To (mostly 298 K) are only slightly affected by the cp value of the reaction these data give very reliable estimations, in most cases reliable within the error of experiments [4‑7]. In many more professional data compilations the H and S values are tabulated as a function of temperature. Since both quantities are not strongly temperature dependent one can get average values for a temperature range of interest from such tables for the input of H and S.

  2. The book of Kubaschewski et al., Metallurgical Thermochemistry [1], uses three constants A, B, C, which define Ho, So, and a constant ∆cp value, which is represented in our system by the constant a.

    A detail for the insider:
    With the approximations cp : = a  and To : = Tmin  one can write

    G = ( H ‑ a*Tmin)  ‑  T*(S ‑ a*(1+ln Tmin))  ‑ a*T*ln T
        = A + B*T*lg T  + C*T.
    Thus: a = ‑ B/ln 10;   H = A + a*Tmin ;   S = ‑C + a*(1+ln Tmin)

  3. This data set is based on the compilation of Barin/Knacke[2,3] with the additional constants a, b, c, d, which describe the temperature dependence of cp(T) and of H(T) and S(T). This very precise description of thermochemical data is included for the use by experts and has to be handled with care. When using the data from the book of Barin/Knacke a problem arises from the fact that they give not the reaction data (delta values) but data of the components of the reaction equation.

    delta value (2Al+3/2O2→Al2O3) = data(Al2O3)‑2*data(Al)‑3/2*data(O2)

    To stay within the system of this program one has to perform at first this transformation before the input of reaction delta values is done, either by hand or by the menus input and calculate.

  4. Sometimes only an equilibrium constant is available for a reaction. If we use the equation ∆Go[J] = ‑ RT*ln Kp(T) = - 19.144*T*lg Kp(T), the Go value at two temperatures of interest can be obtained. This gives us an average H and S value and a data set which is as reliable as the set obtained by style 1.) data [4,5]. Of course, the standard state with respect to pressure (p in atm) and concentration (x mol fraction for ideal dilute solutions) must be the same as for the other reaction data used to yield correct results in the calculate menu.

    The input of data to the temporary file, just to have a look at them or to get a plot or a table, is not critical. However, if one needs a data set for more detailed thermochemical analysis or for calculations, the compatibility of the standard state of the new data set with the data in the permanent files should be controlled carefully.


  1. O Kubaschewski, C.B.Alcock, P.J.Spencer, Materials Thermochemistry, 6th Ed. Pergamon, Oxford 1993
  2. I. Barin, O. Knacke, Thermochemical Properties of Inorganic Substances, Springer Berlin 1973
  3. O. Knacke, O. Kubaschewski, K. Kesselmann, Thermochemical Properties of Inorganic Substances, Springer Berlin 1991
  4. E.Fromm, E.Gebhardt, Gase und Kohlenstoff in Metallen, Springer Berlin 1976
  5. E.Fromm, H.Jehn, G.Hoerz, H.Speck, W. Hehn, Gases and Carbon in Metals, Pt 1‑22, Physics Data, H. Behrens, G.Ebel eds. Fachinformationszentrum Energie, Physik, Mathematik, Karlsruhe 1976‑1984
  6. E. Fromm, G.Hoerz, Gases and carbon in metals(Rev. 259),
    International Metals Reviews, TMS,ASM London,1980, Nos.5 and 6
  7. E.T. Turkdogan, Physical Chemistry of High Temperature Technology, Academic Press New York, 1980

File care

This menu is a separate part of the program. It enables a check of the files used or produced by the program such as data files, files of data tables, or plot data files. Most of the files are saved as text files and the user can check and manipulate them by any text program, e.g. Wordpad. Thus, the data can easily be transferred to own documents by a user who is accustomed to do this. Such actions are, of course, within your own responsibility and saving backups before manipulating is recommended.

The program uses the following file types:


  1. DataBasis.txt
    Checked data which should be protected against incorrect manipulations. Therefore, the file is not included in the file filter Data.txt and saved write protected. If the user has an own basic data file he can rename it to DataBasis.txt and replace the present one.
  2. Other data files (...Data.txt)
    Two files, TempData.txt and PrivData.txt, are already prepared and others can be added by the user.
  3. Plot data files (...Plot.txt)
    This list of data points of plots can be used or prepared for input into more advanced plot programs.
  4. Bitmap files (.bmp)
    Bitmaps of data plots.
  5. Text files (.txt)
    They can be used for documentation of data tables.
  6. Backup files (.bak)
  7. Help files (...H.txt)

The consequent use of file names and extensions is not controlled by the program, but some routines use these name styles as flag. Therefore, correct names may avoid confusion.

Submenu Files: In the list box on the left side you see an incomplete copy of the data file selected from the load menu and can check whether or not it is present. With the buttons on the right side some manipulations can be made.

  1. Rename file - Renames the file.
  2. Delete + backup - The file is renamed to (.bak).
  3. Clear file - Removes all lines, the file is empty.
  4. New file - Makes a new file with a new name.
  5. Save file as - Makes copy of the file with a new name.

Submenu Data set:
This submenu reads the system names from a data file ...Data.txt and shows them in a separate list box. When you click a system name data is shown in a data sheet. If data for more than one reaction exists the Next button will display the next data set. The Delete button on the right corner removes the data set shown in the sheet from the file. If you don't want to loose information you can get a print copy by pushing the Print button.

If you wish to replace a data set in a file the following procedure is recommended, because then the control routines of the program remain active: First add the new data set using the Data input menu of the main program and then Delete the old data set by this menu.

To move a data set from one file to another file you can use the menu Calculate. You have to set the factor 1/1 and to write the reaction equation and references into the edit windows shown. With the Store button you can add the new data set to another file.

Data on the solubility of  H, C, N, and O in metals

Basic definitions

At first a few basic remarks on reaction G values, molal compound g values and chemical potentials µ. For details one should consult a textbook on thermochemistry.

The molal g value of Al2O3 ( not the ∆G value for formation !)

g(Al2O3) = 2/5 µ(Al in Al2O3) + 3/5 µ(O in Al2O3)

is constant, and for phases with more extended concentration range it can be set constant for estimations within the error limits. Thus, the G value of Al2O3 = 5g(Al2O3) is constant, too, and can be defined as Go and a(Al2O3) as 1. However, the two µ terms in the sum of g can change drastically with concentration.

Phase equilibrium is defined by the condition that the chemical potentials of all elements in all phases have the same value. This has the consequence that µ(Al) and µ(O) depend on the type of equilibrium considered. If Al2O3 is in equilibrium with the gas phase, then a(O in Al2O3) = a(O in O2 gas) holds and a(Al in Al2O3) is very small. However, if Al2O3 is in equilibrium with Al metal, e.g. in a closed receiver, then a(Al in Al2O3) = 1 holds and  a(O in Al2O3 ) is extremely small as well as the O2 pressure. These changes of the µ values depend on the defect structure of compounds. This is normally not well known and of little interest for usual thermochemical calculations.

In order to calculate correct equilibrium constants one has not to care about these details if the following points are obeyed:

 The equilibrium constant of our example

 2Al + 3/2O2 → Al2O3       is

 lg Kp(T) = lg [a(Al2O3) / (a(Al)2*p(O2)3/2 ] = - ∆Go / (R*T*ln 10),

where in the numerator we have the terms for the activities of components formed and in the denominator for components consumed.

∆Go =  Go(Al2O3) - 2Go(Al) - 3/2Go(O2).

As mentioned above, a(compound) and a(element) are 1 by definition and a(H2), a(N2), and a(O2) are p[atm]1/2.

Fortunately, during correct addition or subtraction of ∆Go values of reaction equations the equilibrium conditions are automatically described correctly by the equilibrium constant  obtained if


  1. the definition of activities is the same in all equations and if
  2. the direction of the reaction is correctly defined by the sign of the ∆Go value (formation, not decomposition of Al2O3).

Before new data are calculated one has to check these points. Then one has to combine the initial reactions in such a way that only the phases being in equilibrium show up in the new equilibrium constant and in the reaction equation and all others are eliminated.

Data available

The file DataBasis.txt is a compilation of:

  1. The solution reaction of H2, N2, and O2 in metals. This is a phase transition reaction of  atoms, e.g. 1/2 N2 → N(in Ta). The equilibrium constant lg Kp(T) = x[mol fraction] / p[atm]1/2 describes the concentration of gas atoms dissolved in the metal as a function of gas pressure and temperature. However, it does not tell us the terminal solubility in equilibrium with a compound.

  2. The compounds (carbides, hydrides, nitrides, and oxides) forming equilibria with the solution phases. Such a reaction can be written as

    2Ta + 1/2N2 → Ta2N ;
    lg Kp(T) = lg (a(Ta2N) / (a(Ta)2*p(N2 )1/2)    or with a(Ta) = a(Ta2N) = 1
    lg p (N2 )= 2*∆Go / RT * ln 10

    The activity of the metal in the solution phase deviates only little from one. The N2 pressure defined by the equilibrium constant is the decomposition pressure of the nitride. At pressures below this value no Ta2N is formed.

  3. Calculation of the terminal solubility of  N in Ta. We can write

    a) 1/2N2 → N(in Ta)           ; ∆Go
    b) 2Ta + 1/2N2 → Ta2N     ; ∆Go"
    a) - b)  Ta2N  → N(in Ta) + 2Ta ; ∆Go ‑ ∆Go"

    a(Ta) = 1, a(Ta2N) = 1

    lg Kp(T) = lg x[mol fraction] = -( ∆Go ‑ ∆Go") / RT*ln 10

    This equation gives the terminal solubility of N in Ta. If we increase the pressure at constant temperature Ta2N  is formed and the N concentration remains constant.

    The data for the solubility 1.), the decomposition pressure 2.) and the terminal solubility 3.) are no independent data. If two are known the third one can be calculated or controlled. This has been done with most data in the file DataBasis.txt. To get the phase boundary line of the Ta2N phase on the low N concentration end one should have an equation for the dependence of a(N in Ta2N) as a function of x(N). This is normally not available and a complex problem not suited to be discussed here.

  4. Carbon solubility:  If the terminal solubility of C in a metal is known and the ∆Go value for formation of the equilibrium carbide one can determine the C activity in the metal with the  routine shown above. This enables the calculation of CO/CO2 equilibria.

    Other metal/gas interactions are H2/H2O, H2/CH4 or H2/NH3 reactions. The O2 equilibrium pressure in a two phase range between two oxides can be calculated by forming, for example, a reaction equation CuO2→CuO + 1/2O2 from the standard equations of formation for the two oxides.

    More detailed treatises on the subject are found in Refs.1,4,6 given in menu Opens internal link in current windowData Input.