"Welland, Michael J." <[email protected]> writes:

> I'm using PCFieldSplit with 2 fields, and sometimes the ksp solver for
> one of those fields diverges. Is it possible to have it immediately
> kill the outer ksp solver when this happens?

I can't think of a nice way.  You could set a convergence test for the
outer that checks the converged reason on the inner solvers
(PCFieldSplitGetSubKSP, KSPGetConvergedReason).

This is actually a recurring issue across hierarchical preconditioners.
In many cases, the hierarchical preconditioner is attempting to add
robustness or leverage inexact component solves, in which case inner
solves don't "converge".  It would not be hard to add a crude check in
PCFieldSplit, but fine-grained control over which component solver is
expected to converge seems like it would add significant complexity.
But I see the value, so we should figure something out.

Attachment: signature.asc
Description: PGP signature

Reply via email to