xref: /petsc/include/petscistypes.h (revision c4762a1b19cd2af06abeed90e8f9d34fb975dd94)
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 
59 .seealso:  PetscLayoutCreate(), PetscLayoutDestroy()
60 S*/
61 typedef struct _n_PetscLayout* PetscLayout;
62 
63 #endif
64