Restart options

new developments, future functionalities, hints for further applications of MICRESS
Bernd
Posts: 1504
Joined: Mon Jun 23, 2008 9:29 pm

Restart options

Post by Bernd » Thu Jul 14, 2016 4:44 pm

Hi all,

The current MICRESS version includes three different restart options which allow not only to restart a broken simulation or do parameter variations from an intermediate point of the simulation. It also allows reusing simulated microstructures as initial structures for a new simulation and thus building up simulation chains. And finally, with the newest option "structure_only", it is not only possible to read simulated microstructures with much less compatibility restrictions but also to combine different microstructures e.g. for brazing or diffusion couples.

The restart functionality originally was designed for the case that a simulation crashed at a certain time, and one wants to continue it without any changes. The user is supposed to use the same input file as before, and just replace the keyword "new" with "restart", and give the file name of the former .rest file (and perhaps chose "append" instead of "overwrite"). In this case, all the information about the initial microstructure is lost by reading the .rest file. But this does not hurt, because it would be much more effort for the user to remove this information than just to leave it there.
There is other information which is still necessary, like the definition of the phases, elements, interfacial properties etc. And some of this information, which is not conflicting with information in the .rest file, can even be changed, so that modifications of the simulation run are possible. Unfortunately, it is not very transparent to the user which information can be changed and which not. For example, the value of the interface mobility or of a certain diffusion coefficient can be changed without problem, but it is not possible to change a diffusion term from manual input to database input. The reason in this case is that the .rest file contains information about updating times for diffusion coefficients from database, therefore compatibility is lost. The same holds for the anisotropy data: It is important that anisotropy has already been defined in the first run, so that you only need to change the values of the anisotropy coefficients.
Some of these incompatibility issues can be solved by using the "restart reset_time" option which removes all timer information and restarts from time 0. This would help in case of the diffusion coefficients, but not for the anisotropy.
A more powerful option is "restart structure_only" which only reads microstructure related data and removes all numerical information. This option even allows you to read only parts of a microstructure and to combine information from different restart files. All numerical information including thermodynamic linearisation data, diffusivity, temperature and time information, etc. are lost. Only the phase and concentration distribution and the interface structure (which essentially is the microstructure like you see it in the output files) is kept, without link to the thermodynamic data (only phase and element numbers).
This means that, after reading in a restart file using the option "structure_only" the thermodynamic phase interaction data, the redistribution at the interface and all other numerical data have to be reconstructed, and thus can be adapted to a different simulation type. In principle, by changing the .ges5 file, one could completely change even the alloy system (which is nonsense in practice). Only the number of the elements has to be kept, and the new simulation needs to have at least as many phases as there are in the restart file.
In practice, to obtain highest flexibility, the new simulation creates a pre-microstructure in which each grain can be replaced by the microstructure which is stored in a restart (.rest) file. For example for brazing simulations, one could define 3 initial grains, two of which are replaced by microstructures from restart files, and the third representing the liquid braze alloy. For fitting the microstructures correctly, one can define a shift and rotation (by multiples of 90°, version 6.3 or later) for each read restart file. The most important restriction is that the set of elements used in all restart files and in the new simulation must be identical (by element number).
I personally use the restart option "structure_only" more and more also for normal process chains even if the size and format of the domain is not changing. The reason is the high compatibility which is not given for normal restart or for the option "reset_time".

Bernd

Shenyz
Posts: 23
Joined: Mon Jul 25, 2016 4:33 pm
anti_bot: 333

Re: Restart options

Post by Shenyz » Mon Jul 24, 2017 7:19 am

Dear Bernd:
Hi! Now I am doing some simulation which may use the function of "restart". I have read your explanation about Restart options and learned a lot, but there is still some problem I am confused about.
Firstly I simulated a part of the solidification process: I set four seeds in the bottom of the simulation area and let them grow for 0.02 seconds; Then I want to use the "restart" option to add another four seeds in the center position of the simulation area on the basis of the previous and let them grow together. What I use for restart as follows:
...
# Restart options
# ===============
# Restart using old results?
# Options: new restart [reset_time | structure_only]
restart structure_only
# How many restart files shall be read?
1
# For each restart file a grain number and (optionally) a
# shift in all dimensions (in grid cells) must be specified:
# grain number [shift X (int) shift Y (int) shift Z (int)] ?
0 0 0 0
# Name of restart file?
1
#
....
# Grain input
# ===========
# Type of grain positioning?
# Options: deterministic random [deterministic_infile] from_file
deterministic
# NB: the origin of coordinate system is the bottom left-hand corner,
# all points within the simulation domain having positive coordinates.
# Number of grains at the beginning?
1
# Input data for grain number 3:
# Geometry?
# Options: round rectangular elliptic
round
# Center x,z coordinates [micrometers], grain number 3?
1500
500.000
# Grain radius? [micrometers]
10.00000
# Shall grain 3 be stabilized or shall
# an analytical curvature description be applied?
# Options: stabilisation analytical_curvature
stabilisation
# Should the Voronoi criterion?
# Options: voronoi no_voronoi
no_voronoi # dummy!
# Phase number? (integer)
1
# Rotation angle? [Degree]
0.000000000000000E+000
#
...
And the others are the same as the first simulation. But now the problem I encounter is when I run the restart file, there is only the first four grains that have been produced continue to grow and the new seed I add in the restart file don't appear. How can I solve this problem to add new seeds in the solidified tissue that has been formed? Thanks a lot.

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

Re: Restart options

Post by Bernd » Mon Jul 24, 2017 10:23 am

Dear Shenyz,

I am not sure whether I understand what you want to do. If you just want to add new grains during solidification you could use normal nucleation. Is the specific problem you have to add new grains which are already "big"? Should they have already an internal structure? You would face the problem that total composition is not conserved...

Please explain a bit more what you exactly want to achieve.

Bernd

Shenyz
Posts: 23
Joined: Mon Jul 25, 2016 4:33 pm
anti_bot: 333

Re: Restart options

Post by Shenyz » Mon Jul 24, 2017 11:02 am

Dear Bernd:
Thanks a lot for your reply and I am sorry that I did not express it clearly. As you say, what I want to do is to add new nucleation seeds during solidification and let them grow, but I need to control the specific position of the new seeds in the liquid to consider the influence of the concentration field and microstructure has been formed on the growth of new seeds.So the normal nucleation may can't help me.
So I try to use the "restart" option to achieve this idea. I use "restart" to read a solidified structure, then I bring in the new nucleation seeds in the "Grain input" section. But in the results I can't find the new grain.
Is the "Grain input" section in the new simulation useless when use "restart" option? How can I deal with this problem? I hope I have made it clear and thanks again.

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

Re: Restart options

Post by Bernd » Mon Jul 24, 2017 11:23 am

Dear Shenyz,

If the only requirement is to control the position of nucleation, it can be easily done by using a seed type where you define the "Type of 'position' of the seeds" as "region". This region can be restricted to a single grid cell for exact positioning. You would define one seed type for each grain which has to be positioned exactly. By adapting the maximum temperature for nucleation you could also determine the time when they should be nucleated if necessary.

The restart method which you propose should work in principle, if the initial grain is big enough (bigger than a grid size). Then, the new grain(s) would appear with a sharp interface, and the surrounding liquid would be replaced by the restart microstructure (according to your definition for restart). However, the composition of each new "big" grain which is defined by your initial composition settings would alter the total composition and furthermore start with sharp interfaces which is not nice. Furthermore, time would start at 0 for each new grain, and initial temperature would have to be adjusted for each new grain...

Bernd

Shenyz
Posts: 23
Joined: Mon Jul 25, 2016 4:33 pm
anti_bot: 333

Re: Restart options

Post by Shenyz » Mon Jul 24, 2017 11:29 am

Dear Bernd:
Thank you for your reply. I will try it again.
Best wishes to you!

deepumaj1
Posts: 104
Joined: Fri Feb 13, 2015 11:00 am
anti_bot: 333
Contact:

Re: Restart options

Post by deepumaj1 » Mon Apr 16, 2018 12:31 pm

Hi,
I have a couple of questions about the restart 'structure_only' option
1. Is there a provision in this option whereby I can give a range of grains to be read from one particular restart file?
2. If I have subgrains in one grain (eg. Grain number 'x' has several other grains inside, of another phase), I see that this option reads in all the sub grains inside one grain. In this case, how does Micress allot the grain number to these grains?

Deepu

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

Re: Restart options

Post by Bernd » Mon Apr 16, 2018 5:19 pm

Dear Deepu,

I am not 100% sure whether I understand your question correctly: When you speak of grains and subgrains, do you mean the grains which you specify in the driving file and which should be filled with initial microstructures from a restart file? Or do you speak about the content of the restart file, and how grains which are part of the restart file are handled? (In the following I suppose you meant the second)

First of all, the grains, which you specify in the driving file and which you select to overwrite with a specified restart file, serve only as a selector for a region, i.e. a mask for the microstructure taken from the restart file. On the other hand, the content of the restart file can only be manipulated by shifting, rotating or zooming. There is no possibility to select individual grains or pattern from it. Thus, I would answer your first question clearly with "no".

With respect to the numbering of the grains: For each restart file which is read, the grain numbers in this microstructure are shifted by the maximum grain number of the pre-existing structure. I.e for example, if you have 3 grains at the beginning, and you read in a microstructure with grain numbers 1-1000 into grain 3, you will have afterwards grains 1 and 2 plus 4-1003 in the mask of prior grain 3 (grain 3 does not exist anymore, of course). Suppose you would additionally read the same microstructure also into grain 2, you would have:
1, 4-1003, 1004-2003

Bernd

deepumaj1
Posts: 104
Joined: Fri Feb 13, 2015 11:00 am
anti_bot: 333
Contact:

Re: Restart options

Post by deepumaj1 » Mon Apr 16, 2018 5:35 pm

Hi Bernd,
Thanks for the explanation. I would like to rephrase my first question with the following one.
If I have a micress simulation with 10 grains or so, which I want to restart with structure only option (so that I can make major changes), how should the driving file be? Should I mention each grain number separately, like the one shown below (I'm writing only upto 3 grains to keep it short)? Or is there a compact way, by giving a range (assuming I don't want any operations to be done on the grains).
# Restart options
# ===============
# Restart using old results?
# Options: new restart [reset_time | structure_only]
restart structure_only
# How many restart files shall be read?
3
# For each restart file a grain number and (optionally) a
# shift in all dimensions (in grid cells) and a character for
# rotation options must be specified:
# grain number [shift X (int) shift Y (int) shift Z (int) rot(string)] ?
# Rotation options: "xz+90" "xz-90" "xz180" "xy+90" ... "yz180"
1
# Name of restart file?
Results_Gamma_Alpha_790_30_min_trial2_body/Gamma_Alpha_790_30_min_trial2_body
# For each restart file a grain number and (optionally) a
# shift in all dimensions (in grid cells) and a character for
# rotation options must be specified:
# grain number [shift X (int) shift Y (int) shift Z (int) rot(string)] ?
# Rotation options: "xz+90" "xz-90" "xz180" "xy+90" ... "yz180"
2
# Name of restart file?
Results_Gamma_Alpha_790_30_min_trial2_body/Gamma_Alpha_790_30_min_trial2_body
# For each restart file a grain number and (optionally) a
# shift in all dimensions (in grid cells) and a character for
# rotation options must be specified:
# grain number [shift X (int) shift Y (int) shift Z (int) rot(string)] ?
# Rotation options: "xz+90" "xz-90" "xz180" "xy+90" ... "yz180"
3
# Name of restart file?
Results_Gamma_Alpha_790_30_min_trial2_body/Gamma_Alpha_790_30_min_trial2_body
Deepu

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

Re: Restart options

Post by Bernd » Mon Apr 16, 2018 6:20 pm

No, in this case, you can simply start without setting any grain (all liquid = grain 0), and replace this grain 0 with the restart file:

# Restart options
# ===============
# Restart using old results?
# Options: new restart [reset_time | structure_only]
restart structure_only
# How many restart files shall be read?
1
# For each restart file a grain number and (optionally) a
# shift in all dimensions (in grid cells) and a character for
# rotation options must be specified:
# grain number [shift X (int) shift Y (int) shift Z (int) rot(string)] ?
# Rotation options: "xz+90" "xz-90" "xz180" "xy+90" ... "yz180"
0
# Name of restart file?
Results_Gamma_Alpha_790_30_min_trial2_body/Gamma_Alpha_790_30_min_trial2_body


Bernd

Post Reply