Skip to main content
`Ctrl`+`K`

# ISOnComm

Split a parallel `IS` on subcomms (usually self) or concatenate index sets on subcomms into a parallel index set

## Synopsis

    #include "petscis.h"
    PetscErrorCode ISOnComm(IS is, MPI_Comm comm, PetscCopyMode mode, IS *newis)

Collective

## Input Parameters

- is - index set

- comm - communicator for new index set

- mode - copy semantics, `PETSC_USE_POINTER` for no-copy if possible, otherwise `PETSC_COPY_VALUES`

## Output Parameter

- newis - new `IS` on `comm`

## Notes

It is usually desirable to create a parallel `IS` and look at the local part when necessary.

This function is useful if serial `IS`s must be created independently, or to view many logically independent serial `IS`s.

The input `IS` must have the same type on every MPI process.

## See Also

`IS`

## Level

advanced

## Location

src/vec/is/is/interface/index.c

## Examples

src/dm/label/tutorials/ex1.c

## Implementations

ISOnComm_Block() in src/vec/is/is/impls/block/block.c
ISOnComm_General() in src/vec/is/is/impls/general/general.c
ISOnComm_Stride() in src/vec/is/is/impls/stride/stride.c

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