© MatCalc (2008)
 
 
 
 
 
 
 
 
   
 
   

 

*****************************************************************************************************************

 

Attention: The methodology and scripts in this example are not up to date. From MatCalc version 5.23, thermal profiles and changes in precipitation domains, etc. are controlled via heat treatment segments. Please see Application 3 and younger for latest scripts on complex heat treatments!

 

*****************************************************************************************************************

A1: Heat treatment simulation of the COST steel CB8

Introduction

In the COST 522 program, many test melts were manufactured in the course of alloy design to improve the creep resistance, oxidation behaviour and to optimize the heat treatment parameters. One of these alloys is the steel CB8 which was investigated in detail at the IWS.
The following example is based on the PhD thesis of J. Rajek. In the line of this project several specimens at certain time points of the heat treatment and the service at 650°C were analysed. So afterwards it was possible to compare the caluclated results with experimental datas. The following picture shows the time-temperature-characterisitc from the casting up to 16000h. To simulate the microstructural evolution from the beginning (casting) to the end (after 16000h) is the aim of this example.

 

Heat treatment simulation setup

The heat treatment simulation will be carried out by using scripts. To learn more about MatCalc scripts (*.mcs) see e.g. Tutorial 11 or Tutorial 12. Compared to these simple examples the heat treatment simulation of this steel is unequally complex. To keep a clear structure it's advisable to use a couple of scripts, controlled by one main script.

  1. setup
  2. reheating
  3. austenitising
  4. heat treatment
  5. service
  6. main script (not needed necessarily)

1. Setup

In the setup script we define all informations needed to start with the first part of the simulation: chemical composition of the material, phases (precipitate phases), definition of precipitate domain, time-temperature-table, definition of output windows and plots, definition of variables, definition of nucleation sites for precipitate domain(s), .... Within the setup script were also defined additionally which databases were used.

 

$ CB8 heat 173 IWS, TCFE 3_mod
$ MatCalc script version 1
$ This is a script for MatCalc version 5.1

new-workspace

set-workspace-info CB8 with
set-workspace-info +Al B C Co Cr Fe Mn Mo N Ni Nb Si V
set-workspace-info +Ferrite Austenite; NbC, M7C3, M23C6, Laves (from casting),
set-workspace-info +VN_1 (from HT_slow), to separate MX waves, the nucleation of
set-workspace-info +NbC is disabled after casting, VN_1 are introduced during reheating,
set-workspace-info +VN_2 are introduced in HT
set-workspace-info +
set-workspace-info +Thermodynamic database: TCFE 3_mod (modified for Cr-steels)
set-workspace-info +
set-workspace-info +Phase data for LavesT modified to have the same phase fraction at
set-workspace-info +650°C than obtained by Dimmler G., i.e., 0.2% as-received, 0.8%
set-workspace-info +'equilibrium'
set-workspace-info +Interfacial energy of LavesT reduced to 75%, otherwise not enough
set-workspace-info +precipitates nucleate. Interfacial energy of Z increased to 125%
set-workspace-info +
set-workspace-info +Also modified td parameters of MX precipitates to make sure that the
set-workspace-info +major constituents remain consistent, i.e. NbC remains NbC and VN
set-workspace-info +remains VN. Otherwise the composition of the MX carbides/nitrides
set-workspace-info +switches during HT. Moreover, numerical stability is drastically set-workspace-info +increased!

 

open-thermo-database TCFE3_mod.tdb

 

select-elements C Co Cr Fe Mn Mo N Nb V
select-elements Al Si Ni
select-phase bcc_a2 fcc_a1 lavest m7c3 m23c6 zet


set-reference-element fe

 

read-thermodyn-database

 

enter-composition wp c=0,17 co=2,92 cr=10,72 mn=0,2 mo=1,4 n=0,0319 nb=0,06 v=0,21
enter-composition wp al=0,028 si=0,27 ni=0,16

 

So far there is nothing new. These commands are all known from the previous examples. But in the following there are some command lines that have to be explained. One can see that there is created a new equilibrium phase (fcc_a1). This was done to create an additional phase fcc_a1#02. Furthermore the phase status is changed for both phases. So we define a NbC (fcc_a1#01) and a VN (fcc_a1#02). This was done because metallographic investigations showed that there exists two populations of MX precipitates (NbC & VN).

 

create-new-phase fcc_a1 e
change-phase-status fcc_a1#01 m :Nb:C:
change-phase-status fcc_a1#02 m :V:N:

 

To consider these results in the simulation one has to make sure that the major constituents of each population will be maintained. So one has to add some thermodynamic penalty terms (+100000) to keep the miscibility gap wide open. You can see the following entries if you look into 'Global>Variables & Functions>Thermodynamics'. Choose the NbC or VN and look at the end.

 

EDIT_PARAMETER a t G(fcc_a1#01,V:N;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#01,V:C;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#01,NB:N;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#02,NB:C;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#02,NB:N;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#02,V:C;0) 298,16 +100000; 6000 N

 

Next some variables for the simulation setup are defined. It is very usefull to work with variables. So several parameters can be changed in a very clear arranged way. In this case following variables were defined ...

 

time: In this case it will be the value for the simulation end time in [s].
x-scale: Definitoin of the increment factor for the simulation
ipdcf: Diffusion coefficient in precipitates
npc: Number of precipitate classes. Important for the accuracy of the results.
ssprl: Linear storage interval
mie: Matrix interfacial energie factor. This factor consioders the released interfacial energy when precipitates arise.
irf: Inactive radius factor. This factor considers that in a certain area (in this case 5xRPrec.) around a precipitate no other precipitates can arise.

 

set-variable-value time 84000
set-variable-value x_scale 1
set-variable-value ipdcf 0,01
set-variable-value npc 100
set-variable-value ssprl 400
set-variable-value mie 0.24
set-variable-value irf 5

 

Because the simulation of the heat treatment covers areas were the CB8 steel changes between a ferretic/martensitic and austenitic lattice structure both precipitate domains have to be defined. After the precipitate domain is created and named by the user, one has to attach a matrix phase to the precipitate domain. In the case of the "Austenite" domain it is the fcc_a1 phase.
Afterwards one has to define the dislocation density of the domain, the grain size (possibly the grain size elongation factor - this factor has an influence on the number of nucleation sites) and the interfacial energy of grain boundaries.

 

create-precipitate-domain Austenite

Attention: From MatCalc version 5.20 the command 'create-precipitate-domain' changed to 'create-precipitation-domain'

set-precipitation-parameter Austenite x fcc_a1
set-precipitation-parameter Austenite d 1e11
set-precipitation-parameter Austenite g 100e-6
set-precipitation-parameter Austenite l 1
set-precipitation-parameter Austenite n g mie

 

The same for the "Ferrite" domain. The only difference is the consideration of the subgrain parameters (like size, elongation factor,...).

 

create-precipitate-domain Ferrite

Attention: From MatCalc version 5.20 the command 'create-precipitate-domain' changed to 'create-precipitation-domain'
set-precipitation-parameter Ferrite x bcc_a2
set-precipitation-parameter Ferrite d 1e14
set-precipitation-parameter Ferrite g 100e-6
set-precipitation-parameter Austenite l 1
set-precipitation-parameter Ferrite s 0,1e-6
set-precipitation-parameter Austenite o 100
set-precipitation-parameter Ferrite n g mie
set-precipitation-parameter Ferrite n s mie

 

The next step is the definition of the time-temperature-table. The name of the table is 'ht_slow'. This table contains the information about the whole heat treatment including the service at 650°C for 16000h.

 

create-global-table ht_slow

 

$ Casting
add-table-entry ht_slow 0 1400
add-table-entry ht_slow 84000 350

 

$ Reheating
add-table-entry ht_slow 87600 350
add-table-entry ht_slow 137300 847

 

$ Austenitising
add-table-entry ht_slow 160600 1080
add-table-entry ht_slow 189400 1080
add-table-entry ht_slow 191340 1018
add-table-entry ht_slow 195480 893
add-table-entry ht_slow 199260 800
add-table-entry ht_slow 203184 700
add-table-entry ht_slow 207576 600
add-table-entry ht_slow 211716 530
add-table-entry ht_slow 218700 452
add-table-entry ht_slow 236590 385
add-table-entry ht_slow 252790 385
add-table-entry ht_slow 257830 350

 

$ HT
add-table-entry ht_slow 261430 350
add-table-entry ht_slow 316150 730
add-table-entry ht_slow 352150 730
add-table-entry ht_slow 382550 350
add-table-entry ht_slow 386150 350
add-table-entry ht_slow 440870 730
add-table-entry ht_slow 484070 730
add-table-entry ht_slow 538790 350
add-table-entry ht_slow 542390 350
add-table-entry ht_slow 597110 730
add-table-entry ht_slow 647510 730
add-table-entry ht_slow 677910 350

 

$ Service
add-table-entry ht_slow 721110 650
add-table-entry ht_slow 58321110 650

 

The following tables are containing the results of the experimental datas. Afterwards these results will be added to the output windows and plots to compare the simulation results with the experimental data.

 

create-global-table f_mx
add-table-entry f_mx 6.75E+01 7.30E-04
add-table-entry f_mx 1.02E+02 1.14E-03
add-table-entry f_mx 1.80E+02 2.79E-03

 

create-global-table r_mx
add-table-entry r_mx 6.75E+01 3.15E+01
add-table-entry r_mx 1.02E+02 2.30E+01
add-table-entry r_mx 1.80E+02 2.70E+01

 

create-global-table n_mx
add-table-entry n_mx 6.75E+01 3.07E+18
add-table-entry n_mx 1.02E+02 8.61E+18
add-table-entry n_mx 1.80E+02 1.73E+19

create-global-table f_m23c6
add-table-entry f_m23c6 6.75E+01 0.00E+00
add-table-entry f_m23c6 1.02E+02 2.55E-03
add-table-entry f_m23c6 1.80E+02 2.28E-03
add-table-entry f_m23c6 2.00E+03 2.25E-03
add-table-entry f_m23c6 4.03E+03 2.15E-03
add-table-entry f_m23c6 7.06E+03 4.20E-03
add-table-entry f_m23c6 1.66E+04 2.00E-03

 

create-global-table r_m23c6
add-table-entry r_m23c6 6.75E+01 0.00E+00
add-table-entry r_m23c6 1.02E+02 5.01E+01
add-table-entry r_m23c6 1.80E+02 5.40E+01
add-table-entry r_m23c6 2.00E+03 3.73E+01
add-table-entry r_m23c6 4.03E+03 5.78E+01
add-table-entry r_m23c6 7.06E+03 7.00E+01
add-table-entry r_m23c6 1.66E+04 6.17E+01

 

create-global-table n_m23c6
add-table-entry n_m23c6 6.75E+01 0.00E+00
add-table-entry n_m23c6 1.02E+02 2.33E+19
add-table-entry n_m23c6 1.80E+02 1.77E+19
add-table-entry n_m23c6 2.00E+03 5.61E+19
add-table-entry n_m23c6 4.03E+03 2.28E+19
add-table-entry n_m23c6 7.06E+03 2.15E+19
add-table-entry n_m23c6 1.66E+04 1.90E+19

create-global-table f_vn
add-table-entry f_vn 2.00E+03 2.30E-03
add-table-entry f_vn 4.03E+03 2.00E-03
add-table-entry f_vn 7.06E+03 3.00E-03
add-table-entry f_vn 1.66E+04 6.00E-04

 

create-global-table r_vn
add-table-entry r_vn 2.00E+03 2.10E+01
add-table-entry r_vn 4.03E+03 3.90E+01
add-table-entry r_vn 7.06E+03 2.80E+01
add-table-entry r_vn 1.66E+04 3.47E+01

 

create-global-table n_vn
add-table-entry n_vn 2.00E+03 3.10E+19
add-table-entry n_vn 4.03E+03 1.40E+18
add-table-entry n_vn 7.06E+03 1.60E+19
add-table-entry n_vn 1.66E+04 1.50E+18

 

To continue the simulation setup, one has to create the precipitate phases. In the following there are created the M23C6, NbC, VN, M7C3, Laves phase and Z-phase precipitate phases. The selection of phases are based on experimental investigations. The following blocks for the precipitate definition are all similar. They only differ in the setting parameters. You have several possibilities to setup your simulation system. For the case of the heat treatment simulation it looks like follows.

 

create-new-phase m23c6 p $ M23C6
set-precipitation-parameter m23c6_p0 c npc $ particle classes
set-precipitation-parameter m23c6_p0 d Austenite $ domain
set-precipitation-parameter m23c6_p0 i 0 $ use calculated interfacial energy
set-precipitation-parameter m23c6_p0 l 1e100 $ interface mobility
set-precipitation-parameter m23c6_p0 e 0 $ strain energy

 

In this first block settings like number of precipitate classes, precipitate domain, interfacial energies (fix parameter or calculated values), interface mobility and strain energy were defined. The second block defines specific models for the nucleation of M23C6 precipitates.

 

$ Nucleation sites for „Austenite“ prec. domain
set-precipitation-parameter m23c6_p0 n s g $ nucleation site=grain boundary
set-precipitation-parameter m23c6_p0 n n t $ nucl. model: Becker-Doering time dep
set-precipitation-parameter m23c6_p0 n c o $ nucleus comp: ortho equilibrium
set-precipitation-parameter m23c6_p0 n i y $ nucleation site saturation: use=yes
set-precipitation-parameter m23c6_p0 n r irf $ nuc. site saturation: inactive radius=irf
set-precipitation-parameter m23c6_p0 n a m $ atomic attachment: max time concept
set-precipitation-parameter m23c6_p0 n m i $ incub time model: interface control
set-precipitation-parameter m23c6_p0 n t 1.0 $ incubation time constant
set-precipitation-parameter m23c6_p0 n u 1.0 $ nucleation constant

Finally some special settings like the diffusion in precipitate factor, diffusion enhancment factor, ... were defined.

set-precipitation-parameter m23c6_p0 s d r ipdcf $ diffusion in precipitate factor
set-precipitation-parameter m23c6_p0 s i r ipdcf $ interstitial diff. in precipitate factor
set-precipitation-parameter m23c6_p0 s m 1 $ matrix diffusion enhancement factor

 

The same is done for all other precipitates.

 

create-new-phase fcc_a1#01 p $ NbC
$ add penalty term for opposite side of miscibility gap: NbC
EDIT_PARAMETER a t G(fcc_a1#01_p0,V:N;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#01_p0,V:C;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#01_p0,NB:N;0) 298,16 +100000; 6000 N

set-precipitation-parameter fcc_a1#01_p0 c npc
set-precipitation-parameter fcc_a1#01_p0 d Austenite
set-precipitation-parameter fcc_a1#01_p0 i 0
set-precipitation-parameter fcc_a1#01_p0 l 1e100
set-precipitation-parameter fcc_a1#01_p0 e 0

set-precipitation-parameter fcc_a1#01_p0 n s g
set-precipitation-parameter fcc_a1#01_p0 n n t
set-precipitation-parameter fcc_a1#01_p0 n c o
set-precipitation-parameter fcc_a1#01_p0 n i y
set-precipitation-parameter fcc_a1#01_p0 n r irf

set-precipitation-parameter fcc_a1#01_p0 n a m
set-precipitation-parameter fcc_a1#01_p0 n m i
set-precipitation-parameter fcc_a1#01_p0 n t 1.0
set-precipitation-parameter fcc_a1#01_p0 n u 1.0

set-precipitation-parameter fcc_a1#01_p0 s d r ipdcf
set-precipitation-parameter fcc_a1#01_p0 s i r ipdcf
set-precipitation-parameter fcc_a1#01_p0 s m 1

 

create-new-phase fcc_a1#02 p $ VN_1
$ add penalty term for opposite side of miscibility gap: VN
EDIT_PARAMETER a t G(fcc_a1#02_p0,NB:C;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#02_p0,NB:N;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#02_p0,V:C;0) 298,16 +100000; 6000 N

set-precipitation-parameter fcc_a1#02_p0 c npc
set-precipitation-parameter fcc_a1#02_p0 d none
set-precipitation-parameter fcc_a1#02_p0 i 0
set-precipitation-parameter fcc_a1#02_p0 l 1e100
set-precipitation-parameter fcc_a1#02_p0 e 0

set-precipitation-parameter fcc_a1#02_p0 n s n
set-precipitation-parameter fcc_a1#02_p0 n n t

set-precipitation-parameter fcc_a1#02_p0 n c o
set-precipitation-parameter fcc_a1#02_p0 n i y
set-precipitation-parameter fcc_a1#02_p0 n r irf
set-precipitation-parameter fcc_a1#02_p0 n a m
set-precipitation-parameter fcc_a1#02_p0 n m i
set-precipitation-parameter fcc_a1#02_p0 n t 1.0
set-precipitation-parameter fcc_a1#02_p0 n u 1.0

set-precipitation-parameter fcc_a1#02_p0 s d r ipdcf
set-precipitation-parameter fcc_a1#02_p0 s i r ipdcf
set-precipitation-parameter fcc_a1#02_p0 s m 1

 

create-new-phase fcc_a1#02 p $ VN_2
$ add penalty term for opposite side of miscibility gap: VN
EDIT_PARAMETER a t G(fcc_a1#02_p1,NB:C;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#02_p1,NB:N;0) 298,16 +100000; 6000 N
EDIT_PARAMETER a t G(fcc_a1#02_p1,V:C;0) 298,16 +100000; 6000 N

set-precipitation-parameter fcc_a1#02_p1 c npc
set-precipitation-parameter fcc_a1#02_p1 d none
set-precipitation-parameter fcc_a1#02_p1 i 0
set-precipitation-parameter fcc_a1#02_p1 l 1e100
set-precipitation-parameter fcc_a1#02_p1 e 0

set-precipitation-parameter fcc_a1#02_p1 n s n
set-precipitation-parameter fcc_a1#02_p1 n n t
set-precipitation-parameter fcc_a1#02_p1 n c o
set-precipitation-parameter fcc_a1#02_p1 n i y
set-precipitation-parameter fcc_a1#02_p1 n r irf
set-precipitation-parameter fcc_a1#02_p1 n a m
set-precipitation-parameter fcc_a1#02_p1 n m i
set-precipitation-parameter fcc_a1#02_p1 n t 1.0
set-precipitation-parameter fcc_a1#02_p1 n u 1.0

set-precipitation-parameter fcc_a1#02_p1 s d r ipdcf
set-precipitation-parameter fcc_a1#02_p1 s i r ipdcf
set-precipitation-parameter fcc_a1#02_p1 s m 1

 

You can see above that two VN populations were defined. So it is possible to look how many precipitates nucleate at two different timepoints e.g. during austenitising and during heat treatment. You can see also, that the precipitate domain of the VN is set as n ('n=none'). This means, that during the casting no VN will nucleate. Also the thermodynamic penalty terms have to be added for the precipitates as well as for the equilibrium phases.

 

create-new-phase m7c3 p $ M7C3
set-precipitation-parameter m7c3_p0 c npc
set-precipitation-parameter m7c3_p0 d Austenite
set-precipitation-parameter m7c3_p0 i 0
set-precipitation-parameter m7c3_p0 l 1e100
set-precipitation-parameter m7c3_p0 e 0

set-precipitation-parameter m7c3_p0 n s g
set-precipitation-parameter m7c3_p0 n n t
set-precipitation-parameter m7c3_p0 n c o
set-precipitation-parameter m7c3_p0 n i y
set-precipitation-parameter m7c3_p0 n r irf
set-precipitation-parameter m7c3_p0 n a m
set-precipitation-parameter m7c3_p0 n m i
set-precipitation-parameter m7c3_p0 n t 1.0
set-precipitation-parameter m7c3_p0 n u 1.0

set-precipitation-parameter m7c3_p0 s d r ipdcf
set-precipitation-parameter m7c3_p0 s i r ipdcf
set-precipitation-parameter m7c3_p0 s m 1

 

create-new-phase lavest p $ Laves phase
set-precipitation-parameter lavest_p0 c npc
set-precipitation-parameter lavest_p0 d Austenite
set-precipitation-parameter lavest_p0 i cie$lavest_p0*0.75

 

Because of diverse imprecisions in the thermodynamic databases on and off there have to be made some corrective actions. So it is needed that in the command line below the calculated interfacial energy has to be decreased by 25% to obtain the right results.

 

set-precipitation-parameter lavest_p0 l 1e100
set-precipitation-parameter lavest_p0 e 0
set-precipitation-parameter lavest_p0 n s g
set-precipitation-parameter lavest_p0 n n t
set-precipitation-parameter lavest_p0 n c o
set-precipitation-parameter lavest_p0 n i y
set-precipitation-parameter lavest_p0 n r irf
set-precipitation-parameter lavest_p0 n a m
set-precipitation-parameter lavest_p0 n m i
set-precipitation-parameter lavest_p0 n t 1.0
set-precipitation-parameter lavest_p0 n u 1.0
set-precipitation-parameter lavest_p0 s d r ipdcf
set-precipitation-parameter lavest_p0 s i r ipdcf
set-precipitation-parameter lavest_p0 s m 1

 

create-new-phase zet p $ Z phase
set-precipitation-parameter zet_p0 c npc
set-precipitation-parameter zet_p0 d Austenite
set-precipitation-parameter zet_p0 i cie$zet_p0*1.4
set-precipitation-parameter zet_p0 l 1e100
set-precipitation-parameter zet_p0 e 0
set-precipitation-parameter zet_p0 n s g
set-precipitation-parameter zet_p0 n n t
set-precipitation-parameter zet_p0 n c o
set-precipitation-parameter zet_p0 n i y
set-precipitation-parameter zet_p0 n r irf
set-precipitation-parameter zet_p0 n a m
set-precipitation-parameter zet_p0 n m i
set-precipitation-parameter zet_p0 n t 1.0
set-precipitation-parameter zet_p0 n u 1.0
set-precipitation-parameter zet_p0 s d r ipdcf
set-precipitation-parameter zet_p0 s i r ipdcf
set-precipitation-parameter zet_p0 s m 1

 

The simulation setup is almoust the last step. Now the final setup settings for the casting simulation will be done. First we calculate an equilibrium at 1400°C. It doesn't matter at which temperature we calculate this equilibrium. We selected the temperature starting point of the casting simulation. Next we define the simulation end time, select the source of the time-temperature information and choose the simulation starting condition ('r=reset; homogenous solved elements'). Afterwards, some settings for the convergence control like weighted diffusion coefficient (=on), oscillation damping (=on), dfm compensation (3%) and mass balance tolerance were made. 'u' defines the update interval of the shown windows. 'ssprl' defines the store interval in which the results will be written in the buffer.

 

set-temperature-celsius 1400
set-automatic-startvalues
set-sim-parameter e time
set-sim-parameter t t ht_slow 10
set-sim-parameter s r
set-sim-parameter c w y $ convergence control: weighted diffusion coef. = on
set-sim-parameter c o y $ convergence control: oscillation damping = on
set-sim-parameter c d 0,03 $ convergence control: dfm-compensation 3%
set-sim-parameter c m 1e-4 $ convergence control: mass-balance tolerance
set-sim-parameter u 100 $ update windows every n steps
set-sim-parameter r l ssprl $ store results in buffer: Linear steps = ssprl in s

 

In the following some output windows and plots will be defined. To look how every command line works in MatCalc you can insert them one by one in the console window. Information about creating output windows is also given in Tutorial 11 and Tutorial 12.

 

new-gui-window p1

set-gui-window-property . X stepvalue/3600
set-gui-window-property . s u y
set-gui-window-property . s t t[h]
set-gui-window-property . s y log
set-gui-window-property . s s x_scale..

set-plot-option . s n b t$c
set-plot-option . s m -1 t$c T
set-plot-option . a y 1 t T[°C]

 

$ Phase fractions
create-new-plot x .
set-plot-option . s n b f$fcc_a1#01_p0
set-plot-option . s m -1 f$fcc_a1#01_p0 NbC
set-plot-option . s n b f$fcc_a1#02_p0
set-plot-option . s m -1 f$fcc_a1#02_p0 VN_1
set-plot-option . s n b f$fcc_a1#02_p1
set-plot-option . s m -1 f$fcc_a1#02_p1 VN_2
set-plot-option . s n b f$m7c3_p0/10
set-plot-option . s m -1 f$m7c3_p0/10 M<sub>7</sub>C<sub>3</sub>/10
set-plot-option . s n b f$m23c6_p0/10
set-plot-option . s m -1 f$m23c6_p0/10 M<sub>23</sub>C<sub>6</sub>/10
set-plot-option . s n b f$lavest_p0/10
set-plot-option . s m -1 f$lavest_p0/10 Laves/10
set-plot-option . s n b f$zet_p0
set-plot-option . s m -1 f$zet_p0 Z
set-plot-option . s n t f_mx $ add table with experimental values
set-plot-option . s m -1 f_mx MX $ rename table
set-plot-option . s n t f_vn
set-plot-option . s m -1 f_vn VN
set-plot-option . s n t f_m23c6
set-plot-option . s m -1 f_m23c6 M<sub>23</sub>C<sub>6</sub>/10
set-plot-option . a y 1 t f[%]
set-plot-option . a y 1 f 100

 

$ Mean radii
create-new-plot x .
set-plot-option . s n b r_mean$fcc_a1#01_p0*1e9
set-plot-option . s m -1 r_mean$fcc_a1#01_p0*1e9 NbC
set-plot-option . s n b r_mean$fcc_a1#02_p0*1e9
set-plot-option . s m -1 r_mean$fcc_a1#02_p0*1e9 VN_1
set-plot-option . s n b r_mean$fcc_a1#02_p1*1e9
set-plot-option . s m -1 r_mean$fcc_a1#02_p1*1e9 VN_2
set-plot-option . s n b r_mean$m7c3_p0*1e9
set-plot-option . s m -1 r_mean$m7c3_p0*1e9 M<sub>7</sub>C<sub>3</sub>
set-plot-option . s n b r_mean$m23c6_p0*1e9
set-plot-option . s m -1 r_mean$m23c6_p0*1e9 M<sub>23</sub>C<sub>6</sub>
set-plot-option . s n b r_mean$lavest_p0*1e9
set-plot-option . s m -1 r_mean$lavest_p0*1e9 Laves
set-plot-option . s n b r_mean$zet_p0*1e9
set-plot-option . s m -1 r_mean$zet_p0*1e9 Z
set-plot-option . s n t r_mx
set-plot-option . s m -1 r_mx MX
set-plot-option . s n t r_vn
set-plot-option . s m -1 r_vn VN
set-plot-option . s n t r_m23c6
set-plot-option . s m -1 r_m23c6 M<sub>23</sub>C<sub>6</sub>
set-plot-option . a y 1 t R[nm]
set-plot-option . a y 1 y log
set-plot-option . a y 1 s 0,1..
set-plot-option . l r

 

$ Number densities
create-new-plot x .
set-plot-option . s n b num_part$fcc_a1#01_p0
set-plot-option . s m -1 num_part$fcc_a1#01_p0 NbC
set-plot-option . s n b num_part$fcc_a1#02_p0
set-plot-option . s m -1 num_part$fcc_a1#02_p0 VN_1
set-plot-option . s n b num_part$fcc_a1#02_p1
set-plot-option . s m -1 num_part$fcc_a1#02_p1 VN_2
set-plot-option . s n b num_part$m7c3_p0
set-plot-option . s m -1 num_part$m7c3_p0 M<sub>7</sub>C<sub>3</sub>
set-plot-option . s n b num_part$m23c6_p0
set-plot-option . s m -1 num_part$m23c6_p0 M<sub>23</sub>C<sub>6</sub>
set-plot-option . s n b num_part$lavest_p0
set-plot-option . s m -1 num_part$lavest_p0 Laves
set-plot-option . s n b num_part$zet_p0
set-plot-option . s m -1 num_part$zet_p0 Z
set-plot-option . s n t n_mx
set-plot-option . s m -1 n_mx MX
set-plot-option . s n t n_vn
set-plot-option . s m -1 n_vn VN
set-plot-option . s n t n_m23c6
set-plot-option . s m -1 n_m23c6 M<sub>23</sub>C<sub>6</sub>
set-plot-option . a y 1 t N[m<sup>-3</sup>]
set-plot-option . a y 1 y log
set-plot-option . a y 1 s 1..
set-plot-option . l r

 

$ Matrix composition
create-new-plot x .
set-plot-option . s n b x$bcc_a2$c$%wt
set-plot-option . s m -1 x$bcc_a2$c$%wt C
set-plot-option . s n b x$bcc_a2$cr$%wt
set-plot-option . s m -1 x$bcc_a2$cr$%wt Cr
set-plot-option . s n b x$bcc_a2$mo$%wt
set-plot-option . s m -1 x$bcc_a2$mo$%wt Mo
set-plot-option . s n b x$bcc_a2$n$%wt
set-plot-option . s m -1 x$bcc_a2$n$%wt N
set-plot-option . s n b x$bcc_a2$nb$%wt
set-plot-option . s m -1 x$bcc_a2$nb$%wt Nb
set-plot-option . s n b x$bcc_a2$si$%wt
set-plot-option . s m -1 x$bcc_a2$si$%wt Si
set-plot-option . s n b x$bcc_a2$v$%wt
set-plot-option . s m -1 x$bcc_a2$v$%wt V
set-plot-option . a y 1 t X<sub>Matrix</sub>[%]
set-plot-option . a y 1 y lin
set-plot-option . a y 1 s ..1,2
set-plot-option . a y 1 f 100
set-plot-option . l r

 

create-new-plot x .
set-plot-option . s n b x$fcc_a1$c$%wt
set-plot-option . s m -1 x$fcc_a1$c$%wt C
set-plot-option . s n b x$fcc_a1$cr$%wt
set-plot-option . s m -1 x$fcc_a1$cr$%wt Cr
set-plot-option . s n b x$fcc_a1$mo$%wt
set-plot-option . s m -1 x$fcc_a1$mo$%wt Mo
set-plot-option . s n b x$fcc_a1$n$%wt
set-plot-option . s m -1 x$fcc_a1$n$%wt N
set-plot-option . s n b x$fcc_a1$nb$%wt
set-plot-option . s m -1 x$fcc_a1$nb$%wt Nb
set-plot-option . s n b x$fcc_a1$si$%wt
set-plot-option . s m -1 x$fcc_a1$si$%wt Si
set-plot-option . s n b x$fcc_a1$v$%wt
set-plot-option . s m -1 x$fcc_a1$v$%wt V
set-plot-option . a y 1 t X<sub>Matrix</sub>[%]
set-plot-option . a y 1 y lin
set-plot-option . a y 1 s ..1,2
set-plot-option . a y 1 f 100
set-plot-option . l r

move-gui-window . 20 20 600 800
update-gui-window .

 

new-gui-window p5
set-gui-window-property . m y

set-plot-option . s n p fcc_a1#01_p0
set-plot-option . s m -1 fcc_a1#01_p0 NbC
set-plot-option . s n p fcc_a1#02_p0
set-plot-option . s m -1 fcc_a1#02_p0 VN_1
set-plot-option . s n p fcc_a1#02_p1
set-plot-option . s m -1 fcc_a1#02_p1 VN_2
set-plot-option . s n p m7c3_p0
set-plot-option . s m -1 m7c3_p0 M<sub>7</sub>C<sub>3</sub>
set-plot-option . s n p m23c6_p0
set-plot-option . s m -1 m23c6_p0 M<sub>23</sub>C<sub>6</sub>
set-plot-option . s n p lavest_p0
set-plot-option . s m -1 lavest_p0 Laves
set-plot-option . s n p zet_p0
set-plot-option . s m -1 zet_p0 Z
set-plot-option . a x 1 t Scaled Radius
set-plot-option . a y 1 t Scaled Number
set-plot-option . a x 1 s 0..1,499

 

$ define a function for LSW distribution
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
set-plot-option . s n f LSW 0..1,5 $ add to plot

 

set-plot-option . h r y $ scale radius
set-plot-option . h f y $ scale frequency

create-new-plot p .
set-plot-option . s n p fcc_a1#01_p0
set-plot-option . s m -1 fcc_a1#01_p0 NbC
set-plot-option . a x 1 t R [nm]
set-plot-option . a y 1 t N [m<sup>-3</sup>]
set-plot-option . a x 1 s 0..
set-plot-option . a x 1 f 1e9
set-plot-option . l r

create-new-plot p .
set-plot-option . s n p fcc_a1#02_p0
set-plot-option . s m -1 fcc_a1#02_p0 VN_1
set-plot-option . a x 1 t R [nm]
set-plot-option . a y 1 t N [m<sup>-3</sup>]
set-plot-option . a x 1 s 0..
set-plot-option . a x 1 f 1e9
set-plot-option . l r

create-new-plot p .
set-plot-option . s n p fcc_a1#02_p1
set-plot-option . s m -1 fcc_a1#02_p1 VN_2
set-plot-option . a x 1 t R [nm]
set-plot-option . a y 1 t N [m<sup>-3</sup>]
set-plot-option . a x 1 s 0..
set-plot-option . a x 1 f 1e9
set-plot-option . l r

create-new-plot p .
set-plot-option . s n p m7c3_p0
set-plot-option . s m -1 m7c3_p0 M<sub>7</sub>C<sub>3</sub>
set-plot-option . a x 1 t R [nm]
set-plot-option . a y 1 t N [m<sup>-3</sup>]
set-plot-option . a x 1 s 0..
set-plot-option . a x 1 f 1e9
set-plot-option . l r

create-new-plot p .
set-plot-option . s n p m23c6_p0
set-plot-option . s m -1 m23c6_p0 M<sub>23</sub>C<sub>6</sub>
set-plot-option . a x 1 t R [nm]
set-plot-option . a y 1 t N [m<sup>-3</sup>]
set-plot-option . a x 1 s 0..
set-plot-option . a x 1 f 1e9
set-plot-option . l r

create-new-plot p .
set-plot

 

After the definition of the output windows our setup-file is finished. If one opens this file in a MatCalc window it should look like the following figure.

 

2. Reheating

After the setup definition including the casting at the end of this first simulation the calculation stops after 84000s at 350°C (look at the table). The next step in the simulation is the austenitisation. But one has to be carefull because the lattice structure during the reheating from 350°C up to 1080°C changes from ferritic/martensitic to austenitic. So one has to split up this heat treatment in two parts. So a 'reheating' script up to 847°C (ferritic/martensitic lattice strucutre) and a 'austenitisation' script from 874°C to the end of the simulation (austenitic lattice structure) was defined. For the cooling one has to consider that the material is very sluggish to change from austenitic in ferritic/martensitic microstructure. So the temperature at which this change is going on is moving to very slow temperatures (under 400°C). At this temperatures there aren't any relevant kinetic activities going on so actually it doesn't matter if the change back in the ferritic/martensitic lattice structure is going on at 400 or 300°C. So we changed our lattice structure at 350°C. The same is valid for the casting. If we look at the script code it looks like...

set-variable-value time 137300

First one has to define a new value for the variable time - it will be the new simulation end time. Next, the precipitate domain has to be shifted from "Austenite" to "Ferrite" for every precipitate. Also the possible nucleation sites in the ferritic precipitate domain for the several precipitates have to be defined.

 

set-precipitation-parameter m23c6_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter m23c6_p0 n s gs

set-precipitation-parameter fcc_a1#01_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#01_p0 n s gsd

set-precipitation-parameter fcc_a1#02_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#02_p0 n s gsd

set-precipitation-parameter fcc_a1#02_p1 d none
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#02_p1 n s n

set-precipitation-parameter zet_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter zet_p0 n s gsd

set-precipitation-parameter m7c3_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter m7c3_p0 n s gs

set-precipitation-parameter lavest_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter lavest_p0 n s gs

 

Afterwards we have to define the new simulation setup. It's nearly the same as before at the setup script. Only the last command line differs. To avoid, that the old calculation results from the casting simulation will be deleted we have to switch on the 'append to buffer' option. So the new results will be added to the old buffer without subscribing the old results.

 

set-sim-parameter e time
set-sim-parameter t t ht_slow 10
set-sim-parameter s n
set-sim-parameter r l ssprl
set-sim-parameter a y

3. Austenitising

The script for the austenitisation looks very similar. Only the precipitate domain, the nucleation sites and the simulation end time have to be changed.

 

set-variable-value time 257830

set-precipitation-parameter m23c6_p0 d Austenite
$ Nucleation sites for „Austenite“ prec. domain
set-precipitation-parameter m23c6_p0 n s g

set-precipitation-parameter fcc_a1#01_p0 d Austenite
$ Nucleation sites for „Austenite“ prec. domain
set-precipitation-parameter fcc_a1#01_p0 n s g

set-precipitation-parameter fcc_a1#02_p0 d Austenite
$ Nucleation sites for „Austenite“ prec. domain
set-precipitation-parameter fcc_a1#02_p0 n s g

set-precipitation-parameter fcc_a1#02_p1 d none
$ Nucleation sites for „Austenite“ prec. domain
set-precipitation-parameter fcc_a1#02_p1 n s n

set-precipitation-parameter zet_p0 d Austenite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter zet_p0 n s g

set-precipitation-parameter m7c3_p0 d Austenite
$ Nucleation sites for „Austenite“ prec. domain
set-precipitation-parameter m7c3_p0 n s gs

set-precipitation-parameter lavest_p0 d Austenite
$ Nucleation sites for „Austenite“ prec. domain
set-precipitation-parameter lavest_p0 n s gs

set-sim-parameter e time
set-sim-parameter t t ht_slow 10
set-sim-parameter s n
set-sim-parameter r l ssprl
set-sim-parameter a y

4. Heat treatment

The same is valid for the heat treatment setup. It can be seen that now also the second VN population is 'activated'. Furthermore for the first nucleation population the nucleation sites were set at n(=none). So they can only grow and coarsen. In this way it is possible to distinguish between VN which nucleate during the austenitisation and during the heat treatment. So it is possible to get more informations about the effect of the heat treatment on the nucleation of MX precipitates.

 

set-variable-value time 677910

set-precipitation-parameter m23c6_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter m23c6_p0 n s gs

set-precipitation-parameter fcc_a1#01_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#01_p0 n s gsd

set-precipitation-parameter fcc_a1#02_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#02_p0 n s n

set-precipitation-parameter fcc_a1#02_p1 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#02_p1 n s gsd

set-precipitation-parameter zet_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter zet_p0 n s gsd

set-precipitation-parameter m7c3_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter m7c3_p0 n s gs

set-precipitation-parameter lavest_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter lavest_p0 n s gs

set-sim-parameter e time
set-sim-parameter t t ht_slow 10
set-sim-parameter s n
set-sim-parameter r l ssprl
set-sim-parameter a y

5. Service

This is the last step of the simulation. The temperature will be kept constant at 650°C for 16000h (look at the time-temperature-table). The setup definition works in the same way as before.

 

set-variable-value time 58321110

set-precipitation-parameter m23c6_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter m23c6_p0 n s gs

set-precipitation-parameter fcc_a1#01_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#01_p0 n s gsd

set-precipitation-parameter fcc_a1#02_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#02_p0 n s n

set-precipitation-parameter fcc_a1#02_p1 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter fcc_a1#02_p1 n s gsd

set-precipitation-parameter zet_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter zet_p0 n s gsd

set-precipitation-parameter m7c3_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter m7c3_p0 n s gs

set-precipitation-parameter lavest_p0 d Ferrite
$ Nucleation sites for „Ferrite“ prec. domain
set-precipitation-parameter lavest_p0 n s gs

set-sim-parameter e time
set-sim-parameter t t ht_slow 10
set-sim-parameter s n
set-sim-parameter r l ssprl
set-sim-parameter a y
set-sim-parameter r g 1.02

 

The only difference in the simulation setup can be seen in the last command line. To keep the file size into a resonable size, the store interval factor was changed from linear to logarithmic.

6. Main script

As mentioned at the beginning this script is not needed necessarily. It's only a very comfortable way to handle complex simulations like this. With the main script is possible to start every script one by one. So it's not needed anymore to start them by yourself. A main script looks like...

set-working-directory .

This command ('.') set to path the last file operation. All other commands in this script are self explaining. The first command starts up the script running, the second command starts the precipitate simulation.

 

run cb8_173_1_setup_casting.mcs
start-precipitate-simulation

run cb8_173_2_reheating.mcs
start-precipitate-simulation

run cb8_173_3_austenitising.mcs
start-precipitate-simulation

run cb8_173_4_ht.mcs
start-precipitate-simulation

run cb8_173_5_service.mcs
start-precipitate-simulation

 

If everything worked properly the result should look like the following figure:

 

‹‹ to the Top ››  ‹‹ to the Application files ››