Hi Sean,
I worked a bit to revise the A006_CMSX4-example, and noted that with advise 4) in my last post I was not fully correct. In principle, everything I told is true, but I assumed that the problem (0/2-interface getting sharp and then unstable) mainly comes from differences in liquid composition at different locations, so that using "database fragment" would be the most logical and efficient method. However, it now appears to me that a too low updating frequency alone can cause the problem (driving force gradient over the interface, caused by too far extrapolation), even without composition differences. So, now, I think it is more efficient to change back to "database global" and strongly reduce the updating frequency instead (to say 0.1 s). Of course, the combination of both would be best, but this would be hard to afford with respect to performance.
Bernd
Solidification of a dendrite unit cell
Re: Solidification of a dendrite unit cell
Hello Bernd,
first of all, thank you very much for your efforts and your tips for improvement.
However, I still have a problem with updating the thermodynamics. Switching to the database fragment (or interface fragment) option results in a massive increase in computing time.
This is a bit strange in my eyes, because the increase in computing time only starts with the nucleation of gamma prime, but the increase in computing time is mainly for the calculation of the solid-liquid interface.
A look at the .refR output shows that the solid-liquid interface was divided into 5 segments, which in my opinion is not very much, which is why the high computing time can be explained even less.
Unfortunately, I can't get to the crucial area in a reasonable amount of time to see if the other adjustments have any effect.
If I make all the other adjustments except the database fragmentation, it is unfortunately not enough to get a stable boundary surface.
kind regards
Sean
first of all, thank you very much for your efforts and your tips for improvement.
However, I still have a problem with updating the thermodynamics. Switching to the database fragment (or interface fragment) option results in a massive increase in computing time.
This is a bit strange in my eyes, because the increase in computing time only starts with the nucleation of gamma prime, but the increase in computing time is mainly for the calculation of the solid-liquid interface.
A look at the .refR output shows that the solid-liquid interface was divided into 5 segments, which in my opinion is not very much, which is why the high computing time can be explained even less.
Unfortunately, I can't get to the crucial area in a reasonable amount of time to see if the other adjustments have any effect.
If I make all the other adjustments except the database fragmentation, it is unfortunately not enough to get a stable boundary surface.
kind regards
Sean
You do not have the required permissions to view the files attached to this post.
Re: Solidification of a dendrite unit cell
Hi Bernd,
Sorry I missed your last reply from last night, I will see if this works well.
Thanks very much
Sean
Sorry I missed your last reply from last night, I will see if this works well.
Thanks very much
Sean
Re: Solidification of a dendrite unit cell
Hi Sean,
The only explanation for the slow computing, at least if you don't have error messages on screen output, is that a huge amount of individual 0/1-interfaces have formed. This may happen if the interface is destroyed, and if these small fragments are triple junctions it may be possible that you don't see them in the .refR-output. However, you should see them all in the .TabLin output ("alternative listing"); at least up to 1000...
Bernd
The only explanation for the slow computing, at least if you don't have error messages on screen output, is that a huge amount of individual 0/1-interfaces have formed. This may happen if the interface is destroyed, and if these small fragments are triple junctions it may be possible that you don't see them in the .refR-output. However, you should see them all in the .TabLin output ("alternative listing"); at least up to 1000...
Bernd
Re: Solidification of a dendrite unit cell
Hi Bernd,
I've been trying to improve the simulation a bit over the last few days.
The combination of a smaller database update interval and the fragmentation of the boundary surface gives a good result. I have noticed that the simulation time has just increased a bit.
At the beginning, the time step for each calculation step is slightly longer, but this is almost negligible. However, the two adjustments result in a stable boundary surface after nucleation, which means that the simulation remains stable and the time required for the individual calculation steps does not increase noticeably.
Therefore, in my opinion, it makes sense to adjust the time step for updating the database. You don't have to make it arbitrarily small, I've tried it with different time steps, 0.5s for example worked very well in combination with the fragmentation of the boundary surface.
What I also tried was to start nucleation for solidification of the residual melt (seed type 3) at slightly higher temperatures. The formation of the strange structures always started some time after the nucleation of the gamma prime. If I understand correctly, the purpose of this type of seed is to solidify the remaining melt and thus avoid possible numerical problems, right?
The question arises as to how to determine the temperature value at which the remaining melt should solidify. I once compared it with a Thermocalc Scheil solidification, but here the solidification temperature for the remaining melt is even lower.Is this a value that has be found out in the solidification simulation in MICRESS, or are there other ways to determine this?
Anyway, you've helped me a lot so far, maybe you or someone else can put some of this to good use.
Kind regards
Sean
I've been trying to improve the simulation a bit over the last few days.
The combination of a smaller database update interval and the fragmentation of the boundary surface gives a good result. I have noticed that the simulation time has just increased a bit.
At the beginning, the time step for each calculation step is slightly longer, but this is almost negligible. However, the two adjustments result in a stable boundary surface after nucleation, which means that the simulation remains stable and the time required for the individual calculation steps does not increase noticeably.
Therefore, in my opinion, it makes sense to adjust the time step for updating the database. You don't have to make it arbitrarily small, I've tried it with different time steps, 0.5s for example worked very well in combination with the fragmentation of the boundary surface.
What I also tried was to start nucleation for solidification of the residual melt (seed type 3) at slightly higher temperatures. The formation of the strange structures always started some time after the nucleation of the gamma prime. If I understand correctly, the purpose of this type of seed is to solidify the remaining melt and thus avoid possible numerical problems, right?
The question arises as to how to determine the temperature value at which the remaining melt should solidify. I once compared it with a Thermocalc Scheil solidification, but here the solidification temperature for the remaining melt is even lower.Is this a value that has be found out in the solidification simulation in MICRESS, or are there other ways to determine this?
Anyway, you've helped me a lot so far, maybe you or someone else can put some of this to good use.
Kind regards
Sean
Re: Solidification of a dendrite unit cell
Hi Sean,
Thanks for giving me feedback. I have tried to improve the application example A006_CMSX4.dri with what we learned from your case. I share your view that a combination of frequent update and ' fragment' scope of thermodynamic data is the best solution. However, in case of A006_CMSX4.dri, there is a large number of γ'-particles, and thus fragments for which individual updates need to be calculated. I came to the conclusion that here only using frequent updating (all 0.1 seconds) without 'fragment' seems to be sufficient to prevent the numerical problems at the end of solidification.
The "trick" to remove rest liquid is necessary in many cases where segregation leads to extreme compositions in very small amounts of liquid. I want to describe this with a bit more detail to create a meaningful reference for others here in the forum:
There are many reasons, like the increased 'disconnectedness' of liquid in 2D-simulations, missing nucleation checking, missing phases, etc., which may lead to rest liquids. Further, the adsorption of elements at the interfaces (not taken into account in MICRESS by now) may also prevent extreme compositions in reality. Thus, I think, it is legitimate to remove rest liquids once their fraction has come down sufficiently (say below 0.1%), especially if they are not concentrated to a single place but rather spread along interfaces.
When thinking about using the phase switch for removal of rest liquid, there are several aspects to be considered:
1.) Is the existence of the liquid at this low temperatures physically reasonable, or is it mainly a numerical artifact?
One way to find this out is to take the .TabC output, where the average composition of the liquid phase is given over temperature. Using this composition and temperature for a Thermo-Calc equilibrium calculation gives you the information whether the liquid is stable, or which phases would form under perfect equilibrium. Nucleating these phases would speed up the solidification process and perhaps avoid rest liquid at low temperatures.
2.) At which temperature can we assume solidification to be essentially finished?
If in the MICRESS simulation the liquid fraction falls below ~0.1% it is certainly justified to remove the rest liquid. The errors for the resulting phase fractions then are below this value. In MICRESS we use the nucleation mechanism (pseudo-nucleation) for phase switching, where we cannot specify a phase fraction criterion directly. Instead, we need to set the temperature range for nucleation accordingly.
3.) To which phase should I switch the rest liquid?
In most cases, there is a matrix phase which is expected to carry most of the solid fraction formed towards the end of solidification. This phase then should be chosen to replace the liquid. However, e.g. in case of eutectic reaction, other phases can be dominating at the end, and it could be better to chose those phases. For SX-Ni-base superalloys for example, it could be more reasonable sometimes to switch rest liquids to γ' instead of γ.
4.) Which method to use for the phase switch?
Essentially, a phase switch is realized by a "pseudo-nucleation" where the properties of an already existing grain, phase, or instance of a phase are changed. There are two options available in MICRESS:
a) add_to_grain: This function is primarily aiming to set a new instance (=unconnected region) of an already existing grain. If in the place where nucleation is requested, this grain is already present, no new instance can be set, but the grain properties which have been defined in the input file for the nucleation type are applied nevertheless. By this indirect way, the phase identity, the orientation or the recrystallization energy of an existing grain can be switched at all locations (instances). In case of removing rest liquids, typically grain 0 will be changed from liquid to another phase everywhere simultaneously. No grains, grain numbers or interfaces will be changed. The advantage here is that only one "nucleation" event is needed for effectively removing all the liquid everywhere.
b) split_from_grain:
This function originally is designed for splitting off an unconnected part ('instance') of an existing grain, and assign a new grain number as well as new properties for this instance. For removal of rest liquids, this function is more flexible compared to 'add_to_grain' as it allows for addressing each liquid pond individually. Thus, it can also be used for directional solidification, where liquid ponds at the bottom must be removed without affecting the liquid zone ahead of the solidification front. By selection of locally existing phases (as reference phase, substrate phases of this seed type), different switching strategies can be used for different types of rest liquids. Furthermore, 'split_from_grain' allows an optional input of a critical (effective) size, so that larger liquid ponds can be excluded from switching. The only disadvantages are that nucleation must hit every liquid region, and that for each of them a new grain appears in the microstructure, which later may make evaluation of average grain properties more complicated.
5.) "critical undercooling" for liquid removal:
The evaluation of local driving forces for nucleation is pointless if only a phase switch is intended. The value of the critical undercooling should be set negative, and furthermore <=-1.0E5 K to invoke skipping of evaluation of the driving force or critical undercooling. This avoids potential numerical issues and further unnecessary expensive TQ-calls, so that frequent checking can be done without relevant performance loss.
Best wishes
Bernd
Thanks for giving me feedback. I have tried to improve the application example A006_CMSX4.dri with what we learned from your case. I share your view that a combination of frequent update and ' fragment' scope of thermodynamic data is the best solution. However, in case of A006_CMSX4.dri, there is a large number of γ'-particles, and thus fragments for which individual updates need to be calculated. I came to the conclusion that here only using frequent updating (all 0.1 seconds) without 'fragment' seems to be sufficient to prevent the numerical problems at the end of solidification.
The "trick" to remove rest liquid is necessary in many cases where segregation leads to extreme compositions in very small amounts of liquid. I want to describe this with a bit more detail to create a meaningful reference for others here in the forum:
There are many reasons, like the increased 'disconnectedness' of liquid in 2D-simulations, missing nucleation checking, missing phases, etc., which may lead to rest liquids. Further, the adsorption of elements at the interfaces (not taken into account in MICRESS by now) may also prevent extreme compositions in reality. Thus, I think, it is legitimate to remove rest liquids once their fraction has come down sufficiently (say below 0.1%), especially if they are not concentrated to a single place but rather spread along interfaces.
When thinking about using the phase switch for removal of rest liquid, there are several aspects to be considered:
1.) Is the existence of the liquid at this low temperatures physically reasonable, or is it mainly a numerical artifact?
One way to find this out is to take the .TabC output, where the average composition of the liquid phase is given over temperature. Using this composition and temperature for a Thermo-Calc equilibrium calculation gives you the information whether the liquid is stable, or which phases would form under perfect equilibrium. Nucleating these phases would speed up the solidification process and perhaps avoid rest liquid at low temperatures.
2.) At which temperature can we assume solidification to be essentially finished?
If in the MICRESS simulation the liquid fraction falls below ~0.1% it is certainly justified to remove the rest liquid. The errors for the resulting phase fractions then are below this value. In MICRESS we use the nucleation mechanism (pseudo-nucleation) for phase switching, where we cannot specify a phase fraction criterion directly. Instead, we need to set the temperature range for nucleation accordingly.
3.) To which phase should I switch the rest liquid?
In most cases, there is a matrix phase which is expected to carry most of the solid fraction formed towards the end of solidification. This phase then should be chosen to replace the liquid. However, e.g. in case of eutectic reaction, other phases can be dominating at the end, and it could be better to chose those phases. For SX-Ni-base superalloys for example, it could be more reasonable sometimes to switch rest liquids to γ' instead of γ.
4.) Which method to use for the phase switch?
Essentially, a phase switch is realized by a "pseudo-nucleation" where the properties of an already existing grain, phase, or instance of a phase are changed. There are two options available in MICRESS:
a) add_to_grain: This function is primarily aiming to set a new instance (=unconnected region) of an already existing grain. If in the place where nucleation is requested, this grain is already present, no new instance can be set, but the grain properties which have been defined in the input file for the nucleation type are applied nevertheless. By this indirect way, the phase identity, the orientation or the recrystallization energy of an existing grain can be switched at all locations (instances). In case of removing rest liquids, typically grain 0 will be changed from liquid to another phase everywhere simultaneously. No grains, grain numbers or interfaces will be changed. The advantage here is that only one "nucleation" event is needed for effectively removing all the liquid everywhere.
b) split_from_grain:
This function originally is designed for splitting off an unconnected part ('instance') of an existing grain, and assign a new grain number as well as new properties for this instance. For removal of rest liquids, this function is more flexible compared to 'add_to_grain' as it allows for addressing each liquid pond individually. Thus, it can also be used for directional solidification, where liquid ponds at the bottom must be removed without affecting the liquid zone ahead of the solidification front. By selection of locally existing phases (as reference phase, substrate phases of this seed type), different switching strategies can be used for different types of rest liquids. Furthermore, 'split_from_grain' allows an optional input of a critical (effective) size, so that larger liquid ponds can be excluded from switching. The only disadvantages are that nucleation must hit every liquid region, and that for each of them a new grain appears in the microstructure, which later may make evaluation of average grain properties more complicated.
5.) "critical undercooling" for liquid removal:
The evaluation of local driving forces for nucleation is pointless if only a phase switch is intended. The value of the critical undercooling should be set negative, and furthermore <=-1.0E5 K to invoke skipping of evaluation of the driving force or critical undercooling. This avoids potential numerical issues and further unnecessary expensive TQ-calls, so that frequent checking can be done without relevant performance loss.
Best wishes
Bernd