Diffusion Problem

dendritic solidification, eutectics, peritectics,....
Bernd
Posts: 1616
Joined: Mon Jun 23, 2008 9:29 pm

Re: Diffusion Problem

Post by Bernd » Thu Jan 22, 2026 11:21 pm

Dear materialmoop,

The authors of the paper you have linked raise a good point when they say that paraequilibrium is the better condition for the "equilibration" after quenching. The reason is that paraequilibrium means that only carbon is equilibrated, while the other elements are not in equilibrium. Although, at a first glimpse, it may seem strange for a holding process without phase transformation, this perhaps better describes the specific nature of the martensite phase.

You can do the same in MICRESS if you apply the "paratq" redistribution scheme after invoking "redistribution_control" in the 1/2-phase interaction:

#
# 1 (FCC_A1) / 2 (BCC_A2)
# -------------------------
# Simulation of interaction between 1 (FCC_A1) and 2 (BCC_A2)?
# Options:
# phase_interaction
# [ standard | particle_pinning[_temperature] | solute_drag ]
# [ redistribution_control ]
# [ no_junction_force ]
# | no_phase_interaction
# [ junction_force ]
# [ phase_diagram ]
# | identical <phase1> <phase2>
phase_interaction redistribution_control
# 'DeltaG' options: default
# avg ...[] max ...[J/cm^3] smooth ...[Deg] noise ...[J/cm^3] offset ...[J/cm^3]
...
# Which phase diagram is to be used?
# Options: database {local|global|interface|fragment}[<maximal distance>]
# | linear | linearTQ
database fragment
# Relinearisation interval for interface FCC_A1 / BCC_A2
# Options: automatic manual from_file none
automatic
# Maximal allowed local temperature deviation [K]
5.000000000000
# Please specify the redistribution behaviour of each component:
# Format: forward [backward]
# Options: nple para paratq normal [mob_corr] atc [mob_corr] [verbose]
# Component C:
normal
# Component MN:
paratq
# Component SI:
paratq


You will note that calculating paraequilibrium is much more time-consuming, and you need a better initialisation at the beginning after reading the .rest-file. For that, it is necessary to do a correct reading of initial microstructure from restart file instead of continuing by restart. As I already mentioned some time ago, in your input files you try to do both, while only the "restart reset_time" succeeds. However, this restart option with only resetting the time does not correctly initialize the TQ-equilibria when you switch from equilibrium to paraequilibrium. Instead you should use the reading of microstructure from a restart-file, which you already implemented in your input file:

#
# Structure from restart file
# ---------------------------
# Shall grain(s) be replaced by initial structure(s) from a restart file(s) ?
# Options: restart_file | no_restart_file
restart_file
# How many restart files shall be read?
1
# For each restart file a grain number and (optionally)
# shift (in grid cells) and zoom factor for all 3 dimensions
# as well as a character for rotation options must be specified:
# grain number [shift X (int) shift Y (int) shift Z (int)
# zoom X (int) zoom Y (int) zoom Z (int) rot(string)] ?
# Rotation options: "xz+90" "xz-90" "xz180" "xy+90" ... "yz180"
0
# Name of restart file?
heat130


However, this actually does nothing, because grain 0, which is the default background grain, is covered by the initial grain structure consisting of 9 fcc grains! So, the only thing you need to do for a correct initial microstructure reading from the restart file is to remove these 9 initial grains and to change the "restart reset_time" at the top of the input file by "new".

In my first trials, using "paratq" indeed seems to reduce the carbon content of the fcc grains by switching from equilibrium to paraequilibrium mode. I don't know if that is sufficient for you, but you should definitively give it a try.

Bernd

materialmoop
Posts: 20
Joined: Tue Jul 15, 2025 10:14 pm
anti_bot: 333

Re: Diffusion Problem

Post by materialmoop » Mon Mar 09, 2026 1:56 pm

Hi Bernd,

Thank you, using paratq does help the average carbon concentration :)

However, I still encounter regions with large spikes in the carbon concentration. For example, in this file, some areas reach up to 10wt% carbon. I cannot have the concentration exceeding about 2.5 wt% during partitioning (the file for this is testing210copycpart300). Is there some way to prevent such a large spike? Could I make it so that there is a "cap" in how much carbon there can be? I unfortunately cannot figure out why some areas contain such high carbon concentrations.

Many thanks!
You do not have the required permissions to view the files attached to this post.

Bernd
Posts: 1616
Joined: Mon Jun 23, 2008 9:29 pm

Re: Diffusion Problem

Post by Bernd » Mon Mar 09, 2026 8:38 pm

Dear materialmoop,

It is important to understand that Thermo-Calc (or the database) does not calculate Martensite but bcc in equilibrium with fcc, even if you apply para-equilibrium conditions. Therefore you cannot expect overall correct results. The spikes of high composition occur at locations where a small amount of fcc-phase is surrounded by large bcc regions, so that intermediately equilibria with high C-composition in both phases are selected. If you wait long enough (or use faster diffusion), the compositions will tend towards the lower average values. But still, it is physically not the same.

I don't know how to achieve exactly 2.5% everywhere without either changing the database, changing the phases, or using a linearized phase diagram description which can exactly match your expectations...

Bernd

Post Reply