[petsc-dev] attaching field information to PetscLayout?

Dmitry Karpeev karpeev at mcs.anl.gov
Sat May 14 20:34:34 CDT 2011


On Sat, May 14, 2011 at 4:46 PM, Jed Brown <jed at 59a2.org> wrote:
> On Sat, May 14, 2011 at 23:33, Dmitry Karpeev <karpeev at mcs.anl.gov> wrote:
>>
>> That would also be convenient if a Vec and a Mat shared the layout
>> (Mat's cmap), because then they automatically have
>> compatible splits and/or localtoglobalmappings.  Recently, however, I
>> became convinced that l2gmappings, as they are now,
>> are not adequate for some more advanced tasks, such as splitting of
>> matrices/vectors into overlapping pieces.
>
> How so? MatGetLocalSubMatrix() does this right now (sort of, the values are
> not guaranteed to be available because its primary purpose is for assembly).
> Or do you mean getting overlapping pieces based on the global ordering and
> then having local spaces automatically defined? I'm not sure that makes
> semantic sense. If IS had the information about the local space that is in
> PetscLayout+ISLocalToGlobalMapping, than MatGetSubMatrix() could include the
> local space.

Assume the local degrees of freedom contribute to two overlapping subdomains.
Then the mapping from the local degrees of freedom to the expanded index space
(concatenate the subdomain indices while duplicating the degrees of
freedom on the
overlap) is multivalued and cannot be encoded by an IS(LocalToGlobalMapping.

It is likely, though, that the two subdomain matrices/vectors are split, so the
local to global transformation should be represented by two index maps from the
local portion of each subdomain. This, again, cannot be encoded just by an IS,
since the domain of the LocalToGlobalMapping is no longer implicit
[0,Nlocal) --
it is only a subset of the local indices and must be explicitly specified.

This is the situation that arises, say, in GASM, if we want to avoid
building the
full matrix followed by submatrix extraction, but instead want to
assemble the split
matrix from the start by intercepting the MatSetValuesLocal calls. The
user won't
know the difference as long as the target matrix is something similar
to MatNest,
and is equipped with an improved  local-to-global mapping mechanism,
but it can't
be ISLocalToGlobalMapping.  Similar, (albeit more complicated) issues
arise in FETI, except that submatrix extraction is not even an option here.

Dmitry.



More information about the petsc-dev mailing list