ISPairToList#

Convert an IS pair encoding an integer map to a list of IS.

Synopsis#

#include "petscis.h"  
PetscErrorCode ISPairToList(IS xis, IS yis, PetscInt *listlen, IS **islist)

Collective

Input Parameters#

  • xis - domain IS

  • yis - range IS, the maximum value must be less than PETSC_MPI_INT_MAX

Output Parameters#

  • listlen - length of islist

  • islist - list of ISs breaking up indices by color

Notes#

Each IS in islist contains the preimage for each index on yis. The IS in islist are constructed on the subcommunicators of the input IS pair. Each subcommunicator corresponds to the preimage of some index j – this subcomm contains exactly the MPI processes that assign some indices i to j. This is essentially the inverse of ISListToPair().

xis and yis must be of the same length and have congruent communicators.

The resulting IS have subcommunicators in a “deadlock-free” order (see ISListToPair()).

See Also#

IS, ISListToPair()

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