[petsc-dev] PCFieldSplitSetFields() API change

Dmitry Karpeev karpeev at mcs.anl.gov
Sun Jul 8 03:44:23 CDT 2012

I wanted to revive this (month-old) thread to try to finalize the API
change related to "pivoting" in PCFIELDSPLIT.

On Thu, Jun 7, 2012 at 6:42 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> On Thu, Jun 7, 2012 at 6:34 PM, Dmitry Karpeev <karpeev at mcs.anl.gov>wrote:
>> Well, the above defines the "pivots"
> Okay, but this is not a "field decomposition". We are extracting
> sub-problems (maybe overlapping?) that have implicit off-diagonal parts
> that may also need to be evaluated (how?).
I think the overlapping issue is largely orthogonal to whether we are
extracting "fields" or "subproblems" (i.e., not necessarily diagonal
subblocks of (p)mat).  There seems to be a lot of code
in fieldsplit that seems to assume nonoverlapping decompositions (mostly
through the use of INSERT_VALUES inside a scatter), so I don't think
overlapping subproblems would work
correctly out of the box anyway.

As far as off-diagonal parts are concerned, in the Schur variant they are
computed (when extracting B and C) via complementing the column indices of
A and D, which are already
separate from the row indices, although there is currently no API to set
them separately.  In the non-Schur variants the off-diagonal parts aren't
computed explicitly: the residual is updated
using all columns (the row submatrix) corresponding to a field/subproblem,
so, again, there is no problem.  We only need to change
the PCFieldSplitSetIS() calling sequence to include
the column IS explicitly.  As Barry suggests above, the "usual" usage is
recovered by passing the same IS twice.

Finally, on the DM side we now have different "input" and "output" spaces
(even if the subproblem is square, the vector layout may be different).
 Should DM have DMCreateGlobalVectors()
in addition to DMCreateGlobalVector()?  These would be the same as those
obtained with MatGetVecs() from a Mat created with DMCreateMatrix().

Any comments?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120708/79a1edb1/attachment.html>

More information about the petsc-dev mailing list