Convergence issue with KKSMultiACBulk: 2-phase system fails with independent Order Parameters #32208
-
|
Hi MOOSE Developers and Users, I am working on reproducing the KKS phase-field model for Zirconium hydrides described in Simon et al. (J. Nucl. Mater., 2021). I am currently simulating a 2D single-variant case (Matrix + 1 Hydride Variant). I have encountered a numerical stability issue when using the general multi-phase formulation compared to a reduced binary formulation. The ProblemThe model uses the interpolation function proposed by Moelans (2011): I created two input files to test this:
My GoalWhile Input 2 works for this simple case, I intend to extend this to multiple hydride variants (e.g., Matrix + Variant 1 + Variant 2...), where the relation Questions
Input Snippet (From the failing Input 1)Here is how I defined the material causing the suspected issue: [Variables]
[eta1]
[]
[etam]
[]
[]
[Materials]
# The interpolation function h(eta1)
# I suspect the denominator causes singularity when solver probes eta ~ 0
[h1_mat]
type = DerivativeParsedMaterial
property_name = h1
coupled_variables = 'eta1 etam'
expression = 'eta1^2 / (eta1^2 + etam^2)'
[]
# ... (similar definition for hm) ...
[]
[Executioner]
type = Transient
# I have tried both NEWTON and PJFNK, both struggle without regularization.
solve_type = 'NEWTON'
# ...
[]These are my input files: Thank you very much for your time and discussion. I really appreciate any insights or suggestions. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
|
Hello
Yes you should make sure denominators do not go to 0. Not necessarily with a summed term, you can also do something like:
PJFNK is better suited if the Jacobian is not exact. While DerivativeParsedMaterial are capable of handling derivatives, it could come from somewhere else. |
Beta Was this translation helpful? Give feedback.
-
|
@js-jixu Hi,Dr.Xu,I recently came across your work on GitHub regarding phase-field modeling of hydride evolution / KKS multiphase simulations], and I found it highly relevant and insightful for my current research. The structure of your model and the implementation details are particularly inspiring.could you kindly share your preferred contact information (e.g., email or other communication channel), or let me know the best way to reach you?Thank you very much for sharing your valuable work with the community. I truly appreciate your time and consideration. |
Beta Was this translation helpful? Give feedback.
Hello
Yes you should make sure denominators do not go to 0. Not necessarily with a summed term, you can also do something like:
if (eta > 1e-9, real expression involving the fraction, (else) 0 for the whole term)PJFNK is better suited if the Jacobian is not exact. While DerivativeParsedMaterial are capable of handling derivatives, it could come from somewhere else.
In this page:
https://mooseframework.inl.gov/moose/application_usage/failed_solves.html
we…