Skip to main content
`Ctrl`+`K`

# ISAllGather

Given an index set `IS` on each processor, generates a large index set (same on each processor) by concatenating together each processors index set.

## Synopsis

    #include "petscis.h"
    PetscErrorCode ISAllGather(IS is, IS *isout)

Collective

## Input Parameter

- is - the distributed index set

## Output Parameter

- isout - the concatenated index set (same on all processors)

## Notes

`ISAllGather()` is clearly not scalable for large index sets.

The `IS` created on each processor must be created with a common communicator (e.g., `PETSC_COMM_WORLD`). If the index sets were created with `PETSC_COMM_SELF`, this routine will not work as expected, since each process will generate its own new `IS` that consists only of itself.

The communicator for this new `IS` is `PETSC_COMM_SELF`

## See Also

Low-level Vector Communication, `IS`, `ISCreateGeneral()`, `ISCreateStride()`, `ISCreateBlock()`

## Level

intermediate

## Location

src/vec/is/is/utils/iscoloring.c

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