Dear All,
I am new to FEniCS and trying to understand how nonlinear problems work and how they are solved.
I was looking at few demos, where I found that the nonlinear solver has a parameter called 'convergence criteria'.
nonlinear_solver.parameters["convergence_criterion"] = "incremental";
nonlinear_solver.parameters["convergence_criterion"] = "residual";
I read the following in fenics book:
When testing for convergence, usually a norm of the residual F is checked. Sometimes it is useful instead to check a norm of the iterative correction dx. This is controlled by the parameter "convergence_criterion" , which can be set to "residual" , for checking the size of the residual F, or "incremental" , for checking the size of the increment dx.
I am still trying to understand what a norm of residual or iterative correction is. However, my main questions are:
This criteria should not have any effect on the main result/ output or the speed of computation right?
I also read about preconditioners. They may alter the speed for specific problems but they cant alter the output for the problems right? or can they? I mean if I use 'ilu' instead of 'amg', it may change the speed but not the output,.. correct?
Thanks for your help,