1: #if !defined(PETSCISTYPES_H) 2: #define PETSCISTYPES_H 4: /*S 5: IS - Abstract PETSc object that allows indexing. 7: Level: beginner 9: .seealso: ISCreateGeneral(), ISCreateBlock(), ISCreateStride(), ISGetIndices(), ISDestroy() 10: S*/ 11: typedef struct _p_IS* IS; 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. 18: Level: intermediate 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. 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. 28: .seealso: ISLocalToGlobalMappingCreate(), ISLocalToGlobalMappingApply(), ISLocalToGlobalMappingDestroy() 29: S*/ 30: typedef struct _p_ISLocalToGlobalMapping* ISLocalToGlobalMapping; 32: /*S 33: ISColoring - sets of IS's that define a coloring 34: of the underlying indices 36: Level: intermediate 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. 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. 47: Developer Note: this is not a PetscObject 49: .seealso: ISColoringCreate(), ISColoringGetIS(), ISColoringView() 50: S*/ 51: typedef struct _n_ISColoring* ISColoring; 53: /*S 54: PetscLayout - defines layout of vectors and matrices across processes (which rows are owned by which processes) 56: Level: developer 59: .seealso: PetscLayoutCreate(), PetscLayoutDestroy() 60: S*/ 61: typedef struct _n_PetscLayout* PetscLayout; 63: #endif