Skip to main content
`Ctrl`+`K`

# 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`

## Output Parameters

- listlen - length of `islist`

- islist - list of `IS`s breaking up indis by color

## Notes

Each `IS` on the output list contains the preimage for each index on the second input `IS`. The `IS` on the output list 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