DIVERGED_BREAKDOWN in a coupled Allen-Cahn , Cahn-Hillard problem #32778
Unanswered
mehdikamyabi
asked this question in
Q&A Modules: Phase field
Replies: 1 comment 2 replies
-
|
Hello Have you tried the suggestions in the troubleshooting failed solves help page on the moose website? There is additional info there we can use to troubleshoot |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Dear MOOSE developers and experts,
I hope you are well.
recently I tried to solve Allen-Cahn model, coupled with Cahn-Hillard to see the Ostwald ripening phenomena. this is the input file:
=========================================================
OSTWALD RIPENING + ALLEN-CAHN GRAINS
Allen–Cahn (eta_i) + Monolithic Cahn–Hilliard (c)
=========================================================
=========================================================
SINTERING + OSTWALD RIPENING (NO TEMPERATURE)
Allen–Cahn (eta_i) + Cahn–Hilliard (c)
=========================================================
[Mesh]
type = GeneratedMesh
dim = 2
nx = 100
ny = 100
xmin = 0
xmax = 100
ymin = 0
ymax = 100
[]
=========================================================
VARIABLES
=========================================================
[Variables]
conserved field (diffusing material / density)
[c]
order = FIRST
family = LAGRANGE
initial_condition = 0.2
[]
order parameters (particles)
[eta0]
order = FIRST
family = LAGRANGE
[InitialCondition]
type = SpecifiedSmoothCircleIC
invalue = 1.0
outvalue = 0.0
radii = 12
x_positions = 35
y_positions = 35
z_positions = '0'
int_width = 5
[]
[]
[eta1]
order = FIRST
family = LAGRANGE
[InitialCondition]
type = SpecifiedSmoothCircleIC
invalue = 1.0
outvalue = 0.0
radii = 10
x_positions = 65
y_positions = 35
z_positions = '0'
int_width = 5
[]
[]
[eta2]
order = FIRST
family = LAGRANGE
[InitialCondition]
type = SpecifiedSmoothCircleIC
invalue = 1.0
outvalue = 0.0
radii = 8
x_positions = 35
y_positions = 65
z_positions = '0'
int_width = 5
[]
[]
[eta3]
order = FIRST
family = LAGRANGE
[InitialCondition]
type = SpecifiedSmoothCircleIC
invalue = 1.0
outvalue = 0.0
radii = 6
x_positions = 65
y_positions = 65
z_positions = '0'
int_width = 5
[]
[]
[w]
order = FIRST
family = LAGRANGE
initial_condition = 0.0
[]
[]
=========================================================
ICs
#[ICs]
[c_ic]
type = RandomIC
variable = c
#[]
#[]
=========================================================
KERNELS
=========================================================
[Kernels]
=========================================================
Allen–Cahn (reaction terms for eta fields)
=========================================================
[eta0_ac]
type = AllenCahn
variable = eta0
f_name = f_total
mob_name = L
coupled_variables = 'eta0 eta1 eta2 eta3 c'
[]
[eta1_ac]
type = AllenCahn
variable = eta1
f_name = f_total
mob_name = L
coupled_variables = 'eta0 eta1 eta2 eta3 c'
[]
[eta2_ac]
type = AllenCahn
variable = eta2
f_name = f_total
mob_name = L
coupled_variables = 'eta0 eta1 eta2 eta3 c'
[]
[eta3_ac]
type = AllenCahn
variable = eta3
f_name = f_total
mob_name = L
coupled_variables = 'eta0 eta1 eta2 eta3 c'
[]
=========================================================
IMPORTANT: gradient energy for eta (interface physics)
=========================================================
[eta0_grad]
type = ACInterface
variable = eta0
kappa_name = kappa_eta
[]
[eta1_grad]
type = ACInterface
variable = eta1
kappa_name = kappa_eta
[]
[eta2_grad]
type = ACInterface
variable = eta2
kappa_name = kappa_eta
[]
[eta3_grad]
type = ACInterface
variable = eta3
kappa_name = kappa_eta
[]
=========================================================
Cahn–Hilliard system for c
=========================================================
[c_dot]
type = TimeDerivative
variable = c
[]
#[c_ch]
type = CahnHilliard
variable = c
f_name = f_total
#[]
[c_flux]
type = SplitCHWRes
variable = c
mob_name = M
w = w
[]
[w_def]
type = SplitCHParsed
variable = w
f_name = f_total
kappa_name = kappa_c
w = c
coupled_variables = 'eta0 eta1 eta2 eta3 c'
[]
[]# =========================================================
MATERIALS
=========================================================
[Materials]
free energy (Allen–Cahn + Ostwald coupling)
[free_energy]
type = DerivativeParsedMaterial
property_name = f_total
expression = "W/4*((eta0^2-1)^2+(eta1^2-1)^2+(eta2^2-1)^2+(eta3^2-1)^2)+gamma*(eta0^2eta1^2+eta0^2eta2^2+eta0^2eta3^2+eta1^2eta2^2+eta1^2eta3^2+eta2^2eta3^2)+A*(c^2*(1-c)^2) +lamc(eta0^2+eta1^2+eta2^2+eta3^2)"
coupled_variables = 'eta0 eta1 eta2 eta3 c'
constant_names = 'W gamma A lam'
constant_expressions = '1 1 0.2 0'
derivative_order = 2
[]
mobilities
[mob_eta]
type = GenericConstantMaterial
prop_names = 'L'
prop_values = '1'
[]
[mob_c]
type = GenericConstantMaterial
prop_names = 'M'
prop_values = '0.05'
[]
gradient energy for CH
[kappa_c]
type = GenericConstantMaterial
prop_names = 'kappa_c'
prop_values = '0.5'
[]
[kappa_eta]
type = GenericConstantMaterial
prop_names = 'kappa_eta'
prop_values = '5.0'
[]
[]
=========================================================
BOUNDARY CONDITIONS (NO FLUX)
=========================================================
[BCs]
[c_noflux]
type = NeumannBC
variable = c
boundary = 'left right top bottom'
value = 0
[]
[]
=========================================================
EXECUTIONER
=========================================================
[Executioner]
type = Transient
scheme = bdf2
dt = 1e-7 # Not too small, not too large
end_time = 1.0
solve_type = PJFNK
petsc_options_iname = '-pc_type -ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm gmres lu 2'
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-2
l_max_its = 300
line_search = 'bt'
[]# =========================================================
==================== OUTPUTS ====================
[Outputs]
خروجی odus برای پاراویو
exodus = true
csv = true
time_step_interval = 1000
execute_on = 'initial timestep_end'
کنسول
[console]
type = Console
output_linear = false
output_nonlinear = true
perf_log = true
execute_on = 'timestep_end'
[]
checkpoint برای restart
[checkpoint]
type = Checkpoint
num_files = 2
interval = 1000
#[]
[]
=========================================================
DEBUG
=========================================================
[Debug]
show_var_residual_norms = true
[]
but I faced with divergence exactly at the start of the iterations:
Time Step 0, time = 0
Time Step 1, time = 1e-07, dt = 1e-07
Linear solve did not converge due to DIVERGED_BREAKDOWN iterations 30
I tired too much to fix it by using Cahn-Hillard kernel instead of SplitCHWRes+ SplitCHParsed, by using a randomized noisy initial condition for concentration, by reducing time step and by forced decoupling (lam=0) but the error didn't eliminate.
may you please help me with this?
Beta Was this translation helpful? Give feedback.
All reactions