petsc-3.4.5 2014-06-29

ISEmbed

embed IS a into IS b by finding the locations in b that have the same indices as in a. If c is the IS of these locations, we have a = b*c, regarded as a composition of the corresponding ISLocalToGlobalMaps.

Synopsis

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

Input arguments

a - IS to embed
b - IS to embed into
drop - flag indicating whether to drop a's indices that are not in b.

Output arguments

c -local embedding indices

Note

If some of a's global indices are not among b's indices the embedding 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 the 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/is/utils/isdiff.c
Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages