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).
#define __FUNCT__ "ISMapFactorRight"
PetscErrorCode ISMapFactorRight(IS a, IS b, PetscBool drop, IS *c)
|a ||- IS to factor
|b ||- left factor
|drop ||- flag indicating whether to drop a's indices that can't factor through b.
c -right local factor
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.
Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages