[petsc-users] Nullspaces for schur complement PCs

Lawrence Mitchell lawrence.mitchell at imperial.ac.uk
Tue Nov 11 05:04:51 CST 2014


On 11 Nov 2014, at 04:28, Jed Brown <jed at jedbrown.org> wrote:

> Matthew Knepley <knepley at gmail.com> writes:
>>> at which point the nullspace is not attached, no?
>>> 
>> 
>> Crap, that is right. I think we should propagate the nullspace from pmat[1].
> 
> Uh, there is no reason pmat[1] can be expected to have the same null
> space.  pmat[1] is the zero matrix in some important cases, and the null
> space of the Schur complement (or its SIMPLE-type approximation) depends
> on boundary conditions in a different block (thus problematic for
> segregated assembly).  I've been unsuccessful so far in my search for an
> elegant solution, but passing the null space along in this way is
> encouraging overt lying and can be expected to break other algorithms as
> well as any consistency tests we might add in the future.

OK, so it's sounds like this is probably a deliberate choice.  I note that the code currently does this:

fieldsplit.c:703

      ierr = MatSetFromOptions(jac->schur);CHKERRQ(ierr);
      ierr = MatGetNullSpace(jac->pmat[1], &sp);CHKERRQ(ierr);
      if (sp) {
        ierr = MatSetNullSpace(jac->schur, sp);CHKERRQ(ierr);
      }

i.e. takes the nullspace from pmat[1] and hangs it on the schur complement.  I was under the impression that when I'm informing the field split setup of the nullspace, composing the nullspace with the IS that defines split 1 was informing the PC that the schur complement has this nullspace, but this discussion now has me a little confused.  I guess my best option is to user a "user" PC for the schur complement, because then I can set everything up by hand.

Cheers,

Lawrence
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20141111/aa9cf9e6/attachment.pgp>


More information about the petsc-users mailing list