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 Concepts: indexing, stride 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() 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 Developer Note: this is not a PetscObject 46 47 .seealso: ISColoringCreate(), ISColoringGetIS(), ISColoringView(), ISColoringGetIS() 48 S*/ 49 typedef struct _n_ISColoring* ISColoring; 50 51 /*S 52 PetscLayout - defines layout of vectors and matrices across processes (which rows are owned by which processes) 53 54 Level: developer 55 56 57 .seealso: PetscLayoutCreate(), PetscLayoutDestroy() 58 S*/ 59 typedef struct _n_PetscLayout* PetscLayout; 60 61 /*S 62 PetscSection - Mapping from integers in a designated range to contiguous sets of integers. 63 64 In contrast to IS, which maps from integers to single integers, the range of a PetscSection is in the space of 65 contiguous sets of integers. These ranges are frequently interpreted as domains of other array-like objects, 66 especially other PetscSections, Vecs, and ISs. The domain is set with PetscSectionSetChart() and does not need to 67 start at 0. For each point in the domain of a PetscSection, the output set is represented through an offset and a 68 count, which are set using PetscSectionSetOffset() and PetscSectionSetDof() respectively. Lookup is typically using 69 accessors or routines like VecGetValuesSection(). 70 71 Level: developer 72 73 .seealso: PetscSectionCreate(), PetscSectionDestroy() 74 S*/ 75 typedef struct _p_PetscSection *PetscSection; 76 77 #endif 78