"Garth N. Wells" <[email protected]> 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.
pgphw_4iLPIkh.pgp
Description: PGP signature
