T17: Complex multi-stage heat treatments

This tutorial was tested on
MatCalc version 6.04 rel 1.001
license: free
database: mc_fe.tdb; mc_fe.ddb

Complimentary files

Click here to view the script for this tutorial

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.


  • Definition of complex heat treatments
  • The heat treatment editor
  • Multiple precipitation domains / matrix phase transformations

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 twice a precipitate phase from the parent phase FCC_A1#01. These will be named automatically 'FCC_A1#01_P0' and 'FCC_A1#01_P1'.

 Setup with two precipitate phases

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 it was 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.

 User-defined plots

Use a default x-axis which has the axis type set to 'log' and the title 'time / s'. Scale the x-axis as '10..' (scale begins at 10 seconds).

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.

 MatCalc treatments

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' as '1400' (the temperatures in treatment editor are in '°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:

 MatCalc treatment segment

To set up the next segment, press the  MatCalc button 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:

 MatCalc segment

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

If you have finished entering the segments, the entire heat treatment should look like this:

 MatCalc treatment

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.

First, let it be written that although it is possible to assign different nucleation sites to one precipitate phase simultaneously (e.g. dislocations and grain boundaries), it is not recommended to do so. The precipitates at grain boundaries are a subject to slightly different diffusion model than the ones with the other nucleation sites. A neat procedure that allows an easier interpretation of the simulation results is to create a separate precipitation phase for every single nucleation site, according to the rule “one precipitate phase - one nucleation site”. This is the reason why two precipitate phases were created from the parent phase FCC_A1#01.

Another challenge is to deactivate the phase with the dislocations as nucleation sites at the beginning of the simulation and to “switch it on” during the running simulation. 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 nucleation-sites=grain-boundaries
set-precipitation-parameter fcc_a1#01_p1 nucleation-sites=none

 MatCalc pre-segment script

This command defines the nucleation sites of the first NbC phase to be at grain boundaries. Since 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:

 MatCalc picture  MatCalc picture

The second NbC phase has the nucleation sites set as 'none' which means that it is not allowed to nucleate at all. Since we want to continue with dislocations as nucleation sites for this precipitates after the first cooling segment, we define a post-segment script for the first segment reading

set-precipitation-parameter fcc_a1#01_p1 nucleation-sites=dislocations

This command will define dislocations as nucleation sites for 'FCC_A1#01_P1'. MatCalc will then automatically use the spherical diffusion geometry again as shown in the left image.

 MatCalc post-segment script

Click 'OK' to go the heat treatment editor. The existence of pre-segment and post-segment scripts is indicated by the presence of letter 'Y' in the 'Pre-Scr.' and 'Post-Scr.' columns of the heat treatment editor.

Again, click 'OK' and Save your file ('Tutorial_17.mcw').

Perform simulation

Start the precipitation simulation with 'Calc > Microstructure simulation …'. In this dialog, the most important setting is the 'temperature control' selection. Select 'from tm 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.

 MatCalc plot

Start the microstructure 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):

 MatCalc plot

 MatCalc plot

 MatCalc plot

 MatCalc plot

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 of 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 (better 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.

Same tendencies can be noticed for the number density and mean radius of the two phases. 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 of the precipitates at dislocations remains in the sub-nanometer range. Later, during the reheating from room temperature, the radius increases again to ~20 nm. A second nucleation burst is observed, too.

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.

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 on dislocations, mainly in the ferrite region. 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.

 Restrict nucleation to precipitate domain

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 for the '_P1'-phase, and grain boundaries are selected for the '_P0'-phase. Noteworthy, the setting for '_P1' phase relates to the final state of the previous simulation, rather than to the initial one (when no nucleation sites were set).

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.

 Remove content of post-segment script

Duplicate and lock all series and start the simulation. The results look virtually identical with the previous simulation. Note that in the previous simulation '_P1' was starting without any nucleation sites selected. In the current simulation '_P1' is starting already with the assignment of dislocations as the nucleation sites.

Consecutive articles

tutorials/t17.txt · Last modified: 2023/08/02 22:58 by pwarczok
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki