Hmm, this is a good question. There are tons of places where some sort of "inner solve" is imbedded in an "outer solver", in fact many levels of nesting. We should handle this in a systematic way which likely means carefully checks put in various places in the code.
We could instead (or in addition) add an option to have KSPSolve() generate an error on "not-convergence" instead of returning with a negative converged reason. The drawback to this is that you cannot "handle" the error and continue running, it just ends. Would this be useful? Barry On Jun 18, 2010, at 11:35 AM, Stephan Kramer wrote: > Dear all, > > Is there a way in petsc, when performing inner solves like PCKSP or > MatSchurComplementGetKSP, to make the outer solve stop immediately and report > back a negative convergence reason? I find that often when such "inner > solves" fail, the outer solve happily continues and sometimes falsely reports > convergence due to the preconditioner becoming rank deficient. I'd like our > code, using petsc, to be able to trap that sort of situations and give a > suitable error message. > > Cheers > Stephan
