© MatCalc (2008)
 
 
 
 
 
 
 
 
   
 
   

T14: Introduction to precipitation calculations

This tutorial was created on

MatCalc version 5.23 rel 1.026

license: free

database: mc_sample_fe.tdb; mc_sample_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

1. 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'.

 

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.

 

 

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.

In the 'Attached to pd' drop box select the created domain ('Ferrite')

 

 

Open the 'nucleation' tab. If the contents of the 'Nucleation model' and other drop-boxes are not visible, click on another phase in the phase list at the left-hand side, then back on 'CEMENTITE_P0', and this will load the text.

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.

 

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_sample_ddb' database. Click on 'close'

 

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 and select 'yes' for 'use for all plots'. 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 y-axis for 'plot #0' should also be changed to 'Phase fraction of cementite precipitates'.

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'. 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'.

 

 

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.

2. The calculation

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'.

 

 

The information in the 'Output' window gives a summary of the current system composition, simulation time

 

1, recs=1; its=1/1, dt=1e-012, time: 1e-012s (2,778e-016h), T=600 C (873,2 K), on Fr, 09:57:48

#Ferrite: BCC_A2 (dt=0, -)

FE +9,90768e-001(+0,00e+000) C +9,23192e-003(+0,00e+000)

CEMENTITE_P0: (0/..../0e+000/d) f=0/dfm=6840,7,nucl-dfm=6840,7, ans=4e+021

n_dot=0e+000 (ecdf=0), mcomp(its:0)=1 (res=0), step: (dt=0, -/-1)

+ nucleation of CEMENTITE_P0 started at 1,9531e-008 s, T=600 °C (873,16 K)

+ CEMENTITE_P0 precipitation has startet 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, 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
( 0/..../0e+000) - (number of classes used / '+', '-' or '.', meaning: New class built, class deleted or no change / Number of precipitates for this phase)
f - mole fraction of precipitate phase
dfm - driving force for formation of phase in [J]
nucl-dfm - driving force for nucleation in [J]
ans - available nucleation sites

 

- Fifth line:
n_dot - nucleation rate
dt - maximum time step allowed due to the precipitate condition

 

- Sixth line (and the following ones):
+ nucleation of CEMENTITE_P0 started at 0,00152588 s, T=600 °C (873,16 K) - Additional information: Nucleation started '+' or stopped '-' and the exact system parameters at that time.

 

Another output result, at a later stage:

 

2500, recs=277; its=1/1, dt=1,49133, time: 303,923s (0,08442h), T=600 C (873,2 K), on Fr, 10:27:17

#Ferrite: BCC_A2 (dt=6,6, matrix(C))

FE +9,99778e-001(+0,00e+000) C +2,21980e-004(+0,00e+000)

CEMENTITE_P0: (63/..gs/1e+019/d) f=0,03607/dfm=19,8,nucl-dfm=19,2, ans=0

n_dot=0e+000 (ecdf=1), mcomp(its:20)=1,5e-018 (res=1e-014), step: (dt=3,8e-006, rad-shrink/62)

 

In iteration 2500 above, the maximum time-step is set to 6.6 s to avoid the C content from being depleted too fast (matrix(C)). The carbon content of the matrix has decreased from 9.2x10-3 initially (iteration 1) to 2.2x10-4 in iteration 2500. The precipitate phase uses 63 of 250 classes and consists of roughly 1x1019 particles. The mole fraction of cementite in the matrix is 0.0361 (3.61%). There is a small positive driving force for nucleation (19.8 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 3.8x10-6 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'.

3. Interpreting the results

Nucleation, growth and coarsening

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_PART$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.

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 critical radius is unstable (leading to a 'noisy' appearance on the graph) because whenever a small class is deleted, the carbon content of the matrix rises again, affecting the critical radius.

 

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.

 

 

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:

 

 

Create a new p5 window for CEMENTITE_P0 and set the number of classes on the histogram to 20 as before. 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:

 

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

 

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.

 

‹‹ to the Top ››  ‹‹ to the Tutorial files ››