petsc-3.7.7 2017-09-25
Report Typos and Errors

# 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