Thermo-Calc Data Optimisation User Guide Version 2015a
Thermo-Calc Data Optimisation User Guide Version 2015a
Thermo-Calc Data Optimisation User Guide Version 2015a
User Guide
Version 2015a
2|
Thermo-Calc Data Optimisation
User Guide Version 2015a
2.5 Grouping equilibria with labels ..................................................................................... 18
2.6 Dividing the POP-file into several blocks....................................................................... 19
3. Creating the setup file ................................................................................................... 20
3.1 Defining the system ...................................................................................................... 20
3.1.1 Creating additional composition sets of a phase .................................................. 20
3.2 Entering the optimising variables ................................................................................. 21
3.2.1 Entering optimising variables in parameter specifications ................................... 21
3.2.2 Entering interaction parameters ........................................................................... 22
3.3 Initialising optimising variables in PARROT ................................................................... 22
3.4 Creating the workspace file........................................................................................... 23
3.5 Compiling the POP-file .................................................................................................. 23
3.6 Returning control to the console .................................................................................. 24
4. Optimising your system in PARROT ............................................................................... 25
4.1 Changes that require POP-file recompilation ............................................................... 25
4.2 Workflow ....................................................................................................................... 25
4.3 Ensuring that all equilibria can be computed ............................................................... 26
4.4 Setting weights .............................................................................................................. 27
4.5 Optimising and evaluating listed results ....................................................................... 27
4.5.1 The critical set of experiments .............................................................................. 28
4.6 Continuing the optimisation and resetting variables .................................................... 28
4.7 Updating the set of optimising variables ...................................................................... 29
4.7.1 Reducing the number of optimising variables ...................................................... 31
4.8 Plotting intermediate results ........................................................................................ 31
4.8.1 Superimposing experimental data from EXP-files ................................................ 31
5. Finishing the optimisation ............................................................................................. 32
5.1 Rounding off optimising variable values ....................................................................... 32
5.2 Updating the database file ............................................................................................ 32
5.3 Creating a database file................................................................................................. 33
5.4 Updating the setup file and the POP-file ...................................................................... 33
6. Optimising in alternate mode........................................................................................ 34
6.1 Turning alternate mode on and off ............................................................................... 34
6.2 Optimising in alternate mode ....................................................................................... 35
6.3 Preparing the POP-file for alternate mode ................................................................... 35
6.3.1 Examples of SET_ALTERNATE_CONDITION usage ................................................ 35
6.3.2 More examples...................................................................................................... 36
7. Troubleshooting ............................................................................................................ 37
7.1 Excluding and including the right equilibria .................................................................. 37
7.2 Conflicting data ............................................................................................................. 37
3|
Thermo-Calc Data Optimisation
User Guide Version 2015a
7.3 Useful rules of thumb.................................................................................................... 37
8. Appendix 1: Experiments and experimental data .......................................................... 39
8.1 Phase diagram data ....................................................................................................... 39
8.2 Data for individual compounds ..................................................................................... 40
8.3 Single phase mixing enthalpies or partial enthalpies .................................................... 41
8.4 Enthalpies of formation and enthalpies of reactions.................................................... 41
8.5 Chemical potentials via EMF measurements ................................................................ 42
8.6 Driving force for metastable phases ............................................................................. 42
8.7 Pressure-Temperature-Volume EOS data ..................................................................... 43
8.8 Crystal structure, lattice parameters and site-occupancy ............................................ 43
8.9 Magnetism and other atomistic properties .................................................................. 44
8.10 Data about systems of different orders ........................................................................ 44
9. Appendix 2: Thermodynamic models ............................................................................ 45
9.1 Gas ................................................................................................................................. 45
9.2 Compound energy formalism ....................................................................................... 45
9.3 Substitutional liquid ...................................................................................................... 46
9.4 Ionic two-sublattice liquid model.................................................................................. 46
9.5 Models for ordered phases ........................................................................................... 46
9.6 4SL model for FCC, HCP and BCC .................................................................................. 47
9.7 2SL model for FCC, HCP and BCC .................................................................................. 48
9.8 Magnetic ordering ......................................................................................................... 49
9.9 Molar volumes and high pressure................................................................................. 49
9.10 Excess models ............................................................................................................... 50
4|
Thermo-Calc Data Optimisation
User Guide Version 2015a
1. Introduction
This user guide describes the basic idea behind data optimisation, contains brief
descriptions of the modules and file types that you work with while doing your
optimisation, as well as rough outline of overarching workflow that you typically follow
when working with optimisation.
This user guide assumes that you are familiar with using the Thermo-Calc Console Mode. It
also assumes that you understand the principles thermodynamics and are familiar with the
theoretical foundations of computational thermodynamics.
5|
Thermo-Calc Data Optimisation
User Guide Version 2015a
1.1.3 References
For in-depth information about CALPHAD as well as data optimisation, see Computational
Thermodynamics – The Calphad Method by Hans Leo Lukas, Suzana G. Fries and Bo
Sundman (Cambridge University Press, 2007). CALPHAD was given its first general
description in Computer Calculations of Phase Diagrams by Larry Kaufman and Harold
Bernstein (Academic Press, 1970). The book contains some case studies of optimisations
using Thermo-Calc.
Information about the concept of ‘lattice stability’ (which is important for the
development of multicomponent thermodynamic databases) can also be found in the
paper “Hume-Rothery and Calphad Thermodynamics” by Larry Kaufman, published in
Calphad and Alloy Thermodynamics, edited by Patrice E.A. Turchi, Antonios Gonis, Robert
Shull (The Minerals, Metals & Materials Society, 2002), pp. 3-19.
6|
Thermo-Calc Data Optimisation
User Guide Version 2015a
Thermo-Calc Console Mode Command Reference: Contains information about all the
commands that are available in the Thermo-Calc Console, including PARROT and ED_EXP.
Note that that the commands listed under PARROT and ED_EXP are only commands that
are specific to PARROT and/or ED_EXP. These modules also contain some commands that
are also available in POLY.
Online help in the Console Mode: Contains information about modules, commands, and
conditions. Use the help and information commands to access this information.
Example 36 in Thermo-Calc Console Examples Collection: A detailed example of assessment
and optimisation in Thermo-Calc.
Since ED_EXP uses the POLY module for doing equilibrium calculations of experimental
data points, many POLY commands are also available in the ED_EXP module. However, the
commands may work somewhat differently in the two modules. There are also unique
ED_EXP commands which are not found in POLY.
7|
Thermo-Calc Data Optimisation
User Guide Version 2015a
When you execute ED_EXP commands, the PARROT workspace is modified. However, note
that you must always first use READ_WORKSPACES in ED_EXP before doing anything in the
module. The command loads the experimental data that you are going to work with during
the optimisation. Furthermore, before leaving ED_EXP you must use SAVE_WORKSPACES or
the results of your work in the ED_EXP module is lost.
1.3.4 Files
This section describes the important files you work with when optimising.
POP-file The POP-file (Parrot OPtimisation file) is the file that contains all the
experimental data that you use for optimising Gibbs energy values for your
system. The POP-file is a plain text file that contains ED_EXP commands. By
default, the file has the filename extension “*.POP” in Thermo-Calc.
Setup file The setup file is a Thermo-Calc macro file (*.TCM). This file typically contains
commands that define your system, opens the PARROT workspace (and
associated GIBBS and POLY workspaces) and sets optimising variables.
Other macro It is often useful to have other macro files than the setup file at hand while you
files are doing your optimisation. For example, it is convenient to have a macro file
that automatically plots phase diagrams or other diagrams based on the latest
values of your optimising variables. An optimisation process typically involves
many optimisation cycles, so this operation needs to be done many times
during a typical optimisation.
Workspace The PARROT module has its own workspace with dynamic memories, similar to
files the workspaces of POLY and GIBBS. It is stored and updated in a PARROT
workspace file with the filename extension “*.PAR”. The workspace file is a
binary file whose format is hardware dependent. This means that the format is
unique for each type of CPU. Hence, a workspace file saved on a computer with
one type of CPU cannot be used on a computer with another type of CPU.
EXP-file The EXP-file is a plain text file with information in the form of DATAPLOT
Graphical Language commands. These commands can specify some or all of the
data points in your POP-file. This allows you to plot these data points on top of
your plotted optimisation results (with the POST commands
APPEND_EXPERIMENTAL_DATA or QUICK_EXPERIMENTAL_PLOT). You can then visually
assess the fit between these results and the experimental data. The PARROT
workspace is not influenced in any way by the creation or use of EXP-files.
8|
Thermo-Calc Data Optimisation
User Guide Version 2015a
1.3.5 Workspaces
When writing the setup file, you enter a CREATE_NEW_STORE_FILE command which creates a
PARROT workspace file. Alternatively, select an existing PARROT workspace file with
SET_STORE_FILE. The workspace file is automatically updated and saved with the latest
optimisation results (after each use of the OPTIMIZE_VARIABLES command). You can also
explicitly instruct Thermo-Calc to save the workspace using SAVE_PARROT_WORKSPACES. If
you want to get rid of your latest changes and return to the state of your workspace when
it was last saved, use READ_PARROT_WORKSPACES.
When the PARROT workspace is saved, parts of the POLY and GIBBS workspaces are also
saved to the PARROT workspace file, along with the PARROT workspace itself. Using the
POLY command SAVE_WORKSPACES creates a new POLY3 file, nothing is saved to the PARROT
workspace file.
If you do any POLY calculations based on data in the current workspace file, then a
“*.POLY3” file is created, which contains a copy of the current set of parameters. If you
continue on your optimisation and read the old “*.POLY3” file, then the new set of
parameters is overwritten with the old set. It is therefore recommended that you never
read a “*.POLY3” or “*.GES5” file while you are doing an optimisation.
9|
Thermo-Calc Data Optimisation
User Guide Version 2015a
10 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
11 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
12 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
In addition, it is recommended that you keep the POP-file well-organised and extensively
commented. This is especially important if someone else reassesses the system when new
experimental information is available.
If you have too many equilibria defined in your file, or if you define equilibria with
different sets of components in the same file, then you must divide the POP-file in “blocks”
(using the FLUSH_BUFFER command). You know whether you have defined too many
equilibria for one block when you compile the file. A too large number of equilibria leads
to an error message when the file is compiled.
If you use the DEFINE_COMPONENTS command, then it must be the first command in the
POP-file (or if you have several blocks, DEFINE_COMPONENTS can also be put as the first
command after FLUSH_BUFFER). This is because the command automatically reinitiates the
current workspace, so the effect of any commands placed before it are not saved.
The last command in the POP-file should always be SAVE_WORKSPACES.
13 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
CREATE_NEW_EQUILIBRIUM 1 1
CHANGE_STATUS PHASE LIQUID=FIX 1
SET_CONDITION T=1379 P=1E5 X(LIQUID,AU)=0.0563
SET_REFERENCE_STATE AU LIQ * 1E5
SET_REFERENCE_STATE CU LIQ * 1E5
EXPERIMENT HMR=-1520:200
COMMENT Measurement by Topor and Kleppa, Met trans 1984
The subsections that follow explains what the commands in the above specification do.
14 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
This indicates that you think the Au mole fraction is between 0.0507 and 0.0619. PARROT
calculates the equilibrium twice, once for 0.0507 and once for 0.0619, and then computes
the change of each experimental value between these two equilibria. This change is used
to modify the uncertainty specified for the experimental value (see section 2.3.4).
The possibility of specifying uncertainties on conditions may be useful when you have
experimental data about a ternary system. In a binary system, a tie-line is determined by
the two phases, the temperature and the pressure. Measurements of the compositions of
both phases can then be used as experimental data. To specify the tie-line in a ternary
two-phase equilibrium one of the four compositions must also be set as a condition. If the
measurement of this composition has the same uncertainty as the other compositions,
then you can assign this same degree of uncertainty both to the composition selected as a
condition and the compositions selected as experimental data. Alternatively, the sample
(overall) composition could be used as a condition and all four phase compositions could
be used as experiment values. These phases must have the status “entered” (not fixed)
since the relative amount of each is unknown.
15 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Note that an experimental quantity can typically also be treated as an equilibrium
condition, and vice versa. Which measured quantities that you treat as conditions and
which quantities you treat as experimental data should be based on the accuracy of the
different measurements. In most cases, the quantity that is based on the experimental
technique with the lowest accuracy should be used as the experimental value.
16 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
At least one of the measured variables that are entered with the experiment command
must be a variable whose value is set by the numbers in a table column. To assign the
numbers in a column to a measured variable, use the syntax EXPERIMENT
<VARIABLE>=@<COLUMN NUMBER>. In the example above, the measured temperature for
each equilibrium is given by the number in the second table column.
The actual table should be entered between TABLE_VALUES and TABLE_END. Separate the
columns with tabs or any number of spaces. The columns do not have to contain numbers,
but can also contain other types of values, such as phase names for example. If a column
contains text with spaces or special characters, then the text must be surrounded by
double quotes (“ABC DEF&ghi”, for example). The table may have columns that are not
used, but each row must have exactly the same number of columns.
17 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Use CHANGE_STATUS with the keyword component and which components that should be
entered. You should also give the initialization code 0 (rather than 1) to the
CREATE_NEW_EQUILIBRIUM command. This code indicates that all components must be
entered.
For example, the following set of ED_EXP commands characterises a binary (A-B) three-
phase equilibrium (FCC-BCC-LIQ) in a ternary system (A-B-C). It can be used in a POP-file
that otherwise only contain experimental information about the ternary system (A-B-C):
CREATE_NEW_EQUILIBRIUM 1 0
CHANGE_STATUS COMPONENT A B = ENTERED
CHANGE_STATUS PHASE FCC BCC LIQ=FIX 1
SET_CONDITION P=1E5
EXPERIMENT T=1177:10
COMMENT from A-B
18 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
19 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Note that if you add composition sets of a phase after the POP-file has been compiled, the
data structure in the workspace is corrupted and you have to recompile the POP-file.
20 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
21 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
The numbers that frame the Gibbs energy expressions specify the temperature range
within which the expression should be applied. In the above, the expressions are applied in
a temperature range from 298.15 K to 6000 K.
In this example, suppose that you want to optimise the model parameter for the
ZR+4:ALO2-1 combination, then you could enter the variables V1 and V2 in the Gibbs
energy expression for that parameter in the following way:
ENTER_PARAMETER G(IONIC_LIQ,ZR+4:ALO2-1;0) 298.15 +GZRO2L
+2*GAL2O3_L +V1+V2*T; 6000 N
You normally have different optimising variables in different parameters, but in some
cases you may want several parameters to vary together, in which case you can use the
same variable in the Gibbs energy expressions of several parameters.
22 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
To initialise an optimising variable and to give it a start value, use either
SET_OPTIMIZING_VARIABLE or SET_SCALED_VARIABLE. Using SET_OPTIMIZING_VARIABLE results in a
scaling factor equal to the current value of the parameter unless the current value is zero,
in which case the scaling factor is1000. This is typically appropriate for enthalpic
parameters, but not necessarily for other parameters. The scaling factor is the factor by
which the optimising variable value is varied during the optimisation.
For example, if you want to optimise the variables V1, V2, V11, V13 and V17, then you
could enter the following in the setup file:
SET_OPTIMIZING_VARIABLE 1 +43000
SET_OPTIMIZING_VARIABLE 2 -35.2
SET_OPTIMIZING_VARIABLE 11 +72000
SET_OPTIMIZING_VARIABLE 13 +27000
SET_OPTIMIZING_VARIABLE 17 -100000
The value given to each optimising variable (+43000 for variable V1 for example) is also
that variable’s initial scaling factor. If you want to set the initial scaling factor of a variable
to a value that is lower or higher than its start value, then use SET_SCALED_VARIABLE <START
VALUE><SCALING FACTOR><MIN VALUE><MAX VALUE>.
23 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
24 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
4.2 Workflow
Normally, the workflow during an optimisation is the following:
1 In the PARROT module, run the setup macro file using MACRO_FILE_OPEN.
2 Go to ED_EXP with EDIT_EXPERIMENTS, use READ_WORKSPACES to load your experimental data and
then execute COMPUTE_ALL_EQUILIBRIA.
3 If an equilibrium cannot be computed, then this either means that the start values (site
fractions, for example) were inappropriate or that the equilibrium cannot be calculated with the
current set of parameters. If the latter, then the equilibrium may have to be excluded from the
optimisation. However, you should make an effort to exclude the possibility that the reason is
just that you do not have the appropriate start values for the equilibrium.
4 When each equilibrium is either successfully computed or excluded from the calculation, go
back to the PARROT module and run the OPTIMIZE_VARIABLES command. Give the number of
optimisation iterations you want the Thermo-Calc program to carry out as an argument to the
command. This number specifies how many different sets of values for the optimising variables
that PARROT tries to fit with the experimental data. It is recommended that you run “0”
iterations first to see the discrepancy between the experimental data and the initial calculated
results. The current workspace file is automatically updated with the last set of optimised
variables and calculated results.
25 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
5 List and evaluate the result of the optimisation using LIST_RESULT. Typically, what is of interest in
the results are the relative standard deviation of the optimising variables and the error values in
the list of calculated experimental data results. If the relative standard deviation for an
optimising variable is very large, this means that the variable doesn’t have any effect on the
computed results and that the variable should not be used (you can make PARROT ignore the
variable by setting its value to “0” with SET_FIXED_VARIABLE). If the relative standard deviation is
close to zero for a variable, then this might indicate that you need to use more variables. When
it comes to errors in the calculated equilibrium results, these can be decreased by lowering the
weight that PARROT gives the experiment in the calculation (the more weight, the more the
experiment affects the calculated results).
6 Use OPTIMIZE_VARIABLES or CONTINUE_OPTIMIZATION to carry out a new optimisation cycle. Go back to
step 5 above and continue to do optimisation cycles until you judge that there is a good enough
fit between your calculated results and your experimental data. It is recommended that you do
not only rely on feedback from LIST_RESULT but also frequently plot various diagrams and
compare them visually to some of your experimental data.
26 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
If you cannot find an explanation of why the equilibrium cannot be computed, then it may
be that the experiment is faulty. If so, then this experiment should be excluded from the
optimisation by being given a weight of 0 (see the next section). You should then run
COMPUTE_EQUILIBRIUM again to make sure that all equilibria can be computed. However,
experiments that fail to reach equilibria could succeed in doing so if the optimising
variables have other values. It is therefore sometimes worth trying to include experiments
later in the optimisation process (when the optimising variables are relatively close to their
final values), even if they had to be excluded at its start. In some cases, it might also be
appropriate to change the error tolerance for in an experiment (using the ED_EXP
command EXPERIMENT).
You must save the parrot workspace with SAVE_WORKSPACES before you exit the ED_EXP
module.
27 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
The experiments for which the optimisation has not found a good fit are marked with an
asterisk (“*”) or a hash sign (“#”) in the rightmost column. An asterisk in this column
indicates that the experiment has an error that is larger than the error tolerance and a
hash sign indicates that the error is much larger. The error tolerance depends on the
degree of accuracy set for that particular piece of experimental information. The error
values are presented in the next to rightmost column.
Note that if you are optimising in “alternate mode”, then you usually do not need to
change the weights for the experiments. Instead, you can simply run OPTIMIZE_VARIABLES
again, specifying, say, thirty iterations, evaluate the results again, and continue in that way
until you are satisfied with the results. See section 6 for more information about alternate
mode.
If you use CONTINUE_OPTIMIZATION, then PARROT continues the optimisation using the same
Hessian matrix. If the optimisation is going well but you run out of iterations, then
continuing with the same Hessian matrix may be useful.
As before, use LIST_RESULT to inspect the fit between the calculated and the experimental
values for your experiments. If necessary, adjust the weights of the experiments again in
the ED_EXP module. You may even discover that you have to exclude additional
experiments from the optimisation.
28 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Besides looking at the rightmost column in the list of experiments (that is produced when
you use LIST_RESULT), it is also useful to look at the “sum of squares” of the errors of all the
variables. This is shown in the output of OPTIMIZE_VARIABLES and CONTINUE_OPTIMIZATION. This
sum should be as low as possible.
The following screenshot shows part of the output that you get when using LIST_RESULT:
Here you can see that the sum of squares have decreased slightly. (The final sum of
squares that you get after an optimisation run is also presented directly in the output from
OPTIMIZE_VARIABLES and CONTINUE_OPTIMIZATION.) As long as the sum of squares figure is
decreasing, the optimisation is working as it should.
When your calculated results have been improving for a while, that is, when the sum of
squares has been decreasing, and you are confident that you are making definitive
progress, then you should use the PARROT command RESCALE_VARIABLES to reset the
starting values of the optimising variables to their current values. When you do this, the
start values and scaling factors of the optimising variables (shown in the table’s third
column in the preceding screen shot), are all set to the current values (shown in the table’s
second column).
If your optimisation is not going well, then you may want to reset the values of your
optimisation variables to their current start values. To do this, use RECOVER_VARIABLES.
After rescaling the variables, continue the optimisation using OPTIMIZE_VARIABLE again. Cycle
through calls of the commands OPTIMIZE_VARIABLES/CONTINUE_OPTIMIZATION,
CONTINUE_OPTIMIZATION, RESCALE_VARIABLES and OPTIMIZE_VARIABLES again until your set of
optimising variables does not seem to improve anymore. Even when it seems to you that
you have reached this point, it is recommended that you use
OPTIMIZE_VARIABLES/CONTINUE_OPTIMIZATION a few extra times to make sure that the variable
values cannot be further improved, that is, that the sum of squares of the errors of all the
variables cannot be reduced further. If the final solution is repeatedly calculated after the
same number of iterations and reaching the same result, then it is generally reasonable to
accept the current variable values.
29 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
With more optimisation parameters, the sum of errors usually decrease, but the
parameters also tend to become less precisely determined. A measure of this precision is
the Relative Standard Deviation (RSD) of each optimising variable. However, the RSD is
only significant if you have used RESCALE_VARIABLES followed by an optimisation which
converges and the values of the variables do not change much. The RSD tells you how
much the parameter can be changed in either a positive or in a negative direction without
changing the reduced sum of errors with more than one unit. A large RSD value thus
means that the parameter has not been determined well.
If such a significant RSD has a value larger than 1, then this typically means that you are
using too many optimising variables. However, the RSD values also depend on the
weighting of the experiments, so it is sometimes possible to reduce the RSD by changing
weights.
The RSD should not be too low either. If one or more of them is very close to 0, then this
suggests that you are trying to optimise the system with too few optimising variables. You
can add optimising variables interactively using ENTER_PARAMETER in GIBBS. However, it is
recommended that you add a sufficient number of variables in the setup file from the start
so that do not need to do this. You can fix variables to a value of 0 until you discover that
they are needed.
Besides the RSD, you should also keep an eye on the variable values themselves (shown in
the “VALUE” column, next to the leftmost column in the table shown in the preceding
screenshot). If the value of a variable is in the order of 1E5 or higher and this variable has
been put in the temperature-independent part of an interaction parameter’s Gibbs energy
expression, then you may not have the right weights on your experiments or you are using
too many optimising variables. This is also typically the case if a variable with a value in the
order of 10 or more (per mole atoms) is in the temperature-dependent part of the Gibbs
energy expression of an interaction parameter. Such a high parameter value may lead to
inverted miscibility gaps or re-stabilisation of a phase at high temperature. It is important
to keep an eye on this since the temperature-independent and the temperature-
dependent interaction parameter often varies together. If the temperature-dependent
interaction parameter cannot be reliably determined, you may have to fix its value.
30 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Note that even if you have found a good enough fit between calculated and experimental
values after an optimisation run, a parameter value may suddenly start to change by
several orders of magnitude when you use OPTIMIZE_VARIABLES is used again. If this
happens, then careful reconsideration of the weighting of the experiments of the set of
optimising variables is required. However, when the optimisation has converged and the
parameter values remain stable after repeated use of OPTIMIZE_VARIABLES, this should
usually not happen.
31 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
32 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
33 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
34 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
If both compositions of a binary tie-line have been measured, then you could specify this
in the POP-file in the following way:
CREATE_NEW_EQUILIBRIUM 1 1
CHANGE_STATUS PHASE FCC BCC=FIX 1
SET_CONDITION P=1E5 T=1000
EXPERIMENT X(BCC,B)=.2:.01 X(FCC,B)=.3:.01
This equilibrium could be calculated with alternate mode without any modification. The
compositions specified with the experiment command is used as condition when the
thermodynamic properties of each phase are calculated.
35 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Specifying the compositions of a three-phase equilibrium
If you have a three-phase equilibrium in your POP-file, then one of its compositions can be
specified as experimentally determined, while two can be provided as alternate
conditions:
CREATE_NEW_EQUILIBRIUM 1 1
CHANGE_STATUS PHASE FCC BCC LIQ=FIX 1
SET_CONDITION P=1E5
EXPERIMENT T=912:5 X(LIQ,B)=0.2:.02
SET_ALTERNATE_CONDITION X(FCC,B)=0.1 X(BCC,B)=.4
Specifying the composition of a stoichiometric phase
When you specify the composition of stoichiometric phase with SET_ALTERNATE_CONDITION,
the value must be given with at least seven decimal digits, as in the following example:
CREATE_NEW_EQUILIBRIUM 1 1
CHANGE_STATUS PHASE LIQ A2B=FIX 1
SET_CONDITION P=1E5 X(LIQ,B)=0.2
EXPERIMENT T=992:5
SET_ALTERNATE_CONDITION X(A2B,B)=.6666667
36 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
7. Troubleshooting
During an optimisation, you are likely to run into many different problems and challenges.
It is impossible in a guide like this one to explicitly go through them and state how they
should be handled. However, in this section, you are given general guidelines that can help
avoid some common mistakes and problems.
37 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
If you initially exclude any intermediate phases to only optimise the liquid and the
terminal or end-member phases for the pure components, then it is often useful to
compute a metastable phase diagram with just these phases. In the metastable phase
diagram, the metastable solubility lines should not have any strange kinks or turns.
Such a diagram is often also useful to compute at later stages in the optimisation.
When you have fitted the liquid phase and some solution phases reasonably well, then
you can fix the optimising variables that characterise these phases. You can then go on
and optimise the variables for the intermediate phases.
Phases with miscibility gaps are always difficult to optimise. Try to keep control of the
miscibility gaps by using real or estimated experimental information. (Note that it is not
possible to calculate the top of a miscibility gap as a single equilibrium.)
Phases with order/disorder transformation are often difficult to optimise. It may be
difficult to find the right start values on the optimising variables. The TABULATION
module can be useful sometimes. Properties for specified site fractions can be
calculated in the TABULATION module. This is not possible in the POLY module since
this module only calculates for equilibrium site fractions. The ordered state may also
disappear during the optimisation of these phases. If this happens, you may be able to
add an experiment that controls the state of order.
Only use the alternate mode to find an initial set of model parameters that can then be
make it possible to calculate the experimental equilibria in the normal mode.
When you have achieved a satisfactory fit between calculated results and experimental
data with an appropriate number of optimisation variables, perform a couple of final
optimisation runs to make sure that your results are stable.
Make sure that the values of the optimising variables keep within a reasonable range. If
a variable starts to change several orders of magnitudes, then you must consider
whether you have the right weights on the experiments and whether you are using too
many optimising variables.
38 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
39 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
40 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Example ED_EXP commands
ENTER_SYMBOL FUNCTION CP=H.T;
EXPERIMENT CP=207:5%
Heat content (H-H298) for CREATE_NEW_EQUILIBRIUM 1 1
MnFe2O4 CHANGE_STATUS PHASE SPINEL=ENT 1
SET_CONDITION P=101325 T=298.15 N(MN)=1
N(FE)=2
SET_CONDITION N(O)=4
ENTER_SYMBOL VAR H298=H;
ENTER_SYMBOL FUN HMNFE2O4=H-H298;
CREATE_NEW_EQUILIBRIUM 2 1
CHANGE_STATUS PHASE SPINEL=ENT 1
SET_CONDITION P=101325 N(MN)=1 N(FE)=2
N(O)=4
SET_CONDITION T=400
EXPERIMENT HMNFE2O4=16610:5%
41 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Example ED_EXP commands
CHANGE_STATUS PHASE CORUNDUM
ZRO2_TETR=FIX 0
CHANGE_STATUS PHASE IONIC_LIQ=ENT 1
SET_CONDITION P=101325 N=1 LNAC(O)=-80
SET_REFERENCE_STATE ZRO2 TETR,,,,,,
SET_REFERENCE_STATE AL2O3 CORUND,,,,,,
EXPERIMENT HWR=1080:90
Enthalpy of formation of o- CREATE_NEW_EQUILIBRIUM 1 1
CaZrO3 from the component CHANGE_STATUS PHASE ZRO2_MONO HALITE
oxides CAZRO3_O=ENT 1
SET_CONDITION T=298.15 P=101325
N(CAO)=.5
SET_CONDITION N(ZRO2)=.5 LNAC(O)=-20
SET_REFERENCE_STATE CAO HALITE,,,,
SET_REFERENCE_STATE ZRO2 ZRO2_MONO,,,,
EXPERIMENT HMR(CAZRO3_O)=-15960:5%
42 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Example ED_EXP commands
SET_CONDITION P=P0 T=973
EXPERIMENT DGM(CEM)>0.1:0.01
43 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Example ED_EXP commands
SET_CONDITION P=101325 N(MG)=1 N(AL)=2
N(O)=4
SET_CONDITION T=1073
EXPERIMENT Y(SPINEL,AL+3#1)=0.31:5%
44 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
9.1 Gas
The gaseous mixture phase is usually treated as a substitutional phase without sublattice.
In the gaseous mixture phase, there are usually molecules formed, and the number of
constituents of the gas phase is often much larger than the number of elements. These
complex constituents have to be defined as species. The ideal gas model may handle a gas
phase under low pressures (and low temperatures). This implies that the P-V-T relations
and thermodynamic properties of pure gaseous species are calculated as for ideal gas, and
that there is interaction between gaseous species in the mixture. In a defined system,
there may only exist one gaseous mixture phase. Type code “G” is used for the gas phase:
ENTER_PHASE GAS G, 1 H,H1O1,H1O2,H2,H2O1,H2O2,O,O2,O3; N N
45 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
46 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
The ordering can easily be described by the CEF. For instance, an ordered FCC phase with
only L12 or L10 ordering can be efficiently handled by the so-called Two Substitutional-
Sublattice Ordering Model (2SL model), while an ordered FCC with both L12 and L10
ordering must be described with four sublattices using the so-called Four Substitutional-
Sublattice Ordering Model (4SL model). Please note that in both these models, all the
substitutional constituents must enter into these sublattices. In addition, you may also
have one sublattice for interstitials.
Thermo-Calc supports a feature of splitting the parameters of a chemically ordered phase
onto two different phase descriptions. This is very convenient. In this way, you can have
one phase for all parameters describing the disordered state (the configuration
independent state) and in the other phase only those parameters needed to describe the
remaining part (the configuration dependent part), that is, the Gibbs energy contribution
due to the ordering transformation. This has been implemented in such a way that the
contribution from the configuration dependent part is zero when the solution phase is
disordered. The optimization of the disordered phase is independent of the order-disorder
transformation; the ordering energy is an add-on to the disordered part. This is particularly
useful in higher order systems, as an ordered phase can dissolve several elements that
have no particular contribution to the actual ordering. The phases Gibbs energy add
together by giving this command in the setup-file: AMEND_PHASE_DESCRIPTION <ORDERED
PHASE> DISORDERED_PART <DISORDERED PHASE>
Since PARROT does not automatically create new composition sets, it is necessary to
create composition sets for both the ordered and disordered phases in the setup-file:
AMEND_PHASE_DESCRIPTION <PHASE> COMPOSITION_SETS <NEW HIGHEST SET NUMBER>,,,,
Example of phase definitions for the corresponding disordered and ordered parts in a
setup-file:
ENTER_PHASE FCC_A1, 2 1 1
AL,CR,FE,NI; VA; N N
ENTER_PHASE FCC_L12, 3 .75 .25 1
AL,CR,FE,NI ; AL,CR,FE,NI; VA; N N
AMEND_PHASE_DESCRIPTION FCC_L12 DIS_PART FCC_A1
47 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
GA:A:B:B=GA:B:A:B=GA:B:B:A=GB:A:A:B=GB:A:B:A=GB:B:A:A
GB:A:A:A=GA:B:A:A=GA:A:B:A=GA:A:A:B
LA,B:*:*:*=L*:A,B:*:*=L*:*:A,B:*=L*:*:*:A,B
The asterisk “*” means that the interaction parameter is independent of the occupation of
that sublattice. For the disordered phase to be completely disordered, i.e. that all site
fractions are equal on all four sublattices, all constraints must be correct.
For ordered BCC phases, the situation is a bit more complicated, as the four sublattice
ordering phase represents an irregular tetrahedron with two pairs of sites that are next
nearest neighbours. Thus, for an A-B binary solution phase, with A located on two
sublattice sites and B on the other two, the end-member described by GA:A:B:B has four
nearest neighbour bonds between A and B atoms, whereas the end-member described by
GA:B:A:B has two nearest neighbour bonds between A and B atoms and two next nearest
neighbour bonds. Many parameters thus have a relation:
GA:B:B:B=GB:A:B:B=GB:B:A:B=GB:B:B:A
GB:A:A:A=GA:B:A:A=GA:A:B:A=GA:A:A:B
GA:A:B:B=GB:B:A:A
GA:B:A:B=GA:B:B:A=GB:A:A:B=GB:A:B:A
LA,B:*:*:*=L*:A,B:*:*=L*:*:A,B:*=L*:*:*:A,B
The GA:B:B:B term represents D03, GA:A:B:B B2 and the GA:B:A:B B32 ordering. There are also two
kinds of reciprocal interaction parameters:
LA,B:A,B:*:*;0…9
LA,B:*:A,B:*;0…9
Kusoffsky et al. (2001) have shown the influence of different parameters available in the
4SL model applied to fcc ordering. The possibility to use the 4SL model to BCC ordering has
been studied by Sundman et al. (2009) in the Al-Fe system.
48 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
Many publications exist on how to model order/disorder transformations using a two-
sublattice model, see e.g. Dupin, Ansara (1999), De Keyzer et al. (2009).
49 |
Thermo-Calc Data Optimisation
User Guide Version 2015a
ENTER_PARAMETER VA(FCC_A1,CR,FE:VA;0) 298.15 +V9*(T-298.15); 6000 N
50 |