[petsc-dev] Naming for PCFieldSplitSetSchurPrecondition()

Jed Brown jed at 59A2.org
Thu Jun 9 18:08:07 CDT 2011


On Fri, Jun 10, 2011 at 01:01, Barry Smith <bsmith at mcs.anl.gov> wrote:

> Absolutely, by default MatGetSchurComplement() should be providing the
> diagonal block if something else is not given by the user. This way the
> fieldsplit can just call MatGetSchurComplement() and needs to have no
> special code for "if user didn't provide anything". Right?


Yes, although there is another possible option in
MatGetSchurComplement_Basic().

As currently implemented, it returns a MatSchurComplement (the real thing,
with a linear solver buried inside) as the primary and the SIMPLE
approximation as the preconditioning matrix

D - C inv(diag(A)) B


It could be made a bit smarter to figure out if MatGetDiagonal() and
MatMatMult() were implemented before proceeding down this road, otherwise
falling back to just returning the diagonal block.

In reality, that should be a run-time option, but how to we allow it to be
different for different blocks (the user might want to get multiple Schur
complements out of one matrix)?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20110610/3eb3f7a8/attachment.html>


More information about the petsc-dev mailing list