Reiniting because of ghosting

83 views
Skip to first unread message

Gyan

unread,
Jul 16, 2019, 11:39:40 AM7/16/19
to moose-users
Hello,

I am running a simulation and I almost constantly get this message "Reiniting because of ghosting" in the terminal at the start of each time step. I am wondering what this message means; I am guessing that it may have to do something with contact. The simulation is taking really small time increments even though contact has not occurred yet; does the small time increments have to do anything with 'ghosting'?

Thanks,
Gyan

Alexander Lindsay

unread,
Jul 16, 2019, 12:24:23 PM7/16/19
to moose...@googlegroups.com
The message should be harmless.

The time increments should be totally unrelated to whether ghosting is happening or not. What TimeStepper are you using? Are your non-linear solves converging?

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/01f32154-f5df-4ec8-b90c-e95f0da12f72%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Gyan

unread,
Jul 16, 2019, 1:05:15 PM7/16/19
to moose-users
Ok. Yes, linear iterations converge (see attached txt file). I am using iteration adaptive time stepper:

    type = IterationAdaptiveDT
    dt = 2.0e2
    optimal_iterations = 12
    iteration_window = 2
    growth_factor = 2
    cutback_factor = .25

Thanks,
Gyan
time_increment.txt

Alexander Lindsay

unread,
Jul 16, 2019, 5:31:14 PM7/16/19
to moose...@googlegroups.com
I asked about your non-linear residuals. Those are ping-ponging back and forth almost perfectly:

 1 Nonlinear |R| = 1.008263e+02  
 2 Nonlinear |R| = 1.157367e+00
 3 Nonlinear |R| = 1.008270e+02
 4 Nonlinear |R| = 1.110181e+00
 5 Nonlinear |R| = 1.008051e+02
 6 Nonlinear |R| = 1.114108e+00
 7 Nonlinear |R| = 1.008152e+02
 8 Nonlinear |R| = 1.113295e+00

Are you sure you're not coming into contact? Can you share your contact settings?

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.

Gyan

unread,
Jul 17, 2019, 10:42:22 AM7/17/19
to moose-users
Yes, I have checked the output and it shows no physical contact. This back and forth increase then decrease of residual occurs whenever this simulation diverge.
I tried to play around with the thermal contact (changing jump distance model) and that seems to affect the convergence: makes the solution get out of non-convergence problem until it hits back again. Changing the penalty value in the [Contact] didn't make any difference. Do you think it may be the thermal contact which is the culprit?


[Contact]
  [./pellet_clad_mechanical]
    master = 5
    slave = 10
    system = constraint
    formulation = penalty
    model = frictionless
    normal_smoothing_distance = 0.1
    normalize_penalty = true
    disp_x = disp_x
    disp_y = disp_y
    penalty = 1e7
  [../]
[]

[ThermalContact]
  [./thermal_contact]
    type = GapHeatTransferLWR
    variable = temp
    master = 5
    slave = 10
    initial_moles = initial_moles
    gas_released = fis_gas_released
    contact_pressure = contact_pressure
    quadrature = true
    jump_distance_model = KENNARD
    normal_smoothing_distance = 0.1
    plenum_pressure = plenum_pressure
  [../]
[]


Gyan
To unsubscribe from this group and stop receiving emails from it, send an email to moose...@googlegroups.com.

Alexander Lindsay

unread,
Jul 17, 2019, 12:08:47 PM7/17/19
to moose...@googlegroups.com
Aw yes I have seen this before with thermal contact as well.

I don't know whether the traditional thermal contact formulation is a saddle point or not. I believe it is not, e.g. all variables have diagonal dependence. I would be curious if you see any better convergence behavior if you try:

1) put `automatic_scaling=true` in your Executioner block
2) `automatic_scaling=true` and `compute_scaling_once=false` in your Executioner block

By the way, you may already be doing this, but for simulations that run for a long time before running into convergence issues, I like to put `checkpoint=true` in my `Outputs` block so that I can just restart my simulation (with the --recover flag) from its failure point trying different solver settings.

To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.

Gyan

unread,
Jul 17, 2019, 6:07:00 PM7/17/19
to moose-users
Yes, both these flags improve the convergence significantly. However, I notice that the residuals are still high at the time of convergence ~1e-2 (see below). Does this mean that the solution accuracy is low?

 0 Nonlinear |R| = 3.157736e-02
   Solution, reference convergence variable norms:
   disp_x: 2.39999e-08  saved_x: 203334
   disp_y: 4.85517e-10  saved_y: 645.862
   temp:   0.0315774  saved_t: 5604.09
      0 Linear |R| = 3.157736e-02
      1 Linear |R| = 2.882224e-02
      2 Linear |R| = 2.355127e-02
      3 Linear |R| = 2.200379e-02
      4 Linear |R| = 1.385287e-02
 1 Nonlinear |R| = 1.377285e-02
   Solution, reference convergence variable norms:
   disp_x: 8.65824e-09  saved_x: 197190
   disp_y: 2.67063e-09  saved_y: 913.308
   temp:   0.0137729  saved_t: 5604.31
 Solve Converged!


Alexander Lindsay

unread,
Jul 17, 2019, 6:24:09 PM7/17/19
to moose...@googlegroups.com
Sigh...I have not explored automatic scaling with ReferenceResidualProblem yet. I would not trust the "convergence"

To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.

Fande Kong

unread,
Jul 18, 2019, 10:11:58 AM7/18/19
to moose...@googlegroups.com
Does not look like the algorithm converged. Could you delete ReferenceResidualProblem? With "auto_scaling", the residual should be in a good range so that the regular FEProblem should work fine.


Thanks,

Fande, 

Gyan

unread,
Jul 18, 2019, 11:23:40 AM7/18/19
to moose-users
Fande,

I changed the [Problem] block from

[Problem]
  coord_type = RZ
  type = ReferenceResidualProblem
  solution_variables = 'disp_x disp_y temp'
  reference_residual_variables = 'saved_x saved_y saved_t'
[]


to

[Problem]
  coord_type = RZ
  type = FEProblem
[]


I am not sure if this is what you meant but this didn't converge at all.

Thanks,
Gyan

Fande Kong

unread,
Jul 18, 2019, 11:38:46 AM7/18/19
to moose...@googlegroups.com
When you look at your nonlinear residual  that was dropped by only a factor of 2, and then it did not converge at all.  We need the residual drop by several orders of magnitude  to claim that  the algorithm converge property.

Anyway, it is not your fault. I think ReferenceResidualProblem is confused by "auto_scaling". 

Rerun your code using the changed input file, and send the screen print back to us.

Thanks,

Fande,

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
Visit this group at https://groups.google.com/group/moose-users.

Gyan

unread,
Jul 19, 2019, 12:06:11 PM7/19/19
to moose-users
Here attached is the screen print. In the input file I removed ReferenceResidualProblem and replaced with FEProblem.

It seems that removing the ReferenceResidualProblem worked as the non linear residuals are now decreasing by several orders of magnitude indicating proper convergence. The addition of automatic_scaling definitely helped with the convergence as the simulation could run much longer.

Thanks,
Gyan
To unsubscribe from this group and stop receiving emails from it, send an email to moose...@googlegroups.com.
Residuals.txt

Fande Kong

unread,
Jul 19, 2019, 1:19:50 PM7/19/19
to moose...@googlegroups.com
Nice. You made big progress.

Did you add "compute_scaling_once=false" in your executioner block according to Alex's suggestion? That means you need to scale residuals for every time step.


Fande,


To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.

Gyan

unread,
Jul 19, 2019, 3:15:43 PM7/19/19
to moose-users
Yes, I added the compute_scaling_once = false flag and i think it does help in getting convergence.

Thanks,
Gyan
Reply all
Reply to author
Forward
0 new messages