xref: /petsc/include/petscis.h (revision 2494c737c0b77111fd9c2c18809bef9b67adfe20)
1 
2 /*
3       An index set is essentially a subset of the integers
4 */
5 #if !defined(__IS_PACKAGE)
6 #define __IS_PACKAGE
7 #include "petsc.h"
8 
9 typedef struct _IS* IS;
10 typedef struct _ISScatterCtx* ISScatterCtx;
11 
12 extern int    ISCreateSequential(int,int *,IS *);
13 #if defined(USING_MPI)
14 extern int    ISCreateParallel(int,int,int *,MPI_Comm,IS *);
15 #endif
16 extern int    ISCreateStrideSequential(int,int,int,IS *);
17 extern int    ISCreateRangeSequential(int,int,int,IS *);
18 
19 extern int   ISSetPermutation(IS);
20 extern int   ISIsPermutation(IS);
21 extern int   ISGetIndices(IS,int **);
22 extern int   ISRestoreIndices(IS,int **);
23 extern int   ISGetSize(IS,int *);
24 extern int   ISGetLocalSize(IS,int *);
25 extern int   ISDestroy(IS);
26 extern int   ISInvertPermutation(IS,IS*);
27 extern int   ISView(IS,Viewer);
28 
29 extern int   ISCreateScatterCtxBegin(IS,IS,ISScatterCtx*);
30 extern int   ISCreateScatterCtxEnd(IS,IS,ISScatterCtx*);
31 extern int   ISFreeScatterCtx(ISScatterCtx);
32 
33 #endif
34