Unstable diffusion
Posted: 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
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