Hello Everyone

I have just started learning Micress. However I have a 4.5 years of experience in Phase field modeling. I am looking for the reference for the following question:

how is multicomponent nucleation implemented in the Micress?

Please guide me towards the relevant literature.

thanks very much !!!!

Gaurav

---

original message from Gaurav Singh

## Nucleation reference

### Re: Nucleation reference

Dear Gaurav,

First of all wellcome as a new member of the MICRESS forum!

You ask about "multicomponent nucleation". I´m not sure whether I understand exactly what you mean exactly. I will try to give an answer nevertheless.

On one hand, there are different nucleation models in MICRESS, which refer to different places or circumstances where nucleation is to occur, like at a specific interface, in the bulk of a phase or a region, and to whether a fixed critical undercooling should be used as a nucleation criterion or some other criteria based on the properties of seeding particles, stored energies in recrystallisation etc. One can specify which phase is nucleated on which substrate phase and in which matrix phase (the phase the solutal undercooling of the nucleating phase is calculated from), the temperature range, the frequency for checking, data for shielding subsequent nuclei and so on.

In general, these models are designed for simulation at microscale, not at nano-scale, i.e., there is no model for prediction of homogeneous nucleation based on fluctuations the formation of a critical seed.

Independenty the question, how the driving force for nucleation or the undercooling is calculated, indeed is linked to the multicomponent issue. In principle, there is no difference how the driving force is calculated for the phase-field model itself and for nucleation. In the case of coupling to CALPHAD databases (using the Thermo-Calc TQ interface), driving force is calculated using the quasi-equilibrium approach, which for nucleation is exactly the commonly used parallel tangent construction.

For a linearized description of the phase diagram, the undercooling is calculated using the linearly approximated solidus and solvus hyperplanes. The difference between the actual temperature and the liquidus for the given composition is used as nucleation undercooling.

For further reading, besides the MICRESS manual, I would recommend

J. Eiken, B. Böttger, I. Steinbach: Multiphase-field approach for multicomponent alloys with extrapolation scheme for numerical application. Physical Review E 73 (2006), 066122.

for description of the quasi-equilibrium approach, and

B. Böttger, J. Eiken, I. Steinbach: Phase field simulation of equiaxed solidification in technical alloys. Acta Materialia 54 (2006), pp. 2697-2704.

for description of the seed density model for heterogeneous nucleation.

If you have further questions, or if my explanations was not what you expected,

please ask again!

---

original message from Bernd

First of all wellcome as a new member of the MICRESS forum!

You ask about "multicomponent nucleation". I´m not sure whether I understand exactly what you mean exactly. I will try to give an answer nevertheless.

On one hand, there are different nucleation models in MICRESS, which refer to different places or circumstances where nucleation is to occur, like at a specific interface, in the bulk of a phase or a region, and to whether a fixed critical undercooling should be used as a nucleation criterion or some other criteria based on the properties of seeding particles, stored energies in recrystallisation etc. One can specify which phase is nucleated on which substrate phase and in which matrix phase (the phase the solutal undercooling of the nucleating phase is calculated from), the temperature range, the frequency for checking, data for shielding subsequent nuclei and so on.

In general, these models are designed for simulation at microscale, not at nano-scale, i.e., there is no model for prediction of homogeneous nucleation based on fluctuations the formation of a critical seed.

Independenty the question, how the driving force for nucleation or the undercooling is calculated, indeed is linked to the multicomponent issue. In principle, there is no difference how the driving force is calculated for the phase-field model itself and for nucleation. In the case of coupling to CALPHAD databases (using the Thermo-Calc TQ interface), driving force is calculated using the quasi-equilibrium approach, which for nucleation is exactly the commonly used parallel tangent construction.

For a linearized description of the phase diagram, the undercooling is calculated using the linearly approximated solidus and solvus hyperplanes. The difference between the actual temperature and the liquidus for the given composition is used as nucleation undercooling.

For further reading, besides the MICRESS manual, I would recommend

J. Eiken, B. Böttger, I. Steinbach: Multiphase-field approach for multicomponent alloys with extrapolation scheme for numerical application. Physical Review E 73 (2006), 066122.

for description of the quasi-equilibrium approach, and

B. Böttger, J. Eiken, I. Steinbach: Phase field simulation of equiaxed solidification in technical alloys. Acta Materialia 54 (2006), pp. 2697-2704.

for description of the seed density model for heterogeneous nucleation.

If you have further questions, or if my explanations was not what you expected,

please ask again!

---

original message from Bernd

### Some comments concerning the seed model

Hello,

Bernd and Markus provided me lots of informations concerning the way one should

parametrize the 'seed type' flags. This post (which is a complement to the manual)

drives you for guessing relevant starting values for the different parameters.

Let's first start by a typical input file.

In the

in the bulk, in the region, interface, triple junction or quadruple junction.

These keywords are self-explicit, if the

the user has to define the interval: [x_min,x_max]x[y_min,y_max]x[z_min,z_max]

inside which the system should be seeded. In addition to these keywords

an additionnal flag, namely

code to explicitely seed only the interface area (2 different phases in

contact) and no triple points or quadruple points.

The phase of new grain define the type of seeds (ex: Mg2Si intermetallics).

The number referring to the phase is explicitely defined at a latter

stage in the used here is the

The

seeds may appear and from which phase the undercooling is calculated from.

For example, if the

region does not contain the phase referred in the 'reference phase' no

seed will appear.

According to what has been inputed for the

is enabled for example) this keyword is used for selecting only interfaces

between this phase and the matrix phase as nucleation site and for

taking into account curvature of this interface in the calculation of the

nucleation undercooling.

The

maximum number of nuclei in the system, if no reasonable guesses

can be inferred one should use a very huge value at starting point.

By doing so one avoids constraining the physics of the system

(a typical value of 5000 can be chosen). Thereafter this value

can be tuned in agreement with the number of nuclei which effectively

appeared during an unconstrained simulation - There is no reason to use

a smaller number if nucleation is not planned to be restricted!!!.

The

the initial radius of the seeded grains. Reasonable values depend on

the growth mode flag (see below).

The

one should use for the nuclei growth model.

Two choices are possible:

-stabilisation: The stabilisation model is used for enforcing the

grain growth at the first stage of the nucleation. Two cases have to

be taken into consideration: initial grain radius > cell spacing,

initial grain radius < cell spacing.

If initial grain radius is bigger than the cell spacing then a big

grain is put into the system, this seeding method is a bit crude and

may lead to unstable simulations. When the grains radius size are lower

than the cell spacing a small grain consisting of only one cell

with a fraction of

for the new phases is nucleated. By using the stabilisation model

one balances the curvature undercooling by the size of the radius.

For small radius the curvature contribution is not taken into

account, whereas for bigger grain size the curvature contribution is

restored. The input for the initial grain radius is disregarded

in the case initial grain radius < cell spacing.

-analytical_curvature:

The

the curvature of a particle smaller than the numerical interface

thickness. In order to perform such calculation one assumes that the

volume of the solid shell surrounding the initial seed (alleged to

be spherical) is proportional to the local phase field parameter (i.e.

the molar solid fraction). By doing so, one can guess a

corresponding radius r (as long as the grain has the status of a small grain)

In such a case, the curvature contribution to the phase field

is no longer calculated using the numerical second derivative of the

phase field parameter but it is calculated using the analytical

results derived for a sphere: K=2/r. For further details concerning

this approach one should refer to 'Phase field simulation of equiaxed

solidification in technical alloys, B. Boettger, J. Eiken, I. Steinbach.

In Acta Materialia 54 10 (2006) 2697.'

To put it in a nutshell the analytical model leads to less stable growth.

The stabilisation model leads to more stable nuclei growth.

The

the nuclei is allowed to form. Ex: In pure aluminum the melting temperature

is 933.55K, setting the undercooling at 20K in the driving file while lead to

a simulation in which the first nuclei will appear at 933.55-20=913.55K.

N.B: The undercooling is made of curvature undercooling: this contribution is

due to the Gibbs-Thomson effect.

A kinetic undercooling: linked to the fact that a finite amount of matter

cannot instantaneously solidify as atoms have to overcome an entropy barrier

to crystallize, this can be interpreted as an inertial term (There is a transient

phase during which the system tries to reach equilibrium).

In addition to this there is a thermodynamic undercooling related to the

fact that a system can be thermodynamically out-of-equilibrium (ex: liquid

water can be undercooled down to -42C). Moreover is a too high undercooling

is assumed this may induce very high driving force when the nuclei appear.

Let's go back to our Aluminum example. In such system setting the value

of the undercooling to a too high values (>50K) during a TQ coupled simulation

may leads to unphysical calculation as Thermocalc has to provide out-of-equilibrium

data concerning aluminum 50 degrees below its melting temperature. These

kind of data are computed according to extrapolation scheme far from equilibrium

point (database are assessed by experiments which are carried out close to

equilibrium) and should be handled carefully.

During the solidification of an alloy one can hardly make assumptions regarding

the temperature at which the first/last seeds may appear as one has to take into account

segregation inside the domain. In MICRESS the undercooling is calculated locally and

is defined as the temperature difference dT of a cell defined as

where

temperature at which the content of the cell would exist at equilibrium.

If segregation occurs some parts of the domain may enrich in alloying compounds,

leading to significant changes of the local equilibrium temperature.

The inquiry

defining the orientation of the nuclei, this flag has to be defined according to the

nature of the system one wants to simulate. The 'range' keyword asks

for a given angle interval.

The inquiry

the

Let's suppose that at time t a nucleus appears, the parameter shield distance

will define a circular area (of diameter r_shield ) centered onto

the grain. In this area no other grain of the same phase are allowed to appear within

the time interval [t,t+t_shield]. The r_shield parameter can be define according

to some experimental micrographs of the system one wants to simulate, the t_shield

can be evaluated according to some typical diffusion time scale considerations.

The

calculation time. The different grains of the system are sorted in category (among a given

category grains are somehow handled in the same way, by doing so one reduce

calculation time) according to their orientation.

Ex: if the

one has to input the

being [0;60] and a categorization number of 50 it means that one category C_n will encompass

nuclei having an orientation angle within the interval [7.2xn;7.2x(n+1)] 7.2=360/50 Degree.category-1.

The

call to the TQ program, enhancing the overall time calculation.

The flag

in the case of the solidification of a pure substance (ex:T_melt_Al=933.55K) by setting the

Such kind of behavior may sounds unphysical, to this end one can use the 'nucleation_noise'

flag in order to introduce some stochastic fluctuation on the undercooling limit.

The flag

metastable grains (i.e. grains which do not evolve) calculated using the

model after their shield time has elapsed.

Cheers

Antoine

Bernd and Markus provided me lots of informations concerning the way one should

parametrize the 'seed type' flags. This post (which is a complement to the manual)

drives you for guessing relevant starting values for the different parameters.

Let's first start by a typical input file.

*# Input for seed type 1:*

# ----------------------

# Type of 'position' of the seeds?

# Options: bulk region interface triple quadruple [restrictive]

region

# Minimal value of x-coordinates? [micrometers]

0.10000

# Maximal value of x-coordinates? [micrometers]

0.20000

# Minimal value of z-coordinates? [micrometers]

0.10000

# Maximal value of z-coordinates? [micrometers]

0.20000

# Phase of new grains?

3

# Reference phase?

0

# Which nucleation model shall be used?

# Options: seed_undercooling seed_density

seed_undercooling

# maximum number of new nuclei 1?

5000

# Grain radius [micrometers]?

0.00000

# Choice of growth mode:

# Options: stabilisation analytical_curvature

stabilisation

# min. undercooling [K] (>0)?

2.0000

# Determination of nuclei orientations?

# Options: random fix range parent_relation

fix

# Rotation angle? [Degree]

+45.000

# Shield effect:

# Shield time [s] ?

-1.000

# Shield distance [micrometers]?

-1.000

# Shall categorization be applied to this seed type?

# Options: categorize {Number} no_categorize

no_categorize

# Nucleation range

# min. nucleation temperature for seed type 1 [K]

860.000

# max. nucleation temperature for seed type 1 [K]

940.000

# Time between checks for nucleation? [s]

1.00000E-01

# Shall random noise be applied?

# Options: nucleation_noise no_nucleation_noise

no_nucleation_noise

## ----------------------

# Type of 'position' of the seeds?

# Options: bulk region interface triple quadruple [restrictive]

region

# Minimal value of x-coordinates? [micrometers]

0.10000

# Maximal value of x-coordinates? [micrometers]

0.20000

# Minimal value of z-coordinates? [micrometers]

0.10000

# Maximal value of z-coordinates? [micrometers]

0.20000

# Phase of new grains?

3

# Reference phase?

0

# Which nucleation model shall be used?

# Options: seed_undercooling seed_density

seed_undercooling

# maximum number of new nuclei 1?

5000

# Grain radius [micrometers]?

0.00000

# Choice of growth mode:

# Options: stabilisation analytical_curvature

stabilisation

# min. undercooling [K] (>0)?

2.0000

# Determination of nuclei orientations?

# Options: random fix range parent_relation

fix

# Rotation angle? [Degree]

+45.000

# Shield effect:

# Shield time [s] ?

-1.000

# Shield distance [micrometers]?

-1.000

# Shall categorization be applied to this seed type?

# Options: categorize {Number} no_categorize

no_categorize

# Nucleation range

# min. nucleation temperature for seed type 1 [K]

860.000

# max. nucleation temperature for seed type 1 [K]

940.000

# Time between checks for nucleation? [s]

1.00000E-01

# Shall random noise be applied?

# Options: nucleation_noise no_nucleation_noise

no_nucleation_noise

#

In the

*'position'*section one sets the localization of the seeds:in the bulk, in the region, interface, triple junction or quadruple junction.

These keywords are self-explicit, if the

*'region'*flag is enabledthe user has to define the interval: [x_min,x_max]x[y_min,y_max]x[z_min,z_max]

inside which the system should be seeded. In addition to these keywords

an additionnal flag, namely

*'restrictive',*can be enabled enforcing thecode to explicitely seed only the interface area (2 different phases in

contact) and no triple points or quadruple points.

The phase of new grain define the type of seeds (ex: Mg2Si intermetallics).

The number referring to the phase is explicitely defined at a latter

stage in the used here is the

*"Phase diagram"*section.The

*'reference phase'*flag refers to the kind of phase where the newseeds may appear and from which phase the undercooling is calculated from.

For example, if the

*'position'*flag is set to*'region'*and if the definedregion does not contain the phase referred in the 'reference phase' no

seed will appear.

According to what has been inputed for the

*'position'*flag the*'substrate phase'*inquiry may be asked (ex: if the 'interface' flagis enabled for example) this keyword is used for selecting only interfaces

between this phase and the matrix phase as nucleation site and for

taking into account curvature of this interface in the calculation of the

nucleation undercooling.

The

*'# maximum number of new nuclei'*inquiry is used to define themaximum number of nuclei in the system, if no reasonable guesses

can be inferred one should use a very huge value at starting point.

By doing so one avoids constraining the physics of the system

(a typical value of 5000 can be chosen). Thereafter this value

can be tuned in agreement with the number of nuclei which effectively

appeared during an unconstrained simulation - There is no reason to use

a smaller number if nucleation is not planned to be restricted!!!.

The

*'# Grain radius [micrometers]?'*inquiry is used for definingthe initial radius of the seeded grains. Reasonable values depend on

the growth mode flag (see below).

The

*'# Choice of growth mode'*flag asks for the type of model thatone should use for the nuclei growth model.

Two choices are possible:

-stabilisation: The stabilisation model is used for enforcing the

grain growth at the first stage of the nucleation. Two cases have to

be taken into consideration: initial grain radius > cell spacing,

initial grain radius < cell spacing.

If initial grain radius is bigger than the cell spacing then a big

grain is put into the system, this seeding method is a bit crude and

may lead to unstable simulations. When the grains radius size are lower

than the cell spacing a small grain consisting of only one cell

with a fraction of

*'phMin'*(input at the end of the driving file)for the new phases is nucleated. By using the stabilisation model

one balances the curvature undercooling by the size of the radius.

For small radius the curvature contribution is not taken into

account, whereas for bigger grain size the curvature contribution is

restored. The input for the initial grain radius is disregarded

in the case initial grain radius < cell spacing.

-analytical_curvature:

The

*‘analytical_curvature’*flag is used when one aims at describingthe curvature of a particle smaller than the numerical interface

thickness. In order to perform such calculation one assumes that the

volume of the solid shell surrounding the initial seed (alleged to

be spherical) is proportional to the local phase field parameter (i.e.

the molar solid fraction). By doing so, one can guess a

corresponding radius r (as long as the grain has the status of a small grain)

In such a case, the curvature contribution to the phase field

is no longer calculated using the numerical second derivative of the

phase field parameter but it is calculated using the analytical

results derived for a sphere: K=2/r. For further details concerning

this approach one should refer to 'Phase field simulation of equiaxed

solidification in technical alloys, B. Boettger, J. Eiken, I. Steinbach.

In Acta Materialia 54 10 (2006) 2697.'

To put it in a nutshell the analytical model leads to less stable growth.

The stabilisation model leads to more stable nuclei growth.

The

*'# min. undercooling [K]'*inquiry refers to the undercooling at whichthe nuclei is allowed to form. Ex: In pure aluminum the melting temperature

is 933.55K, setting the undercooling at 20K in the driving file while lead to

a simulation in which the first nuclei will appear at 933.55-20=913.55K.

N.B: The undercooling is made of curvature undercooling: this contribution is

due to the Gibbs-Thomson effect.

A kinetic undercooling: linked to the fact that a finite amount of matter

cannot instantaneously solidify as atoms have to overcome an entropy barrier

to crystallize, this can be interpreted as an inertial term (There is a transient

phase during which the system tries to reach equilibrium).

In addition to this there is a thermodynamic undercooling related to the

fact that a system can be thermodynamically out-of-equilibrium (ex: liquid

water can be undercooled down to -42C). Moreover is a too high undercooling

is assumed this may induce very high driving force when the nuclei appear.

Let's go back to our Aluminum example. In such system setting the value

of the undercooling to a too high values (>50K) during a TQ coupled simulation

may leads to unphysical calculation as Thermocalc has to provide out-of-equilibrium

data concerning aluminum 50 degrees below its melting temperature. These

kind of data are computed according to extrapolation scheme far from equilibrium

point (database are assessed by experiments which are carried out close to

equilibrium) and should be handled carefully.

During the solidification of an alloy one can hardly make assumptions regarding

the temperature at which the first/last seeds may appear as one has to take into account

segregation inside the domain. In MICRESS the undercooling is calculated locally and

is defined as the temperature difference dT of a cell defined as

*dT=T_equilibrium-T_effective*,where

*T_effective*is the effective temperature of the cell and*T_equilibrium*is thetemperature at which the content of the cell would exist at equilibrium.

If segregation occurs some parts of the domain may enrich in alloying compounds,

leading to significant changes of the local equilibrium temperature.

The inquiry

*'# Determination of nuclei orientations?'*is used fordefining the orientation of the nuclei, this flag has to be defined according to the

nature of the system one wants to simulate. The 'range' keyword asks

for a given angle interval.

The inquiry

*'# Shield effect' asks for two parameters, '# Shield time [s]'*(t_shield) andthe

*'# Shield distance [micrometers]'*(r_schield). These two parameters are connected together.Let's suppose that at time t a nucleus appears, the parameter shield distance

will define a circular area (of diameter r_shield ) centered onto

the grain. In this area no other grain of the same phase are allowed to appear within

the time interval [t,t+t_shield]. The r_shield parameter can be define according

to some experimental micrographs of the system one wants to simulate, the t_shield

can be evaluated according to some typical diffusion time scale considerations.

The

*'# Shall categorization be applied to this seed type?'*inquiry is used for enhancingcalculation time. The different grains of the system are sorted in category (among a given

category grains are somehow handled in the same way, by doing so one reduce

calculation time) according to their orientation.

Ex: if the

*'range'*keyword is activated for the*'# Determination of nuclei orientations?'*one has to input the

*'# Minimal value of rotation angle?'*and the*'# Maximal value of*

rotation angle?'. Assuming respective values of the nuclei orientation boundariesrotation angle?'

being [0;60] and a categorization number of 50 it means that one category C_n will encompass

nuclei having an orientation angle within the interval [7.2xn;7.2x(n+1)] 7.2=360/50 Degree.category-1.

The

*'# Time between checks for nucleation? [s]'*flag is used for reducing the number ofcall to the TQ program, enhancing the overall time calculation.

The flag

*'# Shall random noise be applied?'*is used for bluring the undercooling limit,in the case of the solidification of a pure substance (ex:T_melt_Al=933.55K) by setting the

*'# min. undercooling [K]'*to 20K one would expect the nuclei to appears at 913.55K and below.Such kind of behavior may sounds unphysical, to this end one can use the 'nucleation_noise'

flag in order to introduce some stochastic fluctuation on the undercooling limit.

The flag

*'# Shall metastable small seeds be killed?'*is used with a view to killingmetastable grains (i.e. grains which do not evolve) calculated using the

*'stabilisation'*model after their shield time has elapsed.

Cheers

Antoine