Place randomly distributed nuclei

ripening phenomena, dislocations, grainboundary topology
Post Reply
billyzhangubc
Posts: 25
Joined: Fri Feb 01, 2019 8:53 pm
anti_bot: 333
Location: University of British Columbia

Place randomly distributed nuclei

Post by billyzhangubc » Thu Feb 14, 2019 3:39 am

Hi all, this is my first post here...

I'm doing a 2D benchmarking nucleation and grain growth simulation with MICRESS and I want to place randomly distributed grains into a bulk domain (i.e. no initial grain boundaries). The bulk domain is set to have a recrystallization energy of 3 MPa and the nuclei have 0 MPa.

I want to place randomly distributed nuclei (i.e. "bulk" nuclei in the nucleation option) so I can perform the JMAK analysis on fraction recrystallized. I tuned shield distance and shield time, but so far the nuclei does not seem to be randomly placed throughout the simulation domain (see the attached image). For example, the first 6 nuclei all locate in the very bottom of the domain and some seem to lie on the same horizontal line. I wonder if there's a way to randomly place bulk nuclei within MICRESS.

The "Data for Further Nucleation" section in my MICRESS "*.in" file is included below. My domain size is 250x250 micrometers.

Thanks in advance,
Billy

# Data for further nucleation
# ===========================
# Enable further nucleation?
# Options: nucleation nucleation_symm no_nucleation [verbose|no_verbose]
nucleation
# Additional output for nucleation?
# Options: out_nucleation no_out_nucleation
no_out_nucleation
#
# Number of types of seeds?
1
#
# Input for seed type 1:
# ----------------------
# Type of 'position' of the seeds?
# Options: bulk region interface triple quadruple front [restrictive]
bulk
# Phase of new grains (integer) [unresolved|add_to_grain]?
1
# Reference phase (integer) [min. and max. fraction (real)]?
1
# Which nucleation model shall be used?
# Options: seed_undercooling seed_density
seed_undercooling
# maximum number of new nuclei 1?
# (set negative for unlimited number)
20
# Grain radius [micrometers]?
0.500000
# Choice of growth mode:
# Options: stabilisation analytical_curvature
stabilisation
# critical recrystallisation energy [J/cm**3 or MPa]?
1.0000
# Determination of nuclei orientations?
# Options: random fix fix_direction parent_relation
random
# Shield effect:
# Shield time [s] [shield phase or group number] ?
1000.00
# Shield distance [micrometers] [ nucleation distance [micrometers] ]?
30.000 30.000
# Shall categorizaton be applied to this seed type?
# Options: categorize {number} no_categorize
categorize
# Input of minimal and maximal energy of the nuclei:
# Minimum of recrystallisation energy? [J/cm**3 or MPa]
0.0000
# Maximum of recrystallisation energy? [J/cm**3 or MPa]
0.0000
# Nucleation range
# min. nucleation temperature for seed type 1 [K]
0
# max. nucleation temperature for seed type 1 [K]
2000.000
# Time between checks for nucleation? [s]
# Options: constant from_file
constant
# Time interval [s]
1.50000E-02
# Shall random noise be applied?
# Options: nucleation_noise no_nucleation_noise
nucleation_noise
# Factor for random noise?
# (applied as DeltaT -> (1+Factor*(RAND-1/2))*DeltaT)
1.000E-03
#
# Seed for random-number generator initialisation
# -----------------------------------------------
22
# Max. number of simultaneous nucleations?
# ----------------------------------------
# (set to 0 for automatic)
0
#
# Shall metastable small seeds be killed?
# ---------------------------------------
# Options: kill_metastable no_kill_metastable
no_kill_metastable
#
Attachments
Capture.PNG
20 "randomly placed" nuclei in my simulation
Capture.PNG (14.96 KiB) Viewed 8681 times

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

Re: Place randomly distributed nuclei

Post by Bernd » Thu Feb 14, 2019 5:39 pm

Dear billyzhangubc,

Welcome to the MICRESS Forum!

Indeed, the normal "bulk" nucleation type does not provide a random distribution of the potential nucleation sites ("checked points") in the domain. The algorithm uses the "nucleation distance" and goes rather over a regular grid. If, like in your case, the nucleation condition is fulfilled all over the domain, you will get a perfectly regular grid of seeds (you further restricted the maximum number of seeds to 20, so you get also part of that grid). With setting noise on the driving force for nucleation, you only can randomly remove part of this grid if the driving force for nucleation is close to the critical driving force - but still the seed distribution is not random.

Thus, from my point of view you have two choices how to create a more or less random seed distribution:
a) If you use this mechanism of bulk nucleation with random noise in such a way that only very few seeds are set per checking time step (not by cutting with a "maximum number of nuclei" but by removing most of them by using the random noise, then you will get something quite random. You will need to decrease the checking interval in order to overcome the low percentage of "successful" nucleation events.

b) You can use the "seed_density" model which provides a random distribution of seeds in the bulk region. The "problem" for your type of application is that the seed density model is a dedicated model for heterogeneous nucleation. Therefore, you need to indirectly use the (imaginary) seed particle radius as a measure to determine the critical driving force for nucleation. In case you need only a single value of the critical driving force (like in your case), you would need to define only one single seed class with a specified radius (to be more exact, you would need two extra classes with zero density to be able to narrow down the assumed radius range).

Thus, to sum up, method a) is a bit like a "brutal force" method, while b) gets awkward if you need to have full control over the critical reX energy value(s).

Bernd

billyzhangubc
Posts: 25
Joined: Fri Feb 01, 2019 8:53 pm
anti_bot: 333
Location: University of British Columbia

Re: Place randomly distributed nuclei

Post by billyzhangubc » Fri Feb 15, 2019 6:40 pm

Hi Bernd,
Thanks for your suggestions. I stick to the seed_undercooling model because I will introduce heterogeneous distribution of recrystallization energy later. I tried to vary the amplitude of random noise but nuclei distributions seem the same (see attached screenshot of the .korn files; left: amplitude 0.1, right: amplitude 0.001).

I think the problem is that I don't fully understand how I can set very few nuclei (i.e. remove most of the nuclei on the initial grid) per checking time step using the random noise . Should I use a very high amplitude of random noise? I also wonder if tuning shield distance and/or using a higher number of nuclei can solve the problem.

Thanks,
Billy
Attachments
Capture.PNG
Capture.PNG (63.32 KiB) Viewed 8674 times

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

Re: Place randomly distributed nuclei

Post by Bernd » Mon Feb 18, 2019 8:45 am

Dear Billy,

Random noise adds just adds a random contribution with given amplitude to the local undercooling (or reX-energy). In your case, the critical value is 1 MPa, the locally found value is 3MPa, i.e. all nuclei will form.

When you apply noise like

# Factor for random noise?
# (applied as DeltaT -> (1+Factor*(RAND-1/2))*DeltaT)
1.000E-03

you modify the local reX-energy of 3 MPa to a range of 2.9985 - 3.0015 (see above formula), which means you get the same as without noise (all nuclei will form). Please note that the random numbers ("RAND") has values between 0 and 1.
Specifically, you need to apply a noise amplitude of at least 4/3 in order to get any effect in your case. And even if you would make the amplitude infinite, you still would get around half of the nuclei.
Thus, in order to achieve only very few nuclei by using random noise, the reX-values of the initial grains must be lower than the critical value, and the noise amplitude needs to be just above half the difference between the two values.

Using the shield distance instead of the nucleation distance would lead to the same regular pattern.

Bernd

billyzhangubc
Posts: 25
Joined: Fri Feb 01, 2019 8:53 pm
anti_bot: 333
Location: University of British Columbia

Re: Place randomly distributed nuclei

Post by billyzhangubc » Tue Feb 19, 2019 8:54 pm

Hi Bernd, thanks for your suggestion! I increased the critical rex energy for the nuclei (to above the stored rex energy of the bulk grain) and the distribution is getting much more random. It is very helpful.
Danke schoen!

Billy

billyzhangubc
Posts: 25
Joined: Fri Feb 01, 2019 8:53 pm
anti_bot: 333
Location: University of British Columbia

Re: Place randomly distributed nuclei

Post by billyzhangubc » Wed Apr 01, 2020 1:14 am

Hi Bernd,
Sorry for a late follow-up. Hope you are doing well.

I am now simulating intercritical austenite formation from ferrite that involves nucleation. A major problem I have at the moment is that austenite nuclei are not quite randomly distributed (esp. comparing to a micrograph; see images attached). I used nucleation rate derived from experimental data for my phase-field input. The random noise option seems less intuitive for this situation, since I don't quite know my driving forces directly and tuning the noise amplitude becomes inefficient trial-and-error.

Is there any way to mitigate from this?

Thanks in advance,
Billy
Attachments
Experimental.png
Experimental.png (11.08 KiB) Viewed 7923 times
SampleInput.in
(18.7 KiB) Downloaded 328 times
PFM_3Nb_500_785.png
Simulated structure by MICRESS
PFM_3Nb_500_785.png (61 KiB) Viewed 7923 times

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

Re: Place randomly distributed nuclei

Post by Bernd » Wed Apr 01, 2020 11:08 am

Hi Billy,

You should not restrict the number of nuclei, neither per seed type ("maximum number of new nuclei") nor per time step ("Max. number of simultaneous nucleations?"). This often leads to erratic grain distributions (if you do not use it for the exact purpose), because it just stops nucleating without redistibuting the already chosen positions. In your case this leads to string-like structures.
Apart from that, I cannot see why random noise should not be applicable.
It could further be interesting for you to decouple the shields of the two seed types by choosing a different shield group number (optional parameter in same line with shield time).

Bernd

billyzhangubc
Posts: 25
Joined: Fri Feb 01, 2019 8:53 pm
anti_bot: 333
Location: University of British Columbia

Re: Place randomly distributed nuclei

Post by billyzhangubc » Wed Apr 01, 2020 3:51 pm

Bernd wrote:
Wed Apr 01, 2020 11:08 am
Hi Billy,

You should not restrict the number of nuclei, neither per seed type ("maximum number of new nuclei") nor per time step ("Max. number of simultaneous nucleations?"). This often leads to erratic grain distributions (if you do not use it for the exact purpose), because it just stops nucleating without redistibuting the already chosen positions. In your case this leads to string-like structures.
Apart from that, I cannot see why random noise should not be applicable.
It could further be interesting for you to decouple the shields of the two seed types by choosing a different shield group number (optional parameter in same line with shield time).

Bernd
Hi Bernd,
Thanks for your reply. I used a maximum number of simultaneous nucleation and a constat checking time interval to match my experimental results (mainly nucleation rate), so I am a bit worried that setting it to "automatic" may make the nucleation rate unrealistic. Do you think that will be a concern?

I can try decoupling the shields of the two seed types first as you said.

Thanks,
Billy

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

Re: Place randomly distributed nuclei

Post by Bernd » Wed Apr 01, 2020 5:12 pm

Hi Billy,

If you want to reduce the nucleation rate in order to match experimental results you should increase the nucleation distance instead, so that less nucleation sites are checked per nucleation time step.

Bernd

Post Reply