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 ISLocalToGlobalMapping.

Synopsis#

#include "petscis.h"  
PetscErrorCode ISEmbed(IS a, IS b, PetscBool drop, IS *c)

Not Collective

Input Parameters#

  • a - IS to embed

  • b - IS to embed into

  • drop - flag indicating whether to drop indices of a that are not in b.

Output Parameter#

  • c - local embedding indices

Notes#

If some of the global indices of a are not among the indices of b, 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 the same as that of a, in the latter case the size of c may be smaller.

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

See Also#

IS, ISLocalToGlobalMapping

Level#

developer

Location#

src/vec/is/is/utils/isdiff.c


Edit on GitLab

Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages