1 #if !defined(PETSCISTYPES_H) 2 #define PETSCISTYPES_H 3 4 /* SUBMANSEC = IS */ 5 6 /*S 7 IS - Abstract PETSc object that allows indexing. 8 9 Level: beginner 10 11 .seealso: `ISCreateGeneral()`, `ISCreateBlock()`, `ISCreateStride()`, `ISGetIndices()`, `ISDestroy()` 12 S*/ 13 typedef struct _p_IS* IS; 14 15 /*S 16 ISLocalToGlobalMapping - mappings from an arbitrary 17 local ordering from 0 to n-1 to a global PETSc ordering 18 used by a vector or matrix. 19 20 Level: intermediate 21 22 Note: mapping from local to global is scalable; but global 23 to local may not be if the range of global values represented locally 24 is very large. 25 26 Note: the ISLocalToGlobalMapping is actually a private object; it is included 27 here for the inline function ISLocalToGlobalMappingApply() to allow it to be inlined since 28 it is used so often. 29 30 .seealso: `ISLocalToGlobalMappingCreate()`, `ISLocalToGlobalMappingApply()`, `ISLocalToGlobalMappingDestroy()` 31 S*/ 32 typedef struct _p_ISLocalToGlobalMapping* ISLocalToGlobalMapping; 33 34 /*S 35 ISColoring - sets of IS's that define a coloring 36 of the underlying indices 37 38 Level: intermediate 39 40 Notes: 41 One should not access the *is records below directly because they may not yet 42 have been created. One should use ISColoringGetIS() to make sure they are 43 created when needed. 44 45 When the coloring type is IS_COLORING_LOCAL the coloring is in the local ordering of the unknowns. 46 That is the matching the local (ghosted) vector; a local to global mapping must be applied to map 47 them to the global ordering. 48 49 Developer Note: this is not a PetscObject 50 51 .seealso: `ISColoringCreate()`, `ISColoringGetIS()`, `ISColoringView()` 52 S*/ 53 typedef struct _n_ISColoring* ISColoring; 54 55 /*S 56 PetscLayout - defines layout of vectors and matrices across processes (which rows are owned by which processes) 57 58 Level: developer 59 60 .seealso: `PetscLayoutCreate()`, `PetscLayoutDestroy()` 61 S*/ 62 typedef struct _n_PetscLayout* PetscLayout; 63 64 #endif 65