[petsc-dev] PCBDDCSetNullSpace

Stefano Zampini stefano.zampini at gmail.com
Wed Sep 19 03:15:18 CDT 2012


MatSetNullSpace triggers KSPSetNullSpace when doing KSPSetup. This in turn
activates MatNullSpaceRemove after PCApply and destroys the convergence of
BDDC, since it changes the preconditioned operator. With BDDC, if you have
a linear system with a non-trivial kernel, you need to take care of when
projecting the residual vector onto the coarse null space and remove it
after expanding the coarse solution onto the partially subassembled space.
You don't need to remove the null space from the preconditioned vector;
instead, you need to properly calculate the null space of the coarse
problem (see function AdaptNullSpace and lines 4164-4220 in bddc.c), and
remove it around coarse problem solving (see lines 2014-2022 in bddc.c).

2012/9/19 Jed Brown <jedbrown at mcs.anl.gov>

> Do we really need a new routine for this? Why doesn't MatSetNullSpace()
> work?




-- 
Stefano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120919/6f1ecd59/attachment.html>


More information about the petsc-dev mailing list