[petsc-users] Attach approximate null space to a fieldsplit block

Jed Brown jedbrown at mcs.anl.gov
Mon Aug 19 07:40:03 CDT 2013


"Garth N. Wells" <gnw20 at cam.ac.uk> writes:

> I'm using PCFIELDSPLIT for a mixed problem, with fields indicated via
> an index set (using PCFieldSplitSetIS). I'd like to attach an
> approximate null space to the A00 block of the system. Is there a way
> to attach the null space to one block?

With MatNest, you can use MatSetNearNullSpace on sub-blocks and it will
be used automatically.  This is also the low-memory way to use
PCFieldSplit.  Note that if you use MatSetValuesLocal, you can use the
NEST format with identical code in assembly; only matrix creation is
different, see src/snes/example/tutorials/ex28.c for an example that
works with both AIJ and NEST formats.

Otherwise, you should be able to PCSetUp, then get out the sub-solvers
PCFieldSplitGetSubKSP, pull out their matrices, and call
MatSetNearNullSpace.  Those submatrices should not be overwritten as
long as you use SAME_NONZERO_PATTERN, so the null space would still work
in future iterations.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130819/5e33a4ee/attachment.pgp>


More information about the petsc-users mailing list