:orphan: # 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
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/is/is/interface/index.c) [Index of all IS routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)