Minor question about automatic_scaling #16491
-
Hello, Just got a minor question about using automatic_scaling=true in the executioner block. I have been using this quite successfully but I wanted to test individual physics to be sure it is working as intended. As such, I have set up a simple 1D diffusion problem with no-flux boundaries (using the grand potential phase-field method). This has one solution variable and a couple of auxiliary variables. Without the use of automatic_scaling, the initial residual is massive and reduces easily with Newton iterations. However, when I use automatic_scaling (as used when solving the coupled problems I am working on) the initial nonlinear residual is very small (in the order of e-18) and is assumed to have already converged according to the nl_rel_tol = nl_abs_tol = 1.0e-8. Is there any reason why automatic_scaling would not work on a problem with a single variable? Is it something to do with the auxiliary variables? I am only concerned that when used in the coupled problem with automatic_scaling, the residual for this variable isn't reducing sufficiently to solve the problem correctly. Is the solution to set a lower absolute tolerance on the nonlinear residuals? If you require/desire the input file, please let me know and I can provide this. As always, any help is greatly appreciated! Kind regards, |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 5 replies
-
In general we try to discourage use of Anyway one way to ensure that your problem is truly converged is to use My first suggestion would be to just try If you still have issues, please feel free to attach your input file here. |
Beta Was this translation helpful? Give feedback.
In general we try to discourage use of
nl_abs_tol
. I am guessing based on your description that you have Dirichlet boundary conditions? If so are you using preset or not? I would highly recommend using preset Dirichlet conditions if you have Dirichlet conditions.Anyway one way to ensure that your problem is truly converged is to use
ReferenceResidualProblem
. Please see this page for more documentation about it.My first suggestion would be to just try
ReferenceResidualProblem
and see what happens. If you are unable to converge withnl_rel_tol = 1e-8
(remember to removenl_abs_tol
) perhaps because the initial residual is still too "low", I would try addingresid_vs_jac_scaling_param = 0.5
…