0% found this document useful (0 votes)
161 views363 pages

Matcalc User Manual: (Maintained by Matcalc Engineering)

Uploaded by

usto2014
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
161 views363 pages

Matcalc User Manual: (Maintained by Matcalc Engineering)

Uploaded by

usto2014
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 363

www.matcalc-engineering.

com

®
MatCalc User Manual
(Maintained by MatCalc Engineering)

This User Manual is aimed at demonstrating the basic handling of the MatCalc
software. It starts with typical operations using the GUI, performing simple
calculations of thermodynamic equilibrium and post-processing of the results in
graphical form. If you are a new MatCalc user, try out the tutorial sections one by
one. You will become acquainted to the basic features and functions of the software
and learn how to set up your simulation problems.

December 2017
Tutorials

CONTENTS
CONTENTS ....................................................................................................................... I
T1: INTRODUCTION TO THE MATCALC GRAPHICAL USER INTERFACE (GUI) ........................... 1
CONTENTS ............................................................................................................................ 1

THE GRAPHICAL USER INTERFACE .......................................................................................... 2

SCREEN LAYOUT ................................................................................................................................. 2

MENU BAR .......................................................................................................................................... 3

TOOLBARS.......................................................................................................................................... 3

CONSOLE ........................................................................................................................................... 4

COMMAND HISTORY ............................................................................................................................ 5

CONFIGURING THE LAYOUT .................................................................................................................. 6

FILE OPERATIONS .................................................................................................................. 6

THE 'FILE' MENU.................................................................................................................................. 6

CREATING A NEW WORKSPACE FILE ..................................................................................................... 6

W ORKING DIRECTORY ......................................................................................................................... 7

ADDING WORKSPACE INFORMATION ..................................................................................................... 8

SAVE, SAVE AS, CLOSE ....................................................................................................................... 9

GETTING HELP ...................................................................................................................... 9

T2: CALCULATING A SINGLE EQUILIBRIUM ........................................................................ 10


CONTENTS .......................................................................................................................... 10

BEFORE STARTING... ........................................................................................................... 11

SETTING UP THE SYSTEM ..................................................................................................... 11

OPENING A THERMODYNAMIC DATABASE AND SELECTING ELEMENTS AND PHASES ................................ 11

ENTERING THE COMPOSITION ............................................................................................................ 12

CALCULATING AN EQUILIBRIUM ............................................................................................. 13

INTERPRETING THE RESULTS OF THE CALCULATION ............................................................................. 14

USING THE 'OPTIONS' WINDOW TO MODIFY THE DISPLAY...................................................................... 16

PHASE STATUS: SUSPENDED AND DORMANT PHASES........................................................................... 17


I
Tutorials

CALCULATION STATES ....................................................................................................................... 21

TO FINISH... ........................................................................................................................ 22

T3: STEPPED EQUILIBRIUM CALCULATIONS ...................................................................... 23


CONTENTS .......................................................................................................................... 23

BEFORE STARTING... ........................................................................................................... 24

STEPPED EQUILIBRIUM CALCULATION WITH VARYING TEMPERATURE ....................................... 24

RUNNING THE STEPPED CALCULATION ................................................................................................ 24

OUTPUT ........................................................................................................................................... 25

BUFFERS .......................................................................................................................................... 27

STEPPED EQUILIBRIUM CALCULATION WITH VARYING CARBON CONTENT .................................. 28

RUNNING THE CALCULATION .............................................................................................................. 28

EDIT BUFFER STATES ........................................................................................................................ 31

TO FINISH... ........................................................................................................................ 32

T4: GRAPHICAL PRESENTATION AND EXPORT OF RESULTS ................................................ 33


CONTENTS .......................................................................................................................... 33

BEFORE STARTING... ........................................................................................................... 34

PLOTTING A GRAPH ............................................................................................................. 34

CHANGING THE APPEARANCE OF THE PLOT ........................................................................... 37

RESULTS FROM DIFFERENT BUFFERS ................................................................................................. 37

CHANGING THE FORMAT OF THE TEMPERATURE-STEP PLOT ................................................................. 38

TITLE................................................................................................................................................ 39

LEGEND............................................................................................................................................ 39

AXES ................................................................................................................................................ 39

GRID ................................................................................................................................................ 41

SERIES ............................................................................................................................................. 41

OTHER PLOT OPERATIONS ................................................................................................... 43

ZOOMING AREAS OF THE PLOT ........................................................................................................... 43

DISPLAYING X- AND Y-VALUES ............................................................................................................ 43

EXPORTING DATA FROM THE PLOT ..................................................................................................... 43

II
Tutorials

TO FINISH... ........................................................................................................................ 43

T5: MATCALC BUILT-IN VARIABLES; GRAPHICAL OUTPUT ................................................... 44


CONTENTS .......................................................................................................................... 44

BEFORE STARTING... ........................................................................................................... 45

ADDING PLOTS OF DIFFERENT VARIABLES.............................................................................. 45

CREATING A NEW PLOT ...................................................................................................................... 45

VARIABLES ....................................................................................................................................... 45

- 'FAVORITES' .................................................................................................................................... 46

-'GENERAL' ....................................................................................................................................... 47

- 'PHASE FRACTIONS' ......................................................................................................................... 47

- 'COMPOSITION' ................................................................................................................................ 47

- 'SITE FRACTIONS' ............................................................................................................................ 48

- 'STATE VARIABLES' .......................................................................................................................... 48

- 'CHEMICAL POTENTIALS', 'ACTIVITIES' ................................................................................................ 48

ARRANGING PLOTS IN THE COLUMNS .................................................................................................. 49

DEFAULT X-AXIS................................................................................................................................ 50

DISPLAYING X-VALUES OF MULTIPLE PLOTS ........................................................................................ 50

MODIFYING THE SERIES IN A PLOT ........................................................................................ 51

MODIFYING THE SERIES WITH DRAG AND DROP ...................................................................... 53

OTHER SERIES OPERATIONS ................................................................................................ 54

- 'NEW SERIES' .................................................................................................................................. 54

- 'REMOVE SERIES', 'REMOVE ALL SERIES', 'REMOVE ALL LOCKED SERIES' ............................................ 55

- 'DUPLICATE AND LOCK SERIES ...', 'DUPLICATE AND LOCK ALL SERIES' ................................................ 55

- 'EDIT SERIES DATA ...'...................................................................................................................... 56

- 'CONVERT SERIES TO TABLE'............................................................................................................ 56

T6: INTRODUCTION TO USER-DEFINED FUNCTIONS AND VARIABLES .................................... 58


CONTENTS .......................................................................................................................... 58

SETTING UP THE SYSTEM ..................................................................................................... 59

COMBINING BUILT-IN VARIABLES IN NEW EXPRESSIONS .......................................................... 59

DEFINING FUNCTIONS .......................................................................................................... 61


III
Tutorials

CREATING A NEW FUNCTION .............................................................................................................. 61

NEW EXPRESSIONS USING EXISTING FUNCTIONS ................................................................................. 62

USER-DEFINED VARIABLES ................................................................................................... 64

T7: CALCULATING PHASE BOUNDARIES ............................................................................ 68


CONTENTS .......................................................................................................................... 68

SETTING UP THE SYSTEM ..................................................................................................... 69

CALCULATING PHASE BOUNDARIES ....................................................................................... 71

SOLIDUS AND LIQUIDUS TEMPERATURES............................................................................................. 71

AUSTENITE-FERRITE TRANSFORMATION TEMPERATURES ..................................................................... 72

DISSOLUTION TEMPERATURES OF CARBIDES....................................................................................... 72

ELEMENT CONTENT FOR ZERO-PHASE FRACTIONS............................................................................... 73

TRACING PHASE BOUNDARIES ............................................................................................................ 74

T8: CALCULATING A PHASE DIAGRAM IN A BINARY SYSTEM ................................................ 77


CONTENTS ....................................................................................................................................... 77

SETTING UP THE SYSTEM ..................................................................................................... 78

FE-FE3C PHASE DIAGRAM .................................................................................................... 79

UPPER BOUNDARY OF DELTA-FERRITE, BCC_A2 ................................................................................ 79

LOWER BOUNDARY OF LIQUID ............................................................................................................ 81

LOWER BOUNDARY OF DELTA-FERRITE (BCC_A2) .............................................................................. 82

UPPER BOUNDARY OF AUSTENITE (GAMMA, FCC_A1) ........................................................................ 82

UPPER BOUNDARY OF LOW-TEMPERATURE ('ALPHA') FERRITE, BCC_A2.............................................. 82

LOWER BOUNDARY OF AUSTENITE (GAMMA, FCC_A1) ........................................................................ 83

UPPER BOUNDARY OF CEMENTITE ...................................................................................................... 83

A FEW WORDS ON THE 'MAX. T-STEP' PARAMETER .............................................................................. 84

THE FINISHED DIAGRAM ..................................................................................................................... 84

FE-C PHASE DIAGRAM ......................................................................................................... 85

SUGGESTED PARAMETERS FOR CALCULATION OF FE-C PHASE DIAGRAM .............................................. 86

T9: CALCULATING PSEUDOBINARY PHASE DIAGRAMS ........................................................ 87


CONTENTS .......................................................................................................................... 87

SETTING UP THE SYSTEM ..................................................................................................... 88


IV
Tutorials

FE-C PSEUDOBINARY WITH CONSTANT NB CONTENT .............................................................. 88

FE-NB PSEUDOBINARY WITH CONSTANT C CONTENT .............................................................. 89

NB-C PSEUDOBINARY WITH CONSTANT FE CONTENT .............................................................. 91

T10: T0-TEMPERATURE IN FE-CR-C ................................................................................ 93


CONTENTS .......................................................................................................................... 93

STEP 1: DEFINE THE THERMODYNAMIC SYSTEM (SEE ALSO TUTORIAL T2) ............................... 94

STEP 2: CALCULATE THE T0-TEMPERATURE .......................................................................... 94

STEP 3: EVALUATE T0- TEMPERATURE AS A FUNCTION OF CHROMIUM CONTENT ...................... 96

STEP 4: EVALUATE T0-TEMPERATURE AS A FUNCTION OF CARBON CONTENT ........................... 98

STEP 5: ADD SOME EXPERIMENTAL DATA ON MARTENSITE START TEMPERATURES ................... 99

T11: SIMULATION OF SOLIDIFICATION OF 0.7C 3MN STEEL.............................................. 105


CONTENTS ........................................................................................................................ 105

STEP 1: SETUP THE THERMODYNAMIC SYSTEM (SEE ALSO TUTORIAL T2) .............................. 107

STEP 2: CARRY OUT A SCHEIL CALCULATION ....................................................................... 108

STEP 3: ADD A SCHEIL CALCULATION WITH BACK-DIFFUSION OF CARBON .............................. 112

STEP 4: ADD THE EQUILIBRIUM SOLIDIFICATION PATH ........................................................... 115

T12: USING THE MATCALC CONSOLE ............................................................................ 118


CONTENTS ........................................................................................................................ 118

GENERAL REMARK TO 6.00.0100 VERSION....................................................................................... 119

BASICS ............................................................................................................................. 119

GETTING HELP AND LISTING AVAILABLE COMMANDS........................................................................... 119

NOTES ON SYNTAX .......................................................................................................................... 121

EXAMPLE: CALCULATING AN EQUILIBRIUM USING THE COMMAND-LINE.................................... 122

EVALUATING EXPRESSIONS ................................................................................................ 126

NUMERICAL EXPRESSIONS ............................................................................................................... 126

EXPRESSIONS IN X .......................................................................................................................... 127

EXPRESSIONS USING MATCALC VARIABLES ...................................................................................... 130

T13: INTRODUCTION TO SCRIPTING - EQUILIBRIUM CALCULATIONS ................................... 131


CONTENTS ........................................................................................................................ 131

V
Tutorials

INTRODUCTION .................................................................................................................. 132

UTILITY OF SCRIPTS ........................................................................................................................ 132

W RITING A SCRIPT .......................................................................................................................... 132

EDITING A SCRIPT ........................................................................................................................... 132

EXECUTING A SCRIPT ...................................................................................................................... 132

EXAMPLE: A STEPPED EQUILIBRIUM .................................................................................... 133

COMMENTS .................................................................................................................................... 133

CALCULATING AN EQUILIBRIUM......................................................................................................... 133

STEPPED CALCULATION ................................................................................................................... 135

GRAPHICAL OUTPUT ........................................................................................................................ 136

T14: INTRODUCTION TO PRECIPITATION CALCULATIONS .................................................. 140


CONTENTS ........................................................................................................................ 140

SETTING UP THE SYSTEM ................................................................................................... 141

A. THERMODYNAMIC SETUP ............................................................................................................. 141

B. PRECIPITATION DOMAIN............................................................................................................... 141

C. PRECIPITATE PHASE ................................................................................................................... 142

D. LOADING MOBILITY DATA ............................................................................................................. 145

E. CREATING PLOTS FOR THE OUTPUT.............................................................................................. 146

THE CALCULATION ............................................................................................................. 148

INTERPRETING THE RESULTS .............................................................................................. 150

NUCLEATION, GROWTH AND COARSENING ........................................................................................ 150

HISTOGRAMS OF PRECIPITATE SIZE DISTRIBUTION ............................................................................. 154

T15: EFFECT OF MICROSTRUCTURE AND CONDITIONS (PART 1) ....................................... 157


CONTENTS ........................................................................................................................ 157

EQUILIBRIUM CALCULATIONS .............................................................................................. 158

NUCLEATION MODEL FOR CEMENTITE .................................................................................. 158

SETTING UP THE SIMULATION ........................................................................................................... 158

GRAPHICAL DISPLAY OF RESULTS..................................................................................................... 159

CALCULATION ................................................................................................................................. 160

INTERPRETATION OF RESULTS ......................................................................................................... 160


VI
Tutorials

DIFFUSIVITY IN PRECIPITATES ............................................................................................. 163

SETUP ............................................................................................................................................ 163

INTERPRETATION OF RESULTS ......................................................................................................... 164

MICROSTRUCTURAL PARAMETERS AND NUCLEATION SITES .................................................. 164

SETUP ............................................................................................................................................ 164

TO FINISH... ...................................................................................................................... 166

T16: EFFECT OF MICROSTRUCTURE AND CONDITIONS (PART 2) ....................................... 167


CONTENTS ........................................................................................................................ 167

BEFORE STARTING... ......................................................................................................... 168

SIMULTANEOUS PRECIPITATION OF CEMENTITE AND M23C6 ................................................... 168

SETUP ............................................................................................................................................ 168

INTERPRETATION OF RESULTS ......................................................................................................... 169

EFFECT OF DISLOCATION DENSITY ...................................................................................... 172

RESULTS: ....................................................................................................................................... 172

EFFECT OF GRAIN DIAMETER .............................................................................................. 173

RESULTS: ....................................................................................................................................... 174

T17: COMPLEX MULTI-STAGE HEAT TREATMENTS ........................................................... 176


CONTENTS ........................................................................................................................ 176

SETTING UP GUI, THERMODYNAMICS, PRECIPITATES AND PRECIPITATION DOMAINS ............... 177

SETUP CALCULATION....................................................................................................................... 177

SETUP GUI .................................................................................................................................... 177

DEFINITION OF THE HEAT TREATMENT ................................................................................. 178

PERFORM SIMULATION ....................................................................................................... 183

SIMULATION WITH SEPARATION OF PRECIPITATE POPULATIONS ............................................. 187

RESTRICTING PRECIPITATE NUCLEATION TO THE SELECTED PRECIPITATE DOMAIN ................. 190

T18: PLOTTING A TTP DIAGRAM ................................................................................... 193


CONTENTS ........................................................................................................................ 193

SETTING UP THE SYSTEM ................................................................................................... 194

TTP DIAGRAMS FOR ISOTHERMAL HEAT TREATMENTS .......................................................... 194

VII
Tutorials

CALCULATIONS OF PHASE FRACTION FOR ISOTHERMAL TREATMENTS ................................................. 194

AUTOMATIC CALCULATION OF TTP DIAGRAMS .................................................................................. 195

PLOTTING THE RESULTS .................................................................................................................. 196

ABSOLUTE ...................................................................................................................................... 197

RELATIVE MAX F .............................................................................................................................. 198

T19: SCRIPTING PRECIPITATION CALCULATIONS ............................................................. 199


CONTENTS ........................................................................................................................ 199

SETTING UP THE SYSTEM AND THERMODYNAMICS ................................................................ 200

SETTING UP THE PRECIPITATION DOMAINS........................................................................... 201

SETTING UP THE PRECIPITATE PHASES................................................................................ 202

HEAT-TREATMENT ............................................................................................................. 203

AUSTENITISATION AND QUENCHING TREATMENT ............................................................................... 204

TEMPERING TREATMENT .................................................................................................................. 207

PLOTS .............................................................................................................................. 207

RUNNING THE CALCULATION............................................................................................... 210

T20: SIMULATING GRAIN GROWTH................................................................................. 213


CONTENTS .................................................................................................................. 213
SETTING UP THE SYSTEM ................................................................................................... 214

SINGLE-CLASS GRAIN GROWTH MODEL ............................................................................... 214

CHANGING THE MODEL PARAMETERS ............................................................................................... 217

T21: STRAIN INDUCED PRECIPITATES ............................................................................ 218


CONTENTS ........................................................................................................................ 218

SETTING UP THE SYSTEM ................................................................................................... 219

PHASE SOLUBILITIES ....................................................................................................................... 219

PRECIPIATION DOMAINS AND PHASES ............................................................................................... 221

THERMO-MECHANICAL TREATMENT .................................................................................................. 221

KINETICS SIMULATION OF SIMPLE COOLING PROCESS ........................................................... 223

EFFECT OF VOLUMETRIC MISFIT .......................................................................................... 225

SIMULATION OF DEFORMATION PROCESS ............................................................................ 229

EVOLUTION OF DISLOCATION DENSITY .............................................................................................. 229


VIII
Tutorials

THERMO-MECHANICAL TREATMENS SETTINGS................................................................................... 231

DEACTIVATION OF THE VOLUMETRIC MISFIT ...................................................................................... 234

KINETIC SIMULATION ....................................................................................................................... 235

T22: RECRYSTALLIZATION ON SUBGRAIN BOUNDARIES.................................................... 238


CONTENTS ........................................................................................................................ 238

SETTING UP THE SYSTEM ................................................................................................... 239

PRECIPITATION DOMAINS AND PHASES ............................................................................................. 239

THERMO-MECHANICAL TREATMENT .................................................................................................. 240

KINETICS SIMULATION OF THE DEFORMATION PROCESS ....................................................... 243

INTRODUCING GRAIN GROWTH............................................................................................ 246

INTRODUCING RECRYSTALLIZATION .................................................................................... 248

T23: INTRODUCTION TO CELL SIMULATIONS: LONG-RANGE DIFFUSION .............................. 253


CONTENTS ........................................................................................................................ 253

DESCRIPTION OF THE PROBLEM.......................................................................................... 254

SETTING UP THE SYSTEM ................................................................................................... 255

THERMODYNAMIC AND KINETIC SETUP .............................................................................................. 255

PRECIPITATION DOMAIN SETUP ........................................................................................................ 257

CREATING THE SIMULATION GRID ..................................................................................................... 257

ASSIGNING PROPERTIES TO THE CELLS ............................................................................................ 258

DISPLAY ......................................................................................................................................... 260

ANALYTICAL SOLUTION .................................................................................................................... 263

SETTING UP AND RUNNING THE SIMULATION...................................................................................... 264

INTERPRETING THE RESULTS .............................................................................................. 266

APENDIX A .................................................................................................................. 268


SCRIPT TUTORIAL 2 ........................................................................................................... 268

SCRIPT TUTORIAL 3 ........................................................................................................... 271

SCRIPT TUTORIAL 4 ........................................................................................................... 273

SCRIPT TUTORIAL 5 ........................................................................................................... 275

SCRIPT TUTORIAL 6 ........................................................................................................... 277

IX
Tutorials

SCRIPT TUTORIAL 7 ........................................................................................................... 281

SCRIPT TUTORIAL 8 ........................................................................................................... 284

SCRIPT TUTORIAL 9 ........................................................................................................... 290

SCRIPT TUTORIAL 10 ......................................................................................................... 300

SCRIPT TUTORIAL 11 ......................................................................................................... 304

SCRIPT TUTORIAL 12 ......................................................................................................... 307

SCRIPT TUTORIAL 13 ......................................................................................................... 309

SCRIPT TUTORIAL 14 ......................................................................................................... 312

SCRIPT TUTORIAL 15 ......................................................................................................... 316

SCRIPT TUTORIAL 16 ......................................................................................................... 321

SCRIPT TUTORIAL 17 ......................................................................................................... 326

SCRIPT TUTORIAL 18 ......................................................................................................... 330

SCRIPT TUTORIAL 19 ......................................................................................................... 334

SCRIPT TUTORIAL 20 ......................................................................................................... 339

SCRIPT TUTORIAL 21 ......................................................................................................... 341

SCRIPT TUTORIAL 22 ......................................................................................................... 346

X
Tutorial 1

T1: INTRODUCTION TO THE MATCALC GRAPHICAL USER INTERFACE (GUI)

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: none

This first tutorial provides a brief tour of MatCalc's user interface and explains how to
perform basic file operations.

CONTENTS

• Appearance of the graphical user interface


• Menus and toolbar
• Console window
• Command history
• Configuring the layout of the GUI
• The 'File' menu
• Creating a new workspace file
• Modifying the working directory
• Adding workspace information
• Saving and closing files
• Getting help

1
Tutorial 1

THE GRAPHICAL USER INTERFACE


SCREEN LAYOUT

When MatCalc is first opened, the screen appears as shown below (Windows version).

The table below gives brief descriptions of the different areas of the screen.
Menu bar The main menu (see below).

Toolbar Icons giving quick access to frequently used functions (see below)

Quick
Icons giving quick access to window management options
access bar

Window for entering command-lines; more information is given below and in


Console
Tutorial 12.

MatCalc 5 Window for entering command-lines, assuring compatibility with MatCalc 5


Console commands/scripts; more information is given below and in Tutorial 12.

Options Context-sensitive options to change the way information is displayed. Tutorial 2,


window Tutorial 4 and Tutorial 5 give more information about the Options window.

2
Tutorial 1

Variables A list of MatCalc's built-in variables with their current values. See Tutorial 4 and
window Tutorial 5 for more about variables.

Information
Notes on the currently highlighted entry in the variables window (meaning of
on
variable, units, etc.).
variables

Nodes List of nodes used in simulation. Multiple nodes are used in the advanced
window calculations

Gives information on the current state of the system (temperature, time, etc.)
Status bar
and on the contents of graphical windows (see Tutorial 4).

MENU BAR

As with any typical GUI application, this gives access to a number of sub-menus. The 'File' and
'Help' menus are documented in this tutorial, and the contents of the other menus will be
described in more detail in subsequent tutorials.
'File': opening, saving and closing files (see 'File operations' below)
'Edit': text-editing commands such as undo, redo, cut, copy, paste
'Global': commands for setting up the system
'Calc', 'Simulation', 'Monte Carlo', 'Regions': commands for starting various types of
calculation
'Script': to run scripts (more on this in Tutorial 13)
'View': to configure the GUI and create new windows for the display of results
'Help': see 'Getting help' below
TOOLBARS

The toolbar area contains a number of icon groups:


'File etc'

L-R : New, open, save, close workspace, print, contents


'Dir'

L-R: browse working directory, run script


'Edit'

L-R: Undo, redo, cut, copy, paste, find

3
Tutorial 1

'Calc'

L-R: Stop current action, single equilibrium, stepped equilibrium, search phase boundary,
precipitate kinetics calculation, select calculation state, save into current calculation state,
load from current calculation state, select calculation buffer.
'View'

L-R: Show console, create new window.


'Quick access'

L-R: Wizard, hide all, console, options, variables, nodes, start, freeze all window updates, fit
windows into viewport, zoom in, zoom out, open Navigator, Display Mode
Right-clicking on the toolbar area gives a menu allowing the user to control which windows
and which icon groups are to be displayed on the screen:

CONSOLE

This window allows command-line input, as an alternative to using the graphical controls.
Commands can also be grouped into script files, for easier and more rapid execution of
repetitive or complex tasks. More on the console, command-line syntax and scripts will be
found in Tutorial 12: Using the MatCalc console and Tutorial 13: Introduction to scripting. The

4
Tutorial 1

console can be shown or hidden using View > Show console, pressing F4 key or clicking on
icon.
MatCalc 6 uses a new formalism for the command-line input. While the scripts and
commands used in the older versions are recognized by the current version, the old
command formalism is to be typed in 'MatCalc 5 console' window.

COMMAND HISTORY

The command history window can be made to appear by selecting its entry in the menu
shown on the picture above or by pressing 'Ctrl' + 'Arrow up' after clicking on the console
window. It gives a chronological list of all the commands entered in the Console.

A command can be selected using the mouse pointer or arrow keys. Right-clicking on the
command displays the following menu. On the right-hand side of the menus in MatCalc are
keyboard shortcuts for the more commonly used commands. It can be seen from the image
below that it is sufficient to press the 'Enter' key to execute the selected command.

Previously used commands can also be accessed in the Console window itself; pressing the
up-arrow key displays the most recently entered command, and pressing it repeatedly scrolls
through recent commands in reverse chronological order. The command displayed can be
edited then executed by pressing the 'Enter' key.
5
Tutorial 1

CONFIGURING THE LAYOUT

The icon groups in the toolbar can be rearranged by clicking on the double vertical lines at the
left-hand side of the group and dragging to the chosen location. They can be detached from
the toolbar area and brought into the currently empty main window area (coloured grey); in
this case, they are given title bars similar to that of the 'MatCalc console'. The Console,
Options, Variables and Command History windows can also be attached to or detached from
the left-hand column area as required.

FILE OPERATIONS
THE 'FILE' MENU

Clicking on 'File' in the menu bar opens the following menu:

CREATING A NEW WORKSPACE FILE

The 'workspace' is the basic file type in MatCalc. It contains all the necessary information on
the calculation or series of calculations under consideration, comprising inputs (elements,
phases, compositions, thermodynamic and mobility data) and outputs (results of calculations,
graphs, etc.). Saving the workspace preserves all this information for future use. Click on the
icon or open 'New' from the 'File' menu. The following dialogue box will appear:

6
Tutorial 1

Select 'MatCalc workspace' from the drop-box. This runs a script file called 'autonew.mcs',
which makes two additional windows appear: 'Phase details' and 'Phase summary'. When
the new workspace is first created, the 'Phase summary' and 'Phase details' windows show
messages indicating that no phases have yet been selected. The workspace is now ready for
thermodynamic or precipitation calculations to be set up and performed.

WORKING DIRECTORY

The 'working directory' is the directory opened by default when saving new files or opening
existing ones. Clicking on 'Working directory…' allows the user to designate an existing
directory as the working directory or to create a new directory for this purpose.

7
Tutorial 1

The paths of the current working directory and of recently used working directories are listed
to the right of 'Recent working dirs…', allowing any of these directories to be selected easily.

The same information is also available in a drop-box in the toolbar area:

ADDING WORKSPACE INFORMATION

Clicking on 'Workspace info…' opens a box in which information about the current workspace
can be entered. This is useful for details of the assumptions used in the calculation, the
sources of experimental data, etc.

8
Tutorial 1

SAVE, SAVE AS, CLOSE

Workspaces can be saved using 'Save…' or 'Save As…' in the file menu, or the icon on the
toolbar. To close a file, choose 'Close Workspace' in the file menu or .
WARNING: Do not close the individual windows on the screen before saving, or their
contents will not be saved!

GETTING HELP
The MatCalc help files are accessible on the web site http://www.matcalc.at →
documentation. Presently, no local installation is provided.
In the Console, typing a question-mark will display a list of available commands. These will be
discussed in more detail in Tutorial 12.

9
Tutorial 2

T2: CALCULATING A SINGLE EQUILIBRIUM

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

This tutorial explains how to determine the equilibrium phases at a given temperature, and
their phase fractions and compositions.

CONTENTS

• Opening a database and selecting elements and phases


• Entering a composition
• Calculating an equilibrium at a given temperature
• Interpretation of information displayed in the output, phase summary and phase
details windows
• Using the 'Options' window to modify the display
• Phase status indicators
• Calculation states

10
Tutorial 2

BEFORE STARTING...
Create a new workspace file (Tutorial 1).

SETTING UP THE SYSTEM


OPENING A THERMODYNAMIC DATABASE AND SELECTING ELEMENTS AND PHASES

In the 'Global' menu, select 'Databases'. A window will appear as shown below. The
'Equilibrium database' box initially displays the message 'database not open…'. Click on the
'open…' button; this will open the '…MatCalc/database/thermodynamic' subdirectory,
allowing the user to choose a database. A small database on iron-based materials,
'mc_fe.tdb', is provided with MatCalc for demonstration purposes. Select this database and
click 'Open'.

A list of elements will appear in the left-hand box, with FE and VA (vacancies) selected by
default. In the right-hand box is a list of the phases which can occur in a system containing
the selected elements. Click on 'C' in the elements box; this will add to the list a number of
other phases which can occur in an Fe-C system, such as graphite and several carbides. The
'show all available phases' box can be used to display all the phases available in the
database, irrespective of whether they can form in the system in question.
From the phase list, select 'LIQUID', 'BCC_A2', 'FCC_A1', 'GRAPHITE' and 'CEMENTITE'. Phases
are described using crystallographic notation: BCC_A2 represents the body-centred cubic

11
Tutorial 2

phase, which corresponds to ferrite in the iron-carbon system, and FCC_A1 is the face-
centred cubic austenite phase in Fe-C. Click 'Read & Close'.

ENTERING THE COMPOSITION

In the 'Global' menu, select 'Composition'. This opens the 'System composition' box. The
lower part of the box gives options for the units in which the composition is to be displayed:
mole fraction, weight fraction, u-fraction or weight percent. One of the elements, usually the
one with the highest mole fraction, is designated as the 'reference element', and the amount
of this element is calculated as 1-(sum of the amounts of all other elements) for
compositions expressed in fractional form, or 100-(sum of the amounts of all other
elements) for compositions expressed as percentages.

12
Tutorial 2

Iron is set as the reference element by default in the 'mc_fe.tdb' database, as can be seen
from the 'Ref. Elem' column in the composition dialogue box. Another element can be set as
the reference by selecting the element name and clicking on the 'Set reference element'
button on the right, or by double-clicking in the 'Ref. Elem' column by the side of the element
name.
To enter a composition of 0.4 wt.% C, select 'weight percent' as the unit, then highlight
element C. Double-click in the 'Amount' column, click on the 'Change' button or press F2 to
modify the composition, then type in '0.4' and press 'Enter'.
The system is now ready to perform an equilibrium calculation.

CALCULATING AN EQUILIBRIUM
From the 'Calc' menu, select 'Set start values'. This initialises the calculation variables with
reasonable values in order to help the Gibbs free energy minimiser to find a solution which
satisfies all the boundary conditions. This command is useful if the solution algorithm seems
to be 'stuck' and unable to find an equilibrium.
Once one valid equilibrium has been found, solutions at other temperatures or boundary
conditions are much easier to obtain. From the 'Calc' menu, select 'Equilibrium', or click on
the icon in the toolbar. The following window appears:

13
Tutorial 2

Enter '700' in the temperature box and ensure that 'temperature in C' is selected. Leave the
pressure at its default value. Click on 'Go' to start the calculation.

INTERPRETING THE RESULTS OF THE CALCULATION

The 'Console', 'Phase status' and 'Phase details' windows each show information on the
calculation which has just been performed. The final three lines of the console window list
the number of iterations, the calculation time, the temperature and the Gibbs energy of the
system. The '- OK -' message in the final line indicates that the calculation was successful,
with no errors reported. Also the 'start' symbol on the Quick access menu is changed to the
green check mark . If any errors do occur, the message '*** error ***' followed by a
description of the nature of the error will be displayed instead of the 'OK' message.

Moreover, the 'start' symbol in Quick Access menu will show a small warning sign . In this
case, reset the calculation with 'Set start values' and repeat it using 'Equilibrium'. It is always
advisable to check the status of the calculation in the console window or Quick Access menu
before proceeding.
The other lines visible in the console window are messages relating to the opening and
reading of the thermodynamic database.

14
Tutorial 2

Information on the phase stabilities is shown in the 'Phase summary' window. Those phases
with non-zero phase fractions are termed 'active' and are listed in the first block. Inactive
phases (those which are unstable, with negative driving forces) are listed in the second block.
The third column gives the phase fraction and the column after 'dfm:' gives the driving force
in J/mole. It can be seen that BCC_A2 (ferrite) and GRAPHITE are the stable phases at 700°C.

The 'Phase details' window provides more comprehensive information on the properties of
the phases, including the molar Gibbs free energy of the phase (the number after 'gm:') and
15
Tutorial 2

the phase compositions (expressed in mole fraction by default), as well as the information
provided in the 'Phase summary'. The phases are again grouped according to whether they
are active or inactive.

USING THE 'OPTIONS' WINDOW TO MODIFY THE DISPLAY

To change the units in which the composition is displayed in the 'Phase details' window, first
highlight this window and then go to the 'Options' window. (If this is not shown on the
screen, make it appear by selecting 'View > Show > Show options window' or right-clicking in
the toolbar area and selecting 'options' from the menu.)
The 'Options' window provides display options for the currently highlighted window. In the
case of the 'Phase details' window, the composition can be displayed as a mole fraction, a
weight fraction or a u-fraction, and can also be expressed as a percentage if required.

16
Tutorial 2

PHASE STATUS: SUSPENDED AND DORMANT PHASES

The calculation has shown that at 700°C, BCC_A2 (ferrite) and graphite are the equilibrium
(i.e. most thermodynamically stable) phases. However, it is observed in practice that in Fe-C
systems with relatively low carbon contents, graphite formation is extremely slow, and can be
considered not to occur over practical timescales.
Since this is the case, it is useful to calculate a metastable equilibrium, for which graphite
formation is not allowed. Go to 'Global > Phase status' and highlight 'GRAPHITE'. In the
'General' tab, the uppermost section is labelled 'Flags…'. Click to place a tick in the box next
to 'suspended' and click 'OK'.

17
Tutorial 2

Repeat the equilibrium calculation and note the difference in results in the 'Phase summary'
window:
BCC_A2 * act 9.29191-001 dfm: +0.00000e+000

CEMENTITE act 7.08095-002 dfm: +0.00000e+000

### inactive ###

FCC_A1 - OK - 0.00000+000 dfm: -1.19178e+002

LIQUID - OK - 0.00000+000 dfm: -3.71669e+003

### suspended ###

GRAPHITE

Now BCC_A2 and CEMENTITE are active, FCC_A1 and LIQUID are inactive and GRAPHITE is
listed as 'suspended'. Suspending a phase causes the program to consider it as if it were not
there at all; the next most stable phase (in this case, cementite) becomes the equilibrium
phase. Alternatively, the flag can be set to 'fixed phase fraction' using the same procedure
(i.e. in the 'General' tab of the 'Phase status' window, remove the tick from 'suspended' and
place it in the 'fixed phase fraction' box for the graphite phase). Next, click on 'set amount…'
in 'Phase fractions' area and type '0' (zero) in the appearing 'Input…' window.

18
Tutorial 2

Perform an equilibrium calculation again. In this case, the phase is considered not to appear,
but its driving force is still evaluated. Also, cementite becomes active, as shown by the results
below:
BCC_A2 * act 9.82166-001 dfm: +0.00000e+000

CEMENTITE act 7.08095-002 dfm: +0.00000e+000

### inactive ###

GRAPHITE fixed 0.00000+000 dfm: +2.35328e+003

FCC_A1 - OK - 0.00000+000 dfm: -1.19178e+002

LIQUID - OK - 0.00000+000 dfm: -3.71669e+003

In order to eliminate graphite completely from the system, open the 'Phase status' window,
select the 'GRAPHITE' phase and click on 'Remove' button.

19
Tutorial 2

A new window will appear in which MatCalc will ask you to confirm this wish - click on 'Yes'.
Repeat the equilibrium calculation at 700°C to obtain an equilibrium without graphite. The
driving forces obtained should be identical to those found in the previous calculation in which
graphite was suspended:
BCC_A2 * act 9.29191-001 dfm: +0.00000e+000

CEMENTITE act 7.08095-002 dfm: +0.00000e+000

### inactive ###

FCC_A1 - OK - 0.00000+000 dfm: -1.19178e+002

LIQUID - OK - 0.00000+000 dfm: -3.71669e+003

Adding any other phase to the system requires re-opening the thermodynamic database and
selecting the new phase next to the already highlighte ones. Re-open 'Global > Databases'
and click on GRAPHITE to select it, then click on 'Read & Close'. A warning will appear, stating
that all existing data will be deleted. Accept this by clicking on 'Yes'. A new message, with
updated information on the thermodynamic data, appears in the 'Output' window. Reading
in new data from the database erases any previous equilibrium calculation results, so perform
20
Tutorial 2

the equilibrium calculation at 700°C once again to obtain an equilibrium with graphite (if you
get an error message, click on 'Set start values' in 'Calc' menu). This time, the driving forces
obtained should be identical to those found in the previous calculation in which graphite was
present in the system:
BCC_A2 * act 9.82166-001 dfm: +0.00000e+000

GRAPHITE act 1.78337-002 dfm: +0.00000e+000

### inactive ###

FCC_A1 - OK - 0.00000+000 dfm: -1.88360e+002

CEMENTITE - OK - 0.00000+000 dfm: -5.87283e+002

LIQUID - OK - 0.00000+000 dfm: -4.07902e+003

CALCULATION STATES

By default, the results from a previous equilibrium calculation are overwritten when a new
calculation is carried out. However, it is sometimes useful to store the results from a
calculation for future use. The 'Calculation states' feature is provided for this purpose; it can
be found in the 'Global' menu under 'CalcStates'. In the sub-menu, click on 'Create' and type
the name in the box:

The calculation state stores all information on an equilibrium including the complete phase
status, composition and any compositional states which may apply. Calculate another
equilibrium at 600°C and store it by creating another calculation state. These states are now
both available in the calculation state drop-box on the toolbar:

21
Tutorial 2

Select a calculation state from this box and load the stored equilibrium with the button
(This can also be done using 'Global > CalcStates > Select' and then 'Load' ). Note how the
contents of the 'Phase details' and 'Phase summary' windows are immediately updated with
the results stored in the calculation state, and the temperature at which the equilibrium was
calculated is shown in the status bar towards the bottom right of the screen. The results of
the current equilibrium calculation can be saved into an existing calculation state by selecting

the name of the state in the drop-box and then clicking on the button or using 'Global >
CalcStates > Select' and then 'Save'. NB: Calculation states, like all other calculation results,
are erased when data is re-read from the database!

TO FINISH...
Save the workspace using 'File > Save as…'. Workspace files are automatically given the file
extension '.mcw'.

22
Tutorial 3

T3: STEPPED EQUILIBRIUM CALCULATIONS

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS

• Re-opening a saved file and loading a calculation state


• Calculating a stepped equilibrium with varying temperature
• Understanding the results in the Output window
• Working with multiple buffers
• Calculating a stepped equilibrium with varying composition
• The “Edit buffer states” window

23
Tutorial 3

BEFORE STARTING...
Re-open the file saved from Tutorial 2 and load the calculation state 'Equil @ 600°C'.

STEPPED EQUILIBRIUM CALCULATION WITH VARYING TEMPERATURE


RUNNING THE STEPPED CALCULATION

In phase status window, remove graphite phase. Select 'Stepped calculation…' from the 'Calc'
menu or click on the icon. The 'Step equilibrium' window will appear. Select
'Temperature' (the uppermost choice in the left-hand column).
In the 'Range' box, the default 'Start', 'Stop' and 'Step interval' values are 400, 1600 and 25
respectively. Keep these values and verify that the 'Temperatures in Celsius' option has been
selected. The step direction is unimportant, and it is not necessary to enter the interval as '-
25' if stepping in a negative direction. The contents of the 'Vary' and 'Boundary conditions'
boxes are currently greyed-out because they are not applicable to a temperature-step
calculation. Click on the 'Go' button at the bottom right of the window.

24
Tutorial 3

OUTPUT

The 'console' window should show the following series of messages:


1, 0.00 s, 600.00 C (873.16 K), its 2, BCC_A2 CEMENTITE - OK -

2, 0.00 s, 625.00 C (898.16 K), its 4, BCC_A2 CEMENTITE - OK -

3, 0.00 s, 650.00 C (923.16 K), its 4, BCC_A2 CEMENTITE - OK -

4, 0.00 s, 675.00 C (948.16 K), its 4, BCC_A2 CEMENTITE - OK -

5, 0.00 s, 700.00 C (973.16 K), its 4, BCC_A2 CEMENTITE - OK -

6, 0.00 s, 725.00 C (998.16 K), its 4, BCC_A2 CEMENTITE - OK -

Tsol 'FCC_A1': 726.52 C (999.68 K) iter: 4, time used: 0.00 s

Tsol 'CEMENTITE': 726.52 C (999.68 K) iter: 5, time used: 0.00 s

7, 0.02 s, 750.00 C (1023.16 K), its 5, FCC_A1 BCC_A2 - OK -

8, 0.00 s, 775.00 C (1048.16 K), its 5, FCC_A1 BCC_A2 - OK -

Tsol 'BCC_A2': 787.13 C (1060.29 K) iter: 4, time used: 0.00 s

9, 0.00 s, 800.00 C (1073.16 K), its 4, FCC_A1 - OK -

10, 0.00 s, 825.00 C (1098.16 K), its 2, FCC_A1 - OK -

11, 0.00 s, 850.00 C (1123.16 K), its 2, FCC_A1 - OK -

12, 0.01 s, 875.00 C (1148.16 K), its 2, FCC_A1 - OK -

13, 0.00 s, 900.00 C (1173.16 K), its 2, FCC_A1 - OK -

14, 0.00 s, 925.00 C (1198.16 K), its 2, FCC_A1 - OK -

15, 0.00 s, 950.00 C (1223.16 K), its 2, FCC_A1 - OK -

16, 0.00 s, 975.00 C (1248.16 K), its 2, FCC_A1 - OK -

17, 0.00 s, 1000.00 C (1273.16 K), its 2, FCC_A1 - OK -

18, 0.00 s, 1025.00 C (1298.16 K), its 2, FCC_A1 - OK -

19, 0.00 s, 1050.00 C (1323.16 K), its 2, FCC_A1 - OK -

20, 0.00 s, 1075.00 C (1348.16 K), its 2, FCC_A1 - OK -

21, 0.00 s, 1100.00 C (1373.16 K), its 2, FCC_A1 - OK -

22, 0.00 s, 1125.00 C (1398.16 K), its 2, FCC_A1 - OK -

23, 0.00 s, 1150.00 C (1423.16 K), its 2, FCC_A1 - OK -

24, 0.00 s, 1175.00 C (1448.16 K), its 2, FCC_A1 - OK -

25, 0.00 s, 1200.00 C (1473.16 K), its 2, FCC_A1 - OK -

25
Tutorial 3

26, 0.00 s, 1225.00 C (1498.16 K), its 2, FCC_A1 - OK -

27, 0.00 s, 1250.00 C (1523.16 K), its 2, FCC_A1 - OK -

28, 0.00 s, 1275.00 C (1548.16 K), its 2, FCC_A1 - OK -

29, 0.00 s, 1300.00 C (1573.16 K), its 2, FCC_A1 - OK -

30, 0.00 s, 1325.00 C (1598.16 K), its 2, FCC_A1 - OK -

31, 0.00 s, 1350.00 C (1623.16 K), its 2, FCC_A1 - OK -

32, 0.00 s, 1375.00 C (1648.16 K), its 2, FCC_A1 - OK -

33, 0.00 s, 1400.00 C (1673.16 K), its 2, FCC_A1 - OK -

34, 0.00 s, 1425.00 C (1698.16 K), its 2, FCC_A1 - OK -

35, 0.02 s, 1450.00 C (1723.16 K), its 2, FCC_A1 - OK -

Tsol 'LIQUID': 1453.05 C (1726.21 K) iter: 3, time used: 0.00 s

36, 0.00 s, 1475.00 C (1748.16 K), its 3, LIQUID FCC_A1 - OK -

Tsol 'FCC_A1': 1494.60 C (1767.76 K) iter: 4, time used: 0.00 s

Tsol 'BCC_A2': 1494.60 C (1767.76 K) iter: 5, time used: 0.00 s

37, 0.01 s, 1500.00 C (1773.16 K), its 5, LIQUID BCC_A2 - OK -

Tsol 'BCC_A2': 1505.64 C (1778.80 K) iter: 4, time used: 0.00 s

38, 0.02 s, 1525.00 C (1798.16 K), its 4, LIQUID - OK -

39, 0.00 s, 1550.00 C (1823.16 K), its 2, LIQUID - OK -

40, 0.00 s, 1575.00 C (1848.16 K), its 2, LIQUID - OK -

41, 0.00 s, 1600.00 C (1873.16 K), its 2, LIQUID - OK -

changing step direction ...

42, 0.00 s, 575.00 C (848.16 K), its 5, BCC_A2 CEMENTITE - OK -

43, 0.00 s, 550.00 C (823.16 K), its 5, BCC_A2 CEMENTITE - OK -

44, 0.00 s, 525.00 C (798.16 K), its 5, BCC_A2 CEMENTITE - OK -

45, 0.00 s, 500.00 C (773.16 K), its 5, BCC_A2 CEMENTITE - OK -

46, 0.00 s, 475.00 C (748.16 K), its 5, BCC_A2 CEMENTITE - OK -

47, 0.00 s, 450.00 C (723.16 K), its 5, BCC_A2 CEMENTITE - OK -

48, 0.00 s, 425.00 C (698.16 K), its 5, BCC_A2 CEMENTITE - OK -

49, 0.00 s, 400.00 C (673.16 K), its 5, BCC_A2 CEMENTITE - OK -

Steps: 50, CalcTime: 0.25 s

26
Tutorial 3

AktStepVal: 673.160000

- OK -

Each line corresponds to an equilibrium calculated at a single temperature value and


comprises a line number, the calculation time, the temperature, the number of iterations, the
stable phases at that temperature and an '- OK -' message indicating that the equilibrium
calculation was successful.
Note that the temperature-stepping starts from the equilibrium at 600°C loaded from the
calculation state. Initially, the temperature is increased by the 'Step interval' each time until
the upper temperature limit is reached.
Then, a 'changing step direction' message is displayed and, again starting from the
equilibrium at 600°C, the temperature is decreased until the lower limit is reached. Also note
the lines beginning with 'Tsol': phase solubility temperatures are automatically evaluated
during the stepped calculation. Thus it is seen in the output above that from 600°C to
726.52°C, the two stable phases are BCC_A2 (ferrite) and CEMENTITE. At 726.52°C, FCC_A1
(austenite) becomes stable, and cementite becomes unstable. The two phases in equilibrium
are ferrite and austenite between this temperature and 787.13°C, when ferrite becomes
unstable. Austenite is then the only stable phase, and this situation persists up to the liquid
solubility temperature of 1453.05°C. The BCC_A2 phase known as delta-ferrite is stable in a
narrow temperature range at high temperature, and by 1600°C the only equilibrium phase is
liquid. There are no changes in phase stability between 600°C and 400°C, as can be seen from
the block of lines below 'changing step direction …'.
The final three lines of output give the number of steps and total calculation time, the current
value of the stepped variable (673.16 K = 400°C) and an 'OK' message indicating that the
calculation was carried out successfully.
The contents of the 'Phase summary' and 'Phase details' are not modified during the stepped
calculation, but still display the information loaded from the calculation state 'Equil @ 600°C'.

BUFFERS

All the equilibria listed above are stored in a buffer. In other words, a buffer is a collection of
calculation states, with each calculation state created in a different temperature. The default
buffer is named '_default_', and its contents are overwritten when a new stepped calculation
is carried out.
To be able to keep more than one set of stepped equilibria, additional buffers must be
created. Firstly, rename the existing default buffer using 'Global > Buffers > Rename'. Type
'T=400 to 1600°C' into the 'New buffer name' box and click 'OK'. Then, create a new buffer
using 'Global > Buffers > Create'. This new buffer will contain the results from a new stepped
equilibrium calculation in which the carbon content is varied from 0 to 1.5 wt.% at 500°C, so

27
Tutorial 3

enter the name 'C=0 to 1.5 at 500°C'. Note that buffers can be selected from the drop-box in
the toolbar area or using 'Global > Buffers > Select'.

STEPPED EQUILIBRIUM CALCULATION WITH VARYING CARBON CONTENT


RUNNING THE CALCULATION

Calculate an equilibrium at 500°C. Open the 'Step equilibrium' window again, but this time
select 'Element cont..' instead of 'Temperature' in the 'Type' box. Enter '0', '1.5' and '0.05'
respectively as the start, stop and step interval values. (Note that, as shown in the image
below, MatCalc accepts either a decimal point or a comma as the decimal separator.) In the
'Boundary conditions' box, ensure that the element selected is 'C', and enter the
temperature as '500'. Ensure that in the 'vary' box, 'global comp' is selected, and that in the
'Options' column, 'Temperatures in Celsius' and 'Composition in weight percent' are both
selected, then click on 'Go'.

28
Tutorial 3

The contents of the 'console' window should appear as follows:


1, 0.00 s, 0.4, its 2, BCC_A2 CEMENTITE - OK -

2, 0.00 s, 0.45, its 2, BCC_A2 CEMENTITE - OK -

3, 0.00 s, 0.5, its 2, BCC_A2 CEMENTITE - OK -

4, 0.00 s, 0.55, its 2, BCC_A2 CEMENTITE - OK -

5, 0.00 s, 0.6, its 2, BCC_A2 CEMENTITE - OK -

6, 0.00 s, 0.65, its 2, BCC_A2 CEMENTITE - OK -

7, 0.00 s, 0.7, its 2, BCC_A2 CEMENTITE - OK -

8, 0.00 s, 0.75, its 2, BCC_A2 CEMENTITE - OK -

9, 0.00 s, 0.8, its 2, BCC_A2 CEMENTITE - OK -

10, 0.00 s, 0.85, its 2, BCC_A2 CEMENTITE - OK -

11, 0.00 s, 0.9, its 2, BCC_A2 CEMENTITE - OK -

12, 0.00 s, 0.95, its 2, BCC_A2 CEMENTITE - OK -

13, 0.00 s, 1, its 2, BCC_A2 CEMENTITE - OK -

14, 0.00 s, 1.05, its 2, BCC_A2 CEMENTITE - OK -

15, 0.00 s, 1.1, its 2, BCC_A2 CEMENTITE - OK -

16, 0.00 s, 1.15, its 2, BCC_A2 CEMENTITE - OK -

17, 0.00 s, 1.2, its 2, BCC_A2 CEMENTITE - OK -

18, 0.00 s, 1.25, its 2, BCC_A2 CEMENTITE - OK -

19, 0.00 s, 1.3, its 2, BCC_A2 CEMENTITE - OK -

20, 0.00 s, 1.35, its 2, BCC_A2 CEMENTITE - OK -

21, 0.00 s, 1.4, its 2, BCC_A2 CEMENTITE - OK -

22, 0.00 s, 1.45, its 2, BCC_A2 CEMENTITE - OK -

23, 0.00 s, 1.5, its 2, BCC_A2 CEMENTITE - OK -

changing step direction ...

24, 0.00 s, 0.35, its 2, BCC_A2 CEMENTITE - OK -

25, 0.00 s, 0.3, its 2, BCC_A2 CEMENTITE - OK -

26, 0.00 s, 0.25, its 2, BCC_A2 CEMENTITE - OK -

27, 0.00 s, 0.2, its 2, BCC_A2 CEMENTITE - OK -

28, 0.00 s, 0.15, its 2, BCC_A2 CEMENTITE - OK -

29, 0.00 s, 0.1, its 2, BCC_A2 CEMENTITE - OK -


29
Tutorial 3

30, 0.00 s, 0.05, its 2, BCC_A2 CEMENTITE - OK -

Xsol 'CEMENTITE': X(C): 5.7397782e-05, WP(C): 0.0012345083 - OK -

31, 0.00 s, 1e-12, its 4, BCC_A2 - OK -

Steps: 32, CalcTime: 0.11 s

AktStepVal: 0.000000

- OK -

Similarly to the temperature-step calculation, the output consists of a series of equilibria


evaluated at the specified step-values. The first of these corresponds to the carbon content of
0.4 wt.% entered in the 'System composition' box in Tutorial 2. The carbon content is then
increased in 0.05 wt.% steps up to the maximum value of 1.5 wt.%. The 'Changing step
direction' line marks the beginning of the second set of equilibria, in which the carbon
content is decreased. At 500°C, the stable phases are BCC_A2 and CEMENTITE across almost
the whole composition range, but between the final two equilibria there is a line beginning
with 'Xsol'. The line below this gives the carbon content at which cementite becomes
unstable, both in mole fraction 'X(C)' and in weight percent 'WP(C)'. Create a third buffer
named 'C=0 to 1.5 at 800°C' and perform a stepped calculation with the same composition
range but at a temperature of 800°C. The output in this case includes three 'Xsol' lines,
corresponding to changes in phase stability:
1, 0,00 s, 0,4, its 74, FCC_A1 - OK -

2, 0,00 s, 0,45, its 3, FCC_A1 - OK -

3, 0,00 s, 0,5, its 3, FCC_A1 - OK -

4, 0,00 s, 0,55, its 3, FCC_A1 - OK -

5, 0,00 s, 0,6, its 3, FCC_A1 - OK -

6, 0,00 s, 0,65, its 3, FCC_A1 - OK -

7, 0,00 s, 0,7, its 3, FCC_A1 - OK -

8, 0,00 s, 0,75, its 3, FCC_A1 - OK -

9, 0,00 s, 0,8, its 3, FCC_A1 - OK -

10, 0,00 s, 0,85, its 3, FCC_A1 - OK -

11, 0,00 s, 0,9, its 3, FCC_A1 - OK -

Xsol 'CEMENTITE': X(C): 0.042618502, WP(C): 0.9483187 - OK -

12, 0,00 s, 0,95, its 4, FCC_A1 CEMENTITE - OK -

13, 0,00 s, 1, its 2, FCC_A1 CEMENTITE - OK -

14, 0,00 s, 1,05, its 2, FCC_A1 CEMENTITE - OK -

30
Tutorial 3

15, 0,00 s, 1,1, its 2, FCC_A1 CEMENTITE - OK -

16, 0,00 s, 1,15, its 2, FCC_A1 CEMENTITE - OK -

17, 0,00 s, 1,2, its 2, FCC_A1 CEMENTITE - OK -

18, 0,00 s, 1,25, its 2, FCC_A1 CEMENTITE - OK -

19, 0,00 s, 1,3, its 2, FCC_A1 CEMENTITE - OK -

20, 0,00 s, 1,35, its 2, FCC_A1 CEMENTITE - OK -

21, 0,00 s, 1,4, its 2, FCC_A1 CEMENTITE - OK -

22, 0,00 s, 1,45, its 2, FCC_A1 CEMENTITE - OK -

23, 0,00 s, 1,5, its 2, FCC_A1 CEMENTITE - OK -

changing step direction ...

24, 0,00 s, 0,35, its 3, FCC_A1 - OK -

Xsol 'BCC_A2': X(C): 0.015673104, WP(C): 0.34127957 - OK -

25, 0,01 s, 0,3, its 4, FCC_A1 BCC_A2 - OK -

26, 0,00 s, 0,25, its 2, FCC_A1 BCC_A2 - OK -

27, 0,00 s, 0,2, its 2, FCC_A1 BCC_A2 - OK -

28, 0,00 s, 0,15, its 2, FCC_A1 BCC_A2 - OK -

29, 0,00 s, 0,1, its 2, FCC_A1 BCC_A2 - OK -

30, 0,00 s, 0,05, its 2, FCC_A1 BCC_A2 - OK -

Xsol 'FCC_A1': X(C): 0.000555891, WP(C): 0.011960753 - OK -

31, 0,01 s, 1e-012, its 4, BCC_A2 - OK -

Steps: 32, CalcTime: 0,16 s

AktStepVal: 0,000000

- OK -

EDIT BUFFER STATES

The 'console' window provides information on which phases are stable at a given
temperature and carbon content, but not on the phase fractions or compositions. However,
this detailed information is stored in the buffers and can be found by selecting 'Global >
Buffers > Edit buffer states'.

31
Tutorial 3

The upper part of the 'step value' area contains a drop-box for selecting a buffer, and the
lower part gives a list of the step-values at which equilibria have been evaluated. These are
either temperature or carbon content values, depending on the buffer chosen, and their units
are those specified in the 'Step equilibrium' window when setting up the calculation. The
'Tsol' or 'Xsol' values are also stored. If the 'auto load' box at the bottom left is ticked,
clicking on a step-value loads the equilibrium, and the contents of the 'Phase summary' and
'Phase details' are immediately updated with phase fraction and composition details for this
equilibrium. The next two tutorials demonstrate how to produce graphical plots of phase
fractions, compositions and many other quantities as a function of the stepped variable.

TO FINISH...
Save the workspace file - it will be needed again in Tutorial 4.

32
Tutorial 4

T4: GRAPHICAL PRESENTATION AND EXPORT OF RESULTS

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS

• Creating a new graphical window


• Introduction to the variables window
• Modifying the appearance of a plot using 'options'
• Zooming in and displaying x- and y-values
• Exporting a plot as an image and as numerical data

33
Tutorial 4

BEFORE STARTING...
Open the file saved from Tutorial 3 and select the buffer named 'T=400 to 1600°C'.

PLOTTING A GRAPH
To plot numerical results, it is first necessary to create a graphical window. In the 'View'
menu, click on 'Create new window' or click on icon.

In the 'Create new window' box which appears, there is a list of a number of possible window
types. Among these are '(a5)' and '(a6)', which are the familiar 'phase summary' and 'phase
details' windows automatically placed on the screen when a new workspace file is created.
Select type '(p1) Plot core: XY-data' and click on 'OK'

34
Tutorial 4

35
Tutorial 4

An empty plot with x- and y-axes appears on the screen. Locate the 'Variables' window - if it
is not present, right-click in the toolbar area at the top of the screen and select it from the

menu, or click on icon in the 'Quick Access' menu. Expand the 'favorites' section by
clicking on the small plus-sign to its left. Then, further expand the section labelled 'F$*' to
give the list shown below.

The syntax 'F$BCC_A2' means 'the phase fraction of BCC_A2', where the dollar sign is a
separator between the variable 'F' and the phase to which it applies 'BCC_A2'. In the heading
of the list, 'F$*', the asterisk is a wild-card indicating 'all phases'. Select 'F$*', drag it to the
empty plot and drop it.
The plot should appear as shown below:

36
Tutorial 4

CHANGING THE APPEARANCE OF THE PLOT


RESULTS FROM DIFFERENT BUFFERS

The 'Options' window can now be used to modify the appearance of the plot as required.

(Again, if this is not currently shown, it can be made to appear by clicking on icon in the
Quick Access menu or the right-click menu in the toolbar area.)

Firstly, note that there is a 'buffer' drop-box. By selecting one of the other buffers, the
contents of the plot can be changed. The 'default x-data' option (the second line down in the
options window) is set to StepValue, i.e. the value of the stepped variable used in the stepped
equilibrium calculation.
Thus, on selecting the 'C=0 to 1.5 at 500°C' buffer, the x-value changes to carbon content,
and the plot looks like this:

37
Tutorial 4

and the plot for the 'C=0 to 1.5 at 800°C' buffer looks like this:

CHANGING THE FORMAT OF THE TEMPERATURE-STEP PLOT

Select the 'T=400 to 1600°C' buffer from the buffer drop-box. One of the first things to note is
that the x-axis data does not run from 400 to 1600; this is because the step value is expressed
by default in Kelvin rather than in Celsius. To change this, double-click on the 'default x-data'
line. A box appears, entitled 'New value for 'default x-data''. Enter 'T$C' (temperature in
Celsius) in place of 'StepValue'.

The plot can be changed from colour to black-and-white ('b/w') using the 'style sheet' drop
box.
The 'plots' section of the options menu can be expanded using the plus-sign. Below 'plot#0'
(the name of the current plot) is a list of options for this plot:

38
Tutorial 4

TITLE

This is blank by default. Double-click to enter a title, e.g. 'Phase fraction versus temperature
for Fe-0.4 wt.%C'.

LEGEND

This comprises options for the position of the legend and for the style of the box surrounding
it.

AXES

The 'axes' section expands to give options for the 'x-axis', 'y-axis', '2nd x-axis' and '2nd y-axis'
(the latter two are not used in the current plot).

39
Tutorial 4

Double-clicking on the 'title' line for x-axis will bring up a box entitled 'New value for 'title':'.
Enter 'Temperature [°C]'. In the same way, change the y-axis title to 'Phase fraction'.
The axis type can be set to either linear or logarithmic. A linear scale is more suitable for the
temperature axis, but a logarithmic y-axis enables the fractions of minor phases, such as
cementite in this example, to be seen more clearly. Change 'lin' to 'log' for the y-axis.
The automatically assigned minimum y-value on the log-scale may not be appropriate, so if
this is the case, double-click on 'scaling' and replace 'auto' with '0.01..1'. The two numbers
are the lower and upper limits respectively. If one or other of these is missed off, an
automatic value is assigned instead. (For example, using '0.01..' is sufficient to give a scale
from 0.01 to 1, since 1 is the maximum value of F$*).
The changes on the x-axis properties will be visible only when the 'use for all plots' setting at
'default x-axis' is set to 'no'. More information about the 'default x-axis' concept will be given
in the next tutorial.

40
Tutorial 4

GRID

This allows gridlines to be added to the plot, and their appearance to be modified. Change
'disabled' to 'enabled' for 'major-x' and 'major-y' to show major gridlines.

SERIES

Expanding the 'series' section gives a list of options for each data-series. The name of the
series (as it appears in the legend) can be changed using 'name'.
The 'locked' option, when set to 'yes', protects the series from any changes when the
contents of the buffer are updated. A locked series is indicated by an asterisk by the name, if
the automatic name is used.
'Derivative' can be used to display the numerically evaluated first or second derivative of a
series.

41
Tutorial 4

The 'x-data' and 'y-data' options control which data-sets are displayed on the x- and y-axes. If
the 'x-data' is set to 'auto', the default x-data, as specified above, is used.
The appearance of the plots can be modified by setting 'default style' to 'no' rather than
'yes', and then expanding 'line' and 'marker' to give a list of options for colours, styles, sizes
etc.

The image below gives an example of a modified plot.

42
Tutorial 4

OTHER PLOT OPERATIONS


ZOOMING AREAS OF THE PLOT

Left-click in the plot area and drag the mouse to draw a rectangular box. When the mouse
button is released, an enlarged version of the region within the box is shown on the axes.
Right-click anywhere in the plot area to return to the original scale.

DISPLAYING X- AND Y - VALUES

When moving the mouse pointer on the plot area, a black cross appears with the y- and x-
values next to it. The coordinates of the centre of the cross are also shown on the status bar
at the bottom left of the screen. A larger, red cross can be obtained by pressing the right
mouse button.

EXPORTING DATA FROM THE PLOT

Right-clicking in the plot window but outside the area of the plot itself gives a context menu
as shown below.

Clicking on 'Copy to clipboard' allows to export this single plot or the whole frame (i.e. all
plots in this window) in the pixmap (.bmp) or scalar vector graphics (.svg) format. Then the
exported piece can be pasted to the relevant graphical application. Additional for the plot,
there is a possibility to export the numerical data which will appear in the form of tab-
separated columns after the paste operation.
Clicking on the 'Export to file' will create the file containing the plot or the whole frame. The
possible output file formats are '.png', '.svg' and '.pdf'

TO FINISH...
Save the workspace file.
43
Tutorial 5

T5: MATCALC BUILT-IN VARIABLES; GRAPHICAL OUTPUT

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS
• Adding further plots to a plot window
• Using the built-in variables
• Defining a default x-axis
• Modifying the series
• Adding a new series to a plot
• Removing a series from a plot
• Duplicating and locking series
• Editing series data
• Converting series to tables

44
Tutorial 5

BEFORE STARTING...
Re-open the file saved in Tutorial 4 and save it under a new name.

ADDING PLOTS OF DIFFERENT VARIABLES


CREATING A NEW PLOT

Highlight the plot window and right-click in this window outside the plot area to bring up the
plot context menu already seen in Tutorial 4. Click on 'New plot'.

An empty plot appears below the original one.

VARIABLES

As well as the phase fraction variables 'F$*' encountered in the previous tutorial, MatCalc
contains many other built-in variables which are evaluated at each step-value of the stepped
equilibrium calculations. These can be found in the variables window. Information about each
variable is contained in the small window below the main variables window. Locate the
'driving forces' category and drag 'DFM$*' to the empty plot window, to give a plot as shown
below.

45
Tutorial 5

Other variable categories of particular interest for stepped equilibrium calculations are
highlighted in blue in the image below:

- 'FAVORITES'

This contains the most frequently needed variables: temperature in Kelvin ('T') and in Celsius
('T$C'), step-value, phase fractions ('F$*') and compositions expressed in mole fraction

46
Tutorial 5

('X$*$*') and in weight percent ('X$*$*$wp'). In these composition variables, the first
asterisk represents the phase, and the second, the element, for example 'X$LIQUID$C'.

-'GENERAL'

Temperature, step-value and pressure can also be found under this category. The
temperature is in Kelvin by default, but the temperature in Celsius can be obtained by
appending '$C', as has already been seen in the 'Favorites' category. This suffix is known as a
'unit qualifier'. The 'information on variables' window shows the valid unit qualifiers for the
variables:

- 'PHASE FRACTIONS'

The phase fractions 'F$*' are repeated here.

- 'COMPOSITION'

This contains the 'X$*$*' composition variables mentioned above, and a number of other
composition-related variables, expressed either as either mole fractions (X…) or as u-
fractions (U…). (Not all of these are applicable to stepped-equilibrium calculations, e.g.
'XPR$*$*' and 'UP$*$*' are for precipitation calculations).
Compositions in weight percent are not given separately here, but it can be seen from the
'variables information' window that 'wp' is a valid unit qualifier for the variables beginning
with 'X'. This means that weight percentages can be obtained by appending '$wp' to the
names of these variables.

47
Tutorial 5

- 'SITE FRACTIONS'

The 'Y$*$*$*' variables give the site fraction of an element on a particular sublattice of a
phase. For example, BCC_A2 has the variables 'Y$BCC_A2$FE$0' (site fraction of iron on
sublattice 0) and 'Y$BCC_A2$C$1' (site fractions of carbon and vacancies on sublattice 1). The
'YX$*$*' variables represent the mole fraction of an element on a particular sublattice
position of a phase; in this case, vacancies are not considered.

- 'STATE VARIABLES'

This category consists of a number of thermodynamic variables, including molar Gibbs free
energies, entropies, enthalpies and heat capacities of the system and of each phase.

- 'CHEMICAL POTENTIALS', 'ACTIVITIES'

These categories include chemical potentials 'MU$*$*', activities 'AC$*$*' and activity
coefficients 'ACC$*$*'.
Further plots can be added to the same plot window using 'New plot'; they will share the
same buffer, default x-data and colour scheme. Some examples are shown below:
- Molar Gibbs free energy ('GMP$*')

- Chemical potential of carbon ('MUP$*$C')

48
Tutorial 5

- Molar heat capacity ('CPP$*', note the lambda-anomaly at the Curie temperature in
BCC_A2)

ARRANGING PLOTS IN THE COLUMNS

When there are many plots in the plot window then they will get streched so much that they
will eventually become unreadable. In order to obtain a transparency, it might be a good idea
to arrange the plots in more than one column. To place the plots in two columns, click on
'plot columns' in 'Options' window and type '2' in the appearing dialog.

49
Tutorial 5

DEFAULT X-AXIS

To give a consistent appearance to all the x-axes in the plot window, a 'default x-axis' can be
defined. This is found towards the top of the 'Options' window. Change 'no' to 'yes' in the
'use for all plots' line and define the properties of the x-axis in the same way as for a normal x-
axis.

DISPLAYING X-VALUES OF MULTIPLE PLOTS

If the plot window contains several plots, right-clicking and dragging the mouse in one of
these will display not only a cross in that plot, but a vertical line at the same x-value in all the
others. An example is shown below:

50
Tutorial 5

MODIFYING THE SERIES IN A PLOT


This part of the tutorial will demonstrate how to use the unit qualifiers mentioned above. Add
a new plot to the plot window and drag and drop 'X$*$C' (carbon content of the phases) from
the 'variables' window. The resulting plot should look like this:

51
Tutorial 5

By default, the carbon content is expressed in mole fraction. To change the units to weight
percent, firstly click on the new plot to select it. This should expand the section of the
'Options' list which applies to the new plot. Click on the triangle by 'series' to open the series
options:

Double-click on 'y-data' for the first series to open the following box. Append '$wp' to the
existing expression and click 'OK'.

This will change the values plotted for the 'LIQUID' series. Repeat for the other three series.
The final appearance of the plot, with appropriate axis labels added, should be as shown
below.

52
Tutorial 5

MODIFYING THE SERIES WITH DRAG AND DROP


Alternatively you can select the variable and drag it to the window, and press 'Ctrl' before
dropping it to the plot. An option window will pop up, where you can modify the original
expression (read as %s) by adding mathematical operations or change it to weight percent by
appending '$wp'.

Note: Pressing Ctrl before selecting and dragging the desired variable will result in a de-
selection. MatCalc will hence block you from dropping the variable to a plot, as nothing has
been selected in reality and an error would occur.

53
Tutorial 5

OTHER SERIES OPERATIONS


Right-clicking on 'series' in the 'Options' window displays a context menu:

- 'NEW SERIES'

The 'New series' part of the menu expands to give the following sub-menu (provided that a
plot is selected).

Clicking on 'core buffer results' creates an empty series (given the name of 'auto' on the plot)
to contain variables evaluated from the results of a buffer. Edit the 'y-data' line in the
'Options' window for this series to enter any valid built-in or user-defined variable or an
expression.
Variables can be copied from the 'Variables' window by right-clicking on the expression
required to display a menu containing Copy, Paste and other operations.

The other series types which can be added are as follows:

54
Tutorial 5

- 'table/experimental data': allows the user to add a set of experimental data points to a plot.
- 'function/expression': enables an algebraic expression in (x) to be entered.

- 'REMOVE SERIES', 'R EMOVE ALL SERIES', 'REMOVE ALL LOCKED SERIES'

To remove a series from a plot, first click on the plot to select it. This will expand the part of
the Options list which applies to the plot. Select the name of the series from this list and
choose 'Remove series' from the right-click menu (shown above) or press 'Delete'. Multiple
series in the same plot can be selected at once by holding down the CTRL key while clicking on
the series names. 'Remove all series' in the right-click menu deletes all the series in the
selected plot. 'Remove all locked series' removes all the series which are locked (locking the
series is described below).

- 'DUPLICATE AND LOCK SERIES ...', 'DUPLICATE AND LOCK ALL SERIES'

This feature is available in the right-click menus of both the Options window and the plot
window. Click on 'Duplicate and lock series', select a series from the list shown and click on
'Duplicate' button. This will lock the original series and create a copy.

'Duplicate and lock all series' performs this operation for all series in the selected plot
window.
The locked series is protected from any changes when the buffer contents are updated with
new calculation results, while the copy is unlocked. This enables an easy comparison between
results obtained under different conditions.

55
Tutorial 5

- 'EDIT SERIES DATA ...'

This is also available in both the Options and the plot windows. Select a series in the
appearing window and click on 'Edit…' to display a table containing the numerical data used
to plot the graph.

The data can be copied using the 'Copy selection' or 'Copy all' buttons. The contents of the
rows and columns can be modified using 'Paste' (to add data copied from another source),
'Clear cell(s)', 'Insert row', 'Insert col' and 'Delete rows/cols' buttons. Use 'Write' to save the
whole dataset to a text file and 'Read' to load a dataset from a text file.

- 'CONVERT SERIES TO TABLE'

This places the data from the series into a named table, which can be accessed from the
'Global' menu.
Select the 'series' in 'Options' window, click on 'Convert series to table', select the series
name and edit the name of the table, if necessary, in the box which appears, as shown below.

56
Tutorial 5

To open and edit a table, select 'Tables and arrays' from the 'Global' menu. This will display a
list of all the available tables, which can be edited in the same way as the series data
described above.

57
Tutorial 6

T6: INTRODUCTION TO USER-DEFINED FUNCTIONS AND VARIABLES

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS

• Expressions using built-in variables


• Creating a new function
• Using functions
• Defining and using variables

58
Tutorial 6

SETTING UP THE SYSTEM


Define a system containing the elements Fe and C and and phases LIQUID, FCC_A1, BCC_A2
and CEMENTITE. Enter the composition 0.1 wt.% C. Make a stepped equilibrium calculation,
varying the temperature from 400 to 1600°C in 25-degree intervals.
Create a new plot window and drag and drop 'F$*' from the 'Variables' window into the plot.

Create a second plot in the same window. Set the 'default x-data' in the Options window to
'T$C', and define a default x-axis for all plots labelled 'Temperature [°C]'.

COMBINING BUILT-IN VARIABLES IN NEW EXPRESSIONS


In systems consisting of a matrix and carbides, it may be interesting to determine how much
of the carbon in the system is present in the form of carbides, and how much remains in the
matrix phase(s), at any given temperature.
The phase fraction 'F$*' represents the number of moles of phase per mole of system, and
the carbon content of a phase 'X$*$C' represents the number of moles of carbon per mole of
phase. The product of these quantities for a given phase gives the number of moles of carbon
in the phase.
To plot this, first drag 'X$*$C' to the new plot to give the carbon content of each phase. Then
go to the 'variables' window, select 'F$LIQUID' and copy it using the right-click menu.
Click on the lower plot, and in the 'Options' window, edit the 'y-data' line for the first series
('series #0') of this plot. This should currently read 'X$LIQUID$C'. Append '*F$LIQUID' to this.

59
Tutorial 6

Repeat this process for the other series to give 'X$BCC_A2$C*F$BCC_A2',


'X$FCC_A1$C*F$FCC_A1' and 'X$CEMENTITE$C*F$CEMENTITE'. Add another variable to the
plot: 'XS$C' (can be found in the 'composition' section), the mole fraction of carbon in the
system. This should be equal to the sum of the other four variables on the plot.
The final plot is shown below:

60
Tutorial 6

DEFINING FUNCTIONS
CREATING A NEW FUNCTION

If the expressions such as 'X$BCC_A2$C*F$BCC_A2' are likely to be used more than once,
they can be defined as functions. Select 'Global > Variables & Functions'. This brings up a box
containing several tabs; click on 'Functions'.
Click on 'New' and type in a name for the function in the box which appears, for example,
'C_in_liquid'. In the 'Expression' box, type in 'X$LIQUID$C*F$LIQUID'. For convenience, this
can be copied from the 'y-data' line in the 'Options' window of the plot just finished. (N.B.
There is no need to put an '=' sign at the beginning of the expression.) Click on 'Set' to
register the expression. Repeat for the three other expressions plotted above.

Close the 'Functions & Variables' box to return to the main screen. Expand 'functions' in the
'Variables' window by clicking on the small plus-sign to the left of the word. This should give a
list of the new functions:

61
Tutorial 6

Make a new plot and drag and drop the functions just defined into it (To select multiple
entries, hold 'Ctrl'-key while clicking on them), together with the 'XS$C' variable, to check that
this gives the same appearance as the plot above.
NEW EXPRESSIONS USING EXISTING FUNCTIONS

The fraction of the total carbon content in the system which is in the liquid phase can be
calculated by dividing the function 'C_in_liquid' by the total carbon content XS$C. Re-open
the 'Functions' tab in 'Variables & Functions' window and create a new function named
'Fraction_C_in_liquid'. Enter 'C_in_liquid/XS$C' in the 'Expression' box and click on 'Set'.
Repeat for the other three phases.
On returning to the main screen, create a new plot and drag and drop the new
'Fraction_C_in…' functions into it. (This may necessitate clicking on the triangle sign by the
side of 'Functions' to close and re-open it with the new functions displayed.) The resulting
plot should have the same appearance as the two plots above, but a different y-scale, this
time going from 0 to 1.

The user-defined functions are saved in the workspace and can be used for all subsequent
calculations in that workspace.
Change the 'default x-data' in the Options window to 'StepValue', and the name of the
default x-axis to 'C content [wt.%]'. Make a new stepped calculation in the '_default_' buffer,
varying the carbon content from 0 to 0.5 wt.% (with 0.005 step) at 1475°C .
The phase fraction curve below shows that the carbon content has a strong influence on
phase stability at this temperature. Increasing the carbon content stabilises FCC_A1 at the
expense of BCC_A2, and then at higher carbon contents the liquid phase also becomes stable.

62
Tutorial 6

The two sets of user-defined functions appear as shown below, and in this case they provide
different ways to illustrate the results.

63
Tutorial 6

USER-DEFINED VARIABLES
The final part of this tutorial demonstrates the use of the 'Variables' tab under 'Global >
Variables & Functions'.
In the plot of C_in_liquid, C_in_bcc, etc., the curves are made up of almost straight-line
sections, so it should be possible to find analytical expressions of the form y = ax +b for these,
where 'a' is the gradient and 'b' the intercept on the y-axis.
The C_in_liquid line starting from around 0.28 wt.% C will be used as an example. To find an
equation for this line, two (x, y) values on the line are needed. For the first of these, y=0 can
be used. To find the exact x-value at which the liquid phase fraction is zero, look at the
'console' window which contains now the equilibrium phases present in the system for
various carbon contents. The line starting with 'Xsol 'LIQUID' shows the LIQUID zero-phase
boundary at 1475°C in terms of carbon content.
36, 0,00 s, 0,275, its 3, FCC_A1 - OK -

Xsol 'LIQUID': X(C): 0.012799895, WP(C): 0.2780809 - OK -

37, 0,02 s, 0,28, its 4, LIQUID FCC_A1 - OK -

The first (x, y) pair is therefore (0.2780809, 0). Go to 'Global > Variables & Functions' and
select the 'Variables' tab. The variable 'x' is already shown in the left-hand column. This is the
StepValue, and currently has a value of 0.5.
Click on 'New' and in the box, type in 'x1'. Select it (in the 'Available items' box) and type in or
paste the first x-value (i.e. '0.2780809') in the 'Expression' box (confirmed by clicking on 'Set').

64
Tutorial 6

Add another variable 'y1'. This has a default value of zero, which does not need to be
changed. The second (x, y) pair can be obtained by finding the y-value at x=0.5. Either use edit
the buffer state for this composition ('Global > Buffers > Edit buffer state', click on '0,5' in the
'Buffer' box) or simply set the composition to 0.5 wt.% C and calculate an equilibrium. In both
cases, the value of 'C_in_liquid' at this composition can be seen in the 'Variables' window. Go
to 'View > Create New Window' and choose 'd1: List variable'. Drag and drop 'C_in_liquid'
from the 'Variables' window into the new 'List variables' window which appears.
C_in_liquid +1.536688764453e-002

The numerical value can be selected and copied from this window. Re-open the
'Functions&Variables' window and add the new variables 'x2' and 'y2', equal to 0.5 and
1.536688764453e-002 in the 'Variables' tab, respectively.
The slope a and intercept b of the straight line can now be entered; a is equal to (y2-y1)/(x2-
x1) and b to ((x2*y1)-(x1*y2))/(x2-x1). Create a new variable named 'a', type in the formula
(or try to copy it from this tutorial) and click on 'Set'. This evaluates the expression and places
the numerical value in the 'Expressions' box in the place of the formula. Do the same for 'b'.
In the 'Functions' tab, the equation of the line can now be entered. Create a new function
'Liquid_line' and type '(a*x)+b' into the 'expression' box. Click 'Close' to return to the main
screen.
Drag the new 'Liquid_line' function from the 'Variables' window to the plot of 'C_in_liquid',
etc. The resulting plot should look like this:

The 'Liquid_line' function extends to negative values, unlike the true C_in_liquid curve, which
has a value of zero for carbon contents between zero and 0.27 wt.%.
One way of removing the unwanted part of this line is to select 'Edit series data' from the
right-click menu. In the resulting table of 'Liquid_line' series, select all the rows for which the
y-value is negative and then click on 'Delete rows/cols' to remove them. Accept the warning
with 'OK'.

65
Tutorial 6

An alternative way is to add the series as a 'function/expression' rather than as a 'buffer


result'. There are differences in the way the program treats these two types of series; for
example, in a 'function/expression' series, x-values are specified as a numerical range, and
the y-values are functions of x, whereas for 'buffer results', the x-values are specified as a
variable (by default, the StepValue), and the y-values as another variable.
When a variable is dragged and dropped from the 'variables' window, it automatically
becomes a 'buffer result'-type series. To add a 'function/expression' series, click on the plot,
then in the options window, select 'new series' from the right-click menu, and choose
'function/expression'. By 'y-data' for the new series, type in 'Liquid_line'. Edit the 'x-data'
line to type 'x1..0.5'.

66
Tutorial 6

The plot should now look as shown in the image below (with the 'Liquid_line' series
highlighted).

67
Tutorial 7

T7: CALCULATING PHASE BOUNDARIES

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS

• Using “Search phase boundary” with temperature variation to determine solidus and
liquidus
• Determining austenite ↔ ferrite transformation temperatures
• Finding phase boundaries for carbide phases in terms of temperature and element
content
• Tracing a phase boundary on axes of temperature versus element content

68
Tutorial 7

It was seen in Tutorial 3 that MatCalc evaluates solubility temperatures (Tsol) or compositions
(Xsol) during the course of stepped equilibrium calculations. It is also possible to calculate
these individually using the 'Search phase boundary' function.

SETTING UP THE SYSTEM


Create a new workspace file and set up the system with elements Fe, C and Nb and phases
FCC_A1, BCC_A2, LIQUID and CEMENTITE. Enter the composition as 0.1 wt.%C, 0.3 wt.% Nb
and calculate an equilibrium at 1000°C (Refer to Tutorial 1 and Tutorial 2 if necessary.)
Note the results in the 'Phase details' window. A second FCC_A1 phase with the name
'FCC_A1#01' has automatically been created, and examination of its composition shows that
its approximate formula is NbC.
#### /FCC_A1/ moles: 0,996502, gm: -62325,1 (-62325,1), sff: 0,997076

Phasestatus: entered - active

FE +9,97050e-001 C +2,92362e-003 NB +2,62293e-005

#### /FCC_A1#01/ moles: 0,00349802, gm: -114284 (-114284), sff: 0,506896

Phasestatus: entered - active

NB +5,06795e-001 C +4,93104e-001 FE +1,00596e-004

### inactive ###

#### /BCC_A2/ moles: 0, gm: -62254,4 (-62254,4), sff: 0,999712

Phasestatus: entered - not active (dfm=-81,754)

FE +9,99657e-001 C +2,87522e-004 NB +5,51948e-005

#### /LIQUID/ moles: 0, gm: -58550,3 (-58550,3), sff: 1

Phasestatus: entered - not active (dfm=-3790,2)

FE +9,76688e-001 C +2,25713e-002 NB +7,40511e-004

#### /CEMENTITE/ moles: 0, gm: -52498,1 (41843,9), sff: 0,25

Phasestatus: entered - not active (dfm=-9166,8)

69
Tutorial 7

FE +7,49088e-001 C +2,50000e-001 NB +9,11980e-004

It is the following line in the database file mc_fe.tdb which causes the second FCC_A1 phase
to be created:
ADD_COMPOSITION_SET FCC_A1 :TI,NB,V:C,N: !

This creates that a new phase of type FCC_A1 with Ti, Nb or V as the major constituents on
the first sublattice and C or N as the major constituents on the second when the system
contains these elements. The 'General' tab in the 'Phase status' box ('Global > Phase status')
shows the major constituents for each phase, :FE:VA: and :NB:C: respectively for FCC_A1 and
FCC_A1#01.

70
Tutorial 7

CALCULATING PHASE BOUNDARIES


SOLIDUS AND LIQUIDUS TEMPERATURES

The solidus temperature is defined by zero phase fraction of liquid. To calculate this, choose

'Search phase boundary' from the 'Calc' menu or click on the icon. The box below
appears. Select 'Temperature' in the left-hand column and 'LIQUID' in the 'Target phase'
column, then click on 'Go'.

The following message appears in the console window.


Tsol 'LIQUID': 1478,08 C (1751,24 K) iter: 15, time used: 0,03 s

The liquidus temperature is the dissolution temperature of the last solid phase, which in this
case is BCC_A2. Selecting 'BCC_A2' as the target phase gives the following result:
Tsol 'BCC_A2': 1433,30 C (1706,46 K) iter: 13, time used: 0,01 s

Of course, this is not a liquidus temperature, as it cannot be lower than the solidus
temperature. This result is given because MatCalc finds the zero phase fraction temperature
of BCC_A2 phase next to the temperature of the last calculation which was 1478.08°C in this
case (the liquidus temperature). Information given in 'Phase summary' window explains that
at 1433.30°C, BCC_A2 appears next to FCC_A1 phase (inactive BCC_A2 phase has the driving
force value of zero). It is recommended to look at the 'Phase summary' window in order to
check if the found phase boundary is the desired one!
The liquidus phase can be easily found if an equilibrium calculation in the liquid system is
performed first. Calculate an equlibrium at 1600°C (or any temperature in which system

71
Tutorial 7

contains only a liquid) and search again for the phase boundary of BCC_A2 phase. This time
the following result should be given:
Tsol 'BCC_A2': 1527,57 C (1800,73 K) iter: 4, time used: 0,02 s

In general, the correct phase boundaries are found if the initial equilibrium describes the
system in the neighbouring phase field which does not contain the searched phase - in the
case presented above, the liquidus temperature (which is phase boundary of 'BCC_A2') was
found from the 'LIQUID' phase field. Also, the algorithm used to search for phase boundaries
might fail to converge if the starting point is too far away from the boundary.

AUSTENITE-FERRITE TRANSFORMATION TEMPERATURES

Low-alloy steels undergo a ferrite - austenite phase transformation between 700 and 800°C
(see, for example, Tutorial 4). To find the exact temperatures of the transformation in the Fe-
0.1wt.%C-0.3wt.%Nb system, calculate an equilibrium at 700°C and use again 'Search phase
boundary'. Select 'FCC_A1' as a target phase to identify the zero-phase boundary
temperature for austenite.
Tsol 'FCC_A1': 726.52 C (999.68 K) iter: 5, time used: 0.03 s

The zero-phase boundary of BCC_A2 for this transformation can be identified by calculating
an equilibrium at 900°C and then searching for the boundary.
Tsol 'BCC_A2': 883,61 C (1156,77 K) iter: 5, time used: 0,01 s

DISSOLUTION TEMPERATURES OF CARBIDES

Cementite is only stable to relatively low temperatures, so calculate an equilibrium at 800°C


as a starting point, then search for the phase boundary.
Tsol 'CEMENTITE': 726,52 C (999,68 K) iter: 9, time used: 0,02 s

Note that this is the same temperature as the zero-phase boundary of FCC_A1. Niobium
carbide, by contrast, remains stable at higher temperatures. Calculate an equilibrium at
1500°C before searching for the boundary.
Tsol 'FCC_A1#01': 1434,69 C (1707,85 K) iter: 16, time used: 0,03 s

72
Tutorial 7

ELEMENT CONTENT FOR ZERO -PHASE FRACTIONS

Phase boundaries can also be found in terms of element content at a fixed temperature. To
illustrate this, the zero-phase boundary of cementite at 700°C will be evaluated in terms of
carbon content. Calculate an equilibrium at 700°C, then open the 'Search phase boundary'
box and select 'Element content' in the left-hand column. Set the target phase to
'CEMENTITE', the element to be varied to 'C', and the temperature to '700', then click 'Go'.

The output gives the carbon content for zero phase fraction of cementite in mole fraction and
in weight percent.
iter: 2, time used: 0,03 s, GibbsEnergy: -40690,502 J

X(C): 0,0024754648, WP(C): 0,053279574, T: 700 C (973,16 K) - OK -

Note: After the search for the phase boundary with element content variation, the
composition of the system is changed to the found value! (check 'Global > Composition')
In the same way, the zero phase fraction boundary for niobium carbide at 1000°C can be
evaluated in terms of the niobium content. Firstly, open 'Global > Composition' and reset the
carbon content to 0.1 wt.%. Calculate an equilibrium at 1000°C, then search for the phase
boundary for 'FCC_A1#01', this time setting the element to be varied to 'Nb'.

73
Tutorial 7

The output in the console shows the Nb content above which the carbide phase is
thermodynamically stable.
iter: 7, time used: 0,02 s, GibbsEnergy: -62314,291 J

X(NB): 1,7315076e-005, WP(NB): 0,002890995, T: 1000 C (1273,16 K) - OK -

TRACING PHASE BOUNDARIES

Once a point on a phase boundary has been identified using the process described above, the
boundary can be traced as a function of element content. In the following example, the effect
of the niobium content on the temperature of the FCC_A1#01 (NbC) zero-phase boundary will
be calculated.
Having established the zero phase fraction boundary for niobium carbde at 1000°C, open the
'Step equilibrium' window using 'Calc > Stepped calculation' and select 'Phase boundary'
from the left-hand column.
In the 'Boundary conditions' box, set the element to 'Nb', the target phase to 'FCC_A1#01'
and the max. T-step to '100'. (The use of this parameter will be discussed in Tutorial 8) Enter
'0.01', '0.35' and '0.01' as the start, stop and step interval values in the 'Range' box. Click on
'Go' to perform the calculation.

74
Tutorial 7

Create a new X-Y plot window (Tutorial 4) and drag and drop 'T$c' (from 'favorites' category
in variables window) into it. The plot should look like this:

75
Tutorial 7

Right-click in the plot window outside the plot area and choose 'Duplicate and lock series'
from the window (see Tutorial 5). Double-click on the name of the series to duplicate it. In the
'Options' window, change the name of the original series ('*_T$c') to '0.1 wt.%C'.
Change the carbon content of the system to 0.05 wt.% C, calculate an equilibrium at 1000°C
and search again for the same phase boundary, then make a stepped calculation using the
same conditions as before. The phase boundary for 0.05 wt.% C should follow the green curve
in the plot below, which also shows the same phase boundary for 0.01 wt.%C - as an exercise
you can try to format the plot as shown below.

76
Tutorial 8

T8: CALCULATING A PHASE DIAGRAM IN A BINARY SYSTEM

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

This tutorial introduces the calculation of phase diagrams with an example featuring the well-
known Fe-C binary system.

CONTENTS

• Calculating phase boundaries


• Building up the phase diagram from the calculated boundaries
• Choosing appropriate calculation parameters
• Phase diagrams using stable and metastable equilibria

77
Tutorial 8

A phase diagram consists of a number of phase-boundaries separating regions of


temperature- and composition-space in which different phases are stable at equilibrium.
Published equilibrium diagrams for the Fe-C system often show equilibria between Fe-rich
phases and both C (in the form of graphite) and cementite (Fe3C). Graphite is the more stable
of these two phases, and forms readily in cast irons (2-4 wt.% C), but usually with great
difficulty in steels (up to 1.5 wt.% C). In the latter, it is more practically useful to consider
metastable equilibria involving Fe3C. In this tutorial, phase diagrams for both Fe-C and Fe-Fe3C
will be calculated.

SETTING UP THE SYSTEM


Create a new workspace file. From the 'mc_fe.tdb' database, select the elements FE and C
and the phases LIQUID, BCC_A2, FCC_A1, CEMENTITE and GRAPHITE. Enter the composition
0.05 wt.% C. Create a new plot window of type p1 (X-Y data).
The phase diagrams will be calculated from 0 to 5 wt.% C, but the low carbon content of 0.05
wt.% C is chosen so that the lines bounding the high-temperature ('delta') ferrite phase,
which is only stable at relatively low carbon contents, can be found.
Firstly, the Fe-Fe3C diagram will be calculated, so it is necessary to suspend graphite, since it is
more stable than Fe3C. Open 'Global > Phase status'. In the 'General' tab, put a tick-mark in
the box beside 'suspended':

78
Tutorial 8

FE-FE3C PHASE DIAGRAM


The phase diagram is made up of a number of phase boundaries. As was have seen in the last
part of Tutorial 7, these boundaries can be found by finding a point on the boundary, then
tracing the boundary as a function of element content. The method for tracing a boundary for
phase 'X' is as follows:

1. Calculate an equilibrium at an appropriate temperature, near to the expected


boundary temperature
2. Find the 'X'-phase boundary by varying the temperature with 'X' as the target phase
3. Perform a stepped calculation, varying the element content between selected limits,
with 'X' as the target phase

UPPER BOUNDARY OF DELTA-FERRITE, BCC_A2

Beginning at the high-temperature end of the diagram, the uppermost phase boundary at a
composition of 0.05 wt.% C is between a single-phase liquid region and a liquid and delta-
ferrite (BCC_A2) region. The first boundary which must be found is, therefore, a BCC_A2
phase boundary.
To locate the boundary, an equilibrium must first be calculated reasonably close to the
expected boundary temperature. It can be seen that the line lies somewhere between 1538°C
(the melting temperature of pure iron) and 1500°C. Click on the icon and enter the
temperature '1530'. (If this gives an error message, select 'Calc > Set start values' then repeat

the equilibrium calculation.) Then click on to open the 'Search phase boundary' window.
Select 'Temperature' in the left-hand column and 'BCC_A2' as the target phase. The 'Output'
window should show the following message:
Tsol 'BCC_A2': 1533.98 C (1807.14 K) iter: 8, time used: 0.03 s

This shows that a point on the boundary has been found successfully. The next step is to trace
this boundary using the stepped equilibrium function to vary the carbon content. Click on
and choose 'Phase boundary' from the left-hand column. Enter the range: '0' to '5', in
intervals of '0.01'. Select 'C' as the varying element and 'BCC_A2' as the target phase. Leave
the 'Max T-step' value at its default value of '20'. In the 'Options' section of this window,
check that 'Temperature in Celsius' and 'Composition in weight percent' are both selected.
Click on 'Go' to launch the calculation.

79
Tutorial 8

The following message appears ; accept it with 'Yes'.

Now that the first phase boundary has been calculated, drag and drop 'T$C' from the
'Variables' window (where it can be found under 'favorites') to the plot. It is useful to add
gridlines to the plot (With plot window selected, go to 'Options' window and in
'plots'>'plot#0'>'grid' select 'enabled' for 'major-x' and 'major-y'). Note that the x-axis
currently only runs from zero to just over 0.5 wt.% C. From the point identified on the phase
boundary, the calculation first proceeds in a direction of increasing carbon content. However,
the BCC_A2 phase is not stable beyond approx 0.53 wt.% C, so the calculation (which cannot
reach the stop limit of 5 wt.% C) stops and the 'Continue in other direction?' message shown
above is displayed to ask whether the user wishes to complete the rest of the calculation, in
which the carbon content is decreased from the point identified at 0.05 wt.% C to zero.

80
Tutorial 8

Right-click in the plot window outside the plot area itself, and select 'Duplicate and lock
series' from the menu displayed. Select the name of the series and click 'Duplicate' to
produce a copy of the series. In the 'options' window, rename the first series 'bcc_high_1'.

LOWER BOUNDARY OF LIQUID

The next phase boundary encountered on decreasing the temperature is between the LIQUID
+ BCC_A2 region and the BCC_A2 single-phase region, so this is a LIQUID-phase boundary.
1500°C would appear to be a suitable temperature for the starting equilibrium to find this
line. In the 'search phase boundary' box, select 'LIQUID'. The following line of output should
appear:
Tsol 'LIQUID': 1515.43 C (1788.59 K) iter: 4, time used: 0.03 s

Then make a stepped calculation with the same start, stop and interval values and the target
phase set to 'LIQUID'. (A start-value of zero is automatically changed by the program to '1e-
12' to facilitate the calculation.) The diagram should now look like this:

81
Tutorial 8

Don't forget to duplicate and lock this new series!

LOWER BOUNDARY OF DELTA- FERRITE (BCC_A2)

Calculate an equilibrium at 1400°C, search for BCC_A2 (the boundary temperature should be
1429.60 C (1702.76 K)), step from 0 to 5 wt.% C with an interval of 0.01 wt.% C. Accept the
'Continue in other direction' message (the calculation could not reach 5 wt.% C limit, again)
with 'Yes'.

UPPER BOUNDARY OF AUSTENITE (GAMMA, FCC_A1)

Calculate an equilibrium at 1500°C, search for FCC_A1, step from 0 to 5 wt.% C with an
interval of 0.01 wt.% C. The boundary temperature should be 1460.18 C (1733.34 K).
UPPER BOUNDARY OF LOW-TEMPERATURE ('ALPHA') FERRITE, BCC_A2

Calculate an equilibrium at 900°C, search for BCC_A2, step from 0 to 5 wt.% C with an interval
of 0.01 wt.% C. The boundary temperature should be 888.64 C (1161.80 K). The image below
shows how the diagram should look, with appropriate labels for the lines:

82
Tutorial 8

The most of the upper section is now done, with the exception of the phase boundary
between LIQUID and LIQUID + CEMENTITE for hypereutectic compositions. This line is
continuous with the cementite line between the FCC_A1 and FCC_A1 + CEMENTITE regions
and the horizontal line between BCC_A2 + FCC_A1 and BCC_A2 + CEMENTITE regions, so it
will appear when this line is calculated.
In the lower section, there is a very narrow alpha-ferrite single-phase region at low carbon
contents. The upper part of this region is bounded by an FCC_A1 boundary, and the lower
part of the region by a CEMENTITE boundary. Since these two boundaries are very steep, it is
necessary to modify the calculation parameters. Failure to do this can lead to incorrectly
calculated boundaries.

LOWER BOUNDARY OF AUSTENITE (GAMMA, FCC_A1)

Calculate an equilibrium at 600°C then search for the FCC_A1 phase boundary, which should
be at 726.52°C. Step from 0 to 5, with an increment of 0.001 instead of 0.01. This reduced
increment makes the calculation rather more time-consuming; on a slow machine, it may be
better to divide it into two parts: step from 0 to 0.02 with an increment of 0.001, duplicate
and lock, step from 0.02 to 5 with an increment of 0.01.

UPPER BOUNDARY OF CEMENTITE

Calculate an equilibrium at 800°C. Search for the CEMENTITE phase boundary; this also should
be at 726.52°C. Using the same settings as for the previous stepped calculation, the phase
boundary is calculated correctly, but might extend in the negative temperature direction
beyond physically reasonable values. This occurs because the calculated boundary becomes
83
Tutorial 8

increasingly steep as the carbon content approaches zero.


One way of removing the unwanted line portion is simply to modify the scaling of the y-axis.
(The minimum temperatures given on equilibrium diagrams are typically 400-500°C, because
it becomes difficult to attain equilibrium over practical timescales at low temperatures.)
Another solution is to remove unwanted data points using 'Edit series data' from the right-
click menu of the plot.
Alternatively, the 'overshoot' can be avoided by modifying the parameters of the stepped
calculation. Increasing the 'max T-step' allows greater steps in temperature, enabling the
program to cope with very steep boundaries. A suitable value is 100 or 200. Additionally,
setting the starting value of the stepped calculation to a slightly higher value, for example
0.0005 instead of 1e-12, avoids the calculation of the steepest parts of the phase boundary.
With these modified settings, a satisfactory appearance is obtained without the need to
change the axis scalings or delete any points.

A FEW WORDS ON THE 'MAX. T-STEP' PARAMETER

Following a phase boundary in the stepped calculation is performed by a simple procedure.


Once an initial point is found with 'Search phase boundary' operation, the composition of the
system is changed by a value specified as a step in the 'Range' section of 'Stepped
equilibrium' window. For this new composition, MatCalc search a phase boundary in a
temperature range (Told - 'max T-step' ; Told + 'max T-step'), where Told is a temperature of a
phase boundary at a previous composition. If the phase boundary is too steep, no phase
boundary would be found. In such a case MatCalc changes a variable from the element
content to the temperature (this is indicated by the message 'changing independent variable
to temperature' in the 'Output' window). In effect, the temperature will be varied by a step
equal to the value of 'max T-step' parameter and MatCalc will look for the phase boundary at
that temperature. In some cases, this might result with the wrong equilibria, especially when
the stoichiometric compounds are the equlibrium phases (due to the undefined chemical
potentials for these phases)

THE FINISHED DIAGRAM

Do not forget to lock the last series to be added, so that it is not modified when another
calculation is performed. Add axis labels and a title 'Fe-Fe3C phase diagram'. The subscript
can be obtained using HTML tags:
Fe-Fe<sub>3</sub>C phase diagram

The finished phase diagram should look like this; compare with the sketch below to verify that
all the lines have been calculated correctly.

84
Tutorial 8

The image below shows an expanded version of the low-C region presenting the phase
solubility of alpha-ferrite.

FE-C PHASE DIAGRAM


Set up this system by removing the 'suspended' flag for GRAPHITE under 'Global > Phase
status > General'.
The calculation of the Fe-C diagram is left as an exercise to allow the user to familiarise him-
or herself with the method, including the choice of appropriate values for the starting
equilibrium calculation temperatures and the calculation parameters. However, suggestions
85
Tutorial 8

are given at the foot of the page. The diagram below shows how the finished diagram should
look. (Alternatively, the phase boundaries from the Fe-C calculations can be superposed on
the Fe-Fe3C phase diagram for comparison.)

SUGGESTED PARAMETERS FOR CALCULATION OF FE-C PHASE DIAGRAM

- Upper boundary of high-T bcc: Equilibrium at 1550°C (Tsol 'BCC_A2': 1533.98°C); step from
0 to 5 with interval of 0.01, max T-step 20

1. Lower boundary of liquid: Equilibrium at 1500°C (Tsol 'LIQUID': 1515.43°C); step with
same parameters
2. Lower boundary of high-T bcc: Equilibrium at 1400°C (Tsol 'BCC_A2': 1429.60°C); same
parameters
3. Upper boundary of fcc: Equilibrium at 1500°C (Tsol 'FCC_A1': 1460.18°C); same
parameters
4. Upper boundary of low-T bcc: Equilibrium at 900°C (Tsol 'BCC_A2': 888.64°C); same
parameters
5. Lower boundary of fcc: Equilibrium at 700°C (Tsol 'FCC_A1': 738.02°C). For this line,
the parameters must be modified: decrease the interval to 0.001 or increase the T-
step to 200. The latter solution (an interval of 0.01 and a T-step of 200) is acceptable
because this boundary is a straight line so is correctly defined despite there being only
a few points in this region. An error message (max no of iterations reached) may
appear, but the line is calculated successfully.
6. Upper boundary of graphite: Equilibrium at 800°C (Tsol 'GRAPHITE': 738.02°C). If
problems occur, decrease the interval to 0.001 as well as increasing the T-step to 100
to obtain better resolution of the phase boundary curvature. This boundary, like the
cementite boundary discussed above, tends to 'overshoot' to very low temperature
values. This can be prevented by setting the minimum carbon content for the stepped
calculation to 0.0005 instead of 1e-12.
86
Tutorial 9

T9: CALCULATING PSEUDOBINARY PHASE DIAGRAMS

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

A pseudobinary phase diagram is an equilibrium diagram calculated for a ternary or higher-


order system, in which the phase boundaries resulting from the variation of two of the
element contents are calculated, while the amounts of all the other elements are kept
constant.

CONTENTS

• Further phase boundary calculations


• Coping with complex boundary shapes
• Diagrams with different reference elements

87
Tutorial 9

SETTING UP THE SYSTEM


Make a new workspace with the elements Fe, C and Nb and the phases FCC_A1, BCC_A2,
LIQUID and CEMENTITE. Verify that Fe is selected as the reference element and enter the
composition: 0.1 wt.% C, 0.3 wt.% Nb. Create a new p1-type plot window for the phase
diagram.

FE-C PSEUDOBINARY WITH CONSTANT NB CONTENT


This is similar in many respects to the Fe-Fe3C diagram calculated in Tutorial 8, but the
presence of niobium stabilises an additional phase, FCC_A1#01 (which is essentially NbC). The
stability of this phase has a strong dependence on both carbon and niobium contents. Only
the low-carbon portion of the diagram, from 0 to 0.2 wt.%, is of interest in this tutorial. Begin,
as in Tutorial 8, by calculating an equilibrium at 1550°C, then search for the BCC_A2 phase
boundary. Step from 0 to 0.2 wt.% C, with an interval of 0.001 and a maximum T-step of 20,
tracing the BCC_A2 boundary. Drag and drop the T$C series into the plot and duplicate, lock
and label it. Add the liquid and austenite (FCC_A1) upper boundaries and the lower boundary
of the delta-ferrite (BCC_A2) to the diagram. Suggested equilibrium temperatures for finding
these lines are as follows:

• LIQUID: 1450°C
• FCC_A1: 1500°C (N.B. the correct value of Tsol 'FCC_A1' should be 1480.93°C.)
• BCC_A2: 1450°C

The high-temperature part of the diagram should look like this:

88
Tutorial 9

Next, calculate the boundary for niobium carbide (FCC_A1#01). The temperature of the
boundary depends strongly on carbon content, but an equilibrium at 1450°C gives a suitable
starting point for finding it.
Increase the maximum T-step to 100 to cope with the steepness of the curve. The boundary
may extend to very small temperature values; in this case, change the scale on the y-axis to
'500..' so that only the relevant information is shown.
The final three lines can be calculated as follows:

• Upper boundary of alpha-ferrite (BCC_A2): 900°C. The maximum T-step can be


reduced again to 20.
• Lower boundary of austenite (FCC_A1): 700°C.
• Upper boundary of cementite 800°C. In case of error message (because of the steep
boundary), set the maximum T-step to 100.

The finished diagram, with titles and labels added, should look like this:

FE-NB PSEUDOBINARY WITH CONSTANT C CONTENT


In this case, the niobium content is to be varied from 0 to 1 wt.% for the stepped calculations.
Proceed as before, by calculating an equilibrium at 1550°C and searching for the BCC_A2
phase boundary. For the stepped calculation, enter 0, 1 and 0.01 as the start, stop and
89
Tutorial 9

interval values and under 'Boundary conditions', change the varying element to 'NB' and
'max. T-step' to '20'.
The boundaries can be calculated with the same starting equilibrium temperatures as for the
Fe-C diagram, because the basis composition used for calculating the equilibrium and finding
a point on the boundary remains the same (0.1 wt.% C, 0.3 wt.% Nb). Search for and plot all
the following boundaries:

• Upper boundary of delta-ferrite (BCC_A2)


• Lower boundary of liquid
• Upper boundary of austenite (FCC_A1)
• Lower boundary of delta-ferrite
• Upper boundary of alpha-ferrite (BCC_A2)
• Lower boundary of austenite
• Upper boundary of cementite (may need modification of maximum T-step to 100-200)

The NbC (FCC_A1#01) boundary is slightly more complex in this example, so it will be
considered in more detail. Firstly, calculate an equilibrium at 1000°C and search for the
FCC_A1#01 phase boundary varying temperature. This is at 1434.69°C. Make a stepped
calculation from 0 to 1 wt.% Nb with 0,001 step and max. T-step value of 2. The calculation
starts as usual at the niobium content used to calculate the equilibrium (0.3 wt.%), and this is
first increased up to the 'stop' value (1 wt.%, in this case) and then decreased to the 'start'
value (0). It can be noted, however, that the calculation terminates at the 'cementite' line
during decreasing the Nb content. In order to find the phase boundary outside these limits,
additional calculations must be performed. After locking the previous curve, calculate an
equilibrium at 500°C and search for the FCC_A1#01 phase boundary at this temperature (i.e.
vary the Nb content). Due to the steep boundary, it is recommended to set the calculation
step to 0.001 and the max. T-step value to 200. Part-way through this calculation, the
following message might appear:

Just click on 'Yes' to continue the calculation.

90
Tutorial 9

The finished diagram is shown below.

NB-C PSEUDOBINARY WITH CONSTANT FE CONTENT


The final part of this tutorial considers the effect of both C and Nb contents on the stability of
NbC. Previously, iron has been set as the 'reference element'; this means that when the
amount of the varying species increases, the amount of iron in the system decreases so that
the total composition sums to unity. For the Nb-C pseudobinary, niobium will instead be set
as the reference element, and a fixed iron content will be imposed, so that the sum of
niobium content and carbon content is constant. In addition, the element contents will be
expressed in mole fractions, so that the effect of Nb:C ratio on carbide stability can be
investigated. Open 'Global > Composition' and switch to 'mole fraction'. Change the
reference element from Fe to Nb by clicking in the 'Nb' line of the 'Ref.Elem.' column. Enter
the compositions 0.996 Fe, 0.003 C.
As usual, search for the upper boundary of the delta-ferrite phase. This should be found at
1531.42°C. In the stepped calculation dialogue box, enter 0, 0.004 and 1e-5 as the start, stop
and interval values. Set the varying element to 'C' and the maximum T-step to 20. In the
'Options' section on the right-hand side of the box, remove the selection mark by the side of
'Composition in weight percent' so that it will instead be in mole fraction.

91
Tutorial 9

Calculate the following lines. The solution temperatures are given as a guide, as well as notes
on calculation settings (Accept any questions about changing the direction of calculation)).

• BCC_A2: 1531.42°C
• LIQUID: 1499.64°C. A warning message may appear; accept this with 'Yes'.
• FCC_A1: 1466.52°C. The same warning may appear.
• BCC_A2: 1422.52°C
• BCC_A2: 891.36°C. Step from 0 to 0.00399 rather than 0.004 to avoid convergence
problems.
• FCC_A1: 726.52°C. Calculation from 0 to 0.00399 with 1e-6 step.
• CEMENTITE: 726.52°C

Finally, the line for FCC_A1#01 can be calculated. Search for this line, which should be found
at 1320.29°C. The temperature of this phase boundary decreases very steeply at both
extremities of the x-axis, because the phase becomes less and less stable as either the
niobium content or the carbon content tends to zero. To obtain an idea of the shape of the
curve, set the start and stop-values as 0.0001 to 0.0039 (A maximum T-step of 20 is OK for
this calculation.) Modifications can then be made to the calculation parameters, decreasing
the start value, increasing the stop-value and increasing the maximum T-step to try to extend
the curve further towards the edges.
The finished diagram should look like this:

92
Tutorial 10

T10: T0-TEMPERATURE IN FE-CR-C

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS

• T0- temperature calculation


• Martensite / Bainite transformation
• Variation of T0- temperature with carbon and chromium content
• Import and display of experimental data into plots

93
Tutorial 10

The T0-temperature is defined as the temperature where two phases of identical chemical
composition have the same molar Gibbs free energy. This temperature is an important
quantity in the field of diffusionless phase transformations, i.e. the bainitic and martensitic
transformation. In the present example, we will discuss some thermodynamic aspects of the
austenite/martensite transformation and apply T0-temperature calculations to the evaluation
of transformation temperatures.

STEP 1: DEFINE THE THERMODYNAMIC SYSTEM (SEE ALSO TUTORIAL T2)


Create a new workspace file. From a suitable database (mc_sample_fe2.tdb) define the
elements Fe, Cr and C as well as the phases BCC_A2 (ferrite) and FCC_A1 (austenite). Enter
the system composition in weight percent with wp(C) = 0.1 and wp(Cr)=1.0. Set initial values
with 'Calc' → 'Set start values' or Ctrl+Shift+F. Calculate an equilibrium at 800°C.

STEP 2: CALCULATE THE T0-TEMPERATURE


Before evaluation of the T0-temperature, an equilibrium located in the one-phase region of
the parent phase must be calculated in order to set the composition of one of the phases
equal to the system composition. The parent phase is austenite so the solubility temperature
of BCC_A2 will be evaluated with 'Calc' → 'Search phase boundary…' or Ctrl+Shift+T. Set
'Temperature' as type and 'BCC_A2' as target phase, then click on 'Go'. As a result, MatCalc
displays in the 'console' window
Tsol 'BCC_A2': 857,20 C (1130,36 K) iter: 12, time used: 0,02 s

In the 'Phase summary' and 'Phase details' window, only the FCC_A1 phase is denoted as
active (mole fracton = 1). We can now proceed with this initial condition. For convenience,
store this (current) state in a calculation state with the name 'Start austenite' by selecting
'Global' → 'CalcStates' → 'Create…'.

94
Tutorial 10

We can now evaluate the T0-temperature for austenite and ferrite with 'Calc' → 'Search
phase boundary…' or Ctrl+Shift+T. The following, well-known, dialog box appears:

95
Tutorial 10

Select 'T0-temperature' in the type listbox, 'BCC_A2' as target phase and 'FCC_A1' as parent
phase. The check box 'Force target to parent composition' must be chosen, because the
composition of BCC_A2 wil be adjusted according to the parent composition. The energy
difference (DFM offset) can be left as default (zero). Press 'Go' to start the calculation. The
result is shown below
T0(FCC_A1/BCC_A2): 791,451 C (1064,61 K)

iter: 2, time used: 0,02 s

- OK -

The phase details window shows:


#### /FCC_A1/ moles: 1, gm: -46908,9 (-46908,9)

Phasestatus: entered - active

FE +9,84677e-001 CR +1,06937e-002 C +4,62933e-003

### inactive ###

#### /BCC_A2/ moles: 0, gm: -46908,9 (-46908,9)

Phasestatus: entered - not active (dfm=2,4156e-009)

FE +9,84677e-001 CR +1,06937e-002 C +4,62933e-003

It is thus clear that, at the temperature of 791,451°C, FCC_A1 and BCC_A2 of the same
composition have the same molar Gibbs free energy of gm = -46908.9 J/mole.

STEP 3: EVALUATE T0- TEMPERATURE AS A FUNCTION OF CHROMIUM


CONTENT
Let us now investigate how the T0- temperature for ferrite and austenite varies with the
chromium content. From the menu select 'Calc' → 'Stepped calculation…'or press Ctrl+T. In
the left listbox of the 'Step equilibrium …' window, select type 'T0 temperature'. Select
'FCC_A1' for the parent phase and 'BCC_A2' for the target phase. Don't forget to select
chromium as the independent element. Enter the chromium range between '0' and '10'
weight percent in steps of '0.5' and don't forget to mark the 'Force identical composition'
box. The 'Step equilibrium …' window looks now as follows.

96
Tutorial 10

Press 'Go' to start the calculation. The result can be displayed in the well known 'XY-data'
plot. Create the plot and drag and drop the T$c variable from the variables window into the
plot. Edit the 'x-axis', 'y-axis' and 'legend' (see also Tutorial 4 or Tutorial 5) such that the
result of the stepped T0- temperature calculation looks as follows.

97
Tutorial 10

STEP 4: EVALUATE T0-TEMPERATURE AS A FUNCTION OF CARBON CONTENT


In the same way, similar to the evaluation of the dependence of the T0- temperature on the
chromium content, it is possible to calculate the T0- temperature as a function of the carbon
content. Therefore, rename the '_default_' buffer selecting 'Global' → 'Buffers' → 'Rename…'
and give it the name 'T0-chromium'. Then create a new buffer ('Global' → 'Buffers' →
'Create…') with the name 'T0-carbon' and load the calculation state 'Start austenite' (make
sure that the current buffer is the 'T0-carbon'). Analogously to the calculation before, carry
out a stepped calculation. Press 'Calc' → 'Stepped calculation …' or press Ctrl+T, enter the
following settings and press 'Go'.

There is no need to create a new plot in order to display the graph for the T0-temperature
dependence for varying carbon content. The T0- temperature line in the figure can be simply
changed by switching from 'T0-chromium' buffer to the 'T0-carbon' buffer in the options
window.

98
Tutorial 10

Afterwards, the x- and y-axes must be rescaled and in the case of the x-axis renamed. So the
result looks as follows.

The strong dependence of the T0- temperature on the carbon content is evident. This is
reflected in the strong influence of carbon on the martensite start temperature.

STEP 5: ADD SOME EXPERIMENTAL DATA ON MARTENSITE START


TEMPERATURES
The experimental data, which will be added to the recent plot, are taken from ref. 1). Before
doing so, we must create a new buffer. So, none of the former results will be lost. Name the
99
Tutorial 10

new buffer as 'T0 with offset' (further calculations with various dfm-offsets will be done …)
and create a table selecting 'Global - Tables and arrays …'. Press 'New …' and call the table
'Exp. data'.

After selecting 'Edit …', enter the following measured martensite start temperatures into the
table or copy them from a file (the file is here, or here (.txt)).

Carbon content [wt%] Martensite start temperature [°C]

0 540

0.086 510

0.1936 475

0.2409 480

0.2495 470

0.2581 440

0.3011 430

0.3226 410

0.3871 410

0.3871 400

100
Tutorial 10

0.3871 395

0.4560 405

0.4947 355

0.5054 375

0.6022 330

0.6022 320

0.7097 280

0.7312 280

0.7743 265

0.8173 240

0.8603 225

Press 'OK' twice and insert the experimental data into the plot as a new series (right-click in
'options' window and select 'New series' → 'table experimental data') and switch to 'Exp.
data' in 'connected to' box (see also Tutorial 5).

101
Tutorial 10

Edit the legend and the series names. The result looks as follows.

Apparently, the calculated T0- temperature does not fit the experimental data, however the
curve runs parallel to it with the calculated temperatures being higher. The reason is that a
certain amount of driving force is required to start the martensite transformation. This extra
energy, or extra driving force, is of the order of 1.2 to 2.5 kJ/mol (depending on the
composition of the alloy) and can be defined in the field dfm-offset. Default value for this
parameter is zero.
To evaluate how high this extra energy is as a function of carbon content, stepped
calculations with different dfm-offsets can be performed. Carry out two simulations, one as a
steped T0- temperature calculation with a dfm-offset of 1200 J/mole and one with 1700
J/mole. Before starting lock the first series (T0- dfm=0 J/mole). So the first graph will be
conserved for further comparison. Select 'Calc' → 'Stepped calculation …'and complete the
dialog box as follows:

102
Tutorial 10

Drag and drop the 'T$c' variable again into the plot and rename the series to T0 - dfm=1200
J/mole. Do the same for a dfm-offset of 1700 J/mole. Change the plot buffer to 'T0 with
offset' in the 'options' window. The plot now looks like follows.

103
Tutorial 10

A dfm-offset in the range of 1200-1700 J/mole can be used to obtain reasonable agreement
between the calculations and the experimental data.

1)
References
[1] Z. Jicheng and J. Zhanpeng, Acta met. mater. 38 (1990) 425-431.

104
Tutorial 11

T11: SIMULATION OF SOLIDIFICATION OF 0.7C 3MN STEEL

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS

• Scheil calculation
• Back-Diffusion
• Composition set
• Solid-solid transformation

105
Tutorial 11

The Scheil-Gulliver method allows calculating the fraction and composition of all phases
during solidification step by step from the liquidus temperature to the temperature where
solidification of the residual liquid phase occurs 1). The particular residual fraction at final
solidification is dependent on the cooling rate. Generally, the fraction is higher, the higher the
cooling rate is. At slow cooling rates, the liquid film can become very thin and the residual
liquid enriches more than in the case of higher fraction residual liquid at solidification.
According to the Scheil-Gulliver hypothesis, illustrated in the figure below (Fig.1), a solidifying
liquid with the initial composition C0 is slightly undercooled. Consequently, a certain fraction
of solid is formed with a composition of CS,1 with the remaining liquid phase with the
composition CL,1. Both phases are in local equilibrium following the lever rule. From that
instant on, the composition of the solid phase with regard to the substitutional atoms is
frozen due to the Scheil-Gulliver assumption of very slow (and therefore negligible) diffusion
in the solid phase. The interstitial elements boron, carbon and nitrogen are assumed to be
nevertheless highly mobile in the liquid phase as well as the solid phase. Therefore, these
elements are assumed to be able to establish equilibrium between the liquid and solid phases
due to back-diffusion of enriched solute atoms from the liquid phase into the solid phase. This
process occurs repeatedly, enriching the solid phase as well as the liquid phase with solute
during cooling (Fig.1:CL,i and CS,i).

Fig.1: Scheme of Scheil solidification of a hypothetic Fe-C alloy. During


solidification the actual liquid phase, beginning with C0, is undercooled
and solidifies according to the lever rule enriching the liquid phase with
solute atoms

When solidification is finished, the microstructure of the solid phase shows a composition
gradient from the regions where the solidification started (centre of the dendrite) to the

106
Tutorial 11

areas where the last liquid solidified (outer shell of the dendrite). The composition of the
residual liquid at final solidification corresponds to the composition of the interdendritic
regions. It should be noted that the Scheil-Gulliver analysis yields an upper limit of
segregation since the substitutional elements also have a finite mobility and have some
potential of back-diffusion.
Scheil-type calculations in multi-component systems have proven to be a useful method to
simulate solidification processes. The present example shows how to carry out this type of
simulation with MatCalc and demonstrates the effect of carbon back-diffusion on the
solidification process. Moreover, the influence of solid-solid phase transformations, i.e. the
peritectic transformation, is analyzed.

STEP 1: SETUP THE THERMODYNAMIC SYSTEM (SEE ALSO TUTORIAL T2)


Create a new workspace file. From a suitable database (mc_fe.tdb) define the elements Fe,
Mn and C and the phases liquid, BCC_A2 (ferrite), FCC_A1 (austenite) and Cementite.

107
Tutorial 11

Enter the system composition in weight percent as listed in the subsequent figure selecting
'Global Composition …' or pressing the F7 key.

Set initial values with 'Calc'→'Set start values' or Ctrl+Shift+F. Calculate equilibrium at
1600°C. The results in the 'Phase summary' window are
LIQUID * act 1,00000e+000 dfm: +0,00000e+000

### inactive ###

BCC_A2 - OK - 0,00000e+000 dfm: -1,02376e+003

FCC_A1 - OK - 0,00000e+000 dfm: -1,08279e+003

CEMENTITE - OK - 0,00000e+000 dfm: -1,28109e+004

STEP 2: CARRY OUT A SCHEIL CALCULATION


Since we expect austenite to be the first phase to form on solidification, let us first look for
the solubility temperature of this phase. Select 'Calc - Search phase boundary …' or press
Ctrl+Shift+T and select FCC_A1 as target phase.

108
Tutorial 11

Press 'Go':
Tsol 'FCC_A1': 1471,08 C (1744,24 K) iter: 4, time used: 0,03 s

The first solid phase becomes stable at 1471.08°C. So let us start with the Scheil simulation at
1500°C and go down to 1000°C in steps of 10. Open the Scheil-calculation dialog with 'Calc -
Scheil calculation …' or press Ctrl+H.

109
Tutorial 11

Press 'Go' to start the simulation. In order to be able to remove the equilibrium content of
solid phases from the system after each temperature step, MatCalc needs to create copies of
all phases except the dependent (liquid) phase. MatCalc therefore asks

Click 'Yes'. MatCalc then creates 3 new phases with the name of the original phase plus the
suffix '_S'. This suffix denotes that the corresponding phase is a 'solid' phase. The result in the
'Output' window looks as follows
Checking solid phases ... - OK -

Searching initial equilibrium ...

1, 0,05 s, 1500,00 C (1773,16 K), its 2, f=1,00000000, LIQUID

...

110
Tutorial 11

3, 0,05 s, 1480,00 C (1753,16 K), its 2, f=1,00000000, LIQUID

4, 0,05 s, 1470,00 C (1743,16 K), its 5, f=0,97044923, LIQUID FCC_A1

...

12, 0,08 s, 1390,00 C (1663,16 K), its 6, f=0,25234865, LIQUID FCC_A1

13, 0,08 s, 1380,00 C (1653,16 K), its 6, f=0,22795930, LIQUID FCC_A1

14, 0,08 s, 1370,00 C (1643,16 K), its 6, f=0,20745452, LIQUID FCC_A1

15, 0,08 s, 1360,00 C (1633,16 K), its 6, f=0,19000907, LIQUID FCC_A1

...

39, 0,17 s, 1120,00 C (1393,16 K), its 5, f=0,05686078, LIQUID FCC_A1

40, 0,17 s, 1110,00 C (1383,16 K), its 11, f=0,00000000, FCC_A1 CEMENTITE

fraction of phase 'LIQUID' smaller than 0,01. Calc finished

Steps: 41, CalcTime: 0,17 s

AktStepVal: 1383,160000

- OK -

The current value of the fraction liquid at each temperature step is displayed with 'f=xxx' in
each line. The final eutectic is reached at T=1110°C. When the fraction liquid comes below
0,01 (minimum liquid fraction), the dependent phase is dissolved and the calculation is
finished.
Let's now look at the result.
Create a XY-data plot that shows the fraction of residual liquid as a function of temperature.
The correct variable is F$LIQUID, you have to change the default x-data to T$C in the options
window to show °C instead of K. Rescale the x-axis from 1100°C to 1500°C. A few other
settings were made until the result looks as follows

111
Tutorial 11

STEP 3: ADD A SCHEIL CALCULATION WITH BACK-DIFFUSION OF CARBON


The solidification of the current steel as calculated by the Scheil model predicts final
solidification at too low temperature. In reality, carbon atoms are fast enough not only in the
liquid but also in the solid to be able to equilibrate between the solid and liquid phases.
Therefore, to get more realistic simulation results, we must allow for back-diffusion of
carbon. First, in order not to loose the results of the previous simulation, rename the current
buffer to 'Scheil' and create a new one with the name 'Scheil with BD of C'. Open the Scheil
calculation dialog with 'Calc - Scheil calculation …' or press Ctrl+H. Highlight carbon in the list
box and press 'Toggle'.

112
Tutorial 11

Press 'Go' to start the simulation. After each temperature step, MatCalc sets up a
paraequilibrium calculation, where all elements without back-diffusion have fixed
composition variables and only the elements with back-diffusion are unconstrained. By that
means, carbon is always brought back into equilibrium with regard to the solid and liquid
phases after a regular Scheil simulation step is carried out.
We are going to display the Scheil curve with and without back-diffusion in one window.
Therefore, first, lock the previous Scheil calculation, which is still displayed in the diagram
window and name it 'Scheil'.

113
Tutorial 11

Then, we make sure that the just created buffer ('Scheil with BD of C') is selected as current
buffer for the plot in the options window and drag and drop the 'F$LIQUID' variable into the
plot (note that alternatively you can use the 'Lock and duplicate series' option accessible via
the right mouse button or the 'View' menu). Rename the new series to 'Scheil with BD of C'.
The new diagram looks like the following figure.

114
Tutorial 11

STEP 4: ADD THE EQUILIBRIUM SOLIDIFICATION PATH


Let us finally add the solidification temperatures for thermodynamic equilibrium conditions.
To speed up the calculations, we suspend all 'solid' phases which were needed for the Scheil
calculations. Open the 'Phase status' dialog (F8). Set the 'suspended' flag for each 'solid'
phase.

Create a new buffer with the name 'Equilibrium'. Open the stepped calculation dialog
(Ctrl+T). Calculate a stepped calculation with temperature as the variable between 1500°C
and 1350°C in steps of 5. Press 'Go' to start the calculation.

115
Tutorial 11

Lock the last series ('Scheil with BD of C'). Change the buffer to be used in the diagram
window to 'Equilibrium'and drag and drop the 'F$LIQUID' variable into the plot. Rename the
current series and the diagram looks like this:

116
Tutorial 11

On changing the 'y-axis' type to 'log' and scaling from 0.01, the results finally display as

From this diagram, and with the assumption that all residual liquid freezes (solidifies) when
1% residual liquid is reached, the predicted solidification temperatures using the classical
Scheil model, Scheil with back-diffusion and full thermodynamic equilibrium can be read as
1110, 1335 and 1380°C, respectively. Probably, 1335°C comes closest to the real,
experimentally observed solidification temperature for this alloy composition.

1)
References
[1] E. Kozeschnik, W. Rindler and B. Buchmayr, „Scheil-Gulliver simulation with partial redistribution of
fast diffusers and simultaneous solid-solid phase transformations“, Int. J. Mater. Res., 98 (9), 2007,
826-831.
[2] W. Rindler, E. Kozeschnik and B. Buchmayr, “Computer simulation of the brittle temperature range
(BTR) for hot cracking in steels”, Steel Res., 2000, 71 (11), 460-465.
[3] E. Kozeschnik, “A Scheil-Gulliver Model with Back-Diffusion Applied to the Micro Segregation of
Chromium in Fe-Cr-C Alloys”, Met. Mater. Trans., 2000, 31A, 1682-1684.

117
Tutorial 12

T12: USING THE MATCALC CONSOLE

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS

• Getting help in the MatCalc console


• Obtaining lists of available commands for different modules
• Command syntax and abbreviations
• Example: calculating an equilibrium using the command-line
• Evaluating numerical expressions and variables
• Defining, using and plotting functions

118
Tutorial 12

GENERAL REMARK TO 6.00.0100 VERSION

Due to some development activities, the commands are to be typed into the 'MatCalc 5
console' window - this are the lines begining here with 'MCORE:'. The output messages are
displayed in the 'console' window, as always.

BASICS
GETTING HELP AND LISTING AVAILABLE COMMANDS

Typing '?' or 'HELP_WORKSPACE' in the 'MatCalc 5 console' window shows a list of available
commands.
MCORE: ?

-------------------------------------------------------------------------

available commands in workspace module:

-------------------------------------------------------------------------

? HELP_WORKSPACE HELP_MODULE

ECHO ! EXIT

USE_MODULE BACK_TO_MODULE NEW_WORKSPACE

READ_WORKSPACE SAVE_WORKSPACE CLOSE_WORKSPACE

SET_WORKSPACE_PROPERTY SET_WORKSPACE_INFO LIST_WORKSPACE_INFO

RUN_SCRIPT_FILE TEST_COMMAND STOP_CURRENT_ACTION

STOP_RUN_SCRIPT NEW_GUI_WINDOW REMOVE_GUI_WINDOW

MOVE_GUI_WINDOW SET_GUI_WINDOW_PROPERTY UPDATE_GUI_WINDOWS

LIST_GUI_WINDOW_PROPS LIST_ALL_GUI_WINDOWS ALLOW_WINDOW_UPDATE

SET_PROGRESS_INDICATOR CREATE_NEW_PLOT SET_PLOT_OPTION

LIST_PLOT_OPTIONS REMOVE_PLOT LIST_ALL_PLOTS

COPY_PLOT_TO_CLIPBOARD COPY_FRAME_TO_CLIPBOARD EXPORT_PLOT_TO_FILE

EXPORT_FRAME_TO_FILE LIST_CURRENT_DIRECTORIES
SET_APPLICATION_DIRECTORY

SET_WORKING_DIRECTORY SET_LICENSE_FILEPATH

SHOW_EXPRESSION

SET_VARIABLE_VALUE INPUT_VARIABLE_VALUE REMOVE_VARIABLE

119
Tutorial 12

LIST_ALL_VARIABLES LIST_INTERNAL_VARIABLES SET_VARIABLE_STRING

INPUT_VARIABLE_STRING FORMAT_VARIABLE_STRING REMOVE_STRING_VARIABLE

LIST_ALL_STRING_VARIABLES SEND_OUTPUT_STRING SEND_CONSOLE_STRING

SEND_DIALOG_STRING SET_FUNCTION_EXPRESSION LIST_ALL_FUNCTIONS

REMOVE_FUNCTION EDIT_SYMBOL EDIT_PARAMETER

LIST_SYMBOLS LIST_PARAMETERS

-------------------------------------------------------------------------

use HELP_MODULE for module specific commands

-------------------------------------------------------------------------

The commands listed above are part of the 'workspace' module of MatCalc and relate to
creating and modifying workspaces and windows within workspaces. As can be seen from the
last line of the above transcript, 'HELP_MODULE' gives access to another series of commands
relating to the current module of the program ('core'), i.e. the calculations themselves:
MCORE: help_module

-------------------------------------------------------------------------

available commands in mc_core module:

-------------------------------------------------------------------------

RESTART LICENSE_INFO GIBBS_CALC_STATUS

LIST_DATABASE_CONTENTS SELECT_ELEMENTS SELECT_PHASES

SET_REFERENCE_ELEMENT ENTER_COMPOSITION
SET_TEMPERATURE_CELSIUS

SET_TEMPERATURE_KELVIN SET_PRESSURE
SET_AUTOMATIC_STARTVALUES

APPLY_TANGENT_CONSTRUCTION CALCULATE_EQUILIBRIUM SEARCH_PHASE_BOUNDARY

STEP_EQUILIBRIUM LIST_EQUILIBRIUM LIST_CORE_STATUS

SET_STEP_OPTION LIST_STEP_OPTIONS CHANGE_PHASE_STATUS

LIST_PHASE_STATUS CREATE_NEW_PHASE REMOVE_PHASE

CALC_PARTITION_RATIO <<CORE>> <<NODES>>

<<SYMBOLIC>> <<IO>> <<PRECIPITATION>>

<<STATE>> <<BUFFER>> <<TABLES/ARRAYS>>

120
Tutorial 12

<<TRANSFORMATIONS>> <<HEAT_TREATMENTS>> <<EXPORT>>

The 'mcore' module contains several subsections, given in triangular brackets below the list of
commands. These can be opened by typing in 'HELP_MODULE' again with the name of the
subsection. For example 'HELP_MODULE IO' lists the input/output commands.
MCORE: help-module io

-------------------------------------------------------------------------

available commands in mc_core module: IO

-------------------------------------------------------------------------

OPEN_THERMODYN_DATABASE TEST_EXIST_TD_DATABASE
READ_THERMODYN_DATABASE

READ_MOBILITY_DATABASE TEST_EXIST_MOB_DATABASE READ_PHYSICAL_DATABASE

TEST_EXIST_PH_DATABASE SET_LOG_FILE WRITE_BINARY_FILE

READ_BINARY_FILE SET_AUTOSAVE_FILENAME TEST_EXIST_FILE

NOTES ON SYNTAX

1. Although the commands listed above contain underscores '_', the hyphen '-' can be
used interchangeably with the underscore when typing commands. Note, however,
that this is not the case in names of phases such as 'BCC_A2', which require the
underscore.
2. Commands are case-insensitive.
3. Any unambiguous abbreviations of the commands are allowed. For example,
'open_th' or even 'o_t' are acceptable abbreviations of 'open_thermodyn_database'.
Using an ambiguous abbreviation, such as 'read', gives a list of all possible commands
with that abbreviation, together with a message indicating that the command was
ambiguous:

MCORE: read

READ_WORKSPACE

READ_THERMODYN_DATABASE

READ_MOBILITY_DATABASE

READ_PHYSICAL_DATABASE

READ_BINARY_FILE

121
Tutorial 12

*** error *** ambiguous command

_mcore:

EXAMPLE: CALCULATING AN EQUILIBRIUM USING THE COMMAND-LINE


The use of command-lines will be illustrated with a simple example: setting up a workspace
and calculating an equilibrium at a single temperature. This is the same calculation as in
Tutorial 2: an equilibrium at 700°C in a Fe-0.4 wt.% C system containing the phases LIQUID,
FCC_A1, BCC_A2 and CEMENTITE.
Start with a new workspace. (Warning! Using the 'new_workspace' command does not
prompt the user to save any previously open workspace files, so make sure any necessary
changes are saved first.)
MCORE: new_workspace

<script(0/core)> $ phase details: create and move

<script(0/core)> new-gui-window a6

<script(0/core)> move-gui-window . 500 0 500 450move-gui-window window-id=. x-


axis=500 y-axis=0 width=500 height=450

<script(0/core)> $ phase summary: create and move

<script(0/core)> new-gui-window a5

<script(0/core)> move-gui-window . 0 0 450 300move-gui-window window-id=. x-


axis=0 y-axis=0 width=450 height=300

<script(0/core)> $ clear modified-flag

<script(0/core)> set-workspace-property m n

<script(0/core)> $ ready ...

Open the thermodynamic database. This is equivalent to clicking 'Open' in the 'Global >
Databases' dialogue box.
MCORE: open_thermodyn_database

name for thermodynamic database ('*' for list) /mc_sample_fe.tdb/:

122
Tutorial 12

The console prompts the user for the name of a database. The default option is given
between slashes '/../' (By typing '*' and pressing 'enter', the content of the
…\MatCalc\database directory is shown). Type 'mc_fe.tdb' to select the improved database.
MCORE: open_thermodyn_database

name for thermodynamic database ('*' for list) /mc_sample_fe.tdb/:

opening database 'mc_fe.tdb' ...

Find out which elements and phases are in the database using 'list_database_contents':
MCORE: list_database_contents

(e)quilib/(d)iffusion/(p)hysical /e/:

Type in 'e', to show the content of the opened equilibrium database


MCORE: list_database_contents

(e)quilib/(d)iffusion/(p)hysical /e/:

equilibrium database file: mc_fe.tdb

# of elements in database: 25

VA, AL, B, C, CO, CR, CU, FE, H, HF, LA, MN, MO, N, NB, NI, O, P, PD, S, SI,
TI, V, W, Y

# of phases in database: 122

LIQUID FCC_A1 BCC_A2

H_BCC BCC_DISL HCP_A3

ALPHA_MN BETA_MN BETA_RHOMBO_B

DIAMOND_A4 GRAPHITE BCC_B2

CHI_A12 CO3MO CO3V

COV3 CR3MN5 G_PHASE

LAVES_PHASE MNNI MNNI2

MNNI_T3 MU_PHASE MU_PHASE_I

ETA NITI2 PI_PHASE

R_PHASE SIGMA FE17Y2

123
Tutorial 12

NI5Y PDFE_L12 PDMN_AF

PDMN_P PDMN_B2 PD2MN

PD3MN PD5MN3 PD6FE5MN2

CEMENTITE CR2VC2 K_CARB

KSI_CARBIDE M3C2 M6C

M7C3 M12C M23C6

MOC_ETA V3C2 WC

EPS_CARB ETA_CARB FE24C10

KSI_FE5C2 ALN ALN_EQU

BN_HP4 CR3NI2SIN FE4N

MN6N4 MN6N5 MNSIN2

SI3N4 ZET CRB

CR2B CR5B3 FEB

FENBB FE3NB3B4 M2B

MNB2 MNB4 O_MN2B

MN3B4 MOB MOB2

MO2M1B2 NBB NB3B2

M5B6 TIB TIB2

TI3B4 A_CHALC ANILITE

B_CHALC COVELLITE CU2S

DIGENITE DISULF DJURLEITE

FC_MONO FC_ORTHO FES_P

MNS_Q PYRR TIS

TI4C2S2 CORUND HALITE

HF1O2_M HF1O2_T HF1O2_C

LA2O3_A LA2O3_H LA2O3_C

SIO2 SPINEL TIO2

TI2O3 TRID Y2O3_C

Y2O3_H YALO3 Y4AL2O9

Y2TIO5 Y2TI2O7 O1_GAS

124
Tutorial 12

M2P M3P

Select the required elements using 'select_elements c fe'. A message appears to indicate that
C has been selected, and Fe has been ignored because it was already selected by default.
MCORE: select_elements c fe

element 'C' selected

element 'FE' ignored

Next select the phases. Any unambiguous abbreviation is acceptable for the phase names.
Messages appear to confirm that these phases have been selected.
MCORE: select_phases liq bcc_a2 fcc cem

phase 'LIQUID' selected

phase 'BCC_A2' selected

phase 'FCC_A1' selected

phase 'CEMENTITE' selected

Read in the thermodynamic data. This is equivalent to clicking 'read' in the 'Databases'
dialogue box.
MCORE: read_thermodyn_database

reading thermodynamic data 'mc_fe.tdb' ...

collecting symbols 'mc_fe.tdb' ...

elements: VA C FEhases: LIQUID FCC_A1 BCC_A2 CEMENTITE

Gibbs: 4 Phases / 0 Composition-Set(s) created

Gibbs: 30 functions linked ...

Gibbs: T = 1273.160000 K, P = 101325.000000 Pa, moles = 1

125
Tutorial 12

Enter the composition. There are three available unit qualifiers: x (mole fraction), u (u-
fraction) and w (weight fraction). In addition, appending 'p' to any of these gives the unit in
percent. See the example below, in which the composition is specified in weight percent.
MCORE: enter_composition

unit qualifier (X/U/W + P) /x/: wp

enter amount (e.g. Mn=0.32 C=0.01): c=0.4

Open 'Databases', 'Composition' and 'Phase Status' from the 'Global' menu and note that the
system setup entered using the command-line is shown in the GUI windows. Console and GUI
versions of commands can be used completely interchangeably.
Set the temperature to 700°C. Note that there are two commands for temperature,
'set_temperature_celsius' and 'set_temperature_kelvin', depending on the units of interest.
MCORE: set_temperature_celsius 700

Impose automatic start-values and calculate an equilibrium.


MCORE: set_automatic_startvalues

MCORE: calculate_equilibrium

iter: 13, time used: 0,02 s

T: 700 C (973,16 K), GibbsEnergy: -39934,665 J

- OK -

Note the results in 'phase summary' window: the stable phases are BCC_A2 and CEMENTITE
as expected.

EVALUATING EXPRESSIONS
As well as entering commands, the console can be used to evaluate numerical expressions,
MatCalc variables and user-defined expressions and functions.

NUMERICAL EXPRESSIONS

Any numerical expression can be evaluated using the command 'SHOW_EXPRESSION' ('show'
or 'sh' are acceptable abbreviations):
MCORE: show 4/5

4/5 =

126
Tutorial 12

0.8

MCORE: show pi

pi =

3.14159265359

Note the priority rules and the use of parentheses to override these, e.g.:
MCORE: show 4/5*3

4/5*3 =

2.4

MCORE: show 4/(5*3)

4/(5*3) =

0.266666666667

MCORE: show 4+4*2

4+4*2 =

12

MCORE: show (4+4)*2

(4+4)*2 =

16

EXPRESSIONS IN X

Expressions in terms of the current value of the stepped variable, x, can be evaluated using
'show_expression', as shown below. (The value of x is currently zero because no stepped
calculation has so far been performed in this workspace.)
127
Tutorial 12

MCORE: show 3*x

3*x =

Functions in x can be defined and then evaluated.


MCORE: set-function-expression

which function: function1

enter expression: 3*x

MCORE: show function1

function1 =

Pressing the up-arrow recalls the latest command to be entered. Further use of this up-arrow
scrolls through the command history in reverse chronological order. Commands are given
with the full names and chosen options, e.g.:
_mcore: SET_FUNCTION_EXPRESSION function1 3*x

The command-line can then be edited, e.g. replace 'function1' by 'function2':


MCORE: SET_FUNCTION_EXPRESSION function2

enter expression: x**2

This is the expression for x2. The syntax 'x^2' can also be used for the same purpose:
MCORE: SET_FUNCTION_EXPRESSION

which function /function2/: function3

enter expression: x^2

The functions just defined can now be found by opening the 'Functions' tab in 'Global >
Variables & functions', and in the 'variables' window under 'functions'. They can be plotted
in a new window as follows:
Firstly, create a new window and enter the window-type code. These codes can be found
under 'View > Create new window'. The standard x-y plot is 'p1'.
MCORE: new_gui_window

128
Tutorial 12

enter window-type code: p1

Next, add a new series using set-plot-option and choosing the following options (press Enter,
if there is no sign behind the colon):
MCORE: set-plot-option

enter plot ID /1/:

(t)itle/(a)xis/(l)egend/(g)rid/(h)istogram/tt(p)/(s)eries: s

(n)ew/(e)dit/(r)emove/rena(m)e/(l)ock/(d)uplicate and lock

deri(v)e/(c)onvert to table: n

(b)uffer results/(t)able/experimental data/(f)unction/expression: f

expression in variable 'x': function1

definition range /auto/: -10..10

Finally, add the other two series by recalling and editing the previously used command.
MCORE: SET_PLOT_OPTION 1 S N F function2 -10..10

MCORE: SET_PLOT_OPTION 1 S N F function3 -10..10

The resulting plot should look like this:

129
Tutorial 12

EXPRESSIONS USING MATCALC VARIABLES

It is also possible to define functions made up of MatCalc variables. Here, two functions
similar to those discussed in Tutorial 6 are defined. The built-in variables can be copied and
pasted from the 'variables' window to the console using the right-click menus or Ctrl+C and
Ctrl+V.
MCORE: SET_FUNCTION_EXPRESSION function4 F$BCC_A2*X$BCC_A2$C

MCORE: SET_FUNCTION_EXPRESSION function5 F$CEMENTITE*X$CEMENTITE$C

These new functions can then be evaluated using 'show':


MCORE: show function4

function4 =

0,000628639871334

MCORE: sh function5

function5 =

0,0177023706434

Expressions can be built up from existing functions and variables:


MCORE: show function4+function5

function4+function5 =

0.0183310105147

Below, it is confirmed that, at 700°C, function4 + function5 = XS$C i.e. all the carbon in the
system is in the form of either BCC_A2 or cementite, since these are the only two phases to
be stable at this temperature.
MCORE: show XS$C-(function4+function5)

xs$C-(function4+function5) =

The next tutorial discusses the use of command-lines in scripts to facilitate repetitive or
complex tasks.

130
Tutorial 14

T13: INTRODUCTION TO SCRIPTING - EQUILIBRIUM CALCULATIONS

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb

CONTENTS

• Purpose of scripts
• Writing a script to perform a stepped calculation and display the results

131
Tutorial 14

INTRODUCTION
UTILITY OF SCRIPTS

A script is a text file, containing a list of commands to be executed in order from top to
bottom. They are particularly useful to speed up routine or repetitive operations. Once a
script file has been created, it can easily be modified to serve a new purpose, for example by
changing the elements or phases in the system. Script files, consisting only of text, are also
much smaller in size than MatCalc workspace files, especially those resulting from
precipitation calculations.
Individual scripts can also be grouped into master-scripts; this facilitates, for example,
calculations involving multi-stage heat treatments. Some sample scripts are provided with
MatCalc. You will find them in the subdirectories of
'MatCalc/scripts/script_menu/templates'. Of course, you can also edit them in MatCalc by
clicking on 'Open template…' in 'Script' menu.
WRITING A SCRIPT

There are two ways of creating a script:

1. In MatCalc, choose 'New' from the 'File' menu and select 'Script file' from the drop-
box. Note that it is possible to have any number of script files open simultaneously
with a MatCalc workspace file. 'Save' or 'Save as' will save the script file if its window
is highlighted, otherwise the workspace will be saved. Recently used script files can be
found in a list under 'File → Recent files'.
2. Alternatively, create the new script in any text editor (which saves files as plain text),
such as notepad, emacs, vi or any of the many text editors available in different Linux
distributions.

N.B.- The MatCalc scripts have '.mcs' extension so it is important to set (or change) the
extension of the created file!

EDITING A SCRIPT

There are also two ways of editing an existing script:

1. In MatCalc, using 'File → Open' or clicking on icon in the toolbar (keyboard shortcut
'Ctrl + O'). Select the filter to 'MatCalc script (*.mcs)' files
2. Alternatively, you can use any text editor (which saves files as plain text).

EXECUTING A SCRIPT

And again, there are two ways of executing a script in MatCalc:

132
Tutorial 14

1. Using 'Script → Run script' or clicking on icon in the toolbar (keyboard shortcut
'Shift + F2')
2. Double-clicking on the '.mcs' file icon

EXAMPLE: A STEPPED EQUILIBRIUM


This example will show how to write a script to perform the stepped calculation in Tutorial 3
and display the results.

COMMENTS

It is always advisable to comment the script extensively so as to help other users (or oneself
several months later!) to understand the aim of the calculation, assumptions, etc. Any line
prefixed with a '$'-sign will not be interpreted as a command. The '$'-sign can also be inserted
part-way through a line; the rest of the line will be treated as a comment.
$ This whole line is a comment.

NEW_WORKSPACE $ The rest of this line is a comment.

Both comments and commands are shown line-by-line in the console when the script is
executed, but prefixing a comment or a command with the '@'-sign hides the line so that it
does not appear in the console output.
At the beginning of the script, enter some preliminary comments, containing such
information as: the name of the file, the current version of MatCalc (available from Help >
About), the current version of the scripting language and a brief summary of the purpose of
the script.
$ Script T13

$ This is a script for MatCalc version 5.41

$ MatCalc script version 1

$ Calculating equilibrium phase stability in Fe-0.4C wt.%

Save the file as 'T13.mcs'

CALCULATING AN EQUILIBRIUM

The first executable line in the script creates a new workspace (N.B.- Any previously open
workspace will be closed without warning.)
@$************************************

133
Tutorial 14

$ Create a new workspace file

@$************************************

new_workspace $this executes 'autonew.mcs' script

The next lines are to enter some workspace information to describe the ideas, assumptions
etc. used in the calculation. This information can be found in 'File > Workspace info'. The '+'-
sign continues the text on a new line.
@$************************************

$ enter workspace info

@$************************************

@ set-workspace-info Script T13

@ set-workspace-info +Calculation of equilibrium phase stability

@ set-workspace-info +in Fe-0.4C wt.% system

@ set-workspace-info +with phases LIQUID, BCC_A2, FCC_A1 and CEMENTITE.

Next, add the command-line to open the thermodynamic database.


@$************************************

$ open the thermodynamic database

@$************************************

open_thermodyn_database

If the line is put in as above, the script will stop at this point and prompt the user for the
name of a thermodynamic database. The output in the console window is as follows:
<script(0)> $ open the thermodynamic database

< script(0)> open_thermodyn_database

name for thermodynamic database /mc_sample_fe/:

(Press 'enter' to select the default option.) Leaving out the arguments of the command in this
way allows for interactivity in scripts. If, instead, the script is intended to be fully automatic,
the argument should be put after the command on the same line. Replace the above line with
the following:
open_thermodyn_database mc_sample_fe2.tdb

The next parts of the script are to set up the system, set the temperature and calculate an
equilibrium. These commands have already been seen in Tutorial 12.

134
Tutorial 14

@$************************************

$ select elements and phases

@$************************************

select_elements c fe

select_phases liq bcc_a2 fcc cem

@$************************************

$ read in the thermodynamic data

@$************************************

read_thermodyn_database

@$************************************

$ enter the composition

@$************************************

enter_composition wp c=0.4

@$************************************

$ set the temperature and calculate an equilibrium

@$************************************

set_temperature_celsius 700

set_automatic_startvalues

calculate_equilibrium

STEPPED CALCULATION

In the line below, the argument 'r' means range, and the numerical values are the start, end
and step interval.

@$************************************

$ define step parameters and make stepped calculation

@$************************************

set_step_option r 400 1600 L 25

step-equilibrium

135
Tutorial 14

GRAPHICAL OUTPUT

The final part of the script is concerned with graphical presentation of results. The following
line creates a new GUI window to contain the plot. As was seen in Tutorial 12, the code 'p1' is
used to open an XY-plot.

@$************************************

$ graphical output

@$************************************

new-gui-window p1

The following three lines change the default x-data from 'StepValue' to temperature in
Celsius, set a default x-axis to be used for all plots, and provide a title for this axis. The '.' in
these lines refers to the ID of the last-used window, which in this case is the p1 window which
has just been created.
set-gui-window-property . x t$c

set_gui_window_property . s u y $ set default x-axis to be used for all plots

set_gui_window_property . s t Temperature [°C] $ title for default x-axis

The line below adds a title to the diagram. This first diagram is to be a plot of phase fraction
versus temperature.
set-plot-option . t Phase stability in Fe-0.4 wt.% C

The following lines label the y-axis, change the 'factor' of the y-axis from 1 to 100 to display
the calculated phase fraction directly in percent, set the axis type to logarithmic and modify
the axis scaling.
set-plot-option . a y 1 t Phase fraction [%]

set-plot-option . a y 1 f 100

set-plot-option . a y 1 y log $ changes axis type to log

set-plot-option . a y 1 s 1..100 $ modifies axis scaling

The first series is inserted using 'set-plot-option . s n b f$liquid'; this is the phase fraction of
liquid. The name of the series, as it will appear on the legend, is then edited using 'set-plot-
option . s m -1 f$liquid Liquid'. This changes the name from its automatic value (f$liquid) to
'Liquid'.
set-plot-option . s n b f$liquid

set-plot-option . s m -1 f$liquid Liquid

136
Tutorial 14

These commands are repeated for the other phases. Note the use of the HTML markup tags
to give the subscript in 'Fe3C'.
set-plot-option . s n b f$bcc_a2

set-plot-option . s m -1 f$bcc_a2 Ferrite

set-plot-option . s n b f$fcc_a1

set-plot-option . s m -1 f$fcc_a1 Austenite

set-plot-option . s n b f$cementite

set-plot-option . s m -1 f$cementite Fe<sub>3</sub>C

The major grid lines for x- and y-axis are displayed by these commands:
set-plot-option . g m x y $ plot x-axis major grid line

set-plot-option . g m y y $ plot y-axis major grid line

The three lines below move and resize the window, update its contents and set the style-
sheet to coloured with no symbols. In the first of these lines, the first two numbers define the
position of the window, the second two define the width and height.
move_gui_window . 20 20 800 1000

update-gui-window .

set_gui_window_property . y col_no_symb $sets style-sheet to colour with no


symbols.

Another plot can be added in the current window as shown below


create_new_plot x .

The newly created plot now becomes the 'current' plot and can be referred to as '.' when it is
being modified with set_plot_option:
set_plot_option . t Composition of phases

set-plot-option . a y 1 t Carbon content [wt.%] $ label on y-axis

set-plot-option . s n b x$liquid$C $wp $ adding the first series…

set-plot-option . s m -1 x$liquid$C Liquid $… and changing its name.

set-plot-option . s n b x$bcc_a2$C $wp

set-plot-option . s m -1 x$bcc_a2$C Ferrite

set-plot-option . s n b x$fcc_a1$C $wp

set-plot-option . s m -1 x$fcc_a1$C Austenite

set-plot-option . s n b x$cementite$C $wp

137
Tutorial 14

set-plot-option . s m -1 x$cementite$C Fe<sub>3</sub>C

set-plot-option . g m x y

set-plot-option . g m y y

The script can be concluded with the following line, which should appear in the console when
the script has been executed without any errors.
$ *** DONE ***

The final diagrams should look like this:

138
Tutorial 14

139
Tutorial 14

T14: INTRODUCTION TO PRECIPITATION CALCULATIONS

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb; mc_fe.ddb

CONTENTS

• Precipitation of cementite in a ferritic matrix in Fe-0.2 wt.% C


• Creating a precipitation domain
• Creating a precipitate phase
• Mobility and physical data
• Plotting and interpreting calculation results

140
Tutorial 14

SETTING UP THE SYSTEM


A. THERMODYNAMIC SETUP

The first step is to set up the thermodynamics of the system. In the new workspace, open
'Global > Databases' and select the elements Fe and C. For a precipitation calculation, it is
only necessary to include the phases which are directly involved in the precipitation, i.e. the
precipitating phase and the matrix in which it forms. This example considers the precipitation
of cementite in ferrite, so the two phases to be selected are BCC_A2 and CEMENTITE. When
the thermodynamic data have been read in, open 'Global > Composition' and enter the
carbon content of 0.2 wt.%.

B. PRECIPITATION DOMAIN

The next two steps are to define and configure the precipitating phase and the domain in
which it will form. These two steps can be done in either order, but in this example, the
precipitation domain will be set up first.
Open 'Global > Precipitation domains' and click on the 'New' button towards the bottom left.
A box will appear, prompting for a name for the new domain. Any name can be chosen here,
for example 'Ferrite' or 'Matrix' and click 'OK'.

On the 'Phases' tab, choose 'BCC_A2' from the drop-box to associate this phase with the
newly defined domain. Leave the rest of the settings as they are, and click 'OK'.

141
Tutorial 14

C. PRECIPITATE PHASE

To create the precipitate phase, open 'Global > Phase status'. In the 'Phases' list on the left-
hand side, select 'CEMENTITE' and click on 'Create'. Select 'precipitate (_Pnn)' from the drop
box which opens.

142
Tutorial 14

A new phase, CEMENTITE_P0 appears in the phase list; click on this to select it. Open the
'precipitate' tab, and enter '250' in the '# size classes' box, click on 'Initialize' and accept the
warning message. The precipitates are considered as belonging to a number of classes of
particles with the same radius and composition. Classes are created, rearranged and deleted
during the calculation, allowing simulation of the precipitate size distribution.
The choice of the number of classes represents a trade-off between calculation time and
required precision. If only average properties, such as the mean precipitate radius, are of
interest, then it is sufficient to use a small number of classes such as 10 or 20. By contrast, to
obtain the best possible simulation of size distribution, the number of classes should be
increased to a higher value, such as 250 as used here. Leave all the other settings in this tab as
they are.

143
Tutorial 14

Open the 'Nucleation' tab and select the 'Sites' sub-tab. In the 'Nucleation sites…' part of this
tab, remove the tick-mark by 'bulk (homogeneous)' and instead click in the box beside
'dislocations' . Click on 'OK' to save these settings and return to the main screen.

144
Tutorial 14

D. LOADING MOBILITY DATA

Simulations of precipitation require not only thermodynamic data (already loaded in step A)
but also mobility data, from which the diffusivities of the elements in the phases can be
calculated. Read in the mobility data by opening 'Global > Databases' and select 'Diffusion
data' on the left side. Click on 'Read…' and open 'mc_fe.ddb' database. Click on 'Close'

145
Tutorial 14

E. CREATING PLOTS FOR THE OUTPUT

Create a new 'Plot: XY-data' window. Drag and drop 'F$CEMENTITE_P0' from the variables
window to this plot. In the 'options' window, set 'default x-axis' to 'log' type. Change the title
of 'default x-axis' to 'time [h]' and the factor to '1/3600' to convert seconds into hours. The
title of the 'plot #0' should also be changed to 'Phase fraction of cementite precipitates' and
the title of y-axis to 'Phase fraction'.
Next, create a new window 'Plot: precipitate distribution - histogram' (p5) window. Select
'CEMENTITE_P0' from the box which opens and click 'OK'. In the 'options' window, change
the number of '# size classes' for this histogram to '20'. Switch off the default x-axis (in
'default x-axis', set 'no' for 'use for all plots') and set the x-axis label to 'Precipitate radius
[nm]'. In the 'factor' line for this x-axis, enter '1e9'. This expresses the particle radii in
nanometres instead of metres, making the scale easier to read. Change the y-axis label to
'Number of precipitates'.

146
Tutorial 14

Both the histogram and the plot of phase fraction against time are updated during the
calculation, so it is possible to follow the evolution of the size distribution and the phase
fraction as the calculation takes place.

147
Tutorial 14

THE CALCULATION
As the introduced number of classes is quite large (as defined in p. 1.D.), it will be beneficial to
modify the algorithm used for the calculation. To do this the numerical limits describing the
increase of the nucleation density in the 'convergence control' field should be changed. Up to
now, this can be only modified via console commands. Type the following command-line in
the console:
set-simulation-parameter nucleation-density-increase-factor=1,05

Calculate an equilibrium at 600°C in the usual way. Open 'Calc > Precipitate kinetics' or click
on the icon (keyboard shortcut: 'Ctrl + K'). Enter '3.6e5' as the simulation end time. This is
in seconds, so is equivalent to 100 hours. Note that in the 'Temperature control' section, an
isothermal heat-treatment at 600°C has been selected by default; leave this setting as it is.
To give more frequent updates of the graphs on the screen, the 'Update output every'
number can be decreased from 100 to 50. However, this will slow down the calculation
somewhat, so it is probably not advisable on slow machines. Leave the other settings as they
are, and click on 'Go'.

148
Tutorial 14

The information in the 'Output' window gives a summary of the current system composition,
simulation time
******** isothermal,T=873.16 K (600 C) *************************************

1, recs=1; its=1/1, dt=1e-012, time: 1e-012s (2.778e-016h), T=600 C (873.2 K),


on Tue, 16:40:26

#Ferrite: BCC_A2, sv=1,77e-010 (sve=1,77e-010), dcf=1, ro=1e+12, gsc=0 (dt=0, -


/-1)

FE +9.90768e-001(+0.00e+000) C +9.23192e-003(+0.00e+000)

———————————————————————————————————-

CEMENTITE_P0: FE75C25, nucl-site: d, nucl-dfm=6825,3, n_dot=0,0, ans=4e+021


(dt=0, -/-1)

+ CEMENTITE_P0 precipitation started at 1.9531e-008 s, T=600 °C (873.16 K)

- First line:
1 -Number of iterations.
recs -Number of records in buffer.
dt -Last time step.
time -Absolute simulation time in [s].
T - Current temperature in [°C] (in [K]).
- Second line:
#Ferrite - Precipitation domain, BCC_A2 - matrix phase,
sv - current vacancy concentration
sve - equilibrium vacancy concentration
dcf - diffusion correction factor due to the presence of the excess vacancies
ro - current dislocation density
gsc - number of grain classes used (meaningful for multi class grain growth model)
damping feature (dt=0,-) - maximum time step allowed due to the matrix condition
- Third line:
FE +9.95367e-001(+0.00e+000) - Composition of matrix
- Fourth line:
CEMENTITE_P0: - precipitate phase
FE75C25 - composition of the most stable nuclei
nucl-site - nucleation sites
nucl-dfm - driving force for nucleation in [J/mol]
n_dot - nucleation rate
ans - available nucleation sites
- Last line:
+ nucleation of CEMENTITE_P0 started at 1.9531e-008 s, T=600 °C (873,16 K) - Additional
information: Nucleation started '+' or stopped '-' and the exact system parameters at that
time.
149
Tutorial 14

Another output result, at a later stage:


******** isothermal, T=873.16 K (600 C) ************************************

900, recs=287; its=2/1, dt=0,0282379, time: 31,5719s (0,00877h), T=600 C (873,2


K), on Tue, 17:49:51

#Ferrite: BCC_A2, sv=1,77e-010 (sve=1,77e-010), dcf=0, ro=1e+012, gsc=0 (dt=0, -


/-1)

FE +9,99771e-001(+0,00e+000) C +2,28647e-004(+0,00e+000)

———————————————————————————————————-

CEMENTITE_P0: (250/.-gs/1e+020/d) f=0,03604/rm=4,07e-008/dfm=63,0,nucl-


dfm=63,2(FE75C25)

FE74C25, n_dot=0e+000 (ecdf=1), ans=0, mcomp(its:3), step: (dt=0,31, rad-


shrink/249)

- Additional information for the existing precipitate


(0/..gs/0e+00/d) - number of classes used / '+', '-' or '.', meaning: New class built, class
deleted or no change; 'g' or 's' precipitate in classes are growing or shrinking / number of
precipitates / nucleation sites
f - mole fraction of precipitate phase
rm - mean radius of precipitate phase
dfm - driving force (chemical) for formation of phase in [J/mol]
dt - maximum time step allowed due to the precipitate condition
The carbon content of the matrix has decreased from 9.2×10-3 initially (iteration 1) to 2.3×10-4
in iteration 900. The precipitate phase uses 250 classes and consists of roughly 1×1020
particles. The mole fraction of cementite in the matrix is 0.03604 (3.6%). There is a small
positive driving force for nucleation (63 J) and the nucleation rate (n_dot) is zero. This is
because all nucleation sites are saturated (ans=0).
To avoid numerical instability, unreasonably large changes, for example in composition,
precipitate volume, precipitate number or driving force, are prevented. Here, the coarsening
stage is in progress and small particles are shrinking. A maximum value of radius reduction
per time-step is imposed (rad-shrink); this reduces the time-step to 0,31 s for the next step.
The calculation speed can be increased by setting the windows to 'manual update' so that the
graphs are not updated. Select 'View-Freeze update' or press 'Ctrl+I' to freeze the currently
selected window. The same procedure unlocks the window again. To update the window
content, press 'Ctrl+U' or select 'View > Update all window contents'.

INTERPRETING THE RESULTS


NUCLEATION, GROWTH AND COARSENING

150
Tutorial 14

When the calculation is finished, add three new plots in the same window as the plot of
F$CEMENTITE_P0 versus time. Drag and drop NUM_PREC$CEMENTITE_P0 (number of
cementite precipitates) into the first of these, NUCL_RATE$CEMENTITE_P0 (nucleation rate)
into the second. In the third, add R_MEAN$CEMENTITE_P0 (mean radius),
R_CRIT$CEMENTITE_P0 (critical radius), R_MIN$CEMENTITE_P0 (minimum radius) and
R_MAX$CEMENTITE_P0 (maximum radius). These variables can be found under 'kinetics:
precipitates' and 'kinetics: nucleation' in the 'variables' window.

Type in the following settings for the plots:

1. Plot 1
- Title: 'Phase fraction of cementite precipitate'
- Y-axis title: 'Phase fraction'

2. Plot 2
- Title: 'Number of precipitates'
- Y-axis title: 'Number of precipitates [*10<sup>20</sup> m<sup>-3</sup>]'
- Y-axis factor: '1e-20'

3. Plot 3
- Title: 'Nucleation rate'
- Y-axis title: 'Nucleation rate [*10<sup>26</sup> m<sup>-3</sup>s<sup>-1</sup>]'
- Y-axis factor: '1e-26'

4. Plot 4
- Title: 'Precipitate radius'
- Y-axis title: 'Precipitate radius [<html>&mu;</html>m]'
- Y-axis type: 'log'
- Y-axis factor: '1e6'

5. Default x-axis
- Use for all plots: yes - Title: 'Time [h]'
- Type: 'log'
- Scaling: '1e-12..'
- Factor: '1/3600'

Note the usage of the html-tags for the text with special features:

- the text between the '<sup>' and '</sup>' tags will be displayed as superscript (e.g.
10<sup>20</sup> appears as 1020)

151
Tutorial 14

- '<html>&mu;</html>' is used to display the Greek letter μ

Using these plots, the different stages of nucleation, growth and coarsening can be
identified.During the nucleation stage, between 1e-11 and 1e-9 hours, the number of
precipitates increases rapidly, but since these precipitates are, as yet, extremely small, the
phase fraction of cementite also remains small. During this stage, the nucleation rate rises
initially, due to a positive driving force for nucleation, and decreases again to zero when all
the available nucleation sites are occupied.
The next stage, from approximately 1e-9 to 1e-6 hours, is the diffusion-controlled growth of
these nuclei; this continues until the equilibrium phase fraction of cementite reaches its
equilibrium value, as indicated by the plateau on the 'Phase fraction' curve. The number of
precipitates does not change during this stage, but there is an increase in radius which can
just be detected on the plot below. There follows a period in which there is little or no change
in any of the three parameters.
Finally, at just over 1e-3 hours onwards, there is the onset of coarsening, which is
characterised by a decrease in the number of precipitates accompanied by an increase in
radius. The critical radius rises and becomes larger than the smallest precipitate classes.
Therefore these classes start to dissolve and the newly available carbon is used to grow the
larger precipitates (Gibbs-Thomson effect). The minimum radius is unstable (leading to a
'noisy' appearance on the graph) as the small precipitates are shrinking (minimum radius goes
down) and dissolving (minimum radius goes up to the next smallest class present in the
system).

152
Tutorial 14

153
Tutorial 14

HISTOGRAMS OF PRECIPITATE SIZE DISTRIBUTION

The plot above shows only the variation of the mean radius with time, but more detailed
information on the distribution of particle sizes can be found on the histogram. At the end of
the calculation, the final size distribution is shown on the histogram. The distribution at other
stages of the calculation can be recalled using 'Global > Buffers > Edit buffer states'. This
brings up a list of all the states saved in the memory, with details of time, temperature and
time-step. Selecting one of these records loads the corresponding particle size distribution
into the histogram if the 'auto load' box at the bottom left is ticked. Otherwise, it can be
loaded by clicking on the 'load selected' button.

154
Tutorial 14

In the final part of this tutorial, the precipitate size distribution as calculated by MatCalc will
be compared with the Lifshitz-Slyozov-Wagner (LSW) distribution given by the following
equation:

In the histogram window, create a new plot and add a new series for it (set 'CEMENTITE_P0'
for 'phase'). In the options under 'plots', select 'density' for 'scale frequency' and 'yes' for
'scale radius'. Set the scaling of the x-axis as '0..1.499' because the LSW function is only
defined between 0 and 1.5.

Enter the LSW function, either using the 'Functions and Variables' box or by using the
following command-line in the console:

155
Tutorial 14

set-function-expression function=lsw expression=x^2*(3/(3+x))^(7/3)*((3/2)/(3/2-


x))^(11/3)*exp(-x/(3/2-x))*4/9

Then add the function to the scaled plot, either using the right-click menu in the Options
window to add a new 'function/expression' series (as it was done in Tutorial 6) or by using
the following command-line:
set-plot-option . s n f LSW 0..1.5

The plot below shows a comparison between the LSW function and the histogram simulated
by MatCalc.

156
Tutorial 15

T15: EFFECT OF MICROSTRUCTURE AND CONDITIONS (PART 1)

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb; mc_fe.ddb

The Fe-Cr-C system forms the basis of many industrially useful alloys. The aim of this and
Tutorial 16 is to produce a simulation of the precipitation behaviour in a Fe-10Cr-0.1C (wt.%)
alloy during heat-treatment at 600°C. This involves considering several aspects, such as the
chemical compositions of nuclei, the microstructural sites on which nuclei form, and the
density of these sites in the microstructure under consideration. This first of two tutorials will
focus on modelling the formation of the metastable cementite (Fe3C) phase, and Tutorial 16
will consider the interaction between this and the more stable phase M23C6.

CONTENTS

• Choice of nucleation model


• Diffusivity in precipitates
• Nucleation sites for the precipitate phase
• Microstructural parameters of the precipitation domain

157
Tutorial 15

EQUILIBRIUM CALCULATIONS
Create a new workspace with the elements Fe, C and Cr and the phases BCC_A2, CEMENTITE
and M23C6. Enter the composition 10 wt.% Cr, 0.1 wt.% C.
Calculate an equilibrium at 600°C and observe the contents of the 'Phase summary' window.
It can be seen that M23C6 is the stable phase at equilibrium. However, it is known from
experience that the first phase to form on heat-treatment is cementite.
Go to 'Global > Phase status', suspend the 'M23C6' phase and calculate an equilibrium once
again so as to study the metastable equilibrium between BCC_A2 and cementite. The
composition of cementite in metastable equilibrium with BCC_A2 is, in wt.%, 85 % Cr, 7 % C, 8
% Fe; this is very rich in Cr compared to the overall system composition of 10 % Cr, 0.1 % C
and 89.9 % Fe. This high amount of Cr is rather unusual for cementite, as it is expected to be
rahter Fe-rich. Hence, Fe is set as the major constituent for this carbide. However, MatCalc
detects that the Cr-content in cementite is greater than the one of the major constituent for
this phase (Fe) and a '*maj*!' warning flag appears in the 'phase summary' window.
In practice, it is found that cementite forms rapidly on heat-treatment at 600°C; this is more
consistent with a mechanism which primarily involves the diffusion of C rather than the
slower-diffusing Cr. It is therefore likely that the initial nuclei do not form with the equilibrium
composition, but are initially much richer in Fe than Cr. Part 1 of this tutorial considers how
such effects can be modelled. Re-open 'Global > Phase status' and remove the 'suspended'
flag for M23C6.

NUCLEATION MODEL FOR CEMENTITE


SETTING UP THE SIMULATION

Create a precipitate phase CEMENTITE_P0, using 'Global > Phase status'. In the 'Nucleation”
tab, change the 'Nucleus composition' model from 'ortho-equilibrium' to 'para-equilibrium'
using the drop-down menu. 'Para-equilibrium' means that the nucleus is assumed to have the
same composition in terms of substitutional elements as the matrix from which it forms, and
only the carbon is partitioned between the two phases. In the 'ortho-equilibrium' model, by
contrast, the composition of the nucleus is calculated assuming full equilibrium with the
BCC_A2 matrix. In the 'Nucleation > Sites' tab, set the nucleation sites to 'Dislocations'
(remove the tick from 'bulk')

158
Tutorial 15

In 'Global > precipitation domains', create a new domain named 'ferrite' with 'BCC_A2' as its
matrix phase. Accept the changes by clicking 'OK' to close the window.
Load the mobility data as described in Tutorial 14.

GRAPHICAL DISPLAY OF RESULTS

Create a new XY-plot window and define a default x-axis with the following properties:

• Use for all plots: yes


• Title: Time [h]
• Type: log
• Scaling: 1e-10..
• Factor: 1/3600 (to convert seconds to hours)

Add four new plots to the window and drag and drop the following series to the plots:

1. F_PREC$CEMENTITE_P0 (found under 'kinetics: precipitates')

159
Tutorial 15

2. XPR$CEMENTITE_P0$CR (Cr content of the cementite precipitate phase) and


X_NUCL$CEMENTITE_P0$CR (Cr content of the nucleus). The latter can be found
under 'kinetics: nucleation'.
3. X$BCC_A2$C (carbon content of BCC matrix)
4. NUM_PREC$CEMENTITE_P0 (found under 'kinetics: precipitates')
5. R_MEAN$CEMENTITE_P0 (found under 'kinetics: precipitates')

Label the y-axes as follows

1. 'f<sub>CEM</sub>' (fCEM)
2. 'x<sub>Cr</sub>' (xCr)
3. 'x<sub>BCC_A2, C</sub>' (xBCC_A2, C)
4. 'N<sub>ppt</sub>[m<sup>-3</sup>]' (Nppt[m-3])
5. 'R<sub>mean</sub> [m]' (Rmean [m]); y-axis set to 'log'

Save the workspace.

CALCULATION

Select 'Calc > precipitate kinetics'. Enter the finish time of the calculation: '3.6e13' s (= 1e10
hours). The isothermal treatment temperature should be set to '600' and 'Temperature in C'
selected. Leave the other settings as they are, and click on "Go". (The calculation may take
some time, especially on slower machines, because of the long treatment time.)
After the calculation has finished, duplicate and lock all the series in the plot window. Return
to 'Global > Phase status' and set the nucleation model for CEMENTITE_P0 to 'ortho-
equilibrium' and re-open 'Calc > precipitation kinetics'. There is no need to change anything;
simply click on 'Go'. A warning appears that the contents of the current buffer will be
overwritten. As the series have been locked, this does not matter; accept the warning with
"Yes".

INTERPRETATION OF RESULTS

The onset of precipitation occurs much earlier in the para-equilibrium case, beginning around
1e-7 hours (~ 1e-3 seconds), as compared to ~1 hour for ortho-equilibrium. The para-
equilibrium cementite fraction reaches a plateau at a smaller value than for the ortho-
equilibrium case, but after a longer time at temperature, this fraction rises, eventually
reaching the same value as for ortho-equilibrium.

160
Tutorial 15

The para-equilibrium model stipulates that the Cr content of the nuclei (XNUCL,CEM, Para) be
equal to that of the matrix. This decreases towards longer times at temperature, as the matrix
becomes depleted in Cr. This depletion is caused by the Cr-enrichment of the precipitates by
diffusion; their Cr content (XCEM, Para) increases up to the equilibrium value of around 0.69
(mol. fr.).
In the ortho-equilibrium case, the cementite nucleates with its equilibrium Cr content, and
there is little or no change in the Cr content of the precipitates during the heat-treatment. It
is this requirement for full equilibrium which accounts for the long incubation time for
cementite when the ortho-equilibrium model is used; the formation of a critical nucleus with
ortho-equilibrium composition requires the (slower) diffusion of Cr.

In the plot of X$BCC_A2$C (the carbon content of the BCC matrix), it can be seen that the
depletion of the matrix in carbon exactly follows the increase in precipitate fraction for both
models.

161
Tutorial 15

The plot of the number of cementite precipitates shows that in the ortho-equilibrium case,
nucleation occurs at a later stage and the precipitates are less numerous.

Coarsening of the precipitates is more rapid in the para-equilibrium case, as can be seen from
the plot below:

162
Tutorial 15

The use of the para-equilibrium nucleation model gives better qualitative agreement with
experimental observations of the rapid precipitation of cementite at temperatures such as
600°C in alloy steels. An example in the Examples section, in which this issue is considered in
more detail, will be available shortly.

DIFFUSIVITY IN PRECIPITATES
SETUP

It was seen above that, using the para-equilibrium model, cementite precipitates formed with
a Fe-rich composition and subsequently enriched in Cr. The rate of enrichment depends on
the ease with which chromium can diffuse into existing precipitates.
Duplicate and lock all the series in the plots. Re-open 'Global > Phase status'. In the
'Nucleation' tab, set the cementite nucleation model to back to 'para-equilibrium'. Open the
'Special' tab. In the 'Diffusion in precipitate as ratio from matrix …' section, the selected
value of the 'substitutional' ratio is set to 0.01. This means that the diffusivities of all
elements within the cementite precipitate are considered to be one hundredth of their values
within the matrix. Changing this value will affect the rate of Cr-enrichment of the cementite.
To demonstrate this, change the value of the ratio to '0.25', click on 'OK' and re-run the
simulation.

163
Tutorial 15

INTERPRETATION OF RESULTS

In this case, precipitation occurs at the same rate as in the first para-equilibrium calculation,
but the Cr-enrichment of the precipitates is more rapid. Consequently, the increase in
precipitate phase fraction and the decrease in matrix carbon content occur earlier. It is also
notable that coarsening is delayed and the distribution of more numerous, relatively fine
particles is stabilised to longer times, as shown by the two plots below.

MICROSTRUCTURAL PARAMETERS AND NUCLEATION SITES


SETUP

At this stage, it may be helpful to remove all the series except the original para-equilibrium
calculation results from the plots to avoid them becoming cluttered. (If required, the
numerical data from the series can first be exported in text form using 'Copy data' from the
right-click menu and then pasting these data into a spreadsheet or text editor. Alternatively,
the plots can be exported in graphical form using 'Copy pixmap'.) To remove a series from a
plot, first click on that plot and then select the name of the series in the 'Options' window.
(Failure to do this can result in series from other plots being deleted instead.) Multiple series

164
Tutorial 15

can be selected using the Ctrl button. Remove them using the Delete button or 'Remove
series' from the right-click menu.
Reset the 'consider as ratio from matrix diffusivity' value back to its default value of '0.01' in
the 'Special' tab, keep the nucleus composition model set at 'para-equilibrium' and click 'OK'
to save the changes. Open 'Global > Precipitation domains' > 'General'. It contains a few data
on the microstructure like dislocation density or grain diameter. The default values for each of
the structural parameters are shown in the image below.

The nucleation sites for CEMENTITE_P0 have been set to 'Dislocations' (see the section
'Setting_up_the_simulation' of this tutorial) so the dislocation density will determine the
number of nucleation sites. The default dislocation density, which has been used so far, is
1e12, which is typical of an annealed structure. Change this value to '1e14' and re-run the
simulation.
The following images show the phase fraction, the number of precipitates (note the log scale)
and the mean radius for dislocation densities of 1e12, 1e14 and 1e16. It can be seen that
increasing the nucleation site density accelerates the reaction kinetics and results in a larger
number of precipitates with a smaller mean radius.

165
Tutorial 15

TO FINISH...
Save the workspace file.

166
Tutorial 16

T16: EFFECT OF MICROSTRUCTURE AND CONDITIONS (PART 2)

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb; mc_fe.ddb

CONTENTS

• Simultaneous precipitation of two phases


• Effect of dislocation density
• Effect of grain diameter
• Subgrains and elongation factors

167
Tutorial 16

BEFORE STARTING...
Re-open the workspace saved from Tutorial 15 and save it under a new name.

SIMULTANEOUS PRECIPITATION OF CEMENTITE AND M23C6


SETUP

Open 'Global > Phase status' and create a precipitate phase from M23C6. In the 'Nucleation'
tab, set the nucleus composition model to 'ortho-equilibrium'. Set the nucleation sites to
'Grain boundaries' in the 'Nucl. sites' tab.

In 'Global > Precipitation domains > General', reset the dislocation density to its default value
of '1e12' m-2. The default grain diameter is '100e-6' m, and it is this which governs the density
of M23C6_P0 nucleation sites. Modify the existing five plots to contain the following series:

1. F$CEMENTITE_P0, F$M23C6_P0 (fraction of cementite and M23C6 precipitated,


respectively)

168
Tutorial 16

2. XPR$CEMENTITE_P0$CR, X$BCC_A2$CR (Cr content of cementite precipitates and


matrix, respectively)
3. X$BCC_A2$C (C content of matrix)
4. NUM_PREC$CEMENTITE_P0, NUM_PREC$M23C6_P0 (number of cementite and
M23C6 precipitates, respectively)
5. R_MEAN$CEMENTITE_P0, R_MEAN$M23C6_P0 (mean radius of cementite and
M23C6 precipitates, respectively)

Run the kinetic simulation, with an isothermal heat treatment at 600°C as before, and an end
time of 3.6e+10 s.

INTERPRETATION OF RESULTS

Plot 1: Cementite appears rapidly and reaches a steady-state precipitate fraction. M23C6 starts
to form after around 1 hour at 600°C; this is at the expense of cementite, which redissolves.
By the end of the simulation, all the cementite has dissolved and M23C6 has reached its
equilibrium phase fraction.

Plot 2: This shows that cementite enrichment has started in the time of the cementite
dissolution.

169
Tutorial 16

Plot 3: The depletion of the matrix in carbon occurs in two stages. The first of these
corresponds to the formation of cementite, and the second to the formation of M23C6.

Plot 4: The number of M23C6 precipitates is lower than the one cementite precipitates which is
due to the lower amount of the nucleation sites - there are less sites on the grain boundaries
than on the dislocations. The reduction in the number of cementite precipitates is both due to
the coarsening and the phase dissolution stages:

170
Tutorial 16

Plot 5: There is an intermediate stage between the growth and coarsening phases for the
cementite precipitates (plateau between 10-6 - 10-3 hours). The maximal size of the cementite
precipitates is in the micrometer range.

Plot 5: There is an intermediate stage between the growth and coarsening phases for the
cementite precipitates (plateau between 10-6 - 10-3 hours). The maximal size of the cementite
precipitates is in the micrometer range.

171
Tutorial 16

EFFECT OF DISLOCATION DENSITY


Duplicate and lock the series and re-run the simulation with a dislocation density of 1e14 m-2,
leaving the grain size the same.

RESULTS:

The onset of cementite precipitation occurs earlier with a higher dislocation density, but the
kinetics of cementite dissolution and of M23C6 precipitation are unchanged. The plot below
shows a significant increase (note log scale) in the number of cementite precipitates formed.

172
Tutorial 16

With a higher dislocation density, the cementite particles do not become so large during the
growth stage. However, coarsening begins earlier, and the curve of radius versus time for the
coarsening precipitates eventually becomes parallel with that for the lower dislocation
density.

EFFECT OF GRAIN DIAMETER


Reopen 'Global > Precipitation domains > General'. Reset the dislocation density to 1e12 m-2,
set the grain diameter to 10e-6 m and re-run the simulation.

173
Tutorial 16

RESULTS:

As might be expected, reducing the grain diameter accelerates the precipitation kinetics of
M23C6, by providing more nucleation sites. It also accelerates the dissolution of cementite,
which begins to dissolve when M23C6 starts to precipitate.

The plot below shows the effect on the number of M23C6 of reducing the grain size from 10-4
to 10-5 m. The number of M23C6 increased due to more nucleation sites available.

174
Tutorial 16

In the plot of radius against time, the maximum cementite radius attained is reduced,
because there is less time available for coarsening of this phase before dissolution sets in.

175
Tutorial 17

T17: COMPLEX MULTI-STAGE HEAT TREATMENTS

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb; mc_fe.ddb

In this tutorial, we simulate the precipitation of NbC in the solid state during the continuous
casting of steel and the subsequent austenitization treatment. The austenite / ferrite
transformations of the matrix phases are taken into account. The continuous casting
simulation starts at 1400°C with linear cooling to room temperature. The austenitization
treatment is carried out at 1100°C for 2 hours. Heating and cooling rates are assumed to be 1
K/s. Furthermore, we assume that precipitation of NbC occurs only at austenite grain
boundaries in the austenite during continuous casting. After transformation to ferrite, we
assume that precipitation occurs at grain boundaries and dislocations.

CONTENTS

• Definition of complex heat treatments


• The heat treatment editor
• Multiple precipitation domains / matrix phase transformations

176
Tutorial 17

SETTING UP GUI, THERMODYNAMICS, PRECIPITATES AND PRECIPITATION


DOMAINS
SETUP CALCULATION

Create a workspace with the elements Fe, Nb and C and the phases BCC_A2 and FCC_A1.
Enter the composition 0.1 wt.% C, 0.7 wt.% Nb. Create a precipitation domain named
'austenite' with the phase FCC_A1 as its matrix, and a precipitation domain named 'ferrite'
with the phase BCC_A2 as its matrix. Create a precipitate phase FCC_A1#01_P0. Leave all the
other settings at their default values. Read in the mobility data.

SETUP GUI

In order to follow the precipitation kinetics simulation results, usually the plots for phase
fraction, precipitation number density and mean radius are in the scope of interest. In cases
of complex heat-treatments, a plot of the system temperature during the process time is also
needed. Of course, these plots can be prepared manually by user, as done in the previous
tutorials. However, due to the frequent need for these 4 plots, an automatic script preparing
those is included in MatCalc. In order to use it, go to 'View' > 'Create new window' and
switch to the 'user-defined' tab. Click on '03_kinetics_4_frames_T_f_n_r_logX' to open a
window with those four plots already set.

Use a default x-axis and set the axis type to 'log'. Scale from '10..'. The axis title is 'time / s'.

177
Tutorial 17

DEFINITION OF THE HEAT TREATMENT


Open 'Global > Thermo-mech. treatments …'. This dialog represents a very useful editor for
definition of complex process treatments by a sequence of linear segments.

Firstly, create a new treatment by clicking 'New …' with the name 'sample_ht'.
Since the present steel will transform from austenite to ferrite during the cooling process, we
start with setting up a linear cooling segment from 1400°C to transformation temperature
with a cooling rate of 1 K/s. Let us assume that this transformation occurs instantaneously at
600°C. Create a new segment with the button 'New segment'. Double-click the new line in
the 'Data…' list box or highlight the line and press 'Edit'. In the following dialog, you can
define the properties of the heat treatment segment. First of all, enter 'Start temperature'
1400°C. Then, in the temperature definition mode combo box, you can select which data you
want to provide to define the segment. Since we want to cool to RT and know the cooling
rate, we select 'End temperature & Heat/Cooling rate'. 'End temperature' is 600°C and
'Cooling rate' is -1.
The next important setting is the definition of the number of states to store during the
calculation. By default, each segment stores 25 states with linear interval distances.
Optionally, you can select logarithmic. Remain with the default settings.
Finally, select the precipitation domain for the segment, in our case 'austenite'. The dialog
should now appear like this:

178
Tutorial 17

To set up the next segment, press the button. Choose 'Yes' in the dialog asking about the
creation of a new segment. The start temperature for each following segment is automatically
set to the end temperature of the previous segment, that is 600°C. Enter the new end
temperature (25°C) and select ferrite for the precipitation domain. The second segment
should look like this:

179
Tutorial 17

Continue to define the rest of the segments:

1. Segment from RT to 850°C with 1 K/s heating rate. Since the precipitation domain
does not change, select the 'inherit from previous segment' radio button. We assume
that the ferrite to austenite transformation occurs at 850°C.
2. Next segment from 850°C to 1100°C, however, with austenite as the precipitation
domain (heating rate 1 K/s).
3. an isothermal segment for two hours at 1100 °C. This time, the temperature definition
mode is 'Heat/Cooling Rate & Delta-Time'. Heat/Cooling rate 0°C/s and 'Delta-time' is
7200 s (you can enter 2*60*60 as well).
4. Define a cooling segment down to 600°C in austenite matrix (cooling rate 1 K/s).
5. Finish with a segment from 600°C to RT having ferrite as a matrix (cooling rate 1 K/s).

180
Tutorial 17

If you have finished entering the segments, the entire heat treatment should look like this:

The last thing that we have to take care of is the changing nucleation sites for the NbC
precipitates. According to our problem, we want to simulate NbC precipitation during cooling
from continuous casting along the austenite grain boundaries. For all other parts of the heat
treatment, we want to allow precipitation at grain boundaries and dislocations
simultaneously.
This issue can be solved easily with the use of scripting commands that can be entered at the
beginning and end of each of the heat treatment segments. Edit the first segment by double
clicking it in the list. In the edit field for the pre-segment script, enter the command just as if
you would do in the MatCalc console:
set-precipitation-parameter fcc_a1#01_p0 n s g

181
Tutorial 17

This command defines the (n)ucleation (s)ites of the NbC to be at (g)rain boundaries. Since
only grain boundaries are selected, please note that MatCalc will then use the diffusion
geometry for grain boundary precipitates, which has been introduced MatCalc version 5.14.
The following images show the two different diffusion geometries of MatCalc:

Since we want to continue with different nucleation sites after the first cooling segment, we
define a post-segment script for the first segment reading
182
Tutorial 17

set-precipitation-parameter fcc_a1#01_p0 n s dg

This command will define (d)islocations AND (g)rain boundaries as nucleation sites. MatCalc
will then automatically use the spherical diffusion geometry again as shown in the left image.

Click 'OK' to go the heat treatment editor. The existence of pre-segment and post-segment
scripts is indicated by the letter 'Y' in the heat treatment editor.
Again, click 'OK' and Save your file ('Tutorial_17.mcw').

PERFORM SIMULATION
Start the precipitation simulation with 'Calc > Precipitate kinetics …'. In this dialog, the most
important setting is the 'temperature control' selection. Select 'from heat treatment' and
'sample_ht'. It is not necessary to enter/modify the simulation end time because MatCalc will
automatically stop when reaching the end of the heat treatment segments.

183
Tutorial 17

Start the precipitation simulation with the 'Go' button.


After reaching the end of the heat treatment, the results look like follows (phase fraction is
shown in logarithmic scale):

184
Tutorial 17

185
Tutorial 17

The temperature plot on top shows the expected profile. The next plot with the NbC phase
fraction shows a strong increase of the phase fraction at around 80s, where the specimen ia
at ~1300°C on heating. Next, the phase fraction increases when the ferrite region is entered
which is due to the lower solubuility of NbC in ferrite compared to austenite. The next
increase is observed in ferrite domain when the specimen is heated from room temperature.
Later, during austenitization, the phase fraction is decreased slightly (beeter seen with the
linear scale for phase fraction) because the solubility of the Nb and C is increased. The phase
fraction remains almost constant during the rest of the process.
When looking at the plots for the mean radius and the number density of the NbC
precipitates, interpretation of the results is more difficult. First, nucleation starts and
proceeds until ~100 s. The nucleation stops because there are no more available nucleation
sites at the grain boundary. Up to approximately 800 s, the existing NbC precipitates only
grow. After switching to ferrite and adding dislocations as additional nucleation sites, the
number density quickly increases in a burst of nucleation events. At the same time, the mean
radius drops drastically, which is at first sight unexpected. However, since the plot displays
the mean radius of the precipitate population, generation of a large number of new and small
precipitates will decrease the mean value to the value of the highest number of precipitates.
Later, in two more steps, the radius increases again due to growth as well as dissolution of a
part of the small precipitates generated in the second nucleation burst.
Apparently, interpretation of this kind of simulation suffers from the fact that two different
kind of precipitate populations, namely the one on the austenite grain boundaries and the
other on the dislocations are treated as one. In the following section, a method of separation
of populations is used that can be very useful in complex simulations.

186
Tutorial 17

SIMULATION WITH SEPARATION OF PRECIPITATE POPULATIONS


On many occasions, it can be useful to separate populations of one and the same precipitate
type to facilitate interpretation of the results. For the present example, this is easily done by
introduction of an additional precipitate phase FCC_A1#01_P1. Create an additional
precipitate based on the FCC_A1#01 parent phase in the 'phase status ….' dialog. Highlight
the FCC_A1#01 phase and press 'Create …' for a new precipitate phase.

Note that the suffix '_P1' of the new phase indicates that the precipitate is identical to the
'_P0' in terms of its nucleus composition, however, it contains precipitate classes that can
have appeared at different stages of the heat treatment.
Let us now set up the simulation such that the _P0 phase can only nucleate in the first
segment of the heat treatment, that is cooling in the austenite, while the '_P1' population is
not allowed to form. This can be done by defining 'nucleation sites' as 'none'. For all
consecutive segments, nucleation of further '_P0' precipitates will be suppressed while the
'_P1' population can nucleate at grain boundaries and dislocations. Make the following
changes to the pre-segment and post-segment scripts of the first segment in the heat
treatment editor:

187
Tutorial 17

Run the simulation again and modify the plots (add the series relevant for the FCC_A1#01_P1
phase) to display the properties of both precipitate populations. The result should look like
this:

188
Tutorial 17

189
Tutorial 17

Major advantage of simulations with separated precipitate populations is the ease of


interpretation of the results. The second simulation clearly shows that the precipitates that
are formed during cooling in the austenite grow to large size and remain almost unaltered
during the later stages of the heat treatment. On the other hand, their phase fraction and
number density is low, which indicates that their contribution to mechanical properties in
terms of precipitation strengthening will be negligible. The second population appears in high
number density and with small radius of approximately 10 nm. Moreover, the phase fraction
is high, indicating a strong potential for material strengthening of this second wave of NbC
precipitates.

RESTRICTING PRECIPITATE NUCLEATION TO THE SELECTED PRECIPITATE


DOMAIN
The difference between the FCC_A1#01_P0 and FCC_A1#01_P1 precipitate phases lies in their
nucleation sites. FCC_A1#01_P0 represents the precipitate formed on the austenite grain
boundaries during the continuous cooling, while FCC_A1#01_P1 represents the precipitate
formed mainly in the ferrite region on both the dislocations and the grain boundaries. As the
switch between the two precipitate phases coincides with the switch of the precipitation
domains, an alternative implementation of the two phases population is possible, where each
preciptate phase is restricted to form in the selected precipitation domain only.
Go to 'Global' > 'Phase status' and select 'FCC_A1#01_P0' phase. In the 'Nucleation' tab mark
the 'restrict nucleation to prec domain' field and select 'austenite' in the adjacent drop-box.

190
Tutorial 17

Repeat this for the 'FCC_A1#01_P1' phase, but select 'ferrite' as the precipitation domain.
Next, have a look on the nucleation sites of those phases. The content of the tab represents
the final state of the last simulation. Hence, the dislocations and the grain boundaries are
selected for the '_P1'-phase, but no nucleation sites are selected for the '_P0'-phase. Again,
select 'grain boundary' as nucleation sites for the 'FCC_A1#01_P0' phase.

191
Tutorial 17

With these settings, the pre- and post-scripts are not needed anymore. To remove those, go
to the 'Global' > 'Heat treatments' and click on the very first segment in the 'Data…' list box.
In the segment editor dialog, click on the 'Clear' button below the content of the post-
segment script. Select the 'Pre-Segment Script' tab and click on the 'Clear' button again. Close
the heat treatment editor.

Duplicate and lock all series and start the simulation. The results look virtually identical with
the previous simulation.

192
Tutorial 18

T18: PLOTTING A TTP DIAGRAM

This tutorial was tested on


MatCalc version 6.00 rel 0.100
license: free
database: mc_fe.tdb; ; mc_fe.ddb

CONTENTS

• Calculating a TTP diagram for isothermal treatments


• Calculating a TTP diagram for continuous cooling
• Plotting the diagram
• Display options: absolute, relative or relative to maximum phase fraction

A time-temperature-precipitation diagram is a plot consisting of contours characterising the


extent of a precipitation reaction on axes of temperature versus time. In this tutorial, a TTP
diagram will be calculated for the precipitation of NbC in the austenite single-phase region.

193
Tutorial 18

SETTING UP THE SYSTEM


Create a workspace with the elements Fe, Nb and C and the phases BCC_A2 and FCC_A1.
Enter the composition 0.1 wt.% C, 0.7 wt.% Nb. Firstly, it is necessary to determine the extent
of the austenite single-phase region in which the TTP diagram is to be calculated. To do this,
first calculate an equilibrium at 1000°C and then search for the BCC_A2 phase boundary
(referring to Tutorial 7 if necessary). This gives a temperature of 905.24°C for the zero-phase-
fraction boundary of BCC_A2. This is the upper boundary of the low-temperature 'alpha' form
of ferrite. Next, calculate another equilibrium at 1200°C and repeat the procedure. This time,
the temperature value found is 1397.68°C, which is the lower boundary of the high-
temperature 'delta'-ferrite. Between these two limits, the only stable matrix phase is
austenite (FCC_A1). Perform a stepped equilibrium calculation between 900°C and 1400°C
with 10°C step and plot the phase fraction of FCC_A1#01 phase depending on the
temperature.
Create a precipitation domain named 'austenite' with the phase FCC_A1 as its matrix, and a
precipitate phase FCC_A1#01_P0. Its precipitation sites should be dislocations. Leave all the
other settings at their default values. Read in the mobility data.

TTP DIAGRAMS FOR ISOTHERMAL HEAT TREATMENTS


CALCULATIONS OF PHASE FRACTION FOR ISOTHERMAL TREATMENTS

The plot below, obtained using a stepped equilibrium calculation, shows the equilibrium
phase fraction of NbC between 900 and 1400°C:

194
Tutorial 18

The plot below illustrates the origin of the typical C-shaped curves of TTP plots. It was
obtained using 'Calc > Precipitation kinetics' to simulate an isothermal heat treatment at
925°C, plotting the series F$FCC_A1#01_P0 on a logarithmic x-axis, then duplicating and
locking this series before making further calculations in the same way at a selection of other
temperatures. At each value of temperature, the phase fraction of NbC increases with time
before reaching a plateau when the equilibrium phase fraction of NbC at that temperature is
attained. It can be seen that, between 1100 and 1200°C, the rate of reaction first increases
(characterised by a shift of the curve towards the left), goes through a maximum, then
decreases again. TTP diagrams plot the time taken to reach a particular point in a reaction at
different temperature values. It can be seen from the plot below that if, for example, the time
taken to reach 90% of the plateau value were plotted for each temperature on axes of
temperature versus time, the resulting curve would be C-shaped. The TTP diagram calculation
function of MatCalc allows automatic calculation of curves of this type.

AUTOMATIC CALCULATION OF TTP DIAGRAMS

Open 'Calc > TTP-diagram' and enter '1375' as the start temperature and '925' as the stop
temperature. The end time should be sufficient for the phase fraction to reach a plateau at all
temperatures under consideration. (This can be verified by creating an XY-plot of
F$FCC_A1#01_P0 versus time and monitoring this during the TTP diagram calculation.)
In the 'Calculation method' area, select 'isothermal' and enter a value of 25 for 'delta T'.
Calculations will now be performed every 25 degrees between 1425 and 925°C.
Note: The calculation in the whole range may take more than 30 minutes (depending on your
195
Tutorial 18

PC capacity). In case you would not spend so much time on this tutorial constrain the
temperature range (e.g. 925°C - 1225°C)

PLOTTING THE RESULTS

When the calculation has finished, create a new window of type '(p6) Plot: TTP-diagram'. In
the 'options' window, expand the 'plots' section and right-click in the area under 'plot#0' to
show the context menu. Select 'new series' and choose 'ttp-curve' from the sub-menu on the
right. Next, it is necessary to decide on the type of TTP contours required. The three options
are:

• Absolute: the contours correspond to different values of the phase fraction


F$FCC_A1#01_P0.
• Relative: a contour with a value of 'x' for a particular temperature denotes the time at
which the ratio of F$FCC_A1#01_P0 to its maximum value at that temperature is equal
to 'x'. The maximum values of F$FCC_A1#01_P0 are approximately equal to the
equilibrium phase fractions F$FCC_A1#01 shown above.
• Relative max f: in this case, contour values represent ratios of F$FCC_A1#01_P0 to its
maximum value overall. These contours have a similar form to the 'absolute' contours,
but different numerical values.

Select 'relative' from the 'refer to f' drop-box at the top of the 'options' window. Then
expand the 'series' section of 'options', which should look as shown in the image below.
Select the phase FCC_A1#01_P0 from the 'phase' drop-box and enter '0.05' into the 'y-data'
line.
196
Tutorial 18

Add two more series to show the contours for ratios of 0.5 and 0.95 on the same diagram.
The resulting diagram should look like this:

The following two plots are examples of the other types of TTP diagram. (TIP - to create more
than one type of TTP diagram in the same plot window, lock all the series in the first diagram,
then change the diagram type in the 'refer to f' drop-box to plot the next diagram.)

ABSOLUTE

In the plot below, the contours correspond to different values of the phase fraction
F$FCC_A1#01_P0. Note that the higher values are only attained at lower temperatures,
because the equilibrium value of F$FCC_A1#01 decreases with increasing temperature. The
maximum value of F$FCC_A1#01_P0 is around 7.8e-3.

197
Tutorial 18

RELATIVE MAX F

This diagram has a similar appearance to the 'absolute' diagram above, but the contours now
represent different ratios of F$FCC_A1#01_P0 to its maximum value.

198
Tutorial 19

T19: SCRIPTING PRECIPITATION CALCULATIONS

This tutorial was tested on


MatCalc version 6.00 rel 0.051
license: free
database: mc_fe.tdb, mc_fe.ddb

The use of scripting to help ensure repeatability of calculations and to simplify repetitive
operations has been introduced for the equilibrium calculations Tutorial 13. The present
tutorial describes how scripting can be used for precipitation calculations.

CONTENTS
• Setting up precipitation domains
• Setting up precipitate phases
• Scripting a complex heat-treatment
• Modifying precipiation parameters during heat-treatment
• Plotting using scripts

The example used here uses the already familiar Fe-Nb-C system and considers a heat-
treatment of an initially well-annealed ferritic microstructure with no primary precipitates.
Cementite is initially allowed to nucleate on dislocations, and NbC on grain boundaries. The
microstructure is heated into the austenite phase stability region, held isothermally and then
cooled quickly (quenched). On quenching, a martensitic transformation occurs. This is
modelled in MatCalc by a modification of the ferrite precipitation domain to increase the
dislocation density as well as the addition of subgrains as possible nucleation sites for the NbC
phase. The system is then subjected to a tempering heat treatment consisting of heating,
isothermal hold and cooling stages.

199
Tutorial 19

SETTING UP THE SYSTEM AND THERMODYNAMICS


Start the script by with two lines to make sure the right module (the core module) is used,
and to create a new workspace:

use-module core

new-workspace $ creates a new workspace

The following code can be used to check that the correct version of MatCalc is being used.
This is useful when scripts rely on functionality that is only available in newer versions of the
software. The code send-dialog-string sends a message to the user in the form of a
dialogue box, and stop-run-script prevents any further commands from being
executed.

if (matcalc_version<6000000)

send-dialog-string "MatCalc version must be 6.00.0000 or higher to run this


script. Stopping."

stop-run-script

endif

Scripts should be well commented to ensure that they can be easily understood later.
See Tutorial 13 for a reminder of how comments are inserted.

Some information on the physical situation to be modelled and the assumptions made can be
inserted into the MatCalc workspace for future reference.

@$************************************

$ enter workspace info

@$************************************

@ set-workspace-info Script T19

@ set-workspace-info +Calculation of precipitation

@ set-workspace-info +in Fe-0.1C-0,7Nb wt.% system

@ set-workspace-info +during a complex heat treatment

@ set-workspace-info +with phases BCC_A2, FCC_A1 and CEMENTITE.

The thermodynamic setup is then carried out. Firstly, the database is chosen and the
selements and phases are selected. The database is then read.

200
Tutorial 19

open-thermodyn-database mc_fe.tdb

select-elements FE C NB VA

select-phases BCC_A2 FCC_A1 CEMENTITE

read-thermodyn-database

The composition is entered:

set-reference-element FE

enter-composition WP C=0.1 NB=0.7

and an equilibrium is calculated, after setting automatic start values.

set-temperature-celsius 1000

set-automatic-startvalues

calculate-equilibrium

SETTING UP THE PRECIPITATION DOMAINS


We proceed by creating the precipitation domains. The calculation involves heat-treatment in
both ferrite (BCC_A2) and austenite (FCC_A1) phase stability regions, so we start by creating
these two domains.

create-precipitation-domain ferrite

create-precipitation-domain austenite

We must then tell MatCalc with which matrix phases to associate these domains:

set-precipitation-parameter ferrite X BCC_A2

set-precipitation-parameter austenite X FCC_A1

Structural parameters are then defined for ferrite (note comments describing the meanings of
the commands):

$ In S[t]ructure, [e]quilibrium)[d]islocation density set to 1e12

set-precipitation-parameter ferrite T D E 1e12

$ In S[t]ructure, [g]rain diameter set to 100e-6

set-precipitation-parameter ferrite T G 100e-6

201
Tutorial 19

$ In S[t]ructure, [s]ubgrain diameter is set to 10e-6

set-precipitation-parameter ferrite T S 10e-6

$ In S[t]ructure, subgrain el[o]ngation factor set to 10

set-precipitation-parameter ferrite T O 10

and for austenite. Note that for ferrite, parameters characterising the subgrains are included
because subgrain boundaries will be used as nucleation sites later in the calculation. In
austenite, this is not the case so the parameters for this domain are not relevant and need
not be set.

$ In S[t]ructure, [e]quilibrium)[d]islocation density set to 1e12

set-precipitation-parameter austenite T D E 1e12

$ In S[t]ructure, [g]rain size section, the grain diameter is set to 100e-6

set-precipitation-parameter austenite T G 100e-6

SETTING UP THE PRECIPITATE PHASES


The next stage in the script is to set up the precipitates. Firstly, we need to create precipitate
phases from the equilibrium phases.

create-new-phase CEMENTITE P

create-new-phase FCC_A1#01 P

Note that this latter phase is derived from the second FCC_A1 phase, FCC_A1#01, which is
automatically generated by MatCalc, based on a command in the database, as a result of the
presence of the MX carbonitride former, Nb, in the system.

The precipitate phase are initialised with 100 size classes each.

set-precipitation-parameter CEMENTITE_P0 C 100

set-precipitation-parameter FCC_A1#01_P0 C 100

Then the nucleation sites are defined:

$ In the [n]ucleation section, the nucleation [s]ites are set to [d]islocations

set-precipitation-parameter CEMENTITE_P0 N S D

$ [G]rain boundaries are [n]ucleation [s]ites for NbC precipitate

202
Tutorial 19

set-precipitation-parameter FCC_A1#01_P0 N S G

The nucleus composition of the iron-rich cementite precipitate phase is set to para-
equilibrium, and that of NbC is set to ortho-equilibrium.

$ In the [n]ucleation section, the nucleus [c]omposition is set to [p]ara-


composition

set-precipitation-parameter CEMENTITE_P0 N C P

$ [O]rtho-[c]omposition for the NbC precipitate [n]uclei

set-precipitation-parameter FCC_A1#01_P0 N C O

Finally, the mobility database is read in:

read-mobility-database mc_fe.ddb

HEAT-TREATMENT
For an isothermal precipitation simulation, we would now simply need to set the temperature
and time and start the simulation. This procedure is described briefly below. However, we will
here instead look at how to use a script to create a heat-treatment.

The heat-treatment consists of two sections:

An austenitisation and quenching treatment consisting of:

• heating from room temperature to the austenitisation temperature; since this heating
step involves a phase transformation from ferrite to austenite, this must be specified
in two stages - heating up to the transformation temperature with a ferrite
precipitation domain, and then heating from the transformation temperature with an
austenite precipitation domain.
• an isothermal hold at the austenitisation temperature

quenching to room temperature; again, this is separated into two stages, the first of which
has an austenite precipitation domain, and the second, a ferrite precipitation domain.

• A tempering treatment consisting of:


• heating from room temperature to the tempering temperature
• an isothermal hold at the tempering temperature
• cooling to room temperature

203
Tutorial 19

The tempering treatment is carried out entirely in the ferrite phase stability region, so no
change of precipitation domain is necessary.

Start by creating a heat treatment sequence called sample_ht.

create-heat-treatment sample_ht

Heat- or thermomechanical treatments can consist of different types of segments. In this


tutorial, we will use two of these:

• Type 1: this consists of an end temperature and a heating/cooling rate (use a negative
sign to specify cooling)
• Type 3: this consists of an end temperature and a time.

We saw in Tutorial 6 that it is possible to define our own variables. Here, we use this
functionality to define a very general script consisting of an austenitisation and a tempering
step.

set-variable-value f_a_temp 850 $ferrite-> austenite transformation temp. in C

set-variable-value a_f_temp 600 $austenite-> ferrite transformation temp. in C

set-variable-value aus_temp 1100 $austenitisation temp. in C

set-variable-value temp_temp 600 $tempering temp. in C

set-variable-value rate_heat_to_aus 1 $rate of heating to aus_temp in K/s

set-variable-value rate_cool_from_aus -10 $rate of cooling from aus_temp in K/s

set-variable-value rate_heat_to_temp 1 $rate of heating to temp_temp in K/s

set-variable-value rate_cool_from_temp -1 $rate of cooling from temp_temp in K/s

set-variable-value aus_time 3600 $austenitisation time in seconds

set-variable-value temp_time 7200 $tempering time in seconds

AUSTENITISATION AND QUENCHING TREATMENT

Start by adding the first segment, using the command

append-ht-segment sample_ht

Then specify the [s]tart temperature. The notation [.] means the current segment. It is also
possible to refer to the segments by number.

204
Tutorial 19

edit-ht-segment sample_ht . S 20

This first segment consists of heating, at a rate rate_heat_to_aus up to the


temperature f_a_temp at which the ferrite-austenite phase transformation takes place.

The parameters for the segment are thus set; the parameter set no.[1] is chosen with end
temperature f_a_temp and heating rate rate_heat_to_aus K/s.

edit-ht-segment sample_ht . 1 f_a_temp rate_heat_to_aus

The precipitation [d]omain associated with this segment must now be set, as it is [n]ot
inherited from any previous

edit-ht-segment sample_ht . D N ferrite

We then append a new segment to accommodate the remainder of the heating ramp to the
austenitisation temperature.

append-ht-segment sample_ht

This new segment now becomes the current segment, so we can modify its parameters using
the [.] notation. Again, the parameter set [1] is chosen with end temperature aus_temp and
the same heating rate, rate_heat_to_aus, as before.

edit-ht-segment sample_ht . 1 aus_temp rate_heat_to_aus

We also need to change the precipitation [d]omain, so that it is [n]ot inherited from the
previous segment but is instead set to austenite:

edit-ht-segment sample_ht . D N austenite

The next stage is the isothermal hold. Add a new segment.

append-ht-segment sample_ht

The isothermal hold is specified using parameter set type [3], with end temperature
aus_temp and hold time aus_time.

edit-ht-segment sample_ht . 3 aus_temp aus_time

The precipitation domain (austenite) is inhterited from the previous segment.

edit-ht-segment sample_ht . D Y

205
Tutorial 19

We next add two segments for cooling down from the austenitisation domain to room
temperature. Add a new segment for the austenite domain part. Set the segment type to [1]
and set the end temperature to the austenite-ferrite transformation
temperature a_f_temp and the cooling rate to rate_cool_from_aus. Set the segment
to inherit the precipitation domain (austenite).

append-ht-segment sample_ht

edit-ht-segment sample_ht . 1 a_f_temp rate_cool_from_aus

edit-ht-segment sample_ht . D Y

Add a further new segment for the ferrite domain part. In this case, we again use type [1]
and, this time, set the end temperature to 20 and the cooling rate, as before,
to rate_cool_from_aus. This time, the precipitation domain is not inherited, but is instead set
to ferrite.

append-ht-segment sample_ht

edit-ht-segment sample_ht . 1 20 rate_cool_from_aus

edit-ht-segment sample_ht . D N ferrite

In addition, since this ferrite is now quenched martensite, we make some modifications to the
properties of the precipitation domain. As we saw in Tutorial 17, pre- and post-segment
scripts can be appended to segments of a thermomechanical treatment. The syntax for these
scripts is illustrated by the following line of code, which sets the equilibrium dislocation
density in the ferrite domain to 1e14:

edit-ht-segment sample_ht . O +set-precipitation-parameter ferrite T D E 1e14

The O here indicates a p[o]st-segment script; a p[r]e-segment script is instead indicated by the
letter R in place of the O. The +-sign means that the following piece of script is added to any
existing commands. An existing command can be removed by prepending a --sign.

Similarly, in the following line, the [n]ucleation [s]ites of FCC_A1#01_P0 are set to include
[s]ubgrains as well as [g]rains.

edit-ht-segment sample_ht . O +set-precipitation-parameter FCC_A1#01_P0 N S GS

206
Tutorial 19

TEMPERING TREATMENT

The structure of the tempering treatment is similar to that of the austenitisation treatment,
but somewhat simpler, since no phase transformation needs to be considered.

The first part of this treatment is a heating segment with an end temperature of temp_temp
and a heating rate of rate_heat_to_temp. The precipitation domain is inherited from the
previous segment.

append-ht-segment sample_ht

edit-ht-segment sample_ht . 1 temp_temp rate_heat_to_temp

edit-ht-segment sample_ht . D Y

This is followed by an isothermal hold for temp_time at the tempering


temperature temp_temp; the precipitation domain is inherited:

append-ht-segment sample_ht

edit-ht-segment sample_ht . 3 temp_temp temp_time

edit-ht-segment sample_ht . D Y

Finally, a cooling segment returns the system to room temperature with a rate
of rate_cool_from_temp. The precipitation domain is once more inherited.

append-ht-segment sample_ht

edit-ht-segment sample_ht . 1 20 rate_cool_from_temp

edit-ht-segment sample_ht . D Y

PLOTS
The final part of the setup before the calculation is run consists of setting up the plots. We
will create four X-Y plots in a single plot window as well as a histogram of precipitate size
distribution for each of the precipitate phases.

Start by creating a GUI window of type p1 (X-Y plot)

new-gui-window p1

Then set up the default x-axis so that it is used for all the plots in this windows, and has the
properties specified below:

207
Tutorial 19

set-gui-window-property . S U Y $ Use default x-axis

set-gui-window-property . S T Time [h] $ Default x-axis title

set-gui-window-property . S Y lin $ Linear scale

set-gui-window-property . S S 1e-10.. $ Scaling limit x-axis

set-gui-window-property . S F 1/3600 $ Multiplication factor s ->


h

The first plot will contain the temperature profile as determined by the heat-treatment. The
y-axis is labeelled accordingly.

set-plot-option . S N B T$C %s $ Temperature in Celsius

set-plot-option . A Y 1 T Temperature [°C] $ y-axis title

The legend box is removed because it is not necessary when only one series is plotted:

set-plot-option . L N

A new plot is then created in the existing plot window [.] using the command:

create-new-plot X .

This is set up to show the phase fractions of the two precipitate phases. The syntax %s here
means that the MatCalc variables are used as-is without any modification. (See Tutorial 5)

set-plot-option . A Y 1 T Phase fraction $ y-axis title

$ New series: fraction of cementite precipitate phase

set-plot-option . S N B F$CEMENTITE_P0 %s

$ New series: fraction of NbC precipitate phase

set-plot-option . S N B F$FCC_A1#01_P0 %s

There are two series in this plot, so we label them. The two series here are referred to by
number. The ordering number corresponds to the order in which they appear in the plot, not
in the plot window, and begins at 0.

set-plot-option . S M 0 Cementite $ Rename series -> "Cementite"

set-plot-option . S M 1 NbC $ Rename series -> "NbC"

A further new plot is created, to plot the number density of precipitates. The series are
renamed; note that the numbering starts at 0 again because we are now in a new plot.
208
Tutorial 19

create-new-plot X .

set-plot-option . A Y 1 T N<sub>ppt</sub> [m<sup>-3</sup>] $ y-axis title

set-plot-option . A Y 1 Y log $ Log scale on y-axis

set-plot-option . S N B NUM_PREC$CEMENTITE_P0 %s

set-plot-option . S N B NUM_PREC$FCC_A1#01_P0 %s

set-plot-option . S M 0 Cementite $ Rename series in plot -> "Cementite"

set-plot-option . S M 1 NbC $ Rename series in plot -> "NbC"

The final of the four plots shows the mean precipitate radius.

create-new-plot X .

$ Plotting the mean radius

set-plot-option . A Y 1 T R<sub>mean</sub> [m] $ y-axis title

set-plot-option . A Y 1 Y log $ Logarithmic scale on y-axis

set-plot-option 4 S N B R_MEAN$CEMENTITE_P0 %s

set-plot-option 4 S N B R_MEAN$FCC_A1#01_P0 %s

set-plot-option 4 S M 0 Cementite $ Rename series in plot -> "Cementite"

set-plot-option 4 S M 1 NbC $ Rename series in plot --> "NbC"

Major gridlines are switched on for both x- and y-axes of all plots. Here the plots are referred
to their number, starting from 1.

set-plot-option 1 G M X Y

set-plot-option 1 G M Y Y

set-plot-option 2 G M X Y

set-plot-option 2 G M Y Y

set-plot-option 3 G M X Y

set-plot-option 3 G M Y Y

set-plot-option 4 G M X Y

set-plot-option 4 G M Y Y

The plots are arranged so that they occupy two columns:

set-gui-window-property . N 2

209
Tutorial 19

A new GUI window of type p5 is created for the first histogram:

new-gui-window p5

The default x-axis is set up, with the scaling factor used to give plotting in nanometres rather
than metres.

set-gui-window-property . S U Y

set-gui-window-property . S T Precipitate radius [nm] $ x-axis title

set-gui-window-property . S F 1e9 $ Multiplication [f]actor

A [n]ew [s]eries showing the [p]recipitate distribution of the “cementite_p0” phase is plotted:

set-plot-option . S N P CEMENTITE_P0

Options controlling the histogram are then set.

set-plot-option . H N 20 $ [n]umber of [h]istogram classes set to 20

set-plot-option . T Cementite precipitate distribution $ plot title

set-plot-option . A Y 1 T Number density of precipitates [m<sup>-3</sup>]

set-plot-option . L N $ [N]o legend box

The second histogram, for NbC precipitates, is set up similarly.

new-gui-window p5

set-gui-window-property . S U Y $ Use default x-axis

set-gui-window-property . S T Precipitate radius [nm] $ x-axis title

set-gui-window-property . S F 1e9 $ Multiplication [f]actor

set-plot-option . S N P FCC_A1#01_P0

set-plot-option . H N 20 $ number of classes

set-plot-option . T NbC precipitate distribution $ plot title

set-plot-option . A Y 1 T Number density of precipitates [m<sup>-3</sup>]

set-plot-option . L N

RUNNING THE CALCULATION


210
Tutorial 19

We first save the workspace setup as it before the calculation. This enables us to easily revert
to this pre-calculation state if necessary.

save-workspace Tutorial_19_setup

An isothermal calculation can be carried out as follows. This can be useful as a preliminary
calculation to check that everything is working.

An end-time for the simulation is first set:

set-simulation-parameter E 7200 $ Simulation end tim[e] in s

Then, the temperature control of the simulation is set to be [I]sothermal and the required
temperature specified.

set-simulation-parameter T I 600

A further line is added to specify that this temperature is in Celsius.

set-simulation-parameter P Y $ Tem[p]erature in Celsius

The calculation can then be executed using:

start-precipitate-simulation

When this has been successfully carried out, the line specifying isothermal temperature
control should be commented out by prepending a dollar sign so that it looks as shown:

$set-simulation-parameter T I 600

The temperature control is instead set to be governed by the [h]eat treatment “sample_ht”
with a maximum temperature step of 10:

set-simulation-parameter T H sample_ht 10

Again, the simulation is started using:

start-precipitate-simulation

When the calculation is over, the workspace can be saved using:

save-workspace Tutorial_19

In addition, we can export whole frames or individual plots:


211
Tutorial 19

export-frame-to-file 2 N frame.png

export-frame-to-file 3 N T19_histo_cementite.png

export-plot-to-file 4 N T19_Rmean

The x-y plot window should look as follows after the calculation:

212
Tutorial 20

T20: SIMULATING GRAIN GROWTH

This tutorial was tested on


MatCalc version 6.00 rel 1.000
license: free
database: mc_fe.tdb; mc_fe.ddb

CONTENTS
 Single-class model for grain growth
 Multi-class model for grain growth
 Grain growth with pinning and solute drag

213
Tutorial 20

SETTING UP THE SYSTEM


From the database mc_fe.tdb, select the element FE and the phase BCC_A2. Read in the
mobility database mc_fe.ddb. Create a precipitation domain named 'ferrite' associated with
the phase BCC_A2.

SINGLE-CLASS GRAIN GROWTH MODEL


We start with the simplest possible scenario for grain growth: a single-phase, pure metal with
no solutes or precipitates present to retard grain growth.

There are two parts to the setting-up of the simulation, both in Precipitation domains. (Note
that a precipitation domain must be set up and configured for the grain growth simulation,
even if no precipitation is taking place.)

In the general tab, specify the Initial grain size. In this example we will leave this at the
default value:

Then, go the the MS Evolution tab and select the Grainstructure sub-tab. By default, the
evolution model for grain size is set to None - no evolution. This is the option that has been
used in all kinetic simulations so far; the grain size, as well as other microstructural
parameters such as dislocation density, has been taken as constant. Instead, set this to Single

214
Tutorial 20

class model (No. (1) in the diagram below). A set of options will appear as shown in the
diagram below. For the single-class model, we are only concerned with the parameters
marked with the number (2).

The model implemented in MatCalc is described in 1). The rate of change of the diameter D of
the grains as a function of time given by:

where M is the mobility of the grain boundaries and Pd and Pr are the driving force and the
retarding pressure on the grain boundaries, respectively.

M is given by an Arrhenius expression:

where M0 is a pre-exponential factor, Q is the activation energy of the mobility, T is the


absolute temperature, and R the gas constant.

The driving force Pd depends on the grain boundary energy γg and the grain diameter D:

215
Tutorial 20

and the retarding force due to pinning by a volume fraction fv of particles with diameter d is
given by:

The terms kd and kr are the constants that appear in the dialogue box above.

Accept these default settings for the present.

Using Calc > precipitation kinetics, set up an isothermal simulation with an end-time of 36000
s and a temperature of 800°C. Click on Go. The simulation will be over very rapidly compared
to precipitation simulations.

Create a plot of type p1. In the variables window, find the section entitled prec domain struct
sc (single class) and expand to show GD$*. Expand this one step further to show GD$ferrite,
and drag this to the plot window. Change the (default x-axis label to read time [h] and modify
the scaling factor to 1/3600. Change the y-axis title to Grain diameter [x10-6m] and modify
the scaling factor to 1/1e-6.

Label the existing series 800°C, duplicate and lock it and repeat the calculation for 750°C and
700°C to give curves as shown:

216
Tutorial 20

CHANGING THE MODEL PARAMETERS

Changing k_r will not modify the results in the present case, because we have not yet set up
any mechanism to retard the grain growth. However, as would be expected from the
equations above, changing k_d to a lower value gives a smaller grain size at the same time, all
else being equal.

Experiment also with different initial grain diameters. If the initial grain diameter is reduced,
the curve moves downwards to smaller grain sizes for a given time and temperature.

1)
M. Rath & E. Kozeschnik, “Coupled grain growth and precipitation modeling in multi-phase
systems”, Materials Science Forum Vol. 753 (2013) pp 357-360

217
Tutorial 21

T21: STRAIN INDUCED PRECIPITATES

This tutorial was tested on


MatCalc version 6.00 rel 0.047
license: free
database: mc_fe.tdb; mc_fe.ddb

CONTENTS
• Effect of volumetric misfit on precipitation kinetics
• Introduction of deformation into the thermo-mechanical treatment
• Effects of the applied deformation on the precipitation kinetics

Deformation process influences the microstructure of the alloy. One of the effects is the
occurence of the strain induced precipitates. This tutorial demonstrates how the deformation
processes can be included in the simulation of the processed material. Moreover, the effects
of the deformation on the precipitation kinetics are demonstrated and discussed.

218
Tutorial 21

SETTING UP THE SYSTEM


Create a new workspace and open the 'mc_fe.tdb' database. Select the
elements 'Fe', 'Nb' and 'C', together with the phases 'BCC_A2', 'FCC_A1' and 'Cementite'.
Click on 'Read' instead of 'Read & Close', as the subsequent step is to read the diffusion
database in this window. Select 'Diffusion data' on the left side and read
the 'mc_fe.ddb' database. Enter the composition of 0.2 wt.% C and 0.04 wt.% Nb. Click
on 'Set automatic startvalues' and calculate an equilibrium at the initial 1000°C.

PHASE SOLUBILITIES

In order to have some insight into the system equilibria, perform a stepped equilibrium
calculation. In 'Stepped euilibrium ' window select the temperature range of 400-1400°C with
the step of 10°C. Click on 'OK'

The phase fractions can be plotted by calling the appropriate user-defined window.
In 'View' → 'Create new window', select the 'user defined' tab. There, select
'01_all_phase_fractions over T_celsius_logY' and click on 'OK'.

219
Tutorial 21

This will result in the plot looking like the one shown below. From this diagram it can be
concluded that NbC precipitates below 1300°C and the ferrite will form below 850°C.

220
Tutorial 21

PRECIPIATION DOMAINS AND PHASES

Next, create a precipitation domain called 'austenite' in the 'Precipitation domains …'
window. Select FCC_A1 as the thermodynamic matrix phase.

Now, define the precipitate phase settings in 'Phase status' window. Select 'FCC_A1#01' and
click on 'Create' and 'precipitate (_Pnn'). In 'Nucleation' → 'Sites' set 'dislocations' as
nucleation sites (and remove the checkmark from 'bulk').

THERMO-MECHANICAL TREATMENT

The last step before the initial kinetics simulation is the definition of the thermo-mehanical
treatment. In 'Global' → 'Thermo-mech. treatments …' create a new treatment with the
name 'cooling'. Next, create a segment in which the austenite domain will be cooled
from 1300°C to 750°C with 1°C/s cooling rate.

221
Tutorial 21

222
Tutorial 21

KINETICS SIMULATION OF SIMPLE COOLING PROCESS


With all the setup procedures done, perform the kinetics simulation. Click on 'Calc' →
'Precipitation kinetics'. Select the 'cooling' treatment in the 'Temperature control …' area
and click on 'Go'.

Once the calculation is completed, use the 'user defined plots' for visualizing the phase
fraction, number density and mean radius evolution of the precipitates, as well as the
temperature profile. Click on 'View' → 'Create new window', select the 'user-defined' tab
and choose the last entry '03_kinetics_4_frames_T_f_n_r_linX'. Click on 'OK'. Set the start of
the scaling range to '1'. The analysis of the created plots reveals a somewhat unspectacular
precipitaition of NbC phase after 200 s (below 1100°C) that reaches the number density of
1e18 m-3 and stays in the nanometer range.

223
Tutorial 21

224
Tutorial 21

By clicking on 'Global' → 'Buffers' → 'Rename', rename the current buffer to 'Cooling'.

EFFECT OF VOLUMETRIC MISFIT


In general, the precipitates show usually different crystallographic features from the matrix
phase. This will be the source of the stress acting on the precipitates within the grain which
needs to be considered especially during the nucleation stage. As for now, all the simulations
were performed in the previous tutorial were neglecting this factor. Now it will be
225
Tutorial 21

demonstrated how this effect can be intorduced into the simulation and what is the effect of
it.

Click on 'Global' → 'Phase status' and select 'Structure' tab. In the field 'vol. misfit
(dV/V)' type in the values of '0.1' for the precipitate phase. This represents the stress coming
from the precipitate volume differing by 10% from the matrix volume.

Next, in 'Nucleation' → 'Controls' tab put a checkmark at the 'account for coherent misfit
stress' for the precipitate phase.

226
Tutorial 21

Click on 'OK' to close the window. Create a new buffer with the name 'Vol_misfit'. With this
buffer selected, perform again the kinetic simulation. Once the simulation is completed,
duplicate and lock all series in the plots, then switch the displayed buffer to 'Vol_misfit'. As it
can be noticed, the definition of the volumetric misfit decreased amount of the precipitated
phase.

227
Tutorial 21

228
Tutorial 21

SIMULATION OF DEFORMATION PROCESS

When deformation process is to be simulated, there are basically three things to be modified
in the treatment:

• Activation of the dislocation density evolution model.


• Definition of the deformation rates and temperatures.
• Deactivation of the volumetric misfit effect for the nucleation during the deformation.

EVOLUTION OF DISLOCATION DENSITY

The deformation will change the microstructure of the alloy. Here, the change of the
dislocation density by the deformation is presented.

Click on 'Global' → 'Precipitation domains'. The simulated deformation will be performed in


the austenite region, so select austenite as a precipitation domain and switch to
the 'MSEvolution' tab. Inside, select 'Substructure' tab and select '1-param - Sherstnev-Lang-
Kozeschnik - 'ABC'' as the model for the substructure evolution.

229
Tutorial 21

You might notice some parameters in the 'Dislocation generation and anihilation …' section
which describe the generation of the dislocations ('A'-parameter) and their anihilation during
the static ('B'-parameter) and dynamic recovery ('C'-parameter). Leave all the parameters
there on the default value.

230
Tutorial 21

THERMO-MECHANICAL TREATMENS SETTINGS

In this simulation, three deformation runs will be represented. Click on 'Global' → 'Thermo-
mech. treatments' and create a new treatment with the name 'deformation'. The first
segment will have the starting temperature of 1300°C but the end temperature will be 1000°C
with the cooling rate of 1 K/s. In the next segment, change the ramp control setting
to 'Accumulated strain' and set the 'Accumulated strain' value to '0.7'.

231
Tutorial 21

Afterwards, switch to the 'MS Evolution' tab and type in the strain_rate value of '0.15'.

232
Tutorial 21

The definition of the next segments should follow the settings below:

1. End temperature of 950°C with 1 K/s rate.


2. Deformation at 950°C with strain rate of 0.15 increasing the strain by 0.7.
3. End temperature of 900°C with 1 K/s rate.
4. Deformation at 900°C with strain rate of 0.15 increasing the strain by 0.7.
5. End temperature of 750°C with 1 K/s rate.

The complete treatment data are shown below.

233
Tutorial 21

DEACTIVATION OF THE VOLUMETRIC MISFIT

As previously mentioned, some volumetric misfit might be present related to the precipitates
appearing in the grains, decreasing thus their nucleation rate. However, the stress introduced
during the applied deformation can cancel this effect. To account for this in MatCalc, clicking
on 'Global' → 'Phase status' and select the 'Nucleation' → 'Controls' tab. Put a checkmark
at 'ignore misfit stress during deformation' for both precipitate phases. Click on 'OK' to close
the window.

234
Tutorial 21

KINETIC SIMULATION

Click on 'Global' → 'Buffers' → 'Create' to create a new buffer with the name 'Deformation'.
Afterwards, click on 'Calc' → 'Precipitation kinetics' and select the deformation treatment.
Start the calculation by clicking on 'OK'. The results of the precipitation kinetics calculation
are shown now with the blue curve.

235
Tutorial 21

236
Tutorial 21

A considerable difference of three order of magnitudes is observed in the phase fraction of


the precipitates. The same difference could be noticed for the number density. In both
diagrams, three steps for the increase can be distinguished. The curve for the mean radius has
a wavy form showing minima at the time frames of the sudden increases of the phase fraction
and number density.

237
Tutorial 23

T22: RECRYSTALLIZATION ON SUBGRAIN BOUNDARIES

This tutorial was tested on


MatCalc version 6.00 rel 0.282
license: free
database: mc_fe.tdb; mc_fe.ddb

CONTENTS
• Activation of recrystallization model
• Kinetic simulation of recrystallization process

Deformation of the material introduces new dislocations into the microstructure. These
surplus dislocations will create the substructure by ordering themselves into the subgrain
walls during the recovery process. MatCalc includes a model describing the transformation of
the newly subgrains into the new recrystallized grains, as described at Buken et al. This
tutorial shows the procedure to activate the recrystallization model, presents the typical
result of the recrystallization kinetics simulation and discusses the output values of the
parameters obtained during the simulation.

238
Tutorial 23

SETTING UP THE SYSTEM


Create a new workspace and open the 'mc_fe.tdb' database. Select the elements 'Fe' and 'C',
together with the 'FCC_A1' phase. Click on 'Read' instead of 'Read & Close', as the subsequent
step is to read the diffusion database in this window. Select 'Diffusion data' on the left side
and read the 'mc_fe.ddb' database. Enter the composition of 0.2 wt.% C. Click on 'Set start
values' and calculate an initial equilibrium at 1200°C.

PRECIPITATION DOMAINS AND PHASES

Create a precipitation domain called 'matrix' in the 'Precipitation domains …' window.
Select FCC_A1 as the thermodynamic matrix phase.

In the current recrystallization model, the newly recrystallized grains form from subgrain
created during the recovery process following the material deformation. First, the subgrain
formation and size evolution will be investigated. The subgrains are generated by the ordering
of the excess dislocations introduced during the deformation process. Hence, the next thing
to do will be to activate the substructure evolution model. Switch to the 'MS Evolution' tab,
select 'Substructure' tab inside and choose '1-param - Sherstnev-Lang-Kozeschnik - 'ABC' ' as
the model for the substructure evolution.
239
Tutorial 23

In this tutorial, the default model parameters will be used for the demonstration so click
on 'OK' to close this window.

THERMO-MECHANICAL TREATMENT

Now, define the thermo-mechanical treatment which will consist of the deformation segment
and the subsequent annealing segment. For the sake of simplicity, the whole simulation will
be performed at the constant temperature of 1200°C. In 'Global' → 'Thermo-mech.
treatments …' create a new treatment with the name 'tmt'. Next, create a segment in which
the austenite domain will be deformed to the accumulated strain value of '0,1'.
In 'MSEvolution' tab, set the 'eps-dot' (strain rate) value to '1'. Back in 'General' tab,
the 'Start temperature' is to be set to '1200°C'.

240
Tutorial 23

241
Tutorial 23

In the next segment, the material will be held isothermally at 1200°C. Select “Heat/Cooling
Rate & Delta-Time” in “Ramp control” field and set the rate to '0' and the segment time
to '10000' seconds.

The settings for the whole treatment are summarized below.

242
Tutorial 23

Close the editor window by clicking 'OK'.

KINETICS SIMULATION OF THE DEFORMATION PROCESS


With all the setup procedures done, perform the kinetics simulation. Click on 'Calc' →
'Precipitation kinetics'. Select the 'tmt' treatment in the 'Temperature control …' area and
click on 'Go'.

Once the calculation is completed, create a plot visualizing the dislocation density. In
menu 'View', click on 'Create new window…' and select '(p1) Plot core: XY-data' plot type.
Drag and drop 'DD_TOT$matrix' variable which is located in the 'prec_domain struct
sc' group in 'variables' window. Set the x- and y-axis to logarithmic scale and start the x-axis
scaling at 1e-5. Rename the x-axis to 'Time [s]' and the y-axis to 'Dislocation density [m-2]'.
Switch on the major grids for both axes.

243
Tutorial 23

As might be expected, the plot shows an increase of the dislocation density during the
deformation segment which lasts up to 0,1 second. Afterwards, the dislocation density falls
down to approx. 2e12 which corresponds to the recovery process during the subsequent
isothermal holding at 1200°C. In order to investigate the effect on the size of the forming
subgrains, create a new plot depicting the 'SGD$matrix”' variable which represents the
subgrain diameter. 'SGD$matrix' variable can be also found in the 'prec_domain struct
sc' group.

The subgrain diameters drops initially from about 100 micrometers down to about 7
micrometers at 0,1 seconds. Afterwards, it rises again reaching the initial value. The stage of
subgrain decrease is not to be interpreted directly, as the subgrains are formed during
recovery rather than during deformation stage. It is a consequence of the MatCalc setting
which sets the initial value of subgrain diameter equal to the initial value of the grain
diameter. Then, the subgrain size is calculated inversely to the square root of the dislocation
244
Tutorial 23

density, in accordance with the similitude principle. As the recovery process starts, it is
assumed that the subgrains are immediately formed with the predicted size of 7 micrometers.
These sugrains grow afterwards in a similar way as the grains would do - there is a model
which correlates the growth rate with the inverse of the subgrain diameter. During the
recovery step, the rising subgrain size corresponds to the falling dislocation density. After
almost 3 seconds, the subgrain size reaches the initial value of 100 micrometers and cannot
grow further as the limiting grain size remains at this value. The dislocation density decreases
further down to about 2-3e12 m-2. After reaching this value at about 35 seconds, it remains
steady till the end of the simulation.

One might ask, why the dislocation density remains at this value rather than decreasing
further to the initial value of 1e11 m-2. This happens as MatCalc proceeds with the dislocation
annihilation till the equilibrium wall dislocation density value is reached, as defined in the
substructure model setting. The last simulation was performed on the default setting which
sets this value to the one required for the presence of the subgrains with the given size, as
proposed by Read and Shockley. In the last case, the subgrains could not grow beyond 100
micrometers. It was already mentioned before, that the subgrain size is calculated from the
dislocation density on the basis of the similitude principle which relates these two
parameters. In the same manner, it is possible to calculate dislocation density which are
geometrically needed for the given subgrain size and the given misorientation angle between
the neighboring subgrains. As might be recalled from the substructure model settings, the
misorientation angle of 3 degrees was used in the last calculation. The limiting value of the
dislocation density coming from the discussed geometrical constraint is represented by the
variable 'DD_EQU_RS$austenite'. Drag and drop this this variable on the dislocation density
plot. The first observation is that the initial value for the limiting density is above the
simulated actual density value. As mentioned above, this stage is not to be directly
interpreted, as the subgrains are not forming during the deformation yet. During the recovery
period, the limit value proceeds according to the subgrain size and reaches a plateau at about
3 seconds, when the subgrains do not grow anymore. The limit density curve is joined by the
actual density one at about 35 seconds, after which nothing more happens in the system.

245
Tutorial 23

INTRODUCING GRAIN GROWTH


In the next simulation, the grain growth model will be activated, so that the constraint on the
subgrain growth will be removed. In 'Precipitation domains' window, select the 'MS Evolution
tab' and click on 'Grainstructure' tab there. In the field 'Grainsize evolution
model' select 'Single class model'. Leave all parameters on default value.

246
Tutorial 23

By clicking on 'Global' → 'Buffers' → 'Rename', rename the current buffer


to 'deformation_only'. Next, in 'Global' → 'Buffers' click on 'Create' and name the new buffer
as 'deformation&growth'. Create a new plot showing the grain diameter. Rename the y-axis
to 'Grain diameter [<html>&mu;m]', set the factor to '1e6' and switch the y-axis to
logarithmic type. Drag and drop the variable 'GD$matrix' on the plot. At the moment, only a
straight line is visible, as the grain growth was kept constant in the last simulation. Right click
on the plot and click on 'Duplicate and lock all series'. Afterwards, repeat the calculation by
clicking on 'Calc' → 'Precipitation kinetics…' and clicking 'OK' in the appearing window.

After the calculation is done, switch the buffer relevant to the plots to the current one. In
the 'options' window, select 'deformation&growth' in the 'core buffer' field. One can
immediately notice the difference in the curves at the recovery stage. Increasing grain
diameter allows for the further growth of the subgrains. This results in the further decrease of
the dislocation density.

247
Tutorial 23

INTRODUCING RECRYSTALLIZATION
It is time to activate the recrystallization model. In 'Precipitation domain' window, select
again the 'MS Evolution' and 'Grainstructure' tab there. In the 'Recrystallization
control…' section put a checkmark in 'Allow rexx' field.

248
Tutorial 23

In 'Global' → 'Buffers' click on 'Create' and create a new buffer named 'Recrystallization'.
Next, create three more plots in the plot window. Use the following y-axis settings for the
plots:

• Title: Nucl. rate of rex. grains [m-3s-1], type: log


• Title: Number density of grains [m-3], type: log
• Title: Recrystallized fraction

Drag and drop the following series on the plot:

• 'RX_NUCL_RATE$matrix' (can be found in 'prec_domain ms evolution' variables


group)
• 'NG$matrix', 'NG_DEF$matrix', 'NG_RX$matrix' (can be found in 'prec_domain struct
sc' variables group)
• 'X_RX$matrix' (can be found in 'prec_domain struct sc' variables group)

Additionally, add the series 'GD_DEF$matrix' and 'GD_RX$matrix' to the plot of grain
diameters.

With all these plots present, perform once again a kinetic simulation. Once it is completed, a
picture of the recrystallization progress in the system is available. Looking at the last plot of
recrystallized fraction for the matrix, one can notice that the structure is fully recrystallized.
The process seems to happen between the 0,1 and 10 seconds.

Looking on diagram showing the grain number densities, one can notice that the “old”
microstructure of the deformed grains, represented with the variable 'NG_DEF$matrix', with
the initial density of slightly above 1e12 m-3 decreases gradually and vanishes at the end of
the recrystallization process. The curve representing the number of the recrystallized grains
(variable 'NG_RX$matrix') appears already before 0,1 seconds and grows fast, showing a

249
Tutorial 23

maximum value at about 1e14 m-3 and then continues to decrease to the end of the
simulation. This analysis is supported by the plot of nucleation rates of recrystallized grains,
which shows that the nucleation phase for the recrystallized grains starts around the time of
0,05 seconds and lasts to about 1,5 seconds. The end of the nucleation phase coincides
obviously with the maximum observed for the number density of the recrystallized grains.
The total number density of grains, represented by the variable 'NG$matrix' is just a
superposition of the two previous values.

The plot representing the grain diameter (with y-axis scaling limited to 2000 micrometers)
gives some further information. The curve 'GD_DEF$matrix'representing the size of the
deformed (“old”) grains initializes at 100 micrometers. The
curve 'GD_RX$matrix' representing the size of the recrystallized (“new”) grains initializes at
some high value and decreases down to about 13 micrometers. Obviously, a physical
interpretation for the recrystallized grain size is reasonable only for the process time when
250
Tutorial 23

such grains are present at all, i.e. once the number density of recrystallized grains gets a
positive value. The mean value for the grain diameter observed in the microstructure
('GD$matrix' curve) decreases gradually from the deformed value towards the recrystallized
value. Growth process of the recrystallized grain can be observed after the deformation
process ends. On the contrary, the diameter of the deformed grain decreases a little, as these
grains are “consumed” by the newly formed structure. Of course, there is again no
interpretation possible for the deformed grain size for the simulation time with zero number
density of these grains. Once the microstructure is fully recrystallized, a grain growth is
observed. This coincides with the reduction of the nucleation density representing an
occurrence of the grain impingement.

Interestingly, the results for the subgrain size and dislocation density are similar to the ones
obtained in the simulation without grain growth. The subgrain size seems to be limited again
short below 100 micrometers and the dislocation density remains steady at the according
value. To interpret this outcome correctly, one needs to keep in mind that the subgrains are
assumed to exist only in the deformed grains in the applied single class model. The first
consequence of this fact is that the interpretation of the calculated subgrain size is relevant
only for the time periods when the deformed grain is present in the system, i.e. till the
microstructure is fully recrystallized. The other consequence is the limitation of the subgrain
size which cannot get a value greater than the size of the deformed grain. As the deformed
grain size did decrease during the simulation, the subgrain size growth also stops around 95
micrometers. The dislocation density remained also at the value corresponding to the
simulated subgrain diameter.

251
Tutorial 23

252
Tutorial 23

T23: INTRODUCTION TO CELL SIMULATIONS: LONG-RANGE DIFFUSION

This tutorial was tested on


MatCalc version 6.00 rel 1.000
license: free
database: mc_fe.tdb; mc_fe.ddb

CONTENTS
• setting up a simulation grid
• assigning properties to cells
• setting up display of cell simulation results
• setting up simulation parameters
• boundary conditions

MatCalc can be used to carry out simulations of long-range diffusion problems, and problems
in which diffusion is coupled with precipitation, using a finite-element method with the
system divided into a number of cells. Many examples of the application of this functionality,
in different systems and with different boundary conditions, can be found in the relevant part
of the 'Examples' section. The present tutorial demonstrates a simple case for which an
analytical solution of Fick’s 2nd Law is available. The numerical and analytical solutions are
compared.

The functionality for setting up and running diffusion simulations is only available through the
scripting language and not through the GUI. This tutorial therefore also serves as a refresher
for some of the basic scripting commands that we have already encountered, as well as
introducing the new commands needed to set up and run diffusion simulations.

253
Tutorial 23

DESCRIPTION OF THE PROBLEM


Fick's Second Law of Diffusion is a partial differential equation of the form:

where D is the diffusion coefficient, which is here assumed to be independent of


concentration. This equation can be solved to give the concentration C of the diffusing
species as a function of distance x and time t. The form of the solution depends on the
boundary conditions. In most cases, a numerical solution using finite-difference or finite-
element methods is required, but there are some special cases in which an analytical solution
is also available.

One of these is the thin-film solution, in which an very thin layer containing a finite amount of
the diffusing species is sandwiched between two semi-infinite bars of material. The boundary
conditions are that:

• initially, the concentration of the solute in the bar is zero; this is expressed
mathematically as C{x=0,t=0}=0 , where x is the distance from the midpoint marked
by the central black vertical line in the diagram below, and
• the total amount of solute is finite and constant throughout the time period
considered; this is expressed mathematically as

where B represents the amount of solute in the system.

254
Tutorial 23

The standard solution when the boundary conditions are of this type is of Gaussian form:

In this tutorial, we will set up a cell-based numerical simulation of a situation that fulfils these
conditions to a reasonably good approximation, i.e. a thin layer of FCC iron with a relatively
high carbon content sandwiched between two bars of FCC iron with a very low carbon
content. The results of this simulation will be compared with those obtained using the
analytical solution.

SETTING UP THE SYSTEM


Start MatCalc and create a new script file as explained in Tutorial 13.

THERMODYNAMIC AND KINETIC SETUP

The first task that the script must perform is to create a new MatCalc workspace. Type the
following command into your script window:

use-module core

This tells MatCalc to use the core module , which it selects at the begining by default
anyway; later in this tutorial we will see the use of the simulation module .

new-workspace

This creates a new workspace. If an existing unsaved workspace is open when the script is
run, you will be prompted to save it. To disable this prompt, append f to the new-
workspace command.

Some workspace information can be added as shown:

@$************************************

$ enter workspace info

@$************************************

@ set-workspace-info Script T23

@ set-workspace-info +Simulation of long-range diffusion of C

@ set-workspace-info +out of thin film

255
Tutorial 23

@ set-workspace-info +with matrix phase FCC_A1.

The next step is to set up the thermodynamic and kinetic data. Enter the following commands
into your script window and save the script.

open-thermodyn-database mc_fe.tdb

select-elements fe c

select-phases FCC_A1

read-thermodyn-database

read-mobility-database mc_fe.ddb

Following this, define the variables that will specify the initial carbon content in the bar
(c_comp_bar_wp) and the thin layer (c_comp_layer_wp) so that these can be used later. Note
that the carbon content of the bar is set to be very low, but for numerical reasons it is not
advisable to set this to exactly zero.

set-variable-value c_comp_bar_wp 1e-10

set-variable-value c_comp_layer_wp 0.8

In the cell simulation, compositions must be entered in molar notation un$c. The code below
enables you to enter a composition in weight percent (wp) and then save the composition in
mole fraction as a variable for use in the cell simulation.

enter-composition wp c=c_comp_bar_wp

set-variable-value c_comp_bar un$c

enter-composition wp c=c_comp_layer_wp

set-variable-value c_comp_layer un$c

Then set a temperature and calculate an equilibrium to initialise the system and check that
everything is working OK.

set-temperature-celsius 1000

calculate-equilibrium

At this stage, also specify the simulation time (in seconds) for subsequent use:

set-variable-value sim_time 1e7

256
Tutorial 23

Save the script. It is recommended to test it out at this stage to catch any typing errors before
going further.

PRECIPITATION DOMAIN SETUP

Before setting up the cell simulation, you must define a precipitation domain , i.e. a matrix
of phase FCC_A1; this is necessary for subsequent use in the cell simulation.

create-precipitation-domain aus_domain

set-precipitation-parameter aus_domain X FCC_A1

CREATING THE SIMULATION GRID

The next step is to set up the cell simulation. First change to the simulation module:

use-module simulation

Define a variable representing the number of cells:

set-variable-value num_cells_x 99

Then create a simulation grid using the command:

create-simulation-grid num_cells_x 1 1

The three numbers here represent the number of cells in the x-, y- and z-directions,
respectively. Define a variable representing the length of the bar:

set-variable-value barlength 0.099

Specify the dimensions in these directions (in m) using the command:

set-grid-coordinates barlength 1 1

and the geometry of the grid, using the command:

set-grid-geometry p

The three geometry options are:

• p - planar
257
Tutorial 23

• c - cylindrical
• s - spherical

To visualise this grid, create a new window of the type g5 (Paint grid: 2D cells):

new-gui-window g5

Give this window a name so that it can be referred to easily later. The
variable active_frame_id used here is one of MatCalc's internal variables; see the section of
the Reference book on internal variables for details.

set-variable-value paint_window_id active_frame_id

Modify the position, size and zoom level using the following two commands:

move-gui-window paint_window_id 0 100 750 160 $ change position and size

set-gui-window-property paint_window_id i Z 200 $ zoom 200%

The grid should now look as shown:

In the next section, properties will be assigned to the cells in the grid.

ASSIGNING PROPERTIES TO THE CELLS

For the diffusion simulation, it is necessary to create a material and assign to this
the precipitation domain called aus_domain that was created above:

create-material aus_material

set-material-property aus_material G D aus_domain

$ [g]eneral properties: [d]omain

Then set the diffusion coefficient. Here, a user-specified value is used, instead of one
calculated using information from the database, to better facilitate comparison with the
analytical solution. The diffusion coefficient is stored in a variable for later use. The syntax
below means [d]iffusion [c]oefficient of [c]arbon, [f]unction or expression.
258
Tutorial 23

set-variable-value diffCoeff 1e-12

set-material-property aus_material D C C F diffCoeff

$[d]iffusion [c]oefficient of [c]arbon, [f]unction or expression

Following this, assign properties to the cells. Using the syntax below, the
material aus_material is attached to all the cells.

set-cell-property a m aus_material $[a]ll cells, [m]aterial

Set the temperature of all cells to 1000˚C, by first specifying that the temperatures should be
in ˚C:

set-simulation-parameter N Y

specifying the temperature in the form of a variable:

set-variable-value sim_temp 1000

and then attaching this temperature property to all cells:

set-cell-property a V T sim_temp $ [a]ll cells, [v]ariable, [t]emperature

Assign the lower carbon content, c_comp_bar, to all cells.

set-cell-property a V C C c_comp_bar

$ [a]ll cells, [v]ariable, [c]omposition [c]arbon

The next stage is to select the cell in the middle of the bar using its cell index. First, we note
that the first cell has the index 0, so the highest cell index in the array obtained using:

set-variable-value max_cell_index num_cells_x-1

and the index of the cell in the middle is given by:

set-variable-value middle_cell_index max_cell_index/2

Then select the cell in the centre by its c[e]ll index:

add-cell-selection E middle_cell_index $ select the cell in the centre.

Assign the higher carbon content, c_comp_layer, to the selected cell (denoted by an asterisk).

259
Tutorial 23

set-cell-property * V C C c_comp_layer

The g5 window shows, by default, the selected cell(s) in blue:

DISPLAY

The next stage is to set up the graphical display to look at the results. Firstly, assign a property
to the existing paint window created above, paint_window_id so that the cells are coloured
according to their carbon content.

set-gui-window-property paint_window_id I W V $ display cell variable

set-gui-window-property paint_window_id I V _cwp$c $ set which variable

set-gui-window-property paint_window_id I R 0..1

In the first line in the code above, the syntax represents s[i]mulation results, display [w]hat,
[v]ariable. In the second, the [v]ariable is specified as _cwp$c, and in the third, the [r]ange is
specified. The variable syntax _cwp$c represents the set of values of wp$c (weight percent of
carbon) in the cells. Variables of this type can be found in the variables window under cafe:
cells.

The cell array is shown schematically below, where blue represents a lower carbon content,
and yellow a higher.

In addition, make a profile plot of the carbon content. Create a window of type g1: plot grid:
1D profile.

new-gui-window g1

Assign a name to both the plot window and the plot itself:

set-variable-value profile_window_id active_frame_id


260
Tutorial 23

set-variable-value profile_plot_id last_plot_id

Add a [s]eries, [n]ew of the [s]imulation variable _cwp$c.

set-plot-option profile_plot_id S N S _cwp$c

Specify that the default x-axis should be used, and give it a title:

set-gui-window-property profile_window_id S U Y

set-gui-window-property profile_window_id S T Position [m]

Label the y-axis and specify its range:

set-plot-option profile_plot_id A Y 1 T Carbon content [wt.%]

set-plot-option profile_plot_id A Y 1 S 0..c_comp_layer_wp

Give the plotted series the name 'Numerical':

set-plot-option profile_plot_id S M 0 Numerical

Specify the range of cells over which the profile is to be taken. In the syntax here, the first line
gives the index of the s[t]arting cell (here 0) and the second line gives the index of the st[o]p
cell (here max_cell_index).

set-gui-window-property profile_window_id I t 0

set-gui-window-property profile_window_id I o max_cell_index

Give the window an appropriate size:

move-gui-window profile_window_id 20 20 600 400

The plot should look as shown:

261
Tutorial 23

We will now create a third window to display the time-dependent evolution of the carbon
concentration in selected cells. The required window type is g2: Plot grid: cell history.
Create the window and assign a name to the window and plot.

new-gui-window g2

set-variable-value history_window_id active_frame_id

set-variable-value history_plot_id last_plot_id

Use the following commands to specify that the default x-axis should be used and to assign it
a title and a range.

set-gui-window-property history_window_id S U Y $use default x-axis

set-gui-window-property history_window_id S T Time [s]

set-gui-window-property history_window_id S S 0..sim_time

Label the y-axis and specify its range:

set-plot-option history_plot_id A Y 1 T Carbon content [wt.%]

set-plot-option history_plot_id A Y 1 S 0..c_comp_layer_wp

Now add two series, firstly the composition of the middle cell, and then that of the cell
adjacent to it.

262
Tutorial 23

set-plot-option history_plot_id S N S _cwp$c{middle_cell_index}

set-plot-option history_plot_id S N S _cwp$c{middle_cell_index-1}

Give these series titles. Note that the quotation marks are needed for a multi-word title, as in
the case of the series 'next to centre'

set-plot-option history_plot_id S M 0 centre

set-plot-option history_plot_id S M 1 'next to centre'

Finally, resize and move the history plot.

move-gui-window history_window_id 800 20 600 400

ANALYTICAL SOLUTION

In the final stage before setting up and running the simulation, the analytical solution will be
added to the existing profile plot. Since the expression is rather complicated, it will be divided
up into simpler terms:
Bval*term_1*term_2

where Bval represents the integral giving the amount of solute in the system:

term_1 is the term

and term_2 is the term

The value of the term B can be estimated by assuming that the initial concentration of carbon
in the bar is small enough to be neglected, such that initially all the carbon is in the layer in
the middle of the bar. The value of B is then simply the carbon concentration in the layer (in
the units in which the curve is to be plotted, here weight percent, c_comp_layer_wp),
multiplied by the width of the layer. The layer is one cell wide, i.e. the bar length divided by
the number of cells.

263
Tutorial 23

set-variable-value Bval c_comp_layer_wp*(barlength/num_cells_x)

The cell variables (prefixed with _c) that we have seen earlier in this tutorial can be included
in variables and functions. For example, term_1 uses the cell variable _ctime to represent the
time in the cell simulation. The variable diffCoeff was defined above, and pi is a built-in
variable. (For details of the built-in variables of MatCalc, consult the section of the Reference
Book on internal variables.)

set-function-expression term_1 1/(2*sqrt(pi*diffCoeff*_ctime))

It should be noted that the term x in the mathematical formulation of the analytical
expression is measured from the centre of the range, whereas the cell variable corresponding
to the x-position of the centre of the cells, _ccenter_x, is measured from the left-hand side of
the system. We must therefore create an expression for the shifted x-coordinate:

set-variable-value midpt barlength/2

set-function-expression x_shifted _ccenter_x-midpt

set-function-expression term_2 exp((-1*x_shifted**2)/(4*diffCoeff*_ctime))

The analytical expression is then given by:

set-function-expression analytical_expr Bval*term_1*term_2

and this series is plotted onto the existing profile plot using the command:

set-plot-option profile_plot_id S N F analytical_expr 0..barlength

The 0..barlength expression in the command above represents the range over which the
function is to be evaluated; this corresponds to the length of the bar.

Note that when the analytical expression is first plotted, it looks slightly strange. This is
because the time is initially zero, leading to a value of zero in the denominator of the first
term, term_1.

SETTING UP AND RUNNING THE SIMULATION

The final set of commands deals with the simulation time and temperature, boundary
conditions, type of simulation and update interval.

set-simulation-parameter e sim_time $ end

264
Tutorial 23

Specify the update interval:

set-simulation-parameter u 10 $ update interval

It is now necessary to tell the simulation module what type of problem should be simulated,
i.e. how temperature and diffusion should be treated. In this case, we wish to simulate
a diffusion-field problem, in which the elements are allowed to diffuse through the system:

set-simulation-parameter d f $ diffusion-field simulation

The temperature control, by contrast, is set to be isothermal and the hold temperature
specified in terms of the variable sim_temp set earlier.

set-simulation-parameter t i sim_temp $ temperature: isothermal

The final step is to set up the default boundary conditions, i.e. the boundary conditions that
apply in the absence of any other boundary conditions being set for specific cells or groups of
cells. The type of boundary condition required is [g]eometric, and is set to [o]pen to
environment. This means that there is no periodicity or symmetry.

set-default-boundary-cond G O $ open to environment.

Save the script.

To run the script, click on Script > Run Script, press Shift + F2 or click on the button.
Then select the name of the script you wish to run from the drop-down menu and click on Go.

When the script has been correctly executed, select Simulation > Start simulation or
press Ctrl + J to start the simulation. Output will appear in the Console, starting with:

#####################################################################

starting microstructure simulation ...

#####################################################################

and finishing with:

################################################################################
####################

265
Tutorial 23

microstructure simulation finished in 59.07 secs (tot 59.07 secs) on Fri, 2016-
06-10, 17:57:34

################################################################################
####################

INTERPRETING THE RESULTS


You will notice that, at first, the peak value of the analytical expression is much higher than
the maximum value of 0.8 wt. % in the numerical simulation. The reason for this is that the
analytical solution is based on the assumption that all the carbon is initially in an
infinitesimally thin layer, whereas in the numerical solution, we have put the carbon into a
cell of finite thickness. As the simulation proceeds, the two curves start to approach each
other until they eventually almost exactly coincide. By default, the profile plot is set to show a
'stepped' profile in which the concentration is shown as discrete values corresponding to the
single concentration value assigned to each cell. In the options window for this plot,
select no under use steps to instead see a smooth curve that may enable easier comparison
with the analytical curve.

When the simulation is finished, you can examine the profiles at different times by looking
at Global > Buffers > Edit Buffer States. You can obtain a set of profiles as shown below
by loading up selected buffer states and using ‘Duplicate and Lock all Series’ on the plot right-
click menu.

266
Tutorial 23

On the cell history plot, you should be able to see how the carbon concentration of the
central cell decreases, while that of the adjacent cell decreases, until at longer exposure
times, they converge.

267
Apendix A

APENDIX A
Related MatCalc scripts

SCRIPT TUTORIAL 2

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for calculation of a single equilibrium according to Tutorial 2.


The following contents will be covered:

- Opening a database and selecting elements and phases


- Entering a composition
- Calculating an equilibrium at a given temperature
- Interpretation of information displayed in the output, phase summary and phase details windows
- Using the 'Options' window to modify the display
- Phase status indicators
- Calculation states

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 20.03.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 03.08.2015 (P. Warczok, Update for 6.00, content modified - graphite got fixed fraction instead of dormant)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module module-name=core $ select core module for kinetic simulation

close-workspace options=f $ close any open workspace. Option "f" -> "force", does not ask for saving an open
workspace

new-workspace $ creates a new workspace

$ Add some information about your Script


@ echo value=no
set-workspace-info information=+ This script reproduces all operations performed in Tutorial 2.
set-workspace-info information=+ I assumed it to be the first MatCalc script you are reading.
set-workspace-info information=+ Therefore, I tried to explain every new command which is given.
set-workspace-info information=+ Every line starting with "$" contains a comment to a command.
set-workspace-info information=+ More information on scripting is given in Tutorial 13.
set-workspace-info information=+ Do not be afraid of scripting - this is much easier as you may think!
set-workspace-info This script reproduces all operations performed in Tutorial 2.
echo value=yes

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
268
Apendix A

**************************************************************************************************$$

$ Opens database containing thermodynamic data


open-thermodynamic-database file-name=mc_fe.tdb
$ Selects Fe, C and VA (vacancies) as components of the system.
$ VA is always selected as default, so it is actually not necessary to define it explicitely
$ FE is always selected as default in mc_fe.tdb, so it is actually not necessary to define it explicitely, either
select-elements elements=fe c va
$ Selects the phases which will be used in the simulation
select-phases phases=liquid fcc_a1 bcc_a2 cementite graphite
$ Reads data for the selected phases and elements from the database
read-thermodynamic-database

$ Sets Fe as reference element


set-reference-element element=fe
$ Sets the content of C to 0,4 wt.%
enter-composition type=weight-percent composition=c=0,4

$$**************************************************************************************************
EQUILIBRIUM CALCULATIONS
**************************************************************************************************$$

$ Sets the system temperature to 700°C


set-temperature-celsius temperature=700
$ Sets the start values - this should prevent from any troubles in the equilibrium calculation
set-automatic-startvalues
$ Performs the equilibrium calculation
calculate-equilibrium

$------------------------ Calculation with the suspended graphite phase ---------------------------$


$ Suspend graphite phase - a 'suspended' flag is set
change-phase-status phase-name=graphite set-flag=suspended
calculate-equilibrium

$------------------------ Calculation with the suspended graphite phase ---------------------------$


$ Activating graphite phase - a 'suspended' flag is cleared
change-phase-status phase-name=graphite clear-flag=suspended
$ Fixing the phase fraction of graphite - a 'fixed' flag is set
change-phase-status phase-name=graphite set-flag=fixed
$ The value of graphite phase fraction is set to '0' (zero)
change-phase-status phase-name=graphite mole-fraction-of-phase=0
calculate-equilibrium

$------------------------ Calculation with the suspended graphite phase ---------------------------$


remove-phase phase-name=graphite

$--------------------------- Calculation without the graphite phase -------------------------------$


$----------------- (the data for graphite will be not read from the database) ---------------------$

open-thermodynamic-database file-name=mc_fe.tdb
select-elements elements=fe c va
$ This time, graphite is not selected as a phase present in the system
select-phases phases=liquid fcc_a1 bcc_a2 cementite
read-thermodynamic-database

set-reference-element element=fe
enter-composition type=weight-percent composition=c=0,4

269
Apendix A

set-temperature-celsius temperature=700
set-automatic-startvalues
calculate-equilibrium

$$**************************************************************************************************
CALCULATION STATES
**************************************************************************************************$$

$ Creates calculation state "Equil@700"


create-calc-state new-state-name=Equil@700

$ Calculation state for 600C


set-temperature-celsius temperature=600
calculate-equilibrium
create-calc-state new-state-name=Equil@600

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

$ Saves workspace as "Tutorial_2.mcw"


save-workspace "file-name"=Tutorial_2

270
Apendix A

SCRIPT TUTORIAL 3

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for stepped equilibrium calculations according to Tutorial 3.


The following contents will be covered:

- Re-opening a saved file and loading a calculation state


- Calculating a stepped equilibrium with varying temperature
- Understanding the results in the Output window
- Working with multiple buffers
- Calculating a stepped equilibrium with varying composition
- The Edit buffer states window

Database: mc_fe.tdb
Author: P. Warczok
Creation date: 20.03.2008
Last update: 14.11.2017 (P. Warczok, Update for 6.00)
This is a script for MatCalc version 6.00 (rel 1.000)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module module-name=core $ Use "core" module (MatCalc uses "core" module by default anyway)

read-workspace file-name=Tutorial_2.mcw $ Loads the workspace "Tutorial_2.mcw"

$$**************************************************************************************************
STEPPED EQUILIBRIUM CALCULATIONS
**************************************************************************************************$$

$------------------ Stepped equilibrium calculation with varying of temperature -------------------$


$ Select the calculation state "Equil@600" (this state is already selected by default)
select-calc-state Equil@600
$ Loads the data from the selected calculation state
load-calc-state

$ Selects the type of calculation: Temperature variation


set-step-option type=temperature
$ Defines the range of the calculation: from 1600 to 400 with linear step of 25
set-step-option range start=1600 stop=400 scale=lin step-width=25
$ Sets the temperature unit to degree Celsius (instead of default Kelvin)
set-step-option temperature-in-celsius=yes

$ Performs stepped equilibrium calculation


step-equilibrium

$ Renames the current buffer to "T=400_to_1600C"


rename-current-buffer T=400_to_1600C

$ Creates a new buffer "C=0_to_1.5_at_500C"


create-calc-buffer C=0_to_1.5_at_500C

$------------- Stepped equilibrium calculation with varying carbon content - part I ---------------$
$ Selects the type of calculation: Element content variation
set-step-option type=element-content
271
Apendix A

$ Defines the range of the calculation: from 0 to 1.5 with linear step of 0.05
set-step-option range start=0 stop=1,5 scale=lin step-width=0,05
$ The temperature unit is degree Celsius, again.
set-step-option temperature-in-celsius=yes
$ Sets temperature of the calculation to 500
set-step-option temperature=500
$ Global composition is varied - [O]ption "vary [p]ara-equilibrium constraints" is set to [n]o
set-step-option vary-para-equil-constraints=no
$ Composition range is expressed in wt% - [O]ption "[e]lement content in wt%" is set to [y]es
set-step-option element-content-in-wt%=yes

step-equilibrium $ Performs stepped equilibrium calculation

$------------- Stepped equilibrium calculation with varying carbon content - part II --------------$

$ Creating new buffer "C=0_to_1.5_at_800C"


create-calc-buffer C=0_to_1.5_at_800C

$ Selects the t[y]pe of calculation: "[E]lement content"


set-step-option type=element-content
$ Defines the [r]ange of the calculation: from 0 to 1.5 with linear step of 0.05
set-step-option range start=0 stop=1,5 scale=lin step-width=0,05
$ Temperature unit "C"
set-step-option temperature-in-celsius=yes
$ Setting the temperature to 800
set-step-option temperature=800
$ Global composition is varied - [O]ption "vary [p]ara-equilibrium constraints" is set to [n]o
set-step-option vary-para-equil-constraints=no
$ Composition range is expressed in wt% - [O]ption "[e]lement content in wt%" is set to [y]es
set-step-option element-content-in-wt%=yes
$ Performs stepped equilibrium calculation
step-equilibrium

$$**************************************************************************************************
OPERATION ON BUFFER STATES
**************************************************************************************************$$

$ Selects the buffer state to edit


select-calc-buffer C=0_to_1.5_at_500C

$ Lists the contents of the selected buffer


list-buffer-contents
$ Load the buffer state no.8
load-buffer-state line-index=8

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

$ Saves workspace as "Tutorial_3.mcw"


save-workspace "file-name"=Tutorial_3

272
Apendix A

SCRIPT TUTORIAL 4

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for graphical presentation and export of results according to Tutorial 4.


The following contents will be covered:

- Creating a new graphical window


- Introduction to the variables window
- Modifying the appearance of a plot using 'options'
- Zooming in and displaying x- and y-values
- Exporting a plot as an image and as numerical data

Database: mc_fe.tdb
Author: P. Warczok
Creation date: 20.03.2008
Last update: 16.11.2017 (P. Warczok, Update for 6.00)
This is a script for MatCalc version 6.00 (rel 1.000)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module module-name=core $ Use "core" module (MatCalc uses "core" module by default anyway)

read-workspace file-name=Tutorial_3.mcw $ Loads the workspace "Tutorial_3.mcw"

select-calc-buffer T=400_to_1600C $ Selects the buffer state to edit

$$**************************************************************************************************
PLOTTING A GRAPH
**************************************************************************************************$$

new-gui-window type-id=p1 $ Creating a new window of 'p1' type (XY-diagram)


$ In plot no. 1, new series with buffer result for "f$*"-variables are plotted
set-plot-option plot-id=1 series new buffer variable-name=f$*

$------------------------------- Results from different buffers -----------------------------------$


$ In the GUI window with id=[2] (plot window), the content of the [b]uffer "C=0_to_1.5_at_500C" is plotted
set-gui-window-property 2 B C=0_to_1.5_at_500C

$ In the current[.] window, the content of the [b]uffer "C=0_to_1.5_at_800C" is plotted


set-gui-window-property . B C=0_to_1.5_at_800C

$----------------------- Changing the format of the temperature-step plot -------------------------$


set-gui-window-property . B T=400_to_1600C $ Back to "T=400_to_1600C" buffer
set-gui-window-property window-id=. default-x-axis-data=t$c $ Setting x-axis variable to temperature in "°C" (T$C)
set-gui-window-property window-id=. style-sheet=b/w $ Changing the plot style to black and white (b/w)
set-gui-window-property window-id=. style-sheet=col_no_symb $ ... and back to colour

$------------------------------------- Setting title ----------------------------------------------$


$ Plot no.1 receives title "Phase fraction versus temperature for Fe-0.4 wt.%C"
set-plot-option plot-id=1 plot-title=Phase fraction versus temperature for Fe-0.4 wt.%C

$-------------------------------- Options for the plot legend -------------------------------------$


$ For the current plot, in the legend box is put on the bottom of the plot
273
Apendix A

set-plot-option plot-id=. legend-alignment=bottom


$ For the current plot, the style of the legend frames is set to "none" (no frames displayed)
set-plot-option plot-id=. style=none

$------------------------------------ Options for the axes ----------------------------------------$


$ For the current plot, the x-axis becomes a title "Temperature [°C]"
set-plot-option plot-id=. x-axis-title=Temperature [°C]
$ For the current plot, the y-axis becomes a title "Phase fraction"
set-plot-option plot-id=. y-axis-title=Phase fraction
$ For the current plot, the y-axis scale type is set to logarithmic
set-plot-option plot-id=. y-axis-type=log
$ ... and the scale range will start from 0.01
set-plot-option plot-id=. y-axis-scaling=0,01..
$ To see the changes on the x-axis, the option of default x-axis usage for all plots is deactivated
set-gui-window-property window-id=. default-x-axis-for-all-plots=no

$---------------------------------- Options for the gridlines -------------------------------------$


$ For the current plot, the major grids for the x-axis are enabled
set-plot-option plot-id=. grid which-grid=major enable-x-axis=yes
$ ... together with the ones for the y-axis
set-plot-option plot-id=. grid which-grid=major enable-y-axis=yes

$----------------------------------- Options for the series ---------------------------------------$


$ The series no.0 of the current plot is renamed to "Liquid"
set-plot-option plot-id=. series rename series-index=0 new-name=Liquid
$ The series no.1 of the current plot is renamed to "Austenite"
set-plot-option plot-id=. series rename series-index=1 new-name=Austenite
$ The series no.2 of the current plot is renamed to "Ferrite"
set-plot-option plot-id=. series rename series-index=2 new-name=Ferrite
$ The series no.3 of the current plot is renamed to "Cementite"
set-plot-option plot-id=. series rename series-index=3 new-name=Cementite

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace "file-name"=Tutorial_4 $ Saves workspace as "Tutorial_4.mcw"

274
Apendix A

SCRIPT TUTORIAL 5

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for MatCalc built-in variables and graphical output according to Tutorial 5.
The following contents will be covered:

- Adding further plots to a plot window


- Using the built-in variables
- Defining a default x-axis
- Modifying the series
- Adding a new series to a plot
- Removing a series from a plot
- Duplicating and locking series
- Editing series data
- Converting series to tables

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 20.03.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 22.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

read-workspace Tutorial_4 $ Loads the workspace "Tutorial_4.mcw"

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
ADDING PLOTS OF DIFFERENT VARIABLES
**************************************************************************************************$$

$ Creating new [x]-y plot in GUI-window no.[2] (the number can read on the window bar)
create-new-plot X 2
$ For current plot [.] in [s]eries section [n]ew series, [b]uffer result variable "dfm$*" is plotted
set-plot-option . S N B dfm$* %s

$-------------- Examples of other plots (every plot is plotted in a separate window) --------------$
create-new-plot X . $ Creating new [x]-y plot in current GUI-window no.[.]
set-plot-option . S N B gmp$* %s $ "gmp$*" -Molar Gibbs energy of various phases

$ Chemical potential of carbon


create-new-plot X . $ Creating new [x]-y plot in current GUI-window no.[.]
275
Apendix A

set-plot-option . S N B mup$*$c %s $ "mup$*$c" - Chemical potential of carbon in various phases

$ Molar heat capacity


create-new-plot X .
set-plot-option . S N B cpp$* %s $ "cpp$*" - Molar heat capacity of various phases

$ Arranging plots in the columns with the [n]umber of columns of "2"


set-gui-window-property . N 2

$------------------------------- Changing standard x-axis settings --------------------------------$


$ In default x-axi[s] section, the option of [u]sing it is switched to [y]es
set-gui-window-property . S U Y
$ Setting (x)-axis variable to "C" (T$C)
set-gui-window-property . X T$C
$ In default x-axi[s] section, the [t]itle for the default x-axis is set to "Temperature [C]"
set-gui-window-property . S T Temperature [C]

$$**************************************************************************************************
MODIFYING THE SERIES IN PLOTS
**************************************************************************************************$$

$------------------------- Carbon concentration in the different phases ---------------------------$


create-new-plot X .
set-plot-option . S N B x$*$c %s $ "x$*$c" - mole fraction of C in various phases

$$ -------------- The modification of carbon concentration from mole fractions ---------------------


-------------- to weight percent - removing the old series and adding the new ones ---------------$$
$ For plot no. [6], in [s]eries section, [r]emoval of all[*] series is performed
set-plot-option 6 S R *
$ "x$*$c$wp" - weight percent of C in various phases
set-plot-option . S N B x$*$c$wp %s
$ In the [a]xis section, the [y]-axis no.[1] becomes a [t]itle "Carbon content of phase [wt.%]"
set-plot-option . A Y 1 T Carbon content of phase [wt.%]

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_5 $ Saves workspace as "Tutorial_5.mcw"

276
Apendix A

SCRIPT TUTORIAL 6

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for Introduction to user-defined functions and variables according to Tutorial 6.


The following contents will be covered:

- Expressions using built-in variables


- Creating a new function
- Using functions
- Defining and using variables

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 20.03.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 22.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe2.tdb $ Opens thermodynamic database mc_sample_fe2.tdb


select-elements FE C VA $ Selects Fe and C as components of the system.
$ Selects the phases which will be used in the simulation
select-phases LIQUID FCC_A1 BCC_A2 CEMENTITE
$ Reads data for the selected phases and elements from the database
read-thermodyn-database

set-reference-element FE $ Fe is set as a reference element


enter-composition WP C=0,1 $ Sets the content of C to 0.1 wt.%

$$**************************************************************************************************
EQUILIBRIUM CALCULATIONS
**************************************************************************************************$$

set-temperature-celsius 1000 $ Sets the system temperature to 1000C


$ Sets the start values - this should prevent from any troubles in the equilibrium calculation
set-automatic-startvalues
277
Apendix A

calculate-equilibrium $ Performs the equilibrium calculation

set-step-option Y T $ Selects the t[y]pe of calculation: "[T]emperature"


set-step-option R 1600 400 L 25 $ The calculation range: 400 - 1600; linear step 25
set-step-option O C Y $ Temperature in Celsius
step-equilibrium

$$**************************************************************************************************
CREATING PLOTS
**************************************************************************************************$$

new-gui-window p1 $ Creating a new window of 'p1' type (XY-diagram)

set-plot-option . S N B F$* %s $ Plotting phase fractions


set-gui-window-property . X T$C $ Temperature in Celsius on x-axis
set-gui-window-property . S U Y $ Default x-axis
set-gui-window-property . S T Temperature [C] $ Title of x-axis
set-plot-option . L R $ the legend box is put on the [r]ight side
create-new-plot X . $ new plot

$$**************************************************************************************************
COMBINING BUILT-IN VARIABLES IN NEW EXPRESSIONS
**************************************************************************************************$$

$ The product of carbon content in liquid and phase fraction of liquid is plotted
set-plot-option . S N B X$LIQUID$C*F$LIQUID %s
$ The product of carbon content in bcc and phase fraction of bcc is plotted
set-plot-option . S N B X$BCC_A2$C*F$BCC_A2 %s
$ The product of carbon content in fcc and phase fraction of fcc is plotted
set-plot-option . S N B X$FCC_A1$C*F$FCC_A1 %s
$ The product of carbon content in cementite and phase fraction of cementite is plotted
set-plot-option . S N B X$CEMENTITE$C*F$CEMENTITE %s
$ The carbon content in the system is plotted
set-plot-option . S N B XS$C %s

$$**************************************************************************************************
DEFINING FUNCTIONS
**************************************************************************************************$$

$$ Defining function "C_in_liquid" as a product of carbon content in


liquid and phase fraction of liquid $$
set-function-expression C_in_liquid X$LIQUID$C*F$LIQUID
$ Defining function "C_in_bcc" as a product of carbon content in bcc and phase fraction of bcc
set-function-expression C_in_bcc X$BCC_A2$C*F$BCC_A2
$ Defining function "C_in_fcc" as a product of carbon content in fcc and phase fraction of fcc
set-function-expression C_in_fcc X$FCC_A1$C*F$FCC_A1
$$ Defining function "C_in_cementite" as a product of carbon content in
cementite and phase fraction of cementite $$
set-function-expression C_in_cementite X$CEMENTITE$C*F$CEMENTITE

$------------------- Plotting new functions instead of "X$...*F$..." products ---------------------$


$ In the current plot[.], in [s]eries section, [r]emoval of the all[*] series
set-plot-option . S R *
set-plot-option . S N B C_in_liquid %s $ Plotting "C_in_liquid"
set-plot-option . S N B C_in_bcc %s $ Plotting "C_in_bcc"
set-plot-option . S N B C_in_fcc %s $ Plotting "C_in_fcc"
set-plot-option . S N B C_in_cementite %s $ Plotting "C_in_cementite"
set-plot-option . S N B XS$C %s $ Plotting carbon content in the system
278
Apendix A

set-plot-option . L R $ The legend box on the right side

$----------------- Defining and plotting new expressions using existing functions -----------------$
$ Defining a function "Fraction_C_in_liquid" as C_in_liquid divided by molar fraction of carbon
set-function-expression Fraction_C_in_liquid C_in_liquid/XS$C
$ Defining a function "Fraction_C_in_bcc" as C_in_bcc divided by molar fraction of carbon
set-function-expression Fraction_C_in_bcc C_in_bcc/XS$C
$ Defining a function "Fraction_C_in_fcc" as C_in_fcc divided by molar fraction of carbon
set-function-expression Fraction_C_in_fcc C_in_fcc/XS$C
$ Defining function "Fraction_C_in_cementite" as C_in_cementite divided by molar fraction of carbon
set-function-expression Fraction_C_in_cementite C_in_cementite/XS$C

create-new-plot X .
set-plot-option . S N B Fraction_C_in_liquid %s $ Plotting "Fraction_C_in_liquid"
set-plot-option . S N B Fraction_C_in_bcc %s $ Plotting "Fraction_C_in_bcc"
set-plot-option . S N B Fraction_C_in_fcc %s $ Plotting "Fraction_C_in_fcc"
set-plot-option . S N B Fraction_C_in_cementite %s $ Plotting "Fraction_C_in_cementite"
set-plot-option . L R $ The legend box on the right side

$----------- Displaying the results of the stepped calculation varying carbon content -------------$
set-gui-window-property . X Stepvalue $ Stepvalue on x-axis
set-gui-window-property . S T C content [wt.%] $ Changing the title of x-axis

set-step-option Y E $ Varying element content


set-step-option R 0 0,5 L 0,005 $ in range 0 - 0.5; linear step 0.005
set-step-option E C $ The element is carbon
set-step-option T 1475 $ at 1475
set-step-option O C Y $ in Celsius
set-step-option O E Y $ and carbon content in wt.%
step-equilibrium

$$**************************************************************************************************
USER-DEFINED VARIABLES
**************************************************************************************************$$

set-variable-value x1 0.2780809 $ Setting x1 = 0.2780809


set-variable-value y1 0 $ Setting y1 = 0
set-variable-value x2 0.5 $ Setting x2 = 0.5

$--------------------------------- Finding the value of "y2"-variable -----------------------------$


enter-composition WP C=0,5 $ Carbon content = 0.5 wt.%
set-temperature-celsius 1475 $ Temperature = 1475C
calculate-equilibrium $ Equilibrium calculation
set-variable-value y2 C_in_liquid $ Setting y2 = C_in_liquid

$ Defining the parameters of the function approximating the amount of carbon present in liquid phase
set-variable-value a (y2-y1)/(x2-x1) $ setting a (slope)
set-variable-value b ((x2*y1)-(x1*y2))/(x2-x1) $ setting b (intersection)
set-function-expression Liquid_line (a*x)+b $ defining "Liquid_line"
set-plot-option 2 S N B Liquid_line %s $ Plotting "Liquid_line" in plot no.2

$ Cutting off negative values of "Liquid_line" by setting the curve as a function/expression plot

$ For plot no. [2], in [s]eries section, [r]emoval of the series identified by name[-1]
set-plot-option 2 S R -1 Liquid_line
$$ For plot no. [2], in [s]eries section, [n]ew series with the [f]unction/expression
result for "Liquid_line" function is plotted in the range of x1 - 0.5 $$
279
Apendix A

set-plot-option 2 S N F Liquid_line x1..0,5

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_6

280
Apendix A

SCRIPT TUTORIAL 7

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for calculating phase boundaries according to Tutorial 7.


The following contents will be covered:

- Using Search phase boundary with temperature variation to determine solidus and liquidus
- Determining austenite - ferrite transformation temperatures
- Finding phase boundaries for carbide phases in terms of temperature and element content
- Tracing a phase boundary on axes of temperature versus element content

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 20.03.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 23.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe.tdb $ Thermodynamic database: mc_sample_fe.tdb


select-elements FE C NB VA $ Components: Fe, C, Nb
select-phases LIQUID FCC_A1 BCC_A2 CEMENTITE $ Phases: Liquid, fcc, bcc, cementite
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,1 NB=0,3 $ Composition: 0.1 wt.% C, 0.3 wt.% Nb

set-temperature-celsius 1000
set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

$$**************************************************************************************************
CALCULATING PHASE BOUNDARIES
**************************************************************************************************$$

$-------------------------------- Solidus and liquidus temperature --------------------------------$


281
Apendix A

$ Searching a phase boundary varying [t]emperature for the liquid phase field
search-phase-boundary T LIQUID
$ Searching a phase boundary varying [t]emperature for the bcc phase field
search-phase-boundary T BCC_A2

set-temperature-celsius 1600
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Finding liquidus

$-------------------------- Austenite-ferrite transformation temperatures -------------------------$


set-temperature-celsius 700
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Phase boundary of fcc phase field

set-temperature-celsius 900
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Phase boundary of bcc phase field

$------------------------------ Dissolution temperatures of carbides ------------------------------$


set-temperature-celsius 800
calculate-equilibrium
search-phase-boundary T CEMENTITE $ Phase boundary of cementite phase field

set-temperature-celsius 1200
calculate-equilibrium
search-phase-boundary T FCC_A1#01 $ Phase boundary of NbC phase field

$---------------------------- Element content for zero-phase fractions ----------------------------$


set-temperature-celsius 700
calculate-equilibrium
$$ Searching a phase boundary varying [e]lement content for the cementite phase field.
[C]arbon content will be varied at 700C ("Temperature in Celsius" is switched to [y]es) $$
search-phase-boundary E CEMENTITE C 700 Y

enter-composition WP C=0,1 $ Resets the carbon content


set-temperature-celsius 1000
calculate-equilibrium
$$ Searching a phase boundary varying [e]lement content for the NbC phase field.
[Nb] content will be varied at 1000C ("Temperature in Celsius" is switched to [y]es) $$
search-phase-boundary E FCC_A1#01 NB 1000 Y

$---------------------------------- Tracing phase boundaries --------------------------------------$


enter-composition WP NB=0,3 $ Resets the niobium content

set-step-option Y P $ Selects the t[y]pe of calculation: "[P]hase boundary"


set-step-option R 0,01 0,35 L 0,01 $ Range 0,01 - 0,6; linear step of 0,01
set-step-option E NB $ Niobium content varied
set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option X 100 $ Setting the ma(x). T-step to 100
set-step-option O C Y $ Temperature in Celsius
set-step-option O E Y $ Composition in wt.%
step-equilibrium

new-gui-window p1 $ Creating plot


$ Plotting the phase boundary (Temperature in C vs. Nb content)
set-plot-option . S N B T$C %s
$ For current plot [.], [s]eries section, [d]uplicate and lock is performed by name [-1] on "T$C"
set-plot-option . S D -1 T$C
282
Apendix A

set-plot-option . S M -1 *_T$C '0.1 wt.%C' $ Renames the series "*_T$C" to "0.1 wt.%C"

enter-composition WP C=0,05 $ C content = 0,05 wt.%


set-temperature-celsius 1000
calculate-equilibrium
$ Searching a phase boundary of NbC phase field varying Nb content at 1000C
search-phase-boundary E FCC_A1#01 NB 1000 Y

set-step-option Y P $ Selects the t[y]pe of calculation: "[P]hase boundary"


set-step-option R 0,01 0,35 L 0,01 $ Range 0,01 - 0,6; linear step of 0,01
set-step-option E NB $ Niobium content varied
set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option X 100 $ Setting the ma(x). T-step to 100
set-step-option O C Y $ Temperature in Celsius
set-step-option O E Y $ Composition in wt.%
step-equilibrium

$ For current plot [.], [s]eries section, [d]uplicate and lock is performed by name [-1] on "T$C"
set-plot-option . S D -1 T$C
set-plot-option . S M -1 *_T$C '0.05 wt.%C' $ Renames the series "*_T$C" to "0.05 wt.%C"

enter-composition WP C=0,01 $ C content = 0,01 wt.%


set-temperature-celsius 1000
calculate-equilibrium
$ Searching a phase boundary of NbC phase field varying Nb content at 1000C
search-phase-boundary E FCC_A1#01 NB 1000 Y

set-step-option Y P $ "Phase boundary" type


set-step-option R 0,01 0,35 L 0,01 $ Range 0,01 - 0,6; linear step of 0,01
set-step-option E NB $ Niobium content varied
set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option X 100 $ Setting the ma(x). T-step to 100
set-step-option O C Y $ Temperature in Celsius
set-step-option O E Y $ Composition in wt.%
step-equilibrium

$ For current plot [.], [s]eries section, [l]ock is performed by name [-1] on "T$C" ([y]es)
set-plot-option . S L -1 T$C Y
set-plot-option . S M -1 *_T$C '0.01 wt.%C' $ Renames the series "*_T$C" to "0.01 wt.%C"

set-plot-option . T Phase boundary of NbC $ Plot title


set-plot-option . A X 1 T Nb content [wt.%] $ x-axis title
set-plot-option . A Y 1 T Temperature [C] $ y-axis title

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_7

283
Apendix A

SCRIPT TUTORIAL 8

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for calculating a phase diagram in a binary system according to Tutorial 8.


The following contents will be covered:

- Calculating phase boundaries


- Building up the phase diagram from the calculated boundaries
- Choosing appropriate calculation parameters
- Phase diagrams using stable and metastable equilibria

A phase diagram consists of a number of phase-boundaries separating regions of temperature- and


composition-space in which different phases are stable at equilibrium. Published equilibrium
diagrams for the Fe-C system often show equilibria between Fe-rich phases and both C (in the form
of graphite) and cementite (Fe3C). Graphite is the more stable of these two phases, and forms
readily in cast irons (2-4 wt.% C), but usually with great difficulty in steels (up to 1.5 wt.% C).
In the latter, it is more practically useful to consider metastable equilibria involving Fe3C.
In this tutorial, phase diagrams for both Fe-C and Fe-Fe3C will be calculated.

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 23.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe2.tdb $ Thermodynamic database: mc_sample_fe2.tdb


select-elements FE C VA $ Components: Fe, C
select-phases LIQUID FCC_A1 BCC_A2 CEMENTITE GRAPHITE $ Phaseselection
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,05 $ Composition: 0.05 wt.% C

set-temperature-celsius 1000 $ Temperature 1000C


284
Apendix A

set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

new-gui-window p1 $ Plot of the phase diagram

$ Suspend graphite phase - a [f]lag for the [s]uspended status is [s]et


change-phase-status graphite F S S

$$**************************************************************************************************
FE-FE3C PHASE DIAGRAM
**************************************************************************************************$$

$-------------------------------- Upper boundary of delta-ferrite ---------------------------------$


set-temperature-celsius 1530 $ Temperature 1530C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-plot-option . S N B T$C %s $ Plotting the phase boundary


$ In the [g]ridlines section, the option of showing [m]ajor grids for [x]-axis is switched to [y]es
set-plot-option . G M X Y
$ In the [g]ridlines section, the option of showing [m]ajor grids for [y]-axis is switched to [y]es
set-plot-option . G M Y Y
$ In the active[.] GUI-window, all unlocked series will be duplicated and [l]ocked
set-gui-window-property . L
$ Renaming series: "*_T$C" --> "bcc_high_1"
set-plot-option . S M -1 *_T$C bcc_high_1

$---------------------------------- Lower boundary of liquid --------------------------------------$


set-temperature-celsius 1500 $ Temperature 1500C
calculate-equilibrium
search-phase-boundary T LIQUID $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P LIQUID $ Phase boundary of liquid phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in C
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

$ In the active[.] GUI-window, all unlocked series will be duplicated and [l]ocked
set-gui-window-property . L
set-plot-option . S M -1 *_T$C liquid $ Renaming series: "*_T$C" --> "liquid"

$------------------------------- Lower boundary of delta-ferrite ----------------------------------$


set-temperature-celsius 1400 $ Temperature 1400C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


285
Apendix A

set-step-option P BCC_A2 $ Phase boundary of bcc phase field


set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_high_2 $ Renaming series: "*_T$C" --> "bcc_high_2"

$---------------------------------- Upper boundary of austenite -----------------------------------$


set-temperature-celsius 1500 $ Temperature 1500C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc_1 $ Renaming series: "*_T$C" --> "fcc_1"

$-------------------------------- Upper boundary of alpha-ferrite ---------------------------------$


set-temperature-celsius 900 $ Temperature 900C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_low $ Renaming series: "*_T$C" --> "bcc_low"

$--------------------------------- Lower boundary of austenite ------------------------------------$


set-temperature-celsius 600 $ Temperature 600C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.001 $ Range 0 - 5; linear step of 0,001
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


286
Apendix A

set-plot-option . S M -1 *_T$C fcc_2 $ Renaming series: "*_T$C" --> "fcc_2"

$-------------------------------- Cementite upper phase boundary ----------------------------------$


set-temperature-celsius 800 $ Temperature 800C
calculate-equilibrium
search-phase-boundary T CEMENTITE $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P CEMENTITE $ Phase boundary of cementite phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 200 $ Setting the ma(x). T-step to 200
step-equilibrium

$ For current plot [.], [s]eries section, [l]ock is performed by name [-1] on "T$C" ([y]es)
set-plot-option . S L -1 T$C Y
set-plot-option . S M -1 *_T$C cementite $ Renaming series: "*_T$C" --> "cementite"

$------------------------------------- The finished diagram ---------------------------------------$


$ Plot title. "<sub>" and "</sub>" are used to mark the text which should be written as a subscript
set-plot-option 1 T Fe-Fe<sub>3</sub>C phase diagram
set-plot-option 1 A X 1 T Carbon content [wt.%] $ x-axis title
set-plot-option 1 A Y 1 T Temperature [C] $ y-axis title
$ In the [a]xis section, the [y]-axis no.[1] has [s]caling starting from 400
set-plot-option 1 A Y 1 S 400..
set-plot-option 1 L B $ Legend on the bottom

$$**************************************************************************************************
FE-C PHASE DIAGRAM
**************************************************************************************************$$

$ Activating graphite phase - a [f]lag for the [s]uspended status is [c]leared


change-phase-status graphite F S C
set-temperature-celsius 1600 $ Temperature 1600C
calculate-equilibrium

create-new-plot X . $ Fe-C phase diagram will be drawn on the new plot


set-plot-option . G M X Y $ Switching on the major gridlines for x-axis
set-plot-option . G M Y Y $ Switching on the major gridlines for y-axis

$------------------------------- Upper boundary of delta-ferrite ----------------------------------$


search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-plot-option . S N B T$C %s $ Drawing the phase boundary in the new plot


set-gui-window-property . L $ Locking all unlocked series
set-plot-option . S M -1 *_T$C bcc_high_1 $ Renaming series: "*_T$C" --> "bcc_high_1"

$----------------------------------- Lower boundary of liquid -------------------------------------$


287
Apendix A

set-temperature-celsius 1500 $ Temperature 1500C


calculate-equilibrium
search-phase-boundary T LIQUID $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P LIQUID $ Phase boundary of liquid phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C liquid $ Renaming series: "*_T$C" --> "liquid"

$-------------------------------- Lower boundary of delta-ferrite ---------------------------------$


set-temperature-celsius 1400 $ Temperature 1400C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_high_2 $ Renaming series: "*_T$C" --> "bcc_high_2"

$---------------------------------- Upper boundary of austenite -----------------------------------$


set-temperature-celsius 1500 $ Temperature 1500C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc_1 $ Renaming series: "*_T$C" --> "fcc_1"

$-------------------------------- Upper boundary of alpha-ferrite ---------------------------------$


set-temperature-celsius 900 $ Temperature 900C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
288
Apendix A

set-step-option O C Y $ Temperature in Celsius


set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_low $ Renaming series: "*_T$C" --> "bcc_low"

$--------------------------------- Lower boundary of austenite ------------------------------------$


set-temperature-celsius 700 $ Temperature 700C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 200 $ Setting the ma(x). T-step to 200
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc2 $ Renaming series: "*_T$C" --> "fcc2"

$-------------------------------- Graphite upper phase boundary -----------------------------------$


set-temperature-celsius 800 $ Temperature 800C
calculate-equilibrium
search-phase-boundary T GRAPHITE $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P GRAPHITE $ Phase boundary of graphite phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 5 L 0.01 $ Range 0 - 5; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-plot-option . S L -1 T$C Y $ Locking the last series


set-plot-option . S M -1 *_T$C graphite $ Renaming series: "*_T$C" --> "graphite"

$------------------------------------- The finished diagram ---------------------------------------$


set-plot-option . T Fe-C phase diagram $ Plot title
set-plot-option . A X 1 T Carbon content [wt.%] $ x-axis title
set-plot-option . A Y 1 T Temperature [C] $ y-axis title
$ In the [a]xis section, the [y]-axis no.[1] has [s]caling starting from 400
set-plot-option . A Y 1 S 400..
set-plot-option . L B $ Legend on the bottom

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_8

289
Apendix A

SCRIPT TUTORIAL 9

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for calculating pseudobinary phase diagrams according to Tutorial 9.


The following contents will be covered:

- Further phase boundary calculations


- Coping with complex boundary shapes
- Diagrams with different reference elements

A pseudobinary phase diagram is an equilibrium diagram calculated for a ternary or higher-order


system, in which the phase boundaries resulting from the variation of two of the element contents
are calculated, while the amounts of all the other elements are kept constant.

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 23.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop-run-script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

$open-thermodyn-database mc_fe_v2.000_prebeta_017.tdb $ Thermodynamic database: mc_sample_fe.tdb


open-thermodyn-database mc_sample_fe2.tdb
select-elements FE C NB VA $ Components: Fe, Nb, C
select-phases LIQUID FCC_A1 BCC_A2 CEMENTITE $ Phases: Liquid, fcc, bcc, cementite
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,1 NB=0,3 $ Composition: 0.1 wt.% C, 0.3 wt.% Nb

set-temperature-celsius 1000 $ Temperature 1000C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

new-gui-window p1 $ Phase diagram plots


290
Apendix A

$$**************************************************************************************************
FE-C PSEUDOBINARY WITH CONSTANT NB CONTENT
**************************************************************************************************$$

$------------------------------ Upper boundary of delta-ferrite -----------------------------------$


set-temperature-celsius 1550 $ Temperature 1550C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,2 L 0.0005 $ Range 0 - 0.2; linear step of 0,0005
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-plot-option . S N B T$C %s $ Plotting the phase boundary


set-gui-window-property . L $ Locking all unlocked series
set-plot-option . S M -1 *_T$C bcc_high_1 $ Renaming series: "*_T$C" --> "bcc_high_1"
set-plot-option . G M X Y $ Switching on the major gridlines for x-axis
set-plot-option . G M Y Y $ Switching on the major gridlines for y-axis

$-------------------------------- Lower boundary of liquid ----------------------------------------$


set-temperature-celsius 1450 $ Temperature 1450C
calculate-equilibrium
search-phase-boundary T LIQUID $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P LIQUID $ Phase boundary of liquid phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,2 L 0.0005 $ Range 0 - 0,2; linear step of 0,0005
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C liquid $ Renaming series: "*_T$C" --> "liquid"

$------------------------------- Upper boundary of austenite --------------------------------------$


set-temperature-celsius 1500 $ Temperature 1500C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,2 L 0.0005 $ Range 0 - 0,2; linear step of 0,0005
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc_1 $ Renaming series: "*_T$C" --> "fcc_1"

291
Apendix A

$------------------------------ Lower boundary of delta-ferrite -----------------------------------$


set-temperature-celsius 1450 $ Temperature 1450C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,2 L 0.0005 $ Range 0 - 0,2; linear step of 0,0005
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_high_2 $ Renaming series: "*_T$C" --> "bcc_high_2"

$---------------------------------- Boundary of NbC phase -----------------------------------------$


set-temperature-celsius 1450 $ Temperature 1450C
calculate-equilibrium
search-phase-boundary T FCC_A1#01 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,2 L 0.0005 $ Range 0 - 0,2; linear step of 0,0005
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 100 $ Setting the ma(x). T-step to 100
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C NbC $ Renaming series: "*_T$C" --> "NbC"
set-plot-option . A Y 1 S 500.. $ Scaling on the y-axis starts from 500

$------------------------------ Upper boundary of alpha-ferrite -----------------------------------$


set-temperature-celsius 900 $ Temperature 900C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,2 L 0.0005 $ Range 0 - 0,2; linear step of 0,0005
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_low $ Renaming series: "*_T$C" --> "bcc_low"

$-------------------------------- Lower boundary of austenite -------------------------------------$


set-temperature-celsius 700 $ Temperature 700C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E C $ Carbon content varied
292
Apendix A

set-step-option R 0 0,2 L 0.0005 $ Range 0 - 0,2; linear step of 0,0005


set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc2 $ Renaming series: "*_T$C" --> "fcc2"

$------------------------------- Cementite upper phase boundary -----------------------------------$


set-temperature-celsius 800 $ Temperature 800C
calculate-equilibrium
search-phase-boundary T CEMENTITE $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P CEMENTITE $ Phase boundary of cementite phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,2 L 0.0005 $ Range 0 - 0,2; linear step of 0,0005
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-plot-option . S L -1 T$C Y $ Locking the last series


set-plot-option . S M -1 *_T$C cementite $ Renaming series: "*_T$C" --> "cementite"

$----------------------------------- The finished diagram -----------------------------------------$


set-plot-option . T Fe-C pseudobinary for 0.3 wt.% Nb $ Plot title
set-plot-option . A X 1 T Carbon content [wt.%] $ x-axis title
set-plot-option . A Y 1 T Temperature [C] $ y-axis title
set-plot-option . L R $ Legend on the right

$$**************************************************************************************************
FE-NB PSEUDOBINARY WITH CONSTANT C CONTENT
**************************************************************************************************$$

new-gui-window p1 $ The new phase diagram will be plotted in the new GUI-window

$------------------------------- Upper boundary of delta-ferrite ----------------------------------$


set-temperature-celsius 1550 $ Temperature 1550C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.01 $ Range 0 - 1; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-plot-option . S N B T$C %s $ Plotting the phase boundary


set-gui-window-property . L $ Locking all unlocked series
set-plot-option . S M -1 *_T$C bcc_high_1 $ Renaming series: "*_T$C" --> "bcc_high_1"
set-plot-option . G M X Y $ Switching on the major gridlines for x-axis
set-plot-option . G M Y Y $ Switching on the major gridlines for y-axis

293
Apendix A

$---------------------------------- Lower boundary of liquid --------------------------------------$


set-temperature-celsius 1450 $ Temperature 1450C
calculate-equilibrium
search-phase-boundary T LIQUID $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P LIQUID $ Phase boundary of liquid phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.01 $ Range 0 - 1; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C liquid $ Renaming series: "*_T$C" --> "liquid"

$---------------------------------- Upper boundary of austenite -----------------------------------$


set-temperature-celsius 1500 $ Temperature 1500C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.01 $ Range 0 - 1; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc_1 $ Renaming series: "*_T$C" --> "fcc_1"

$--------------------------------- Lower boundary of delta-ferrite --------------------------------$


set-temperature-celsius 1450 $ Temperature 1450C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.01 $ Range 0 - 1; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_high_2 $ Renaming series: "*_T$C" --> "bcc_high_2"

$--------------------------------- Upper boundary of alpha-ferrite --------------------------------$


set-temperature-celsius 900 $ Temperature 900C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.01 $ Range 0 - 1; linear step of 0,01
294
Apendix A

set-step-option O E Y $ Composition in wt.%


set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_low $ Renaming series: "*_T$C" --> "bcc_low"

$----------------------------------- Lower boundary of austenite ----------------------------------$


set-temperature-celsius 700 $ Temperature 700C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.01 $ Range 0 - 1; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc2 $ Renaming series: "*_T$C" --> "fcc2"

$---------------------------------- Cementite upper phase boundary --------------------------------$


set-temperature-celsius 800 $ Temperature 800C
calculate-equilibrium
search-phase-boundary T CEMENTITE $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P CEMENTITE $ Phase boundary of cementite phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.01 $ Range 0 - 1; linear step of 0,01
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 200 $ Setting the ma(x). T-step to 200
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C cementite $ Renaming series: "*_T$C" --> "cementite"

$------------------------------------ Boundary of NbC phase (1) -----------------------------------$


set-temperature-celsius 1000 $ Temperature 1000C
calculate-equilibrium
search-phase-boundary T FCC_A1#01 NB 750 Y $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.001 $ Range 0 - 1; linear step of 0,001
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 2 $ Setting the ma(x). T-step to 2
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C NbC_1 $ Renaming series: "*_T$C" --> "NbC_1"

295
Apendix A

$------------------------------------ Boundary of NbC phase (2) -----------------------------------$


set-temperature-celsius 500 $ Temperature 500C
calculate-equilibrium

$ Searching a phase boundary of NbC phase field varying Nb content at 500C


search-phase-boundary E FCC_A1#01 NB 500 Y

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option E NB $ Niobium content varied
set-step-option R 0 1 L 0.001 $ Range 0 - 1; linear step of 0,001
set-step-option O E Y $ Composition in wt.%
set-step-option O C Y $ Temperature in Celsius
set-step-option X 200 $ Setting the ma(x). T-step to 200
step-equilibrium

set-plot-option . S L -1 T$C Y $ Locking the last series


set-plot-option . S M -1 *_T$C NbC_2 $ Renaming series: "*_T$C" --> "NbC_2"

$-------------------------------------- The finished diagram --------------------------------------$

set-plot-option . T Fe-Nb pseudobinary for 0.1 wt.% C $ Plot title


set-plot-option . A X 1 T Nb content [wt.%] $ x-axis title
set-plot-option . A Y 1 T Temperature [C] $ y-axis title
set-plot-option . A Y 1 S 500.. $ Scaling on the y-axis starts from 500
set-plot-option . L R $ Legend on the right

$$**************************************************************************************************
NB-C PSEUDOBINARY WITH CONSTANT FE CONTENT
**************************************************************************************************$$

new-gui-window p1 $ This new phase diagram will be also plotted in the new GUI-window

set-reference-element NB $ Niobium content will be varied (Iron content will be kept fix)
$ Initial system composition in mole fractions: 0,996 Fe, 0,003 C
enter-composition X FE=0,996 C=0,003

$---------------------------------- Upper boundary of delta-ferrite -------------------------------$


set-temperature-celsius 1550 $ Temperature 1550C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,004 L 1e-5 $ Range 0 - 0.005; linear step of 0.00001
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-plot-option . S N B T$C %s $ Plotting the phase boundary


set-gui-window-property . L $ Locking all unlocked series
set-plot-option . S M -1 *_T$C bcc_high_1 $ Renaming series: "*_T$C" --> "bcc_high_1"
set-plot-option . G M X Y $ Switching on the major gridlines for x-axis
set-plot-option . G M Y Y $ Switching on the major gridlines for y-axis

$------------------------------------ Lower boundary of liquid ------------------------------------$


set-temperature-celsius 1450 $ Temperature 1450C
296
Apendix A

calculate-equilibrium
search-phase-boundary T LIQUID $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P LIQUID $ Phase boundary of liquid phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,004 L 1e-5 $ Range 0 - 0.005; linear step of 0.00001
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C liquid $ Renaming series: "*_T$C" --> "liquid"

$---------------------------------- Upper boundary of austenite -----------------------------------$


set-temperature-celsius 1500 $ Temperature 1500C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,004 L 1e-5 $ Range 0 - 0.005; linear step of 0.00001
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc_1 $ Renaming series: "*_T$C" --> "fcc_1"

$-------------------------------- Lower boundary of delta-ferrite ---------------------------------$


set-temperature-celsius 1450 $ Temperature 1450C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,004 L 1e-5 $ Range 0 - 0.005; linear step of 0.00001
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_high_2 $ Renaming series: "*_T$C" --> "bcc_high_2"

$-------------------------------- Upper boundary of alpha-ferrite ---------------------------------$


set-temperature-celsius 900 $ Temperature 900C
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P BCC_A2 $ Phase boundary of bcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,00399 L 1e-5 $ Range 0 - 0.00498; linear step of 0.00001
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
297
Apendix A

set-step-option X 20 $ Setting the ma(x). T-step to 20


step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C bcc_low $ Renaming series: "*_T$C" --> "bcc_low"

$---------------------------------- Lower boundary of austenite -----------------------------------$


set-temperature-celsius 700 $ Temperature 700C
calculate-equilibrium
search-phase-boundary T FCC_A1 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1 $ Phase boundary of fcc phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,00399 L 1e-5 $ Range 0 - 0.00498; linear step of 0.00001
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C fcc2 $ Renaming series: "*_T$C" --> "fcc2"

$--------------------------------- Cementite upper phase boundary ---------------------------------$


set-temperature-celsius 800 $ Temperature 800C
calculate-equilibrium
search-phase-boundary T CEMENTITE $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P CEMENTITE $ Phase boundary of cementite phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0,004 L 1e-5 $ Range 0 - 0.005; linear step of 0.00001
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 20
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_T$C cementite $ Renaming series: "*_T$C" --> "cementite"

$------------------------------------ Boundary of NbC phase (1) ------------------------------------$


set-temperature-celsius 1000 $ Temperature 1000C
calculate-equilibrium
search-phase-boundary T FCC_A1#01 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0.00396 L 1e-5 $ Range 0 - 0,00396; linear step of 0,00001
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
set-step-option X 20 $ Setting the ma(x). T-step to 200
step-equilibrium

set-plot-option . S L -1 T$C Y $ Locking the last series


set-plot-option . S M -1 *_T$C NbC $ Renaming series: "*_T$C" --> "NbC"
$$
$------------------------------------ Boundary of NbC phase (2) ------------------------------------$

enter-composition X FE=0,996 C=0,002


298
Apendix A

set-temperature-celsius 1500 $ Temperature 1500C


calculate-equilibrium
search-phase-boundary T FCC_A1#01 $ Varying temperature for the phase boundary search

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option E C $ Carbon content varied
set-step-option R 0 0.0039 L 1e-5 $ Range 0 - 0,00498; linear step of 0,0005
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius
set-step-option X 2 $ Setting the ma(x). T-step to 200
step-equilibrium

set-gui-window-property . L $ Locking the last series


set-plot-option . S M -1 *_T$C NbC_2 $ Renaming series: "*_T$C" --> "NbC"

$------------------------------------ Boundary of NbC phase (3) ------------------------------------$

enter-composition X FE=0,996 C=0,0022

set-temperature-celsius 1425 $ Temperature 1300C


calculate-equilibrium
$search-phase-boundary T FCC_A1#01 $ Varying temperature for the phase boundary search
SEARCH_PHASE_BOUNDARY E FCC_A1#01 c 1425 Y

set-step-option Y P $ "Phase boundary" type


set-step-option P FCC_A1#01 $ Phase boundary of NbC phase field
set-step-option E C $ Carbon content varied
set-step-option R 0.002 0.0039 L 1e-5 $ Range 0 - 0,00498; linear step of 0,0005
set-step-option O E N $ Composition in mole fraction
set-step-option O C Y $ Temperature in Celsius

set-step-option X 20 $ Setting the ma(x). T-step to 200


step-equilibrium

set-plot-option . S L -1 T$C Y $ Locking the last series


set-plot-option . S M -1 *_T$C NbC_3 $ Renaming series: "*_T$C" --> "NbC"
$$

$------------------------------------ The finished diagram ----------------------------------------$


set-plot-option . T Nb-C pseudobinary for 0.995 Fe (mole fraction) $ Plot title
set-plot-option . A X 1 T C content [mole fr.] $ x-axis title
set-plot-option . A Y 1 T Temperature [C] $ y-axis title
set-plot-option . A Y 1 S 500.. $ Scaling on the y-axis starts from 500
set-plot-option . L R $ Legend on the right

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_9

299
Apendix A

SCRIPT TUTORIAL 10

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for T0-temperature in Fe-Cr-C according to Tutorial 10.


The following contents will be covered:

- T0-temperature calculation
- Martensite / Bainite transformation
- Variation of T0-temperature with carbon and chromium content
- Import and display of experimental data into plots

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 23.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe2.tdb $ Thermodynamic database: mc_sample_fe2.tdb


select-elements FE C CR VA $ Components: Fe, C, Cr
select-phases FCC_A1 BCC_A2 $ Phases: fcc, bcc
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,1 CR=1 $ Composition: 0.1 wt.% C, 1 wt.% Cr

set-temperature-celsius 800 $ Temperature 800C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

$$**************************************************************************************************
CALCULATE THE T0-TEMPERATURE
**************************************************************************************************$$

search-phase-boundary T BCC_A2 $ Varying temperature for the bcc phase boundary search
300
Apendix A

create-calc-state Start_austenite

$$ Searching the T[0]-temperature with [bcc_a2] as a target phase and [fcc_a1] as a parent phase.
The composition of target phase is forced to the one of the parent phase (option switched to
[y]es). The dfm-offset is switched to 0 $$
search-phase-boundary 0 BCC_A2 fcc_a1 Y 0

$$**************************************************************************************************
EVALUATE T0-TEMPERATURE AS A FUNCTION OF CHROMIUM CONTENT
**************************************************************************************************$$

set-step-option Y M $ Selects the t[y]pe of calculation: "T0-te[m]perature"


set-step-option E CR $ Chromium content varied
set-step-option R 0 10 L 0,5 $ Range 0 - 10; linear step of 0,5
set-step-option O C Y $ Temperature in Celsius
set-step-option O E Y $ Composition in wt.%
set-step-option A BCC_A2 $ The T0-dependent ph[a]se is bcc
set-step-option N FCC_A1 $ The T0-pare[n]t phase is fcc
$ In the [o]ptions section, the [f]orce parent composition option is switched to [y]es
set-step-option O F Y
step-equilibrium

new-gui-window p1
set-plot-option . S N B T$C %s $ Plotting the T0-temperature
set-plot-option . A X 1 T Cr content [wt.%] $ x-axis title
set-plot-option . A Y 1 T T<sub>0</sub>-temperature [C] $ y-axis title
set-plot-option . L N $ No legend
set-plot-option . G M X Y $ Switching on the major gridlines for x-axis
set-plot-option . G M Y Y $ Switching on the major gridlines for y-axis

$$**************************************************************************************************
EVALUATE T0-TEMPERATURE AS A FUNCTION OF CARBON CONTENT
**************************************************************************************************$$

rename-current-buffer T0-chromium
create-calc-buffer T0-carbon
load-calc-state $ Loads the last calc-state - "start_austenite"

set-step-option Y M $ Selects the t[y]pe of calculation: "T0-te[m]perature"


set-step-option E C $ Carbon content varied
set-step-option R 0 1 L 0,05 $ Range 0 - 1; linear step of 0,05
set-step-option O C Y $ Temperature in Celsius
set-step-option O E Y $ Composition in wt.%
set-step-option A BCC_A2 $ The T0-dependent ph[a]se is bcc
set-step-option N FCC_A1 $ The T0-pare[n]t phase is fcc
$ In the [o]ptions section, the [f]orce parent composition option is switched to [y]es
set-step-option O F Y
step-equilibrium

set-gui-window-property . B T0-carbon $ "T0-carbon" buffer results are plotted


set-plot-option . A X 1 T C content [wt.%] $ x-axis title

$$**************************************************************************************************
ADD SOME EXPERIMENTAL DATA ON MARTENSITE START TEMPERATURES
**************************************************************************************************$$

create-calc-buffer T0_with_offset
create-global-table Exp_data $ Creating table

301
Apendix A

add-table-entry Exp_data 0 540 $ Adding to the "Exp_data" table the pair "0", "540"
add-table-entry Exp_data 0.086 510 $ Adding to the "Exp_data" table the pair "0.086", "510"
add-table-entry Exp_data 0.1936 475 $ etc...
add-table-entry Exp_data 0.2409 480
add-table-entry Exp_data 0.2495 470
add-table-entry Exp_data 0.2581 440
add-table-entry Exp_data 0.3011 430
add-table-entry Exp_data 0.3226 410
add-table-entry Exp_data 0.3871 410
add-table-entry Exp_data 0.3871 400
add-table-entry Exp_data 0.3871 395
add-table-entry Exp_data 0.4560 405
add-table-entry Exp_data 0.4947 355
add-table-entry Exp_data 0.5054 375
add-table-entry Exp_data 0.6022 330
add-table-entry Exp_data 0.6022 320
add-table-entry Exp_data 0.7097 280
add-table-entry Exp_data 0.7312 280
add-table-entry Exp_data 0.7743 265
add-table-entry Exp_data 0.8173 240
add-table-entry Exp_data 0.8603 225

$$ For the current plot[.], in [s]eries section, [n]ew series with the [t]able/experimental
data from "Exp_data" table is plotted $$
set-plot-option . S N T exp_data
set-plot-option . L R $ Legend on the right
set-gui-window-property . L $ Locking all unlocked series (applies only to buffer result)
$ Renaming series: no.0 --> "T<sub>0</sub> - dfm = 0 J/mol"
set-plot-option . S M -1 *_T$C 'T<sub>0</sub> - dfm = 0 J/mol'
set-plot-option . S M 1 Exp_data $ Renaming series: no.1 --> "Exp_data"
set-gui-window-property . B T0_with_offset $ "T0_with_offset" buffer results are plotted

$------------------------------------ dfm offset = 1200 J/mol -------------------------------------$


set-step-option Y M $ Selects the t[y]pe of calculation: "T0-te[m]perature"
set-step-option E C $ Carbon content varied
set-step-option R 0 1 L 0,05 $ Range 0 - 1; linear step of 0,05
set-step-option O C Y $ Temperature in Celsius
set-step-option O E Y $ Composition in wt.%
set-step-option A BCC_A2 $ The T0-dependent ph[a]se is bcc
set-step-option N FCC_A1 $ The T0-pare[n]t phase is fcc
$ In the [o]ptions section, the [f]orce parent composition option is switched to [y]es
set-step-option O F Y
set-step-option D 1200 $ Sets the T0-[d]fm-offset to 1200 J/mol
step-equilibrium

set-gui-window-property . L $ Locking all unlocked series (applies only to buffer result)


$ Renaming series: no.0 --> "T<sub>0</sub> - dfm = 1200 J/mol"
set-plot-option . S M -1 *_T$C 'T<sub>0</sub> - dfm = 1200 J/mol'

$------------------------------------ dfm offset = 1700 J/mol -------------------------------------$


set-step-option Y M $ Selects the t[y]pe of calculation: "T0-te[m]perature"
set-step-option E C $ Carbon content varied
set-step-option R 0 1 L 0,05 $ Range 0 - 1; linear step of 0,05
set-step-option O C Y $ Temperature in Celsius
set-step-option O E Y $ Composition in wt.%
set-step-option A BCC_A2 $ The T0-dependent ph[a]se is bcc
set-step-option N FCC_A1 $ The T0-pare[n]t phase is fcc
$ In the [o]ptions section, the [f]orce parent composition option is switched to [y]es
set-step-option O F Y
set-step-option D 1700 $ Sets the T0-[d]fm-offset to 1700 J/mol
step-equilibrium
302
Apendix A

set-plot-option . S L -1 T$C Y $ Locking the last series


$ Renaming series: no.0 --> "T<sub>0</sub> - dfm = 1700 J/mol"
set-plot-option . S M -1 *_T$C 'T<sub>0</sub> - dfm = 1700 J/mol'

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_10

303
Apendix A

SCRIPT TUTORIAL 11

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for simulation of solidification of 0.7C 3Mn steel according to Tutorial 11.
The following contents will be covered:

- Scheil calculation
- Back-Diffusion
- Composition set
- Solid-solid transformation

The Scheil-Gulliver method allows calculating the fraction and composition of all phases during
solidification step by step from the liquidus temperature to the temperature where solidification
of the residual liquid phase occurs. The particular residual fraction at final solidification
is dependent on the cooling rate. Generally, the fraction is higher, the higher the cooling rate is.
At slow cooling rates, the liquid film can become very thin and the residual liquid enriches more
than in the case of higher fraction residual liquid at solidification.

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 26.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe2.tdb $ Thermodynamic database: mc_sample_fe2.tdb


select-elements FE C MN VA $ Components: Fe, C, Mn
select-phases LIQUID FCC_A1 BCC_A2 CEMENTITE $ Phases: Liquid, fcc, bcc, cementite
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,7 MN=3 $ Composition: 0.7 wt.% C, 3 wt.% Mn

set-temperature-celsius 1600 $ Temperature 1600C


set-automatic-startvalues
304
Apendix A

calculate-equilibrium $ Initial equilibrium

$$**************************************************************************************************
CARRY OUT A SCHEIL CALCULATION
**************************************************************************************************$$

search-phase-boundary T FCC_A1 $ Varying temperature for the fcc phase boundary search

set-step-option Y S $ Selects the t[y]pe of calculation: "[S]cheil"


$ Defines the [r]ange of the calculation: from 1500 to 1000 with linear step of 10
set-step-option R 1500 1000 10
set-step-option O C Y $ Temperature in Celsius
set-step-option P LIQUID $ The dependent [p]hase is liquid
set-step-option L 1e-6 $ The minimum [l]iquid fraction is set to 1e-6

step-equilibrium

$--------------------------------------- Creating a plot ------------------------------------------$


new-gui-window p1

set-gui-window-property . X T$C $ Temperature in Celsius on x-axis


set-plot-option . A X 1 T T [C] $ x-axis title
set-plot-option . A X 1 S 1100.. $ Scaling on the y-axis starts from 1100
set-plot-option . A Y 1 T Liquid fraction $ y-axis title
set-plot-option . L R $ Legend on the right
set-plot-option . G M X Y $ Switching on the major gridlines for x-axis
set-plot-option . G M Y Y $ Switching on the major gridlines for y-axis
set-plot-option . S N B F$LIQUID %s $ Plotting the fraction of the liquid phase

rename-current-buffer Scheil

$$**************************************************************************************************
ADD A SCHEIL CALCULATION WITH BACK-DIFFUSION OF CARBON
**************************************************************************************************$$

create-calc-buffer Scheil_with_BD_of_C

set-step-option Y S $ Selects the t[y]pe of calculation: "[S]cheil"


$ Defines the [r]ange of the calculation: from 1500 to 1000 with linear step of 10
set-step-option R 1500 1000 10
set-step-option O C Y $ Temperature in Celsius
set-step-option P LIQUID $ The dependent [p]hase is liquid
set-step-option L 1e-6 $ The minimum [l]iquid fraction is set to 1e-6
$ In the [b]ack diffusion section, [c]arbon diffusion is allowed (set to [y]es)
set-step-option B C Y

step-equilibrium

set-gui-window-property . L $ Locking all unlocked series


set-plot-option . S M -1 *_F$LIQUID Scheil $ Renaming series: "*_F$LIQUID" --> "Scheil"
$ In the [b]uffer section, the data from buffer "Scheil_with_BD_of_C" are chosen for the display
set-gui-window-property . B Scheil_with_BD_of_C
set-gui-window-property . L $ Locking all unlocked series
$ Renaming series: "*_F$LIQUID" --> "Scheil with BD of C"
set-plot-option . S M -1 *_F$LIQUID 'Scheil with BD of C'

$$**************************************************************************************************
ADD THE EQUILIBRIUM SOLIDIFICATION PATH
**************************************************************************************************$$
305
Apendix A

change-phase-status FCC_A1_S F S S $ Suspending phase "FCC_A1_S"


change-phase-status BCC_A2_S F S S $ Suspending phase "BCC_A2_S"
change-phase-status CEMENTITE_S F S S $ Suspending phase "CEMENTITE_S"

create-calc-buffer Equilibrium

set-step-option Y T $ "Temperature" type


set-step-option R 1500 1350 L 5 $ Range 1500 - 1350; linear step of 5
set-step-option O C Y $ Temperature in Celsius

step-equilibrium

$ In the [b]uffer section, the data from buffer "Equilibrium" are chosen for the display
set-gui-window-property . B Equilibrium
set-plot-option . S L -1 F$LIQUID Y $ Locking the series "F$LIQUID"
set-plot-option . S M -1 *_F$LIQUID Equilibrium $ Renaming series: "*_F$LIQUID" --> "Equilibrium"

$ In the [a]xis section for the [y]-axis no.[1], the scaling t[y]pe is set to [log]arithmic
set-plot-option . A Y 1 Y log
set-plot-option . A Y 1 S 0,01.. $ Scaling on the y-axis starts from 0.01

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_11

306
Apendix A

SCRIPT TUTORIAL 12

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for using the MatCalc console according to Tutorial 12.


The following contents will be covered:

- Getting help in the MatCalc console


- Obtaining lists of available commands for different modules
- Command syntax and abbreviations
- Example: calculating an equilibrium using the command-line
- Evaluating numerical expressions and variables
- Defining, using and plotting functions

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 26.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
BASICS
**************************************************************************************************$$

help-workspace $ Opens a list of available commands in workspace module


help-module $ Opens a list of available commands in mc_core module
help-module IO $ Opens a list of available commands in mc_core: IO module

$$**************************************************************************************************
EXAMPLE: CALCULATING AND EQUILIBRIUM USING THE COMMAND-LINE
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe2.tdb $ Thermodynamic database: mc_sample_fe2.tdb


$ Lists the contents of the thermodynamic ([e]quilibrium) database
list-database-contents E
select-elements C FE $ Components: Fe, C
select-phases LIQUID BCC_A2 FCC_A1 CEMENTITE $ Selects the liquid, bcc, fcc and cementite phases
read-thermodyn-database
307
Apendix A

enter-composition WP C=0,4 $ Composition: 0.4 wt.% C

set-temperature-celsius 700 $ Temperature 700C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

$$**************************************************************************************************
EVALUATING EXPRESSIONS
**************************************************************************************************$$

$------------------------------------ Numerical expressions ---------------------------------------$


show-expression 4/5
show-expression pi
show-expression 4/5*3
show-expression 4/(5*3)
show-expression 4+4*2
show-expression (4+4)*2

$-------------------------------------- Expressions in x ------------------------------------------$


show-expression 3*x
set-function-expression function1 3*x $ Defining function1
set-function-expression function2 x**2 $ Defining function2
set-function-expression function3 x^2 $ Defining function3

new-gui-window p1
$$ For the current plot[.], in [s]eries section, [n]ew series with the [f]unction/expression
result for "function1" is plotted in the range of -10 - 10 $$
set-plot-option . S N F function1 -10..10
$ Plotting the result for "function2" is plotted in the range of -10 - 10
set-plot-option 1 S N F function2 -10..10
$ Plotting the result for "function3" is plotted in the range of -10 - 10
set-plot-option 1 S N F function3 -10..10

$$**************************************************************************************************
EXPRESSIONS USING MATCALC VARIABLES
**************************************************************************************************$$

set-function-expression function4 F$BCC_A2*X$BCC_A2$C $ Defining function4


set-function-expression function5 F$CEMENTITE*X$CEMENTITE$C $ Defining function5
show-expression function4
show-expression function5
show-expression function4+function5
show-expression XS$C-(function4+function5)

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_12

308
Apendix A

SCRIPT TUTORIAL 13

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for introduction to scripting (1: Equilibrium calculations) according to Tutorial 13.
The following contents will be covered:

- Purpose of scripts
- Writing a script to perform a stepped calculation and display the results

A script is a text file, containing a list of commands to be executed in order from top to bottom.
They are particularly useful to speed up routine or repetitive operations. Once a script file has
been created, it can easily be modified to serve a new purpose, for example by changing the elements
or phases in the system. Script files, consisting only of text, are also much smaller in size than
MatCalc workspace files, especially those resulting from precipitation calculations.
Individual scripts can also be grouped into master-scripts; this facilitates, for example,
calculations involving multi-stage heat treatments. Some sample scripts are provided with MatCalc.
You will find them in the subdirectories of 'MatCalc/scripts/script_menu/templates'. Of course,
you can also edit them in MatCalc by clicking on 'Open template…' in 'Script' menu.

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 26.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

@ echo n $ Hides command name in console


set-workspace-info Script T13
set-workspace-info +Calculation of equilibrium phase stability
set-workspace-info +in Fe-0.4C wt.% system
set-workspace-info +with phases LIQUID, BCC_A2, FCC_A1 and CEMENTITE.
echo y $ Shows command name in console

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop-run-script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe.tdb $ Thermodynamic database: mc_sample_fe.tdb


select-elements c fe $ Components: Fe, Nb, C
select-phases liq bcc fcc cem $ Phases: Liquid, bcc, fcc, cementite
309
Apendix A

read-thermodyn-database

set-reference-element FE
enter-composition wp c=0.4 $ Composition: 0.4 wt.% C

set-temperature-celsius 700 $ Temperature 700C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

$$**************************************************************************************************
GRAPHICAL OUTPUT
**************************************************************************************************$$

set-step-option r 400 1600 L 25


step-equilibrium

new-gui-window p1

set-gui-window-property . x t$c
set-gui-window-property . s u y $ set default x-axis to be used for all plots
set-gui-window-property . s t Temperature [C] $ title for default x-axis

set-plot-option . t Phase stability in Fe-0.4 wt.% C

set-plot-option . a y 1 t Phase fraction [%]


set-plot-option . a y 1 f 100
set-plot-option . a y 1 y log $ changes axis type to log
set-plot-option . a y 1 s 1..100 $ modifies axis scaling

set-plot-option . s n b f$liquid
set-plot-option . s m -1 f$liquid Liquid

set-plot-option . s n b f$bcc_a2
set-plot-option . s m -1 f$bcc_a2 Ferrite
set-plot-option . s n b f$fcc_a1
set-plot-option . s m -1 f$fcc_a1 Austenite
set-plot-option . s n b f$cementite
set-plot-option . s m -1 f$cementite Fe<sub>3</sub>C

move-gui-window . 20 20 800 1000


update-gui-window .
set-gui-window-property . y col_no_symb $sets style-sheet to colour with no symbols.

create-new-plot x .

set_plot_option . t Composition of phases


set-plot-option . a y 1 t Carbon content [wt.%] $ label on y-axis
set-plot-option . s n b x$liquid$C $wp $ adding the first series...
set-plot-option . s m -1 x$liquid$C Liquid $... and changing its name.
set-plot-option . s n b x$bcc_a2$C $wp
set-plot-option . s m -1 x$bcc_a2$C Ferrite
set-plot-option . s n b x$fcc_a1$C $wp
set-plot-option . s m -1 x$fcc_a1$C Austenite
set-plot-option . s n b x$cementite$C $wp
set-plot-option . s m -1 x$cementite$C Fe<sub>3</sub>C

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_13
310
Apendix A

311
Apendix A

SCRIPT TUTORIAL 14

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for introduction to precipitation calculations according to Tutorial 14.


The following contents will be covered:

- Precipitation of cementite in a ferritic matrix in Fe-0.2 wt.% C


- Creating a precipitation domain
- Creating a precipitate phase
- Mobility and physical data
- Plotting and interpreting calculation results

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 18.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 08.01.2016 (P. Warczok, Update for 6.00)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop-run-script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe.tdb $ Thermodynamic database: mc_sample_fe.tdb


select-elements FE C VA $ Components: Fe, C
select-phases BCC_A2 CEMENTITE $ Phases: bcc, cementite
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,2 $ Composition: 0.2 wt.% C

$-------------------------------------- Precipitation domain --------------------------------------$


create-precipitation-domain Ferrite $ Creates precipitation domain "Ferrite"
$ "Ferrite" is defined as a matri[x] phase with bcc structure
set-precipitation-parameter Ferrite X BCC_A2

$--------------------------------------- Precipitate phase ----------------------------------------$


312
Apendix A

create-new-phase cementite P $ Cementite is defined as a precipitate phase


$ Initializes the precipitate phase cementite_p0 with 250 [c]lasses
set-precipitation-parameter CEMENTITE_P0 C 250
$ Attaches the precipitate phase cementite_p0 to "ferrite" [d]omain
set-precipitation-parameter CEMENTITE_P0 D Ferrite
$ In the [n]ucleation section, the nucleation [s]ites are set to [d]islocations
set-precipitation-parameter CEMENTITE_P0 N S D

$------------------------------------- Loading mobility data --------------------------------------$


read-mobility-database mc_sample_fe.ddb $ Mobility (diffusion) database: mc_sample_fe.ddb

$--------------------------------- Creating plots for the output ----------------------------------$


new-gui-window p1
set-gui-window-property . S U Y $ Default x-axis
set-gui-window-property . S T Time [h] $ x-axis title
set-gui-window-property . S Y log $ Logarithimic scale on x-axis
set-gui-window-property . S S 1e-12.. $ Scaling starts from 1e-12
set-gui-window-property . S F 1/3600 $ Multiplication [f]actor for x-axis

set-plot-option . T Phase fraction of cementite precipitate $ Plot title


set-plot-option . A Y 1 T Phase fraction $ y-axis title
set-plot-option . L N $ [N]one legend box
set-plot-option . S N B F$CEMENTITE_P0 %s $ Plotting the fraction of cementite phase

new-gui-window p5 $ Creating a window with histogram


$ In [s]eries section, [n]ew series for [p]recipitate distribution of "cementite_p0" phase is chosen
set-plot-option . S N P CEMENTITE_P0
$ In [h]istogram section, the [n]umber of classes is set to 20
set-plot-option . H N 20
set-plot-option . T Cementite precipitate distribution $ plot title
set-plot-option . A X 1 T Precipitate radius [nm] $ x-axis title
set-plot-option . A X 1 F 1e9 $ Multiplication [f]actor for x-axis
set-plot-option . A Y 1 T Number of precipitates $ y-axis title
set-plot-option . L N $ [N]one legend box

$$**************************************************************************************************
THE CALCULATION
**************************************************************************************************$$

$$ In the [c]onvergence control parameters section, [n]umerical limit for nucleation density
increase factor [b] is set to 1.05 $$
set-simulation-parameter C N B 1.05

set-temperature-celsius 600 $ Temperature 600C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

set-simulation-parameter E 3,6e5 $ Simulation end tim[e] is set to 360000 seconds


$ In [t]emperature section, [i]sothermal option is chosen with 600
set-simulation-parameter T I 600
set-simulation-parameter P Y $ Tem[p]erature in Celsius
start-precipitate-simulation $ Starts kinetic simulation

$$**************************************************************************************************
INTERPRETING THE RESULTS
**************************************************************************************************$$

create-new-plot X 2
set-plot-option . T Number of precipitates $ Plot title
313
Apendix A

set-plot-option . A Y 1 T Number of precipitates [*10<sup>20</sup> m<sup>-3</sup>] $ y-axis title


set-plot-option . A Y 1 F 1e-20 $ Multiplication factor for y-axis
set-plot-option . L N $ No legend
$ Plotting the number of particles of cementite precipitate
set-plot-option . S N B NUM_PART$CEMENTITE_P0 %s

create-new-plot X 2
set-plot-option . T Nucleation rate $ Plot title
$ y-axis title
set-plot-option . A Y 1 T Nucleation rate [*10<sup>26</sup> m<sup>-3</sup>s<sup>-1</sup>]
set-plot-option . A Y 1 F 1e-26 $ Multiplication factor for y-axis
set-plot-option . L N $ No legend
$ Plotting the nucleation rate of cementite precipitate
set-plot-option . S N B NUCL_RATE$CEMENTITE_P0 %s

create-new-plot X 2
set-plot-option . T Precipitate radius $ Plot title
set-plot-option . A Y 1 T Precipitate radius [*10<sup>-6</sup> m] $ y-axis title
set-plot-option . A Y 1 Y log $ Logarithmic scale on y-axis
set-plot-option . A Y 1 F 1e6 $ Multiplication factor for y-axis
set-plot-option . L B $ Legend on the bottom
set-plot-option . S N B R_MEAN$CEMENTITE_P0 %s $ Plotting mean radius of cementite precipitate
set-plot-option . S N B R_CRIT$CEMENTITE_P0 %s $ Plotting critical radius of cementite precipitate
set-plot-option . S N B R_MIN$CEMENTITE_P0 %s $ Plotting minimal radius of cementite precipitate
set-plot-option . S N B R_MAX$CEMENTITE_P0 %s $ Plotting maximal radius of cementite precipitate
set-plot-option . S M 0 Mean $ Renaming series no. 0 to "Mean"
set-plot-option . S M 1 Critical $ Renaming series no. 1 to "Critical"
set-plot-option . S M 2 Min $ Renaming series no. 2 to "Min"
set-plot-option . S M 3 Max $ Renaming series no. 3 to "Max"

set-plot-option 1 G M X Y $ Switching on the major gridlines for x-axis for plot no. 1
set-plot-option 1 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 1
set-plot-option 3 G M X Y $ Switching on the major gridlines for x-axis for plot no. 3
set-plot-option 3 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 3
set-plot-option 4 G M X Y $ Switching on the major gridlines for x-axis for plot no. 4
set-plot-option 4 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 4
set-plot-option 5 G M X Y $ Switching on the major gridlines for x-axis for plot no. 5
set-plot-option 5 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 5
set-gui-window-property . N 2 $ Arranging plots in the columns with the [n]umber of columns of "2"

create-new-plot P 3 $ New histogram plot


$ In [s]eries section, [n]ew series for [p]recipitate distribution of "cementite_p0" phase is chosen
set-plot-option . S N P CEMENTITE_P0
set-plot-option . H N 20 $ In [h]istogram section, the [n]umber of classes is set to 20
$ In [h]istogram section, the histogram [f]requency scaling is set to the [d]ensity
set-plot-option . H F D
$ In [h]istogram section, the histogram scale [r]adius option is set to [y]es
set-plot-option . H R Y
set-plot-option . T Scaled cementite precipitate size distribution $ Plot title
set-plot-option . A X 1 T Scaled radius $ x-axis title
set-plot-option . A Y 1 T Scaled number $ y-axis title
set-plot-option . A X 1 S 0..1,499 $ x-axis scaling in range 0 - 1.499
set-plot-option . L B $ Legend on the bottom

$ Definition of "lsw" function


set-function-expression lsw x^2*(3/(3+x))^(7/3)*((3/2)/(3/2-x))^(11/3)*exp(-x/(3/2-x))*4/9
$ Plotting the "lsw" function in the range 0 - 1.499
set-plot-option . S N F lsw 0..1,499

$$**************************************************************************************************
SAVING WORKSPACE
314
Apendix A

**************************************************************************************************$$

save-workspace Tutorial_14

315
Apendix A

SCRIPT TUTORIAL 15

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for effect of microstructure and conditions (Part 1) according to Tutorial 15.
The following contents will be covered:

- Choice of nucleation model


- Diffusivity in precipitates
- Nucleation sites for the precipitate phase
- Microstructural parameters of the precipitation domain

The Fe-Cr-C system forms the basis of many industrially useful alloys. The aim of this and Tutorial
16 is to produce a simulation of the precipitation behaviour in a Fe-10Cr-0.1C (wt.%) alloy during
heat-treatment at 600C. This involves considering several aspects, such as the chemical
compositions of nuclei, the microstructural sites on which nuclei form, and the density of these
sites in the microstructure under consideration. This first of two tutorials will focus on modelling
the formation of the metastable cementite (Fe3C) phase, and Tutorial 16 will consider the
interaction between this and the more stable phase M23C6.

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 26.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop-run-script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe2.tdb $ Thermodynamic database: mc_sample_fe2.tdb


select-elements FE C CR VA $ Components: Fe, C, Cr
select-phases BCC_A2 CEMENTITE M23C6 $ Phases: bcc, cementite, M23C6
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,1 CR=10 $ Composition: 0.1 wt.% C, 10 wt.% Cr

316
Apendix A

set-temperature-celsius 600 $ Temperature 600C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

change-phase-status M23C6 F S S $ M23C6 phase suspended


calculate-equilibrium
change-phase-status M23C6 F S C $ M23C6 phase activated
calculate-equilibrium

$$**************************************************************************************************
NUCLEATION MODEL FOR CEMENTITE
**************************************************************************************************$$

$-------------------------------- Setting up the simulation ---------------------------------------$


create-new-phase CEMENTITE P $ Cementite is defined as a precipitate phase
$ Initializes the precipitate phase cementite_p0 with 25 [c]lasses
set-precipitation-parameter CEMENTITE_P0 C 25
$ In the [n]ucleation section, the nucleation [s]ites are set to [d]islocations
set-precipitation-parameter CEMENTITE_P0 N S D
$ In the [n]ucleation section, the nucleus [c]omposition is set as [p]ara-composition
set-precipitation-parameter CEMENTITE_P0 N C P

create-precipitation-domain ferrite $ Creates precipitation domain "ferrite"


$ "Ferrite" is defined as a matri[x] phase with bcc structure
set-precipitation-parameter ferrite X BCC_A2
$ Attaches the precipitate phase cementite_p0 to "ferrite" [d]omain
set-precipitation-parameter CEMENTITE_P0 D ferrite

read-mobility-database mc_sample_fe.ddb $ Mobility (diffusion) database: mc_sample_fe.ddb

$------------------------------- Graphical display of results -------------------------------------$


new-gui-window p1
set-gui-window-property . S U Y $ Use default x-axis
set-gui-window-property . S T Time [h] $ Default x-axis title
set-gui-window-property . S Y log $ Logarithmic scale on default x-axis
set-gui-window-property . S S 1e-10.. $ Scaling limit for the default x-axis
set-gui-window-property . S F 1/3600 $ Multiplication factor for the default x-axis

set-plot-option . S N B F$CEMENTITE_P0 %s $ Plotting the fraction of cementite phase


set-plot-option . A Y 1 T f<sub>CEM</sub> $ y-axis title

create-new-plot X .
$ Plotting the chromium content in the cementite precipitate
set-plot-option . S N B X$CEMENTITE_P0$CR %s
$ Plotting the chromium content in the cementite precipitate nucleus
set-plot-option . S N B X_NUCL$CEMENTITE_P0$CR %s
set-plot-option . A Y 1 T x<sub>Cr</sub> $ y-axis title

create-new-plot X .
set-plot-option . S N B X$BCC_A2$C %s $ Plotting the carbon content in the bcc phase
set-plot-option . A Y 1 T x<sub>BCC_A2, C</sub> $ y-axis title

create-new-plot X .
$ Plotting the number of particles of cementite precipitate
set-plot-option . S N B NUM_PREC$CEMENTITE_P0 %s
$ y-axis title
set-plot-option . A Y 1 T N<sub>ppt</sub> [m<sup>-3</sup>]

create-new-plot X .
set-plot-option . S N B R_MEAN$CEMENTITE_P0 %s $ Plotting the mean radius of cementite precipitate
set-plot-option . A Y 1 T R<sub>mean</sub> [m] $ y-axis title
317
Apendix A

set-plot-option . A Y 1 Y log $ Logarithmic scale on y-axis

set-plot-option 1 G M X Y $ Switching on the major gridlines for x-axis for plot no. 1
set-plot-option 1 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 1
set-plot-option 2 G M X Y $ Switching on the major gridlines for x-axis for plot no. 2
set-plot-option 2 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 2
set-plot-option 3 G M X Y $ Switching on the major gridlines for x-axis for plot no. 3
set-plot-option 3 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 3
set-plot-option 4 G M X Y $ Switching on the major gridlines for x-axis for plot no. 4
set-plot-option 4 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 4
set-plot-option 5 G M X Y $ Switching on the major gridlines for x-axis for plot no. 5
set-plot-option 5 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 5
$ Arranging plots in the columns with the [n]umber of columns of "2"
set-gui-window-property . N 2

save-workspace Tutorial_15_setup

$$**************************************************************************************************
CALCULATION
**************************************************************************************************$$

$-------------------------------------- Para-equilibrium ------------------------------------------$


set-simulation-parameter E 3,6e13 $ Simulation end tim[e] is set to 3.6e13 seconds
$ In [t]emperature section, [i]sothermal option is chosen with 600
set-simulation-parameter T I 600
set-simulation-parameter P Y $ Tem[p]erature in Celsius
start-precipitate-simulation $ Starts kinetic simulation

set-gui-window-property . L $ Locking all unlocked series


set-plot-option 1 S M 0 Para $ Renaming series in plot #1: #0 --> "Para"
$ Renaming series in plot #2: #0 --> "X<sub>CEM</sub>, Para"
set-plot-option 2 S M 0 'X<sub>CEM</sub>, Para'
$ Renaming series in plot #2: #1 --> "X<sub>NUCL,CEM</sub>, Para"
set-plot-option 2 S M 1 'X<sub>NUCL,CEM</sub>, Para'
set-plot-option 3 S M 0 Para $ Renaming series in plot #3: #0 --> "Para"
set-plot-option 4 S M 0 Para $ Renaming series in plot #4: #0 --> "Para"
set-plot-option 5 S M 0 Para $ Renaming series in plot #5: #0 --> "Para"

$-------------------------------------- Ortho-equilibrium -----------------------------------------$


$ In the [n]ucleation section, the nucleus [c]omposition is set as [o]rtho-composition
set-precipitation-parameter CEMENTITE_P0 N C O
start-precipitate-simulation

set-plot-option 1 S M 1 Ortho $ Renaming series in plot #1: #1 --> "Ortho"


$ Renaming series in plot #2: #2 --> "X<sub>CEM</sub>, Ortho"
set-plot-option 2 S M 2 'X<sub>CEM</sub>, Ortho'
$ Renaming series in plot #2: #3 --> "X<sub>NUCL,CEM</sub>, Ortho"
set-plot-option 2 S M 3 'X<sub>NUCL,CEM</sub>, Ortho'
set-plot-option 3 S M 1 Ortho $ Renaming series in plot #3: #1 --> "Ortho"
set-plot-option 4 S M 1 Ortho $ Renaming series in plot #4: #1 --> "Ortho"
set-plot-option 5 S M 1 Ortho $ Renaming series in plot #5: #1 --> "Ortho"

$$**************************************************************************************************
DIFFUSIVITY IN PRECIPITATES
**************************************************************************************************$$

set-gui-window-property . L $ Locking all unlocked series


$ Renaming series in plot #1: #2 --> "Para, faster diffusion in ppt"
set-plot-option 1 S M 2 'Para, faster diffusion in ppt'
$ Renaming series in plot #2: #4 --> "X<sub>CEM</sub>, Para, faster diffusion in ppt"
318
Apendix A

set-plot-option 2 S M 4 'X<sub>CEM</sub>, Para, faster diffusion in ppt'


$ Renaming series in plot #2: #5 --> "X<sub>NUCL,CEM</sub>, Para, faster diffusion in ppt"
set-plot-option 2 S M 5 'X<sub>NUCL,CEM</sub>, Para, faster diffusion in ppt'
$ Renaming series in plot #3: #2 --> "Para, faster diffusion in ppt"
set-plot-option 3 S M 2 'Para, faster diffusion in ppt'
$ Renaming series in plot #4: #2 --> "Para, faster diffusion in ppt"
set-plot-option 4 S M 2 'Para, faster diffusion in ppt'
$ Renaming series in plot #5: #2 --> "Para, faster diffusion in ppt"
set-plot-option 5 S M 2 'Para, faster diffusion in ppt'

$ Para-composition for cementite precipitate nucleus


set-precipitation-parameter CEMENTITE_P0 N C P
$ [S]pecial options, [d]iffusion in prec. is calculated from matrix diffusion with [r]atio of 0.25
set-precipitation-parameter CEMENTITE_P0 S D R 0,25
start-precipitate-simulation

$$**************************************************************************************************
MICROSTRUCTURAL PARAMETERS AND NUCLEATION SITES
**************************************************************************************************$$

set-plot-option 1 S R -1 Ortho $ Removing "Ortho" series in plot #1


$ Removing "X<sub>CEM</sub>, Ortho" series in plot #2
set-plot-option 2 S R -1 'X<sub>CEM</sub>, Ortho'
$ Removing "X<sub>NUCL,CEM</sub>, Ortho" series in plot #2
set-plot-option 2 S R -1 'X<sub>NUCL,CEM</sub>, Ortho'
set-plot-option 3 S R -1 Ortho $ Removing "Ortho" series in plot #3
set-plot-option 4 S R -1 Ortho $ Removing "Ortho" series in plot #4
set-plot-option 5 S R -1 Ortho $ Removing "Ortho" series in plot #5

$ Renaming series in plot #1: #0 --> "10<sup>-12</sup>m<sup>2</sup>"


set-plot-option 1 S M 0 10<sup>-12</sup>m<sup>2</sup>
$ Renaming series in plot #2: #0 --> "10<sup>-12</sup>m<sup>2</sup>"
set-plot-option 2 S M 0 10<sup>-12</sup>m<sup>2</sup>
$ Renaming series in plot #2: #1 --> "nucl_10<sup>-12</sup>m<sup>2</sup>"
set-plot-option 2 S M 1 nucl_10<sup>-12</sup>m<sup>2</sup>
$ Renaming series in plot #3: #0 --> "10<sup>-12</sup>m<sup>2</sup>"
set-plot-option 3 S M 0 10<sup>-12</sup>m<sup>2</sup>
$ Renaming series in plot #4: #0 --> "10<sup>-12</sup>m<sup>2</sup>"
set-plot-option 4 S M 0 10<sup>-12</sup>m<sup>2</sup>
$ Renaming series in plot #5: #0 --> "10<sup>-12</sup>m<sup>2</sup>"
set-plot-option 5 S M 0 10<sup>-12</sup>m<sup>2</sup>

$---------------------------------- Dislocation density 1e14 --------------------------------------$


$ Renaming series in plot #1: #1 --> "10<sup>-14</sup>m<sup>2</sup>"
set-plot-option 1 S M 1 10<sup>-14</sup>m<sup>2</sup>
$ Renaming series in plot #2: #2 --> "10<sup>-14</sup>m<sup>2</sup>"
set-plot-option 2 S M 2 10<sup>-14</sup>m<sup>2</sup>
$ Renaming series in plot #2: #3 --> "nucl_10<sup>-14</sup>m<sup>2</sup>"
set-plot-option 2 S M 3 nucl_10<sup>-14</sup>m<sup>2</sup>
$ Renaming series in plot #3: #1 --> "10<sup>-14</sup>m<sup>2</sup>"
set-plot-option 3 S M 1 10<sup>-14</sup>m<sup>2</sup>
$ Renaming series in plot #4: #1 --> "10<sup>-14</sup>m<sup>2</sup>"
set-plot-option 4 S M 1 10<sup>-14</sup>m<sup>2</sup>
$ Renaming series in plot #5: #1 --> "10<sup>-14</sup>m<sup>2</sup>"
set-plot-option 5 S M 1 10<sup>-14</sup>m<sup>2</sup>

$ [S]pecial options, [d]iffusion in prec. is calculated from matrix diffusion with [r]atio of 0.01
set-precipitation-parameter CEMENTITE_P0 S D R 0,01
$ In S[t]ructure, [d]islocations, [e]quilibrium dislocation density in ferrite domain set to 1e14
set-precipitation-parameter ferrite T D E 1e14
start-precipitate-simulation
319
Apendix A

set-gui-window-property . L

$---------------------------------- Dislocation density 1e16 --------------------------------------$


$ Renaming series in plot #1: #2 --> "10<sup>-16</sup>m<sup>2</sup>"
set-plot-option 1 S M 2 10<sup>-16</sup>m<sup>2</sup>
$ Renaming series in plot #2: #4 --> "10<sup>-16</sup>m<sup>2</sup>"
set-plot-option 2 S M 4 10<sup>-16</sup>m<sup>2</sup>
$ Renaming series in plot #2: #5 --> "10<sup>-16</sup>m<sup>2</sup>"
set-plot-option 2 S M 5 nucl_10<sup>-16</sup>m<sup>2</sup>
$ Renaming series in plot #3: #2 --> "10<sup>-16</sup>m<sup>2</sup>"
set-plot-option 3 S M 2 10<sup>-16</sup>m<sup>2</sup>
$ Renaming series in plot #4: #2 --> "10<sup>-16</sup>m<sup>2</sup>"
set-plot-option 4 S M 2 10<sup>-16</sup>m<sup>2</sup>
set-plot-option 4 A Y 1 Y log $ Logarithmic scale on y-axis
$ Renaming series in plot #5: #2 --> "10<sup>-16</sup>m<sup>2</sup>"
set-plot-option 5 S M 2 10<sup>-16</sup>m<sup>2</sup>

$ In S[t]ructure, [d]islocations, [e]quilibrium dislocation density in ferrite domain set to 1e16


set-precipitation-parameter ferrite T D E 1e16
start-precipitate-simulation

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_15

320
Apendix A

SCRIPT TUTORIAL 16

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for effect of microstructure and conditions (Part 2) according to Tutorial 16.
The following contents will be covered:

- Simultaneous precipitation of two phases


- Effect of dislocation density
- Effect of grain diameter
- Subgrains and elongation factors

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 26.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

read-workspace Tutorial_15 $ Load Workspace from Tutorial 15

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop-run-script $ stop script
endif

$$**************************************************************************************************
SIMULTANEOUS PRECIPITATION WITH M23C6
**************************************************************************************************$$

create-new-phase M23C6 P $ Creates M23C6 precipitate


set-precipitation-parameter M23C6_P0 C 25 $ Initializes M23C6 precipitate with 25 classes
set-precipitation-parameter M23C6_P0 D ferrite $ Attaches M23C6 precipitate to ferrite domain
set-precipitation-parameter M23C6_P0 N C O $ Ortho-composition for the M23C6 precipitate nuclei
$ [G]rain boundaries are nucleation sites for M23C6 precipitate
set-precipitation-parameter M23C6_P0 N S G

$ Equilibrium dislocation density for ferrite domain set to 1e12


set-precipitation-parameter ferrite T D E 1e12

set-gui-window-property 3 R $ All locked series are [r]emoved from GUI-window no.3


set-gui-window-property . S S 1e-12 $ Default x-axis scale starts at 1e-12
clear-calc-buffer $ Calculation buffer is cleared

set-plot-option 1 S N B F$M23C6_P0 %s $ Plotting fraction of M23C6 precipitate phase


set-plot-option 1 A Y 1 T Phase fraction $ y-axis title
set-plot-option 2 S R 1 $ [R]emoves series no.1 in plot #1
321
Apendix A

set-plot-option 2 S N B X$BCC_A2$CR %s $ Plotting Cr content in bcc phase


set-plot-option 4 S N B NUM_PREC$M23C6_P0 %s $ Plotting the number of particles of M23C6 precipitate
set-plot-option 5 S N B R_MEAN$M23C6_P0 %s $ Plotting mean radius of M23C6 precipitates

set-plot-option 1 S M 0 Cementite $ Renaming series in plot #1: #0 --> "Cementite"


$ Renaming series in plot #1: #1 --> "M<sub>23</sub>C<sub>6</sub>"
set-plot-option 1 S M 1 M<sub>23</sub>C<sub>6</sub>
set-plot-option 2 S M 0 Cementite $ Renaming series in plot #2: #0 --> "Cementite"
set-plot-option 2 S M 1 'Matrix (bcc_a2)' $ Renaming series in plot #2: #1 --> "Matrix (bcc_a2)"
$ Renaming series in plot #3: #0 --> "X<sub>BCC_A2,C</sub>"
set-plot-option 3 S M 0 X<sub>BCC_A2,C</sub>
set-plot-option 4 S M 0 Cementite $ Renaming series in plot #4: #0 --> "Cementite"
$ Renaming series in plot #4: #1 --> "M<sub>23</sub>C<sub>6</sub>"
set-plot-option 4 S M 1 M<sub>23</sub>C<sub>6</sub>
set-plot-option 5 S M 0 Cementite $ Renaming series in plot #5: #0 --> "Cementite"
$ Renaming series in plot #5: #1 --> "M<sub>23</sub>C<sub>6</sub>"
set-plot-option 5 S M 1 M<sub>23</sub>C<sub>6</sub>

set-simulation-parameter E 3,6e10 $ End time - 3.6e10 seconds


set-simulation-parameter T I 600 $ Isothermal treatment at 600
set-simulation-parameter P Y $ Temperature in Celsius
start-precipitate-simulation

$$**************************************************************************************************
EFFECT OF DISLOCATION DENSITY
**************************************************************************************************$$

$ Renaming series in plot #1: #0 --> "Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"


set-plot-option 1 S M 0 'Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #1: #1 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup>
m"
set-plot-option 1 S M 1 'M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #2: #0 --> "Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 2 S M 0 'Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #2: #1 --> "Matrix (bcc_a2), 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 2 S M 1 'Matrix (bcc_a2), 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #3: #0 --> "X<sub>BCC_A2,C</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 3 S M 0 'X<sub>BCC_A2,C</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #4: #0 --> "Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 4 S M 0 'Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #4: #1 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup>
m"
set-plot-option 4 S M 1 'M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #5: #0 --> "Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 5 S M 0 'Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #5: #1 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup>
m"
set-plot-option 5 S M 1 'M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'

set-gui-window-property . L $ Locking all unlocked series


$ Renaming series in plot #1: #2 --> "Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 1 S M 2 'Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #1: #3 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup>
m"
set-plot-option 1 S M 3 'M<sub>23</sub>C<sub>6</sub>, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #2: #2 --> "Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 2 S M 2 'Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #2: #3 --> "Matrix (bcc_a2), 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 2 S M 3 'Matrix (bcc_a2), 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #3: #1 --> "X<sub>BCC_A2,C</sub>, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 3 S M 1 'X<sub>BCC_A2,C</sub>, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #4: #2 --> "Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
322
Apendix A

set-plot-option 4 S M 2 'Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'


$ Renaming series in plot #4: #3 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup>
m"
set-plot-option 4 S M 3 'M<sub>23</sub>C<sub>6</sub>, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #5: #2 --> "Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 5 S M 2 'Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'
$ Renaming series in plot #5: #3 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup>
m"
set-plot-option 5 S M 3 'M<sub>23</sub>C<sub>6</sub>, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m'

$ Dislocation density in ferrite domain set to 1e14


set-precipitation-parameter ferrite T D E 1e14
start-precipitate-simulation

$$**************************************************************************************************
EFFECT OF GRAIN DIAMETER
**************************************************************************************************$$

$ Renaming series in plot #1: #2 --> "Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"


set-plot-option 1 S M 2 'Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'
$ Renaming series in plot #1: #3 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup>
m"
set-plot-option 1 S M 3 'M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'
$ Renaming series in plot #2: #2 --> "Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 2 S M 2 'Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'
$ Renaming series in plot #2: #3 --> "Matrix (bcc_a2), 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m"
set-plot-option 2 S M 3 'Matrix (bcc_a2), 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'
$ Renaming series in plot #3: #1 --> "X<sub>BCC_A2,C</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m"
set-plot-option 3 S M 1 'X<sub>BCC_A2,C</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'
$ Renaming series in plot #4: #2 --> "Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 4 S M 2 'Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'
$ Renaming series in plot #4: #3 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup>
m"
set-plot-option 4 S M 3 'M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'
$ Renaming series in plot #5: #2 --> "Cementite, 10<sup>14</sup>m<sup>-2</sup>, 10<sup>-4</sup> m"
set-plot-option 5 S M 2 'Cementite, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'
$ Renaming series in plot #5: #3 --> "M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup>
m"
set-plot-option 5 S M 3 'M<sub>23</sub>C<sub>6</sub>, 10<sup>12</sup>m<sup>-2</sup>, 10<sup>-5</sup> m'

$ Dislocation density in ferrite domain set to 1e12


set-precipitation-parameter ferrite T D E 1e12
$ In S[t]ructure, [g]rain size section, the grain diameter is set to 10e-6
set-precipitation-parameter ferrite T G 10e-6
start-precipitate-simulation

$$**************************************************************************************************
SUBGRAINS AND ELONGATION FACTORS
**************************************************************************************************$$

$------------------------------------------- Subgrains --------------------------------------------$


set-gui-window-property . R $ All locked series are [r]emoved from the current GUI-window[.]
$ Renaming series in plot #1: #0 --> "Cementite, g.b.(10<sup>-5</sup>m)m"
set-plot-option 1 S M 0 'Cementite, g.b.(10<sup>-5</sup>m)'
$ Renaming series in plot #1: #1 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)"
set-plot-option 1 S M 1 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)'
$ Renaming series in plot #2: #0 --> "Cementite, g.b.(10<sup>-5</sup>m)m"
set-plot-option 2 S M 0 'Cementite, g.b.(10<sup>-5</sup>m)'
$ Renaming series in plot #2: #1 --> "Matrix (bcc_a2), g.b.(10<sup>-5</sup>m)"
set-plot-option 2 S M 1 'Matrix (bcc_a2), g.b.(10<sup>-5</sup>m)'
$ Renaming series in plot #3: #0 --> "X<sub>BCC_A2,C</sub>, g.b.(10<sup>-5</sup>m)"
323
Apendix A

set-plot-option 3 S M 0 'X<sub>BCC_A2,C</sub>, g.b.(10<sup>-5</sup>m)'


$ Renaming series in plot #4: #0 --> "Cementite, g.b.(10<sup>-5</sup>m)m"
set-plot-option 4 S M 0 'Cementite, g.b.(10<sup>-5</sup>m)'
$ Renaming series in plot #4: #1 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)"
set-plot-option 4 S M 1 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)'
$ Renaming series in plot #5: #0 --> "Cementite, g.b.(10<sup>-5</sup>m)m"
set-plot-option 5 S M 0 'Cementite, g.b.(10<sup>-5</sup>m)'
$ Renaming series in plot #5: #1 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)"
set-plot-option 5 S M 1 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)'

set-gui-window-property . L $ Locking all unlocked series


$ Renaming series in plot #1: #2 --> "Cementite, g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 1 S M 2 'Cementite, g.b.(10<sup>-5</sup>m)+sg.b.'
$ Renaming series in plot #1: #3 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 1 S M 3 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+sg.b.'
$ Renaming series in plot #2: #2 --> "Cementite, g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 2 S M 2 'Cementite, g.b.(10<sup>-5</sup>m)+sg.b.'
$ Renaming series in plot #2: #3 --> "Matrix (bcc_a2), g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 2 S M 3 'Matrix (bcc_a2), g.b.(10<sup>-5</sup>m)+sg.b.'
$ Renaming series in plot #3: #1 --> "X<sub>BCC_A2,C</sub>, g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 3 S M 1 'X<sub>BCC_A2,C</sub>, g.b.(10<sup>-5</sup>m)+sg.b.'
$ Renaming series in plot #4: #2 --> "Cementite, g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 4 S M 2 'Cementite, g.b.(10<sup>-5</sup>m)+sg.b.'
$ Renaming series in plot #4: #3 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 4 S M 3 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+sg.b.'
$ Renaming series in plot #5: #2 --> "Cementite, g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 5 S M 2 'Cementite, g.b.(10<sup>-5</sup>m)+sg.b.'
$ Renaming series in plot #5: #3 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+sg.b."
set-plot-option 5 S M 3 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+sg.b.'

$ [G]rain and [s]ubgrain boundaries are nucleation sites for M23C6 precipitate
set-precipitation-parameter M23C6_P0 N S GS
start-precipitate-simulation

$--------------------------------------- Elongation factors ---------------------------------------$


set-gui-window-property . L
$ Renaming series in plot #1: #4 --> "Cementite, g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 1 S M 4 'Cementite, g.b.(10<sup>-5</sup>m)+elong.sg.b.'
$ Renaming series in plot #1: #5 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 1 S M 5 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+elong.sg.b.'
$ Renaming series in plot #2: #4 --> "Cementite, g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 2 S M 4 'Cementite, g.b.(10<sup>-5</sup>m)+elong.sg.b.'
$ Renaming series in plot #2: #5 --> "Matrix (bcc_a2), g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 2 S M 5 'Matrix (bcc_a2), g.b.(10<sup>-5</sup>m)+elong.sg.b.'
$ Renaming series in plot #3: #2 --> "X<sub>BCC_A2,C</sub>, g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 3 S M 2 'X<sub>BCC_A2,C</sub>, g.b.(10<sup>-5</sup>m)+elong.sg.b.'
$ Renaming series in plot #4: #4 --> "Cementite, g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 4 S M 4 'Cementite, g.b.(10<sup>-5</sup>m)+elong.sg.b.'
$ Renaming series in plot #4: #5 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 4 S M 5 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+elong.sg.b.'
set-plot-option 4 A Y 1 Y lin $ Linear scale on y-axis
$ Renaming series in plot #5: #4 --> "Cementite, g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 5 S M 4 'Cementite, g.b.(10<sup>-5</sup>m)+elong.sg.b.'
$ Renaming series in plot #5: #5 --> "M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+elong.sg.b."
set-plot-option 5 S M 5 'M<sub>23</sub>C<sub>6</sub>, g.b.(10<sup>-5</sup>m)+elong.sg.b.'

$ Grain size e[l]ongation factor for ferrite domain is set to 10


set-precipitation-parameter ferrite T L 10
start-precipitate-simulation

$$**************************************************************************************************
324
Apendix A

SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_16

325
Apendix A

SCRIPT TUTORIAL 17

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for complex multi-stage heat treatments according to Tutorial 17.


The following contents will be covered:

- Definition of complex heat treatments


- The heat treatment editor
- Multiple precipitation domains / matrix phase transformations

In this tutorial, we simulate the precipitation of NbC in the solid state during the continuous
casting of steel and the subsequent austenitization treatment. The austenite / ferrite
transformations of the matrix phases are taken into account. The continuous casting simulation
starts at 1400C with linear cooling to room temperature. The austenitization treatment is carried
out at 1100C for 2 hours. Heating and cooling rates are assumed to be 1 K/s. Furthermore, we assume
that precipitation of NbC occurs only at austenite grain boundaries in the austenite during
continuous casting. After transformation to ferrite, we assume that precipitation occurs at grain
boundaries and dislocations.

Database: mc_sample_fe2.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 26.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop-run-script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe2.tdb $ Thermodynamic database: mc_sample_fe2.tdb


select-elements FE C NB VA $ Components: Fe, C, Nb
select-phases BCC_A2 FCC_A1 $ Phases: bcc, fcc
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,1 NB=0,7 $ Composition: 0.1 wt.% C, 0.7 wt.% Nb

set-temperature-celsius 1000 $ Temperature 1000C


326
Apendix A

set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

create-precipitation-domain austenite $ Creates precipitation domain "austenite"


set-precipitation-parameter austenite X FCC_A1 $ Austenite domain structure: fcc
create-precipitation-domain ferrite $ Creates precipitation domain "ferrite"
set-precipitation-parameter ferrite X BCC_A2 $ Ferrite domain structure: bcc

create-new-phase FCC_A1#01 P $ Creates NbC precipitate

read-mobility-database mc_sample_fe.ddb $ Mobility (diffusion) database: mc_sample_fe.ddb

$-------------------------------------------- Setup GUI -------------------------------------------$


new-gui-window p1
set-gui-window-property . S U Y $ Use default x-axis
set-gui-window-property . S T Time [s] $ Default x-axis title
set-gui-window-property . S Y log $ Logarithmic scale on default x-axis
set-gui-window-property . S S 10.. $ Scaling limit for the default x-axis
set-gui-window-property . S L N $ No legend for the plots wirh the default x-axis

set-plot-option . S N B T$C %s $ Plotting the temperature in Celsius


set-plot-option . A Y 1 T Temperature [C] $ y-axis title

create-new-plot X .
set-plot-option . S N B F$FCC_A1#01_P0 %s $ Plotting the fraction of NbC precipitate phase
set-plot-option . A Y 1 T NbC phase fraction $ y-axis title

create-new-plot X .
set-plot-option . S N B R_MEAN$FCC_A1#01_P0 %s $ Plotting the mean radius of NbC precipitate phase
set-plot-option . A Y 1 T Mean radius [nm] $ y-axis title
set-plot-option . A Y 1 Y log $ Logarithmic scale on y-axis
set-plot-option . A Y 1 S 0.1.. $ Scaling range for y-axis
set-plot-option . A Y 1 F 1e9 $ Multiplication factor for y-axis

create-new-plot X .
$ Plotting the number of particles for NbC precipitate phase
set-plot-option . S N B NUM_PREC$FCC_A1#01_P0 %s
set-plot-option . A Y 1 T Number density [m<sup>-3</sup>] $ y-axis title
set-plot-option . A Y 1 Y log $ Logarithmic scale on y-axis
set-plot-option . A Y 1 S 1.. $ Scaling range for y-axis

set-plot-option 1 G M X Y $ Switching on the major gridlines for x-axis for plot no. 1
set-plot-option 1 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 1
set-plot-option 2 G M X Y $ Switching on the major gridlines for x-axis for plot no. 2
set-plot-option 2 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 2
set-plot-option 3 G M X Y $ Switching on the major gridlines for x-axis for plot no. 3
set-plot-option 3 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 3
set-plot-option 4 G M X Y $ Switching on the major gridlines for x-axis for plot no. 4
set-plot-option 4 G M Y Y $ Switching on the major gridlines for y-axis for plot no. 4
set-gui-window-property . N 2 $ Arranging plots in 2 columns

$$**************************************************************************************************
DEFINITION OF THE HEAT TREATMENT
**************************************************************************************************$$

create-heat-treatment sample_ht $ Creates the heat treatment sequence

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


$ In the current segment[.], [s]tart temperature is set 1400C
edit-ht-segment sample_ht . S 1400
$$ In the current segment[.], the parameter set no.[1] is chosen with end temperature
327
Apendix A

600C and cooling rate 1K/s $$


edit-ht-segment sample_ht . 1 600 -1
$$ In the current segment[.], precipitation [d]omain is [n]ot inherited from the previous
segment. It is set to austenite $$
edit-ht-segment sample_ht . D N austenite

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


$$ In the current segment[.], the parameter pair no.[1] is chosen with end temperature 25C
and cooling rate 1K/s $$
edit-ht-segment sample_ht . 1 25 -1
$$ In the current segment[.], precipitation [d]omain is [n]ot inherited from the
previous segment. It is set to ferrite $$
edit-ht-segment sample_ht . D N ferrite

append-ht-segment sample_ht $ New segment


edit-ht-segment sample_ht . 1 850 1 $ End temperature: 850C; Heating rate: 1K/s
$ In the current segment[.], for precipitation [d]omain the inheritance option is set to [y]es
edit-ht-segment sample_ht . D Y

append-ht-segment sample_ht $ New segment


edit-ht-segment sample_ht . 1 1100 1 $ End temperature: 1100C; Heating rate: 1K/s
edit-ht-segment sample_ht . D N austenite $ Precipitation domain: Austenite

append-ht-segment sample_ht $ New segment


$$ In the current segment[.], the parameter set no.[3] is chosen with end temperature
1100C and heating time 7200 seconds. $$
edit-ht-segment sample_ht . 3 1100 7200
$ In the current segment[.], for precipitation [d]omain the inheritance option is set to [y]es
edit-ht-segment sample_ht . D Y

append-ht-segment sample_ht $ New segment


edit-ht-segment sample_ht . 1 600 -1 $ End temperature: 600C; Heating rate: -1K/s
edit-ht-segment sample_ht . D Y $ Precipitation domain: inherited from previous

append-ht-segment sample_ht $ New segment


edit-ht-segment sample_ht . 1 25 -1 $ End temperature: 25C; Heating rate: -1K/s
edit-ht-segment sample_ht . D N ferrite $ Precipitation domain: Ferrite

$$ In the segment no.[0], a line is added[+] to the p[r]e-seg script


(Grain boundaries as nucleation sites for NbC precipitate) $$
edit-ht-segment sample_ht 0 R +set-precipitation-parameter FCC_A1#01_P0 N S G
$$ In the segment no.[0], a line is added[+] to the p[o]st-seg script
(Grain boundaries and dislocations as nucleation sites for NbC precipitate) $$
edit-ht-segment sample_ht 0 O +set-precipitation-parameter FCC_A1#01_P0 N S DG

save-workspace Tutorial_17_init

$$**************************************************************************************************
PERFORM SIMULATION
**************************************************************************************************$$

$ Temperature profile from defined [h]eat treatment "sample_ht" with the max. temperature step of 10
set-simulation-parameter T H sample_ht 10
start-precipitate-simulation

$$**************************************************************************************************
SIMULATION WITH SEPARATION OF PRECIPITATE POPULATIONS
**************************************************************************************************$$

create-new-phase FCC_A1#01 P $ Creates the second phase for NbC precipitate

328
Apendix A

$$ In the segment no.[0], a line is added[+] to the p[r]e-seg script


(none of the nucleation sites are selected for the second NbC precipitate) $$
edit-ht-segment sample_ht 0 R +set-precipitation-parameter FCC_A1#01_P1 N S N
$$ In the segment no.[0], a line is removed[-] from the p[o]st-seg script
(Grain boundaries and dislocations as nucleation sites for the first NbC precipitate) $$
edit-ht-segment sample_ht 0 O -set-precipitation-parameter FCC_A1#01_P0 N S DG
$$ In the segment no.[0], a line is added[+] to the p[o]st-seg script
(none of the nucleation sites are selected for the first NbC precipitate) $$
edit-ht-segment sample_ht 0 O +set-precipitation-parameter FCC_A1#01_P0 N S N
$$ Segment no.0, post-seg script, adding: Grain boundaries and dislocations as nucleation
sites for NbC precipitate $$
edit-ht-segment sample_ht 0 O +set-precipitation-parameter FCC_A1#01_P1 N S DG

start-precipitate-simulation

$ Plotting the fraction of the second NbC precipitate phase


set-plot-option 2 S N B F$FCC_A1#01_P1 %s
set-plot-option . A Y 1 Y log $ Logarithmic scale on y-axis
set-plot-option . A Y 1 S 1e-10.. $ Scaling on y-axis starts from 1e-10
$ Plotting the mean radius of the second NbC precipitate phase
set-plot-option 3 S N B R_MEAN$FCC_A1#01_P1 %s
$ Plotting the number of particles for NbC precipitate phase
set-plot-option 4 S N B NUM_PREC$FCC_A1#01_P1 %s

$$**************************************************************************************************
SIMULATION WITH PRECIPITATES WITH NUCLEATION RESTRICTED TO SELECTED DOMAIN
**************************************************************************************************$$

$$ For the [n]ucleation of the FCC_A1#01_P0 precipitate, the option of the nucleation
restricted to [p]recipitate domain restricted is switched to [y]es. The domain is selected
to austenite $$

set-precipitation-parameter FCC_A1#01_P0 N P Y austenite

$$ For the [n]ucleation of the FCC_A1#01_P1 precipitate, the option of the nucleation
restricted to [p]recipitate domain restricted is switched to [y]es. The domain is selected
to ferrite $$

set-precipitation-parameter FCC_A1#01_P1 N P Y ferrite

set-precipitation-parameter FCC_A1#01_P0 N S G $ Nucleation site for FCC_A1#01_P0: grain boundaries

$ In the segment no.[0], the content of the p[r]e-seg script is cleared [-]
edit-ht-segment sample_ht 0 R -

$ In the segment no.[0], the content of the p[o]st-seg script is cleared [-]
edit-ht-segment sample_ht 0 O -

SET_GUI_WINDOW_PROPERTY . L $ Duplicate and lock all plot series

start-precipitate-simulation

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_17

329
Apendix A

SCRIPT TUTORIAL 18

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script for plotting a TTP diagram according to Tutorial 18.


The following contents will be covered:

- Calculating a TTP diagram for isothermal treatments


- Calculating a TTP diagram for continuous cooling
- Plotting the diagram
- Display options: absolute, relative or relative to maximum phase fraction

A time-temperature-precipitation diagram is a plot consisting of contours characterising the extent


of a precipitation reaction on axes of temperature versus time. In this tutorial, a TTP diagram
will be calculated for the precipitation of NbC in the austenite single-phase region.

Database: mc_sample_fe.tdb
Author: P. Warczok
Creation date: 10.11.2008
This is a script for MatCalc version 5.44 (rel 0.008)
Last update: 26.09.2011 (G. Stechauner, Update for 5.44)

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Use "core" module (MatCalc uses "core" module by default anyway)

new-workspace $ creates a new workspace

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop-run-script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_sample_fe.tdb $ Thermodynamic database: mc_sample_fe.tdb


select-elements FE C NB VA $ Components: Fe, C, Nb
select-phases BCC_A2 FCC_A1 $ Phases: bcc, fcc
read-thermodyn-database

set-reference-element FE
enter-composition WP C=0,1 NB=0,7 $ Composition: 0.1 wt.% C, 0.7 wt.% Nb

set-temperature-celsius 1000 $ Temperature 1000C


set-automatic-startvalues
calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the bcc phase boundary search

330
Apendix A

set-temperature-celsius 1200 $ Temperature 1000C


calculate-equilibrium
search-phase-boundary T BCC_A2 $ Varying temperature for the bcc phase boundary search

$$**************************************************************************************************
SETTING UP PLOTS
**************************************************************************************************$$

new-gui-window p1
set-gui-window-property . X T$C $ Temperature in Celsius set as variable on x-axis
set-plot-option . A X 1 T Temperature [C] $ x-axis title
set-plot-option . A Y 1 T Equilibrium phase fraction of NbC $ y-axis title
set-plot-option . L N $ No legend
set-plot-option . S N B F$FCC_A1#01 %s $ Plotting the fraction of NbC phase

set-step-option Y T $ "Temperature" type


set-step-option R 1420 920 L 10 $ Range 920 - 1420; linear step of 10
set-step-option O C Y $ Temperature in Celsius
step-equilibrium

set-plot-option 1 S L * Y $ Lock all Series in Plot 1


set-gui-window-property . X stepvalue

create-precipitation-domain austenite
set-precipitation-parameter austenite X FCC_A1

create-new-phase FCC_A1#01 P
set-precipitation-parameter FCC_A1#01_P0 C 25
set-precipitation-parameter FCC_A1#01_P0 D austenite
set-precipitation-parameter FCC_A1#01_P0 N S D

read-mobility-database mc_sample_fe.ddb

$$**************************************************************************************************
PRECIPITATION CALCULATION
**************************************************************************************************$$

set-simulation-parameter E 1e5
set-simulation-parameter T I 925
start-precipitate-simulation

create-new-plot X .
set-plot-option . A X 1 T Time [s]
set-plot-option . A X 1 Y log
set-plot-option . A X 1 S 1..
set-plot-option . A Y 1 T NbC phase fraction
set-plot-option . L R
set-plot-option . S N B F$FCC_A1#01_P0 %s
set-gui-window-property . L
set-plot-option . S M -1 *_F$FCC_A1#01_P0 925C

set-simulation-parameter U 2
set-simulation-parameter E 1e5
set-simulation-parameter T I 1025
start-precipitate-simulation
set-gui-window-property . L
set-plot-option . S M -1 *_F$FCC_A1#01_P0 1025C

set-simulation-parameter E 1e5
set-simulation-parameter T I 1125
start-precipitate-simulation
331
Apendix A

set-gui-window-property . L
set-plot-option . S M -1 *_F$FCC_A1#01_P0 1125C

set-simulation-parameter U 2
set-simulation-parameter E 1e5
set-simulation-parameter T I 1175
start-precipitate-simulation
set-gui-window-property . L
set-plot-option . S M -1 *_F$FCC_A1#01_P0 1175C

set-simulation-parameter U 5
set-simulation-parameter E 1e5
set-simulation-parameter T I 1225
start-precipitate-simulation
set-plot-option . S L -1 F$FCC_A1#01_P0 Y
set-plot-option . S M -1 *_F$FCC_A1#01_P0 1225C

$$**************************************************************************************************
PLOTTING THE TTP DIAGRAMS
**************************************************************************************************$$

set-ttp-parameter E 1e5
set-ttp-parameter T 1225
set-ttp-parameter O 925
set-ttp-parameter D 25
set-ttp-parameter N 0.1
start-ttp-simulation

new-gui-window p6
set-plot-option . P R R
set-plot-option . S N D FCC_A1#01_P0 0.05
set-plot-option . S N D FCC_A1#01_P0 0.5
set-plot-option . S N D FCC_A1#01_P0 0.95
set-plot-option . S M 0 0.05
set-plot-option . S M 1 0.5
set-plot-option . S M 2 0.95
set-plot-option . A X 1 T Time [s]
set-plot-option . A Y 1 T Temperature [C]

set-plot-option . P R A
set-plot-option . S R *
set-plot-option . S N D FCC_A1#01_P0 1e-3
set-plot-option . S N D FCC_A1#01_P0 2e-3
set-plot-option . S N D FCC_A1#01_P0 3e-3
set-plot-option . S N D FCC_A1#01_P0 4e-3
set-plot-option . S N D FCC_A1#01_P0 5e-3
set-plot-option . S N D FCC_A1#01_P0 6e-3
set-plot-option . S N D FCC_A1#01_P0 7e-3
set-plot-option . S M 0 1e-3
set-plot-option . S M 1 2e-3
set-plot-option . S M 2 3e-3
set-plot-option . S M 3 4e-3
set-plot-option . S M 4 5e-3
set-plot-option . S M 5 6e-3
set-plot-option . S M 6 7e-3

set-plot-option . P R M
set-plot-option . S R *
set-plot-option . S N D FCC_A1#01_P0 0,1
set-plot-option . S N D FCC_A1#01_P0 0,2
set-plot-option . S N D FCC_A1#01_P0 0,3
set-plot-option . S N D FCC_A1#01_P0 0,4
332
Apendix A

set-plot-option . S N D FCC_A1#01_P0 0,5


set-plot-option . S N D FCC_A1#01_P0 0,6
set-plot-option . S N D FCC_A1#01_P0 0,7
set-plot-option . S N D FCC_A1#01_P0 0,8
set-plot-option . S N D FCC_A1#01_P0 0,9
set-plot-option . S M 0 0.1
set-plot-option . S M 1 0.2
set-plot-option . S M 2 0.3
set-plot-option . S M 3 0.4
set-plot-option . S M 4 0.5
set-plot-option . S M 5 0.6
set-plot-option . S M 6 0.7
set-plot-option . S M 7 0.8
set-plot-option . S M 8 0.9

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_18

333
Apendix A

SCRIPT TUTORIAL 19

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Scripting precipitation calculations according to Tutorial 19.


The following contents will be covered:

- Setting up precipitation domains


- Setting up precipitate phases
- Scripting a complex heat-treatment
- Modifying precipiation parameters during heat-treatment
- Plotting using scripts

The example used here uses the already familiar Fe-Nb-C system and considers a heat-treatment of an
initially well-annealed ferritic microstructure with no primary precipitates. Cementite is initially
allowed to nucleate on dislocations, and NbC on grain boundaries. The microstructure is heated into
the austenite phase stability region, held isothermally and then cooled quickly (quenched). On
quenching, a martensitic transformation occurs. This is modelled in MatCalc by a modification of the
ferrite precipitation domain to increase the dislocation density as well as the addition of subgrains
as possible nucleation sites for the NbC phase. The system is then subjected to a tempering heat
treatment consisting of heating, isothermal hold and cooling stages.

Database: mc_fe.tdb
Author: V. Yardley
Creation date: 20.02.2017
This is a script for MatCalc version 6.00 (rel 0.100)
Last update: M. Lueckl, 20.02.2017 - minor adjustments

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core
close-workspace f $ Close any open workspace without asking for save

new-workspace $ creates a new workspace

if (matcalc_version<6000000)
send-dialog-string "MatCalc version must be 6.00.0000 or higher to run this script. Stopping."
stop-run-script
endif

@$************************************
$ enter workspace info
@$************************************

@ set-workspace-info Script T19


@ set-workspace-info +Calculation of precipitation
@ set-workspace-info +in Fe-0.1C-0,7Nb wt.% system
@ set-workspace-info +during a complex heat treatment
@ set-workspace-info +with phases BCC_A2, FCC_A1 and CEMENTITE.

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_fe.tdb $ Open thermodynamic database mc_fe.tdb


select-elements FE C NB VA $ Components: Fe, C, Nb, Va
334
Apendix A

select-phases BCC_A2 FCC_A1 CEMENTITE $ Phases: bcc, fcc, cementite


read-thermodyn-database

set-reference-element Fe
enter-composition wp c=0.1 nb=0.7

read-mobility-database mc_fe.ddb $ Mobility database

set-temperature-celsius 1000 $ Temperature 1000C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

$$**************************************************************************************************
PRECIPITATION DOMAIN AND PHASES
**************************************************************************************************$$

$ ---------------------------------- PRECIPITATION DOMAINS -----------------------------------------

create-precipitation-domain austenite $ Create precipitation domain "austenite"


set-precipitation-parameter austenite X FCC_A1 $ Austenite domain structure: fcc
$ In S[t]ructure, [e]quilibrium)[d]islocation density set to 1e12
set-precipitation-parameter austenite T D E 1e12
$ In S[t]ructure, [g]rain size section, the grain diameter is set to 100e-6
set-precipitation-parameter austenite T G 100e-6

create-precipitation-domain ferrite $ Create precipitation domain "ferrite"


set-precipitation-parameter ferrite X BCC_A2 $ Ferrite domain structure: bcc
$ In S[t]ructure, [e]quilibrium)[d]islocation density set to 1e12
set-precipitation-parameter ferrite T D E 1e12
$ In S[t]ructure, [g]rain diameter set to 100e-6
set-precipitation-parameter ferrite T G 100e-6
$ In S[t]ructure, [s]ubgrain diameter is set to 10e-6
set-precipitation-parameter ferrite T S 10e-6
$ In S[t]ructure, subgrain el[o]ngation factor set to 10
set-precipitation-parameter ferrite T O 10

$ -------------------------------------- PRECIPITATES ----------------------------------------------

create-new-phase CEMENTITE P $ Create precipitate


set-precipitation-parameter CEMENTITE_P0 C 100 $ Size classes
$ In the [n]ucleation section, the nucleation [s]ites are set to [d]islocations
set-precipitation-parameter CEMENTITE_P0 N S D
$ In the [n]ucleation section, the nucleus [c]omposition is set to [p]ara-composition
set-precipitation-parameter CEMENTITE_P0 N C P

create-new-phase FCC_A1#01 P $ Create precipitate


set-precipitation-parameter FCC_A1#01_P0 C 100 $ Size classes
$ [G]rain boundaries are [n]ucleation [s]ites for NbC precipitate
set-precipitation-parameter FCC_A1#01_P0 N S G
$ [O]rtho-[c]omposition for the NbC precipitate [n]uclei
set-precipitation-parameter FCC_A1#01_P0 N C O

$$**************************************************************************************************
THERMOMECHANICAL TREATMENT
**************************************************************************************************$$

$ ---------------------------------------- VARIABLES -----------------------------------------------

set-variable-value f_a_temp 850 $ ferrite-> austenite transformation temp. in C


set-variable-value a_f_temp 600 $ austenite-> ferrite transformation temp. in C
set-variable-value aus_temp 1100 $ austenitisation temp. in C
335
Apendix A

set-variable-value temp_temp 600 $ tempering temp. in C


set-variable-value rate_heat_to_aus 1 $ rate of heating to aus_temp in K/s
set-variable-value rate_cool_from_aus -10 $ rate of cooling from aus_temp in K/s
set-variable-value rate_heat_to_temp 1 $ rate of heating to temp_temp in K/s
set-variable-value rate_cool_from_temp -1 $ rate of cooling from temp_temp in K/s
set-variable-value aus_time 3600 $ austenitisation time in seconds
set-variable-value temp_time 7200 $ tempering time in seconds

$ --------------------------------- THERMOMECHANICAL TREATMENT --------------------------------------

create-heat-treatment sample_ht

$ -------------------------------- AUSTENITISATION AND QUENCHING ------------------------------------

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


edit-ht-segment sample_ht . S 20 $ Start temperature
edit-ht-segment sample_ht . 1 f_a_temp rate_heat_to_aus $ End temperature and heating rate
edit-ht-segment sample_ht . D N ferrite $ Precipitation domain

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


edit-ht-segment sample_ht . 1 aus_temp rate_heat_to_aus $ End temperature and heating rate
edit-ht-segment sample_ht . D N austenite $ Precipitation domain

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


edit-ht-segment sample_ht . 3 aus_temp aus_time $ End temperature and holding time
edit-ht-segment sample_ht . D Y $ Precipitation domain is inherited

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


edit-ht-segment sample_ht . 1 a_f_temp rate_cool_from_aus $ End temperature and cooling rate
edit-ht-segment sample_ht . D Y $ Precipitation domain is inherited

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


edit-ht-segment sample_ht . 1 20 rate_cool_from_aus $ End temperature and cooling rate
edit-ht-segment sample_ht . D N ferrite $ Precipitation domain
edit-ht-segment sample_ht . O +set-precipitation-parameter ferrite T D E 1e14 $ Post-segment: Change the equilibrium
dislocation density
edit-ht-segment sample_ht . O +set-precipitation-parameter FCC_A1#01_P0 N S GS $ Post-segment: Change the nucleation
site

$ --------------------------------------- TEMPERING -------------------------------------------------

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


edit-ht-segment sample_ht . 1 temp_temp rate_heat_to_temp $ End temperature and heating rate
edit-ht-segment sample_ht . D Y $ Precipitation domain is inherited

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


edit-ht-segment sample_ht . 3 temp_temp temp_time $ End temperature and holding time
edit-ht-segment sample_ht . D Y $ Precipitation domain is inherited

append-ht-segment sample_ht $ Adding a segment to the heat treatment sequence


edit-ht-segment sample_ht . 1 20 rate_cool_from_temp $ End temperature and cooling rate
edit-ht-segment sample_ht . D Y $ Precipitation domain is inherited

$$**************************************************************************************************
GRAPHICAL OUTPUT
**************************************************************************************************$$

new-gui-window p1
set-gui-window-property . S U Y $ Use default x-axis
set-gui-window-property . S T Time [h] $ Default x-axis title
set-gui-window-property . S Y lin $ Linear scale
set-gui-window-property . S S 1e-10.. $ Scaling limit x-axis
336
Apendix A

set-gui-window-property . S F 1/3600 $ Multiplication factor s -> h


set-plot-option . S N B T$C %s $ Temperature in Celsius
set-plot-option . A Y 1 T Temperature [°C] $ y-axis title
set-plot-option . L N $ No legend

create-new-plot X .
set-plot-option . A Y 1 T Phase fraction $ y-axis title
$ New series: fraction of cementite precipitate phase
set-plot-option . S N B F$CEMENTITE_P0 %s
$ New series: fraction of NbC precipitate phase
set-plot-option . S N B F$FCC_A1#01_P0 %s
set-plot-option . S M 0 Cementite $ Rename series -> "Cementite"
set-plot-option . S M 1 NbC $ Rename series -> "NbC"

create-new-plot X .
set-plot-option . A Y 1 T N<sub>ppt</sub> [m<sup>-3</sup>] $ y-axis title
set-plot-option . A Y 1 Y log $ Log scale on y-axis
set-plot-option . S N B NUM_PREC$CEMENTITE_P0 %s
set-plot-option . S N B NUM_PREC$FCC_A1#01_P0 %s
set-plot-option . S M 0 Cementite $ Rename series in plot -> "Cementite"
set-plot-option . S M 1 NbC $ Rename series in plot -> "NbC"

create-new-plot X .
$ Plotting the mean radius
set-plot-option . A Y 1 T R<sub>mean</sub> [m] $ y-axis title
set-plot-option . A Y 1 Y log $ Logarithmic scale on y-axis
set-plot-option 4 S N B R_MEAN$CEMENTITE_P0 %s
set-plot-option 4 S N B R_MEAN$FCC_A1#01_P0 %s
set-plot-option 4 S M 0 Cementite $ Rename series in plot -> "Cementite"
set-plot-option 4 S M 1 NbC $ Rename series in plot --> "NbC"

$ Major gridlines for both x- and y-axes of all plots


set-plot-option 1 G M X Y
set-plot-option 1 G M Y Y
set-plot-option 2 G M X Y
set-plot-option 2 G M Y Y
set-plot-option 3 G M X Y
set-plot-option 3 G M Y Y
set-plot-option 4 G M X Y
set-plot-option 4 G M Y Y

new-gui-window p5 $ Histogram
set-gui-window-property . S U Y $ Use default x-axis
set-gui-window-property . S T Precipitate radius [nm] $ x-axis title
set-gui-window-property . S F 1e9 $ Multiplication [f]actor
set-plot-option . S N P CEMENTITE_P0 $ New series
set-plot-option . H N 20 $ [n]umber of [h]istogram classes set to 20
set-plot-option . T Cementite precipitate distribution $ plot title
set-plot-option . A Y 1 T Number density of precipitates [m<sup>-3</sup>] $ y-axis title
set-plot-option . L N $ [N]o legend box

new-gui-window p5 $ Histogram
set-gui-window-property . S U Y $ Use default x-axis
set-gui-window-property . S T Precipitate radius [nm] $ x-axis title
set-gui-window-property . S F 1e9 $ Multiplication [f]actor
set-plot-option . S N P FCC_A1#01_P0 $ New series
set-plot-option . H N 20 $ number of classes
set-plot-option . T NbC precipitate distribution $ plot title
set-plot-option . A Y 1 T Number density of precipitates [m<sup>-3</sup>] $ y-axis title
set-plot-option . L N $ [N]o legend box

$$**************************************************************************************************
337
Apendix A

KINETIC CALCULATION
**************************************************************************************************$$

set-simulation-parameter E 7200 $ Simulation end tim[e] in s


set-simulation-parameter T I 600 $ Isothermal - temperature
set-simulation-parameter P Y $ Tem[p]erature in Celsius
start-precipitate-simulation

set-simulation-parameter T H sample_ht 10
start-precipitate-simulation

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_19

338
Apendix A

SCRIPT TUTORIAL 20

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script Simulating grain growth according to Tutorial 20.


The following contents will be covered:

- using the single-class model for grain growth

Database: mc_fe.tdb
Author: M. Lueckl
Creation date: 16.02.2017
This is a script for MatCalc version 6.00 (rel 0.100)
Last update:

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Select core module for kinetic simulation


close-workspace f $ Close any open workspace without asking for save

new-workspace $ Create a new workspace

$ Add some information about your Script


@ echo n
set-workspace-info Script T20
set-workspace-info +Simulating grain growth
set-workspace-info +using the single-class model

echo y

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<6000000)
send-dialog-string "Sorry, MatCalc version must be 6.00.0000 or higher to run this script. The script stops now."
stop_run_script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

open-thermodyn-database mc_fe.tdb $ Open thermodynamic database mc_fe.tdb

select-elements FE $ Components: Fe
select-phases BCC_A2 $ Phases: bcc
read-thermodyn-database

read-mobility-database mc_fe.ddb $ Mobility (diffusion) database: mc_fe.ddb

set-temperature-celsius 1000 $ Temperature 1000C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

$------------------------------------PRECIPITATION DOMAIN -----------------------------------------$


339
Apendix A

create-precipitation-domain ferrite $ Creates precipitation domain "ferrite"


set-precipitation-parameter ferrite X BCC_A2 $ Ferrite domain structure: bcc
set-precipitation-parameter ferrite t g 100e-6 $ Domain grain size [m] (initial)
set-precipitation-parameter ferrite e g m s $ In microstructure [e]volution, [g]rain structure [m]odel is set to [s]ingle
class
set-precipitation-parameter ferrite e g s d 2 $ In microstructure [e]volution, [g]rain structure [s]ingle class model, k_[d]-
parameter equals 2
set-precipitation-parameter ferrite e g s r 1.5 $ In microstructure [e]volution, [g]rain structure [s]ingle class model, k_[r]-
parameter equals 1,5

$$**************************************************************************************************
SETTING UP PLOTS
**************************************************************************************************$$

new-gui-window p1
set-gui-window-property . s u y $ Use default x-axis for all plots: yes
set-gui-window-property . s t Time [h] $ Default x-axis title
set-gui-window-property . s f 1/3600 $ X-axis scaling factor
set-plot-option . a y 1 t Grain diameter [µm] $ Y-axis title
set-plot-option . a y 1 s 100.. $ Y-axis scaling range
set-plot-option . a y 1 f 1e6 $ Y-axis scaling factor
set-plot-option . s n b GD$ferrite $ Add series: mean grain diameter in domain
set-plot-option . l b $ Show legend at the bottom of the figure
move-gui-window . 0 200 400 600

$$**************************************************************************************************
KINETIC CALCULATION
**************************************************************************************************$$

$ Isothermal holding at 800°C


set-simulation-parameter e 36000 $ Set simulation [e]nd time
set-simulation-parameter p y $ Temperature in celsius
set-simulation-parameter t i 800 $ Isothermal temperature
start-precipitate-simulation
set-gui-window-property . l $ Duplicate an lock all series
set-plot-option . s m -1 *_gd$ferrite 800°C $ Rename series

$ Isothermal holding at 750°C


set-simulation-parameter t i 750 $ Isothermal temperature
start-precipitate-simulation
set-gui-window-property . l $ Duplicate an lock all series
set-plot-option . s m -1 *_gd$ferrite 750°C $ Rename series

$ Isothermal holding at 700°C


set-simulation-parameter t i 700 $ Isothermal temperature
start-precipitate-simulation
set-plot-option . s m -1 gd$ferrite 700°C $ Rename series

340
Apendix A

SCRIPT TUTORIAL 21

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script Strain induced precipitates according to Tutorial 21.


The following contents will be covered:

- Introduction of deformation into the thermo-mechanical treatment


- Effect of volumetric misfit on precipitation kinetics
- Effects of the applied deformation on the precipitation kinetics

Deformation process influences the microstructure of the alloy. One of the effects is the occurence
of the strain induced precipitates. This tutorial demonstrates how the deformation processes can be
included in the simulation of the processed material. Moreover, the effects of the deformation on the
precipitation kinetics are demonstrated and discussed.

Database: mc_fe.tdb
Author: M. Lueckl
Creation date: 17.02.2017
This is a script for MatCalc version 6.00 (rel 0.100)
Last update:

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Select core module for kinetic simulation


close-workspace f $ Close any open workspace without asking for save

new-workspace $ Create a new workspace

$ Add some information about your Script


@ echo n
set-workspace-info Script T20
set-workspace-info +Simulating grain growth
set-workspace-info +using the single-class model

echo y

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

if (matcalc_version<6000000)
open-thermodyn-database mc_sample_fe2.tdb $ Open thermodynamic database mc_sample_fe2.tdb
else
test-exist-td-database mc_fe.tdb
if(test_result==1)
open-thermodyn-database mc_fe.tdb $ Open thermodynamic database mc_fe.tdb
341
Apendix A

else
send-dialog-string ""mc_fe.tdb"-database not found. Please, download it from MatCalc Website"
endif
endif

select-elements Fe C Nb $ Components: Fe, C, Nb


select-phases bcc_a2 fcc_a1 cementite $ Phases: bcc, fcc, cementite
read-thermodyn-database

set-reference-element Fe
enter-composition wp c=0.2 nb=0.04

if (matcalc_version<6000000)
read-mobility-database mc_sample_fe.ddb $ Mobility (diffusion) database: mc_sample_fe.ddb
else
test-exist-mob-database mc_fe.ddb
if(test_result==1)
read-mobility-database mc_fe.ddb $ Opens thermodynamic database mc_fe.ddb
else
send-dialog-string ""mc_fe.ddb"-database not found. Please, download it from MatCalc Website"
endif
endif

set-temperature-celsius 1000 $ Temperature 1000C


set-automatic-startvalues
calculate-equilibrium $ Initial equilibrium

$$**************************************************************************************************
STEPPED EQUILIBRIUM CALCULATIONS
**************************************************************************************************$$

set-step-option Y T $ Select the t[y]pe of calculation: "[T]emperature"


set-step-option R 1400 400 L 10 $ Define the temperature range and the step
set-step-option O C Y $ Temperature in celsius
step-equilibrium $ Performs stepped equilibrium calculation

$$**************************************************************************************************
GRAPHICAL OUTPUT
**************************************************************************************************$$

new-gui-window p1 $ Create plot window


move-gui-window . 150 100 600 500 $ Move and resize plot window

$ define default x-axis properties


set-gui-window-property . s u y $ Use default x-axis for all plots
set-gui-window-property . s t temperature / °C $ Axis title
set-gui-window-property . x T$c $ X-axis data

$ define plot properties: phase fraction


set-plot-option . a y 1 t phase fraction $ Axis title
set-plot-option . s n b f$* $ Add series
set-plot-option . a y 1 y log $ Type: log

update-gui-window . $ Update the GUI window


set-gui-window-property . l $ Duplicate and lock all series

$ Remove all duplicated series


set-plot-option 1 s r -1 f$fcc_a1
set-plot-option 1 s r -1 f$fcc_a1#01
set-plot-option 1 s r -1 f$bcc_a2
set-plot-option 1 s r -1 f$cementite
342
Apendix A

$$**************************************************************************************************
PRECIPITATION DOMAIN AND PHASES
**************************************************************************************************$$

$ ---------------------------------- PRECIPITATION DOMAIN ------------------------------------------


create-precipitation-domain austenite $ Creates precipitation domain "austenite"
set-precipitation-parameter austenite x fcc_a1 $ Austenite domain structure: fcc

$ -------------------------------------- PRECIPITATE -----------------------------------------------


create-new-phase fcc_a1#01 p $ Creates NbC precipitate
set-precipitation-parameter fcc_a1#01_p0 n s d $ Nucleation sites at dislocations

$$**************************************************************************************************
THERMOMECHANICAL TREATMENT
**************************************************************************************************$$

create-heat-treatment cooling $ Create the heat treatment sequence

append-ht-segment cooling $ Adding a segment to the heat treatment sequence


edit-ht-segment cooling . S 1300 $ Start temperature is set 1300C
edit-ht-segment cooling . 1 750 -1 $ End temperature and cooling rate
edit-ht-segment cooling . D N austenite $ Precipitation domain

$$**************************************************************************************************
GRAPHICAL OUTPUT
**************************************************************************************************$$

new-gui-window p1 $ Create plot window


move-gui-window . 75 15 880 790 $ Move and resize plot window

$ Define default x-axis properties


set-gui-window-property . s u y $ Use default x-axis for all plots
set-gui-window-property . s t time / s $ Axis title
set-gui-window-property . s y lin $ Type: lin
set-gui-window-property . s s 1 $ X-axis scaling
set-gui-window-property . n 2 $ Two plot columns

$ Define plot properties: temperature profile


set-plot-option . a y 1 t temperature / C $ Axis title
set-plot-option . s n b T$c $ Add series
set-plot-option . g m y y $ Y-Axis major gridlines
set-plot-option . g m x y $ X-Axis major gridlines

$ Define plot properties: phase fraction


create-new-plot x . $ Create a new plot
set_plot_option . l a y $ Use kinetic alias name
set-plot-option . a y 1 t phase fraction $ Axis title
set-plot-option . a y 1 y log $ Log scale
set-plot-option . a y 1 s 1e-10..0.001 $ Rescale axis
set-plot-option . s n b f_prec$* $ Add series
set-plot-option . g m y y $ Y-Axis major gridlines
set-plot-option . g m x y $ X-Axis major gridlines

$ Define plot properties: number density


create-new-plot x . $ Areate a new plot
set_plot_option . l a y $ Use kinetic alias name
set-plot-option . a y 1 t number density / m<sup>-3</sup> $ Axis title
set-plot-option . a y 1 y log $ Log scale
set-plot-option . a y 1 s 1e16..2e21 $ Rescale axis
343
Apendix A

set-plot-option . s n b num_prec$* $ Add series


set-plot-option . g m y y $ Y-Axis major gridlines
set-plot-option . g m x y $ X-Axis major gridlines

$ Define plot properties: mean radius


create-new-plot x . $ Create a new plot
set_plot_option . l a y $ Use kinetic alias name
set-plot-option . a y 1 t mean radius / nm $ Axis title
set-plot-option . a y 1 y log $ Log scale
set-plot-option . a y 1 s 0.6..10 $ Rescale axis
set-plot-option . a y 1 f 1e9 $ Factor -> nm
set-plot-option . s n b r_mean$* $ Add series
set-plot-option . g m y y $ Y-Axis major gridlines
set-plot-option . g m x y $ X-Axis major gridlines

$$**************************************************************************************************
KINETIC CALCULATION
**************************************************************************************************$$

set-simulation-parameter t h cooling 10 $ Define the max. temperature step


start-precipitate-simulation

set-gui-window-property 3 l $ Duplicate an lock all series

set-plot-option 2 s m -1 *_T$C Cooling $ Rename series


set-plot-option 3 s m -1 fcc_a1#01_p0 NbC $ Rename series
set-plot-option 4 s m -1 fcc_a1#01_p0 NbC $ Rename series
set-plot-option 5 s m -1 fcc_a1#01_p0 NbC $ Rename series

rename-current-buffer cooling $ Give the buffer a new name

$$**************************************************************************************************
EFFECT OF VOLUMETRIC MISFIT
**************************************************************************************************$$

create-calc-buffer Vol_misfit $ Create a new buffer


set-gui-window-property 3 b Vol_misfit $ Assign the buffer to the plot

$ -------------------------------------- PRECIPITATE -----------------------------------------------


set-precipitation-parameter fcc_a1#01_p0 t m n 0,1 $ Use volumetric misfit between prec./matrix
set-precipitation-parameter fcc_a1#01_p0 N F Y $ Take volumetric misfit into account during nucleation

$ ----------------------------------- KINETIC CALCULATION ------------------------------------------


set-simulation-parameter t h cooling 10 $ Define the max. temperature step
start-precipitate-simulation
set-gui-window-property 3 l $ Duplicate an lock all series

set-plot-option 2 s m -1 *_T$C Cooling $ Rename series


set-plot-option 3 s m -1 fcc_a1#01_p0 NbC(misfit) $ Rename series
set-plot-option 4 s m -1 fcc_a1#01_p0 NbC(misfit) $ Rename series
set-plot-option 5 s m -1 fcc_a1#01_p0 NbC(misfit) $ Rename series

$$**************************************************************************************************
SIMULATION OF DEFORMATION PROCESS
**************************************************************************************************$$

create-calc-buffer Deformation $ Create a new buffer


set-gui-window-property 3 b Deformation $ Assign the buffer to the plot

$ ---------------------------------- PRECIPITATION DOMAIN ------------------------------------------


344
Apendix A

set-precipitation-parameter austenite e s m s $ Sherstnev-Kozeschnik simple

$ -------------------------------------- PRECIPITATE -----------------------------------------------


set-precipitation-parameter fcc_a1#01_p0 N I Y $ Ignore volumetric misfit during deformation

$ --------------------------------- THERMOMECHNICAL TREATMENT --------------------------------------


create-heat-treatment deformation $ Create the heat treatment sequence

append-ht-segment deformation $ Adding a segment to the heat treatment sequence


edit-ht-segment deformation . S 1300 $ Start temperature is set 1300C
edit-ht-segment deformation . 1 1000 -1 $ End temperature and cooling rate
edit-ht-segment deformation . D N austenite $ Precipitation domain

append-ht-segment deformation $ Adding a segment to the heat treatment sequence


$ In the current segment [.], the parameter pair no.[4] is chosen with accumulated strain of 0.7
edit-ht-segment deformation . 4 0.7 $ Accumulated strain
$ In the current segment [.], eps dot with 0.15 is chosen
edit-ht-segment deformation . e 0.15 $ eps dot
edit-ht-segment deformation . D N austenite $ Precipitation domain

append-ht-segment deformation $ Adding a segment to the heat treatment sequence


edit-ht-segment deformation . 1 950 -1 $ End temperature and cooling rate
edit-ht-segment deformation . D N austenite $ Precipitation domain

append-ht-segment deformation $ Adding a segment to the heat treatment sequence


$ In the current segment [.], the parameter pair no.[4] is chosen with accumulated strain of 0.7
edit-ht-segment deformation . 4 0.7 $ Accumulated strain
$ In the current segment [.], eps dot with 0.15 is chosen
edit-ht-segment deformation . e 0.15 $ eps dot
edit-ht-segment deformation . D N austenite $ Precipitation domain

append-ht-segment deformation $ Adding a segment to the heat treatment sequence


edit-ht-segment deformation . 1 900 -1 $ End temperature and cooling rate
edit-ht-segment deformation . D N austenite $ Precipitation domain

append-ht-segment deformation $ Adding a segment to the heat treatment sequence


$ In the current segment [.], the parameter pair no.[4] is chosen with accumulated strain of 0.7
edit-ht-segment deformation . 4 0.7 $ Accumulated strain
$ In the current segment [.], eps dot with 0.15 is chosen
edit-ht-segment deformation . e 0.15 $ eps dot
edit-ht-segment deformation . D N austenite $ Precipitation domain

append-ht-segment deformation $ Adding a segment to the heat treatment sequence


edit-ht-segment deformation . 1 750 -1 $ End temperature and cooling rate
edit-ht-segment deformation . D N austenite $ Precipitation domain

$ ----------------------------------- KINETIC CALCULATION ------------------------------------------


set-simulation-parameter t h deformation 10 $ Define the max. temperature step
start-precipitate-simulation

set-plot-option 2 s m -1 T$C Deformation $ Rename series


set-plot-option 3 s m -1 fcc_a1#01_p0 NbC(deform) $ Rename series
set-plot-option 4 s m -1 fcc_a1#01_p0 NbC(deform) $ Rename series
set-plot-option 5 s m -1 fcc_a1#01_p0 NbC(deform) $ Rename series

update-gui-windows 3 $ update the GUI window

$$**************************************************************************************************
SAVING WORKSPACE
**************************************************************************************************$$

save-workspace Tutorial_21

345
Apendix A

SCRIPT TUTORIAL 22
new-workspace

open-thermodynamic-database mc_fe.tdb
select-elements c
select-phases fcc_a1
read-thermodynamic-database

read-mobility-database mc_fe.ddb

enter-composition weight-percent c=0,2

set-automatic-startvalues
set-temperature-celsius 1000
calculate-equilibrium

create-precipitation-domain matrix
set-precipitation-parameter matrix thermodynamic-matrix-phase=FCC_A1
set-precipitation-parameter matrix subgrain-evolution-model=abc

create-tm-treatment tmt
append-tmt-segment tmt
edit-tmt-segment tmt . segment-start-temperature=1200
edit-tmt-segment tmt . segment-accumulated-strain=,1
edit-tmt-segment tmt . deformation-rate=1
edit-tmt-segment tmt . precipitation-domain=matrix

append-tmt-segment tmt
edit-tmt-segment tmt . T_dot+delta_t 0 1e4
edit-tmt-segment tmt . precipitation-domain=matrix

set-simulation-parameter temperature-control temperature-control-type=from-tm-treatment


set-simulation-parameter tm-treatment-name=tmt
start-precipitate-simulation

new-gui-window p1 $ create plot window


move-gui-window displace . 75 15 800 800 $ move and resize plot window

$ define default x-axis properties


set-gui-window-property window-id=. default-x-axis-for-all-plots=yes
set-gui-window-property window-id=. default-x-axis-data=stepvalue
set-gui-window-property window-id=. default-x-axis-title="Time [s]"
set-gui-window-property window-id=. default-x-axis-type=log
set-gui-window-property window-id=. default-x-axis-scaling=1e-5..
set-gui-window-property window-id=. default-x-axis-legend=bottom

set-gui-window-property . number-of-plot-columns=auto

$ define plot properties: dislocation density


set-plot-option . use-alias-names-in-legend=yes
set-plot-option . y-axis-title="Dislocation density [m<sup>-2</sup>]"
set-plot-option . series new buffer DD_TOT$*
set-plot-option . series new buffer DD_EQU_RS$*
set-plot-option . y-axis-type=log
set-plot-option . grid major enable-x-axis=yes
set-plot-option . grid major enable-y-axis=yes
346
Apendix A

$ define plot properties: subgrain diameter


create-new-plot xy-plot .
set-plot-option . use-alias-names-in-legend=yes
set-plot-option . y-axis-title="Mean subgrain diameter [<html>&mu;m]"
set-plot-option . series new buffer SGD$*
set-plot-option . y-axis-factor=1e6
set-plot-option . y-axis-type=log
set-plot-option . grid major enable-x-axis=yes
set-plot-option . grid major enable-y-axis=yes

$ define plot properties: grain diameter


create-new-plot xy-plot .
set-plot-option . use-alias-names-in-legend=yes
set-plot-option . y-axis-title="Grain diameter [<html>&mu;m]"
set-plot-option . series new buffer GD$*
set-plot-option . y-axis-factor=1e6
set-plot-option . y-axis-type=log

set-plot-option . grid major enable-x-axis=yes


set-plot-option . grid major enable-y-axis=yes

rename-current-buffer deformation_only
create-calc-buffer deformation&growth
set-gui-window-property . buffer-name=deformation&growth

set-precipitation-parameter matrix grain-evolution-model=single-class


start-precipitate-simulation

create-calc-buffer recrystallization
set-gui-window-property . buffer-name=recrystallization

set-plot-option . series new buffer GD_DEF$*


set-plot-option . series new buffer GD_RX$*
set-plot-option . y-axis-scaling=..2000

$ define plot properties: Nucleation rate of recrystallized grains


create-new-plot xy-plot .
set-plot-option . use-alias-names-in-legend=yes
set-plot-option . y-axis-title="Nucl. rate of rex. grains [m<sup>-3</sup>s<sup>-1</sup>]"
set-plot-option . series new buffer RX_NUCL_RATE$*
set-plot-option . y-axis-type=log

set-plot-option . grid major enable-x-axis=yes


set-plot-option . grid major enable-y-axis=yes

$ define plot properties: Nucleation density of grains


create-new-plot xy-plot .
set-plot-option . use-alias-names-in-legend=yes
set-plot-option . y-axis-title="Number density of grains [m<sup>-3</sup>]"
set-plot-option . series new buffer NG$*
set-plot-option . series new buffer NG_DEF$*
set-plot-option . series new buffer NG_RX$*
set-plot-option . y-axis-type=log

set-plot-option . grid major enable-x-axis=yes


set-plot-option . grid major enable-y-axis=yes
347
Apendix A

$ define plot properties: Recrystallized fraction


create-new-plot xy-plot .
set-plot-option . use-alias-names-in-legend=yes
set-plot-option . y-axis-title="Recrystallized fraction"
set-plot-option . series new buffer X_RX$*
set-plot-option . grid major enable-x-axis=yes
set-plot-option . grid major enable-y-axis=yes

set-precipitation-parameter matrix allow-recrystallisation=yes


start-precipitate-simulation

348
Apendix A

SCRIPT TUTORIAL 23

$$**************************************************************************************************
************************************** GENERAL INFORMATION *****************************************
****************************************************************************************************

Script cell simulations: long-range diffusion according to Tutorial 22.


The following contents will be covered:

- setting up a simulation grid


- assigning properties to cells
- setting up display of cell simulation results
- setting up simulation parameters
- boundary conditions

Database: mc_fe.tdb
Author: V. Yardley
Creation date: 14.02.2017
This is a script for MatCalc version 6.00 (rel 0.200)
Last update: M. Lueckl, 14.02.2017 - minor adjustements

****************************************************************************************************
************************************** SETUP INFORMATION *******************************************
**************************************************************************************************$$

use-module core $ Select core module for kinetic simulation


close-workspace f $ Close any open workspace without asking for save

new-workspace $ Create a new workspace

$ Add some information about your Script


@ echo n
set-workspace-info Script T22
set-workspace-info +Simulation of long-range diffusion of C
set-workspace-info +out of thin film
set-workspace-info +with matrix phase FCC_A1

echo y

$$**************************************************************************************************
**************************************** SYSTEM SETUP **********************************************
**************************************************************************************************$$

$ verify correct MatCalc version (is accessible as internal variable)


if (matcalc_version<5440008)
send-dialog-string "MatCalc version must be 5.44.0008 or higher to run this script. Stopping."
stop_run_script $ stop script
endif

$$**************************************************************************************************
DATABASES, CHEMICAL COMPOSITION, SELECTED PHASES
**************************************************************************************************$$

if (matcalc_version<6000000)
open-thermodyn-database mc_sample_fe2.tdb $ Open thermodynamic database mc_sample_fe2.tdb
else
test-exist-td-database mc_fe.tdb
if(test_result==1)
open-thermodyn-database mc_fe.tdb $ Open thermodynamic database mc_fe.tdb
349
Apendix A

else
send-dialog-string ""mc_fe.tdb"-database not found. Please, download it from MatCalc Website"
endif
endif

$ Select Fe and C as components of the system. VA (vacancies) is not necessary


select-elements FE C
$ Select the phases which will be used in the simulation
select-phases FCC_A1
$ Read data for the selected phases and elements from the database
read-thermodyn-database
read-mobility-database mc_fe.ddb

$ Define the variables that will specify the initial carbon content in the bar and the thin layer
set-variable-value c_comp_bar_wp 1e-10
set-variable-value c_comp_layer_wp 0.8
$ In the cell simulation, compositions must be entered in molar notation un$c
enter-composition wp c=c_comp_bar_wp $ Enter composition in weight percent
set-variable-value c_comp_bar un$c $ Save the composition in mole fraction
enter-composition wp c=c_comp_layer_wp $ Enter composition in weight percent
set-variable-value c_comp_layer un$c $ Save the composition in mole fraction

$$**************************************************************************************************
EQUILIBRIUM CALCULATIONS
**************************************************************************************************$$

set-temperature-celsius 1000 $ Set the system temperature to 1000C


$ Set the start values - this should prevent from any troubles in the equilibrium calculation
set-automatic-startvalues
calculate-equilibrium $ Perform the equilibrium calculation

$$**************************************************************************************************
PRECIPITATION DOMAIN SETUP
**************************************************************************************************$$

create-precipitation-domain aus_domain $ Create precipitation domain


set-precipitation-parameter aus_domain X FCC_A1 $ Matri[x] phase with fcc structure

$$**************************************************************************************************
SIMULATION GRID
**************************************************************************************************$$

use-module simulation $ Select simulation module for cell simulation

set-variable-value num_cells_x 99 $ Define a variable representing the number of cells


$ Create a simulation grid
create-simulation-grid num_cells_x 1 1 $ Number of cells in x-, y- and z-directions
set-variable-value barlength 0.099 $ Define a variable representing the length of the bar
set-grid-coordinates barlength 1 1 $ Dimensions in x-, y- and z-directions (in m)
set-grid-geometry p $ Geometry: [p]lanar, [c]ylindrical, [s]pherical

new-gui-window g5 $ Create a new window - 2D cells


set-variable-value paint_window_id active_frame_id $ Internal variable refers to the most actual frame
$ Modify position, size and zoom level
move-gui-window paint_window_id 0 50 750 160 $ change position and size
set-gui-window-property paint_window_id i Z 200 $ zoom 200%

$$**************************************************************************************************
CELL PROPERTIES
350
Apendix A

**************************************************************************************************$$

create-material aus_material $ Create material for diffusion simulation


set-material-property aus_material G D aus_domain $ [g]eneral properties: [d]omain
set-cell-property a m aus_material $ [a]ll cells, [m]aterial

set-variable-value diffCoeff 1e-12 $ Set the diffusion coefficient - user-specified value


set-material-property aus_material D C C F diffCoeff $[d]iffusion [c]oefficient of [c]arbon, [f]unction or expression

set-simulation-parameter N Y $ Temperature i[n] celsius [y]es


set-variable-value sim_temp 1000 $ Define a variable representing the simulation temperature
$ Attach temperature to all cells
set-cell-property a V T sim_temp $ [a]ll cells, [v]ariable, [t]emperature
$ Assign the lower carbon content, c_comp_bar, to all cells
set-cell-property a V C C c_comp_bar $ [a]ll cells, [v]ariable, [c]omposition [c]arbon

$ Select the cell in the middle - note: first cell has index 0
set-variable-value max_cell_index num_cells_x-1
set-variable-value middle_cell_index max_cell_index/2
add-cell-selection E middle_cell_index $ Select the c[e]ll in the centre
$ Assign the higher carbon content, c_comp_layer, to the selected cell
set-cell-property * V C C c_comp_layer

$$**************************************************************************************************
GRAPHICAL DISPLAY
**************************************************************************************************$$

$ display cell variable


set-gui-window-property paint_window_id I W V $ S[i]mulation results, display [w]hat, [v]ariable
set-gui-window-property paint_window_id I V _cwp$c $ [v]ariable is specified
set-gui-window-property paint_window_id I R 0..1 $ [r]ange is specified

new-gui-window g1 $ Create new window: plot grid - 1D profile


$ Assign a name to both the plot window and the plot itself
set-variable-value profile_window_id active_frame_id
set-variable-value profile_plot_id last_plot_id

set-plot-option profile_plot_id S N S _cwp$c $ Add a [s]eries, [n]ew of the [s]imulation variable


set-gui-window-property profile_window_id S U Y $ Use default x-axis
set-gui-window-property profile_window_id S T Position [m] $ x-axis title
set-plot-option profile_plot_id A Y 1 T Carbon content [wt.%] $ y-axis title
set-plot-option profile_plot_id A Y 1 S 0..c_comp_layer_wp $ y-axis range
set-plot-option profile_plot_id S M 0 numerical $ Name the plotted series
$ Specify the range of cells
set-gui-window-property profile_window_id I t 0 $ s[t]arting cell (here 0)
set-gui-window-property profile_window_id I o max_cell_index $ st[o]p cell (here max_cell_index)

move-gui-window profile_window_id 0 250 400 600

new-gui-window g2 $ Create new window: plot grid - cell history


$ Assign a name to both the plot window and the plot itself
set-variable-value history_window_id active_frame_id
set-variable-value history_plot_id last_plot_id

set-gui-window-property history_window_id S U Y $ Use default x-axis


set-gui-window-property history_window_id S T Time [s] $ x-axis title
set-gui-window-property history_window_id S S 0..sim_time $ x-axis range
set-plot-option history_plot_id A Y 1 T Carbon content [wt.%] $ y-axis title
set-plot-option history_plot_id A Y 1 S 0..c_comp_layer_wp $ y-axis range
$ Add two series
351
Apendix A

set-plot-option history_plot_id S N S _cwp$c{middle_cell_index} $ add composition of the middle cell


set-plot-option history_plot_id S N S _cwp$c{middle_cell_index-1} $ add composition of the cell adjacent to the middle cell
$ Name the plotted series
set-plot-option history_plot_id S M 0 centre
set-plot-option history_plot_id S M 1 'next to centre'

move-gui-window history_window_id 400 250 400 600

$$**************************************************************************************************
ANALYTICAL SOLUTION
**************************************************************************************************$$

set-variable-value Bval c_comp_layer_wp*(barlength/num_cells_x)


set-function-expression term_1 1/(2*sqrt(pi*diffCoeff*_ctime))
set-variable-value midpt barlength/2
set-function-expression x_shifted _ccenter_x-midpt
set-function-expression term_2 exp((-1*x_shifted**2)/(4*diffCoeff*_ctime))
set-function-expression analytical_expr Bval*term_1*term_2
$ Plot series onto the existing profile plot
set-plot-option profile_plot_id S N F analytical_expr 0..barlength

$$**************************************************************************************************
SET UP AND RUN THE SIMULATION
**************************************************************************************************$$

$ Specify the simulation time


set-variable-value sim_time 1e7
set-simulation-parameter e sim_time $ end
set-simulation-parameter u 10 $ update interval
set-simulation-parameter d f $ diffusion-field simulation
set-simulation-parameter t i sim_temp $ temperature: isothermal
set-default-boundary-cond G O $ boundary condition: [g]eometric and [o]pen to environment

start-cell-simulation

update-gui-window window-id=4

352

You might also like