Skip to main content
`Ctrl`+`K`

# ISCreateGeneral

Creates a data structure for an index set containing a list of integers.

## Synopsis

    #include "petscis.h"
    PetscErrorCode ISCreateGeneral(MPI_Comm comm, PetscInt n, const PetscInt idx[], PetscCopyMode mode, IS *is)

Collective

## Input Parameters

- comm - the MPI communicator

- n - the length of the index set

- idx - the list of integers

- mode - `PETSC_COPY_VALUES`, `PETSC_OWN_POINTER`, or `PETSC_USE_POINTER`; see `PetscCopyMode` for meaning of this flag.

## Output Parameter

- is - the new index set

## Notes

When the communicator is not `MPI_COMM_SELF`, the operations on IS are NOT conceptually the same as `MPI_Group` operations. The `IS` are then distributed sets of indices and thus certain operations on them are collective.

Use `ISGeneralSetIndices()` to provide indices to an already existing `IS` of `ISType` `ISGENERAL`

## See Also

Low-level Vector Communication, `IS`, `ISGENERAL`, `ISCreateStride()`, `ISCreateBlock()`, `ISAllGather()`, `PETSC_COPY_VALUES`, `PETSC_OWN_POINTER`, `PETSC_USE_POINTER`, `PetscCopyMode`, `ISGeneralSetIndicesFromMask()`

## Level

beginner

## Location

src/vec/is/is/impls/general/general.c

## Examples

src/ksp/ksp/tutorials/ex59.c
src/dm/tutorials/ex22.c
src/ksp/ksp/tutorials/ex84.c
src/dm/field/tutorials/ex1.c
src/ksp/ksp/tutorials/ex85.c
src/dm/tutorials/ex6.c
src/ksp/ksp/tutorials/ex49.c
src/ksp/pc/tutorials/ex4.c
src/ksp/ksp/tutorials/ex71.c
src/dm/tutorials/swarm_ex3.c

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