Li,
It is possible, but as Hong said probably never appropriate. Especially if KSP has iterated for 10,000 iterations. If you want SNES to "try" the direction given by a failed solve you should use a much smaller maximum number of iterations for KSP. Anways, to do what you desire #include <petsc/private/kspimpl.h> call KSPSetPostSolve() and in your post solve() function simply do ksp->reason = KSP_CONVERGED_ITS. Barry > On Sep 26, 2019, at 10:58 AM, Zhang, Hong via petsc-users > <[email protected]> wrote: > > Li : > You can use '-ksp_max_it 20000' to change maximum iteration count. However, > it does not make sense to continue after it fails at 10000 iterations. You > should figure out why linear solver diverges. Run your code with > '-ksp_monitor' or '-ksp_monitor_true_residual'. > Hong > > Dear developer, > > I am using SNES for solving a nonlinear system. For some cases, SNES > diverged -3 with "DIVERGED_LINEAR_SOLVE" when the linear solver reached its > maximum iteration count (i.e -ksp_max_it 10000). > Is that possible to let SNES continue even though the linear solver reaches > the maximum number of iterations? Just take the result at 10000 for the > Jacobian solution and then update the Newton step? > > Best, > Li > > > > This message and its contents, including attachments are intended solely for > the original recipient. If you are not the intended recipient or have > received this message in error, please notify me immediately and delete this > message from your computer system. Any unauthorized use or distribution is > prohibited. Please consider the environment before printing this email.
