Unstable diffusion

helpful tips or ideas for unconventional solutions
Post Reply
Bernd
Posts: 1432
Joined: Mon Jun 23, 2008 9:29 pm

Unstable diffusion

Post by Bernd » Fri Dec 08, 2017 2:17 pm

Dear all,

Using the complete diffusion matrix with the "multi" keyword can be troublesome in case of strong element interactions like e.g. in high alloyed ni-based systems. Strong off-diagonal terms and spinodal demixing of [gr]gamma[/gr] and [gr]gamma[/gr]' in combination with locally varying compositions and composition gradients can lead to numerical artifacts which typically occur suddenly and eventually lead to chess-patterned or infinite compositions.
In many cases it can be helpful to change the numerical settings to get it running without problem:
- decrease update interval for thermodynamic data
- use local extrapolation of diffusion data (e.g. "multi lllll")
- reduce diffusion time step (e.g. "cushion 0.1"), especially in case of chess-pattern formation
- change to the newest MICRESS version if possible (see here)

If all these trials are not successful, another option is to simplify the diffusion matrix. Deactivating diffusion for single elements would solve the problem but often would create wrong results. I want to discuss 5 options you have in this case with its pros and cons:

1.) Leave diffusion of those elements completely deactivated in this phase. This could even be a good approximation if the diffusivity of the corresponding elements is small compared to the other elements, and diffusion of this element is not rate limiting for the corresponding transformation (e.g. back-diffusion in solidification, diffusion inside precipitates, etc.)

2.) Use only the diagonal term of diffusion, e.g.

2 3 diagonal g

This is possible as long as the diagonal term of the diffusion matrix is not negative, because then this approach necessarily would diverge.
This approximation generally is good if the diagonal term is strong compared with the off-diagonal terms (though in this case you probably would also not have the problems when using all the terms...).
Nevertheless, if applicable, this approximation should always be better than 1)

3.) Find an effective diagonal diffusion coefficient which is positive and more exact than 2). This would have probably to be temperature-dependent, e.g. read form a file as function of temperature, e.g.

2 1 diagonal f

SimulationName_lowW_TabD.txt columns 2 8


I did this once in a case where I had not been able to use diffusion of W in [gr]gamma[/gr]', and the diagonal term was negative. In such a case, the diagonal value has no meaning without considering the off-diagonal terms. However, if the composition of W in gamma prime is artificially reduced, the off-diagonal terms go down linearly, and the diagonal term changes to positive. If the W composition is very small, only a positive value remains for the diagonal term while all the off-diagonal terms have vanished.
The idea is now to use this diagonal term value as effective value for this element as replacement for the whole line of the diffusion matrix. To do that in practice requires running a whole simulation with a small composition (say 1.E-5) of only this one element while the other compositions are retained. Then, you tabulate the diagonal term e.g. using the .TabD output. This method still neglects off-diagonal diffusion, but creates a meaningful value for the diagonal term.

Edit 15.04.2021:
Meanwhile, there is the option "diagonal_dilute" which directly uses this dilution strategy without the need to manually calculate and tabulate the effective diagonal term. Also, partial dilution using the extra line option "dilute" is possible, which can be used for continuously scaling down the off-diagonal terms and thus avoid e.g. negative diagonal terms.


4.) Figure out which of the off-diagonal terms make trouble. This requires quite a bit of trial and error work but could improve accuracy of method 2) because certainly some of the off-diagonal terms can be retained without problem. In the best case, only one of the off-diagonal terms had to be deactivated, e.g.

2 1 multi gggggngg

5.) Use infinite diffusion instead:

2 1 diagonal i

This would be a good approximation if diffusion of this element is much faster than of other elements and would assume a complete mixing (flat profile) of this element in gamma prime. This option could have the positive side effect of increasing performance because fast diffusing elements require a small diffusion time step.

Bernd

CharMIC
Posts: 215
Joined: Mon Aug 21, 2017 5:01 pm
anti_bot: 333

Re: Unstable diffusion

Post by CharMIC » Thu Apr 15, 2021 4:48 pm

Hi Bernd,

Regarding point number 4: Do you mean deactivating off diagonal terms in all the elements like

2 1 multi gggggngg
3 1 multi gggggngg
.
.
.
Also do you recommend this to multi_plus as well?

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

Re: Unstable diffusion

Post by Bernd » Thu Apr 15, 2021 6:36 pm

Hi Chamara,

No, what I meant here was generally eliminating any off-diagonal terms which make trouble.

In practice, what you can observe is e.g. that a chess-pattern is formed for certain elements. This typically is the case for 2 strongly interacting elements, while others indirectly follow to a smaller extent. So, if it is at all possible to define a typical case, then it is that 2 elements interact in an unstable way. Then, removing one of the two off-diagonal terms (flux k-gradient l or flux l-gradient k should be sufficient to stop the oscillation.

The same considerations apply to "multi_plus" as well.

Please note that meanwhile, apart from the "diagonal_dilute" keyword which uses an effective diagonal term only, there also exists the possibility of a partial reduction of the off-diagonal terms by using "dilute <X>" as an extra line option. This allows giving a dilution factor on the flux component which permits scaling down the off-diagonal terms in any line of the diffusion matrix continuously.

Bernd

Post Reply