petsc-3.3-p7 2013-05-11

ISListToMap

convert an IS list to a pair of ISs of equal length defining an equivalent integer multimap. Each IS on the input list is assigned an integer j so that all of the indices of that IS are mapped to j.

Synopsis

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

Collective on comm.

Input arguments

comm - MPI_Comm
listlen - IS list length
islist - IS list

Output arguments

xis - domain IS
yis - range IS

Notes

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

The ISs on the input list 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 subcommes) on a comm are "deadlock-free" if subcomm1 preceeds subcomm2 on any local list, then it preceeds 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 ISMapToList().

See Also

ISMapToList()

Level:advanced
Location:
src/vec/is/utils/isdiff.c
Index of all IS routines
Table of Contents for all manual pages
Index of all manual pages