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