ISListToPair#

Convert an IS list to a pair of IS of equal length defining an equivalent integer multimap. Each IS in islist is assigned an integer j so that all of the indices of that IS are mapped to j.

Synopsis#

#include "petscis.h"  
PetscErrorCode ISListToPair(MPI_Comm comm, PetscInt listlen, IS islist[], IS *xis, IS *yis)

Collective

Input Parameters#

Output Parameters#

  • xis - domain IS

  • yis - range IS

Notes#

The global integers assigned to the IS of islist might not correspond to the local numbers of the IS on that list, but the two orderings are the same: the global integers assigned to the IS on the local list form a strictly increasing sequence.

The IS in islist can belong to subcommunicators of comm, and the subcommunicators on the input IS list are assumed to be in a “deadlock-free” order.

Local lists of PetscObjects (or their subcomms) on a comm are “deadlock-free” if subcomm1 precedes subcomm2 on any local list, then it precedes subcomm2 on all ranks. Equivalently, the local numbers of the subcomms on each local list are drawn from some global numbering. This is ensured, for example, by ISPairToList().

See Also#

IS, ISPairToList()

Level#

developer

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