petsc-3.3-p7 2013-05-11

ISMapFactorRight

for a pair of ISs a and b, regarded as local-to-global index maps, compute IS c such that a = b*c as a composition of maps. In other words, find a substitution of local indices c such that a factors through c (and b). Another way to look at this is as finding the right factor for b in a (b is the left factor).

Synopsis

#include "petscis.h"  
#undef  __FUNCT__
#define __FUNCT__ "ISMapFactorRight"
PetscErrorCode ISMapFactorRight(IS a, IS b, PetscBool drop, IS *c) 
Not collective.

Input arguments

a - IS to factor
b - left factor
drop - flag indicating whether to drop a's indices that can't factor through b.

Output arguments

c -right local factor

Note

If some of a's global indices are not among b's indices the factorization is impossible. The local indices of a corresponding to these global indices are either mapped to -1 (if !drop) or are omitted (if drop). In former case the size of c is that same as that of a, in the latter case c's size may be smaller.

The resulting IS is sequential, since the index substition it encodes is purely local.

See Also

ISLocalToGlobalMapping

Level:advanced
Location:
src/vec/is/utils/isdiff.c
Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages