xref: /petsc/include/petscdmtypes.h (revision e6e75211d226c622f451867f53ce5d558649ff4f)
1 #if !defined(_PETSCDMTYPES_H)
2 #define _PETSCDMTYPES_H
3 
4 /*S
5      DM - Abstract PETSc object that manages an abstract grid object and its interactions with the algebraic solvers
6 
7    Level: intermediate
8 
9   Concepts: grids, grid refinement
10 
11    Notes: The DMDACreate() based object and the DMCompositeCreate() based object are examples of DMs
12 
13 .seealso:  DMCompositeCreate(), DMDACreate(), DMSetType(), DMType
14 S*/
15 typedef struct _p_DM* DM;
16 
17 /*E
18   DMBoundaryType - Describes the choice for fill of ghost cells on physical domain boundaries.
19 
20   Level: beginner
21 
22   A boundary may be of type DM_BOUNDARY_NONE (no ghost nodes), DM_BOUNDARY_GHOSTED (ghost vertices/cells
23   exist but aren't filled, you can put values into them and then apply a stencil that uses those ghost locations),
24   DM_BOUNDARY_MIRROR (not yet implemented for 3d), DM_BOUNDARY_PERIODIC (ghost vertices/cells filled by the opposite
25   edge of the domain), or DM_BOUNDARY_TWIST (like periodic, only glued backwards like a Mobius strip).
26 
27   Note: This is information for the boundary of the __PHYSICAL__ domain. It has nothing to do with boundaries between
28   processes, that width is always determined by the stencil width, see DMDASetStencilWidth().
29 
30 .seealso: DMDASetBoundaryType(), DMDACreate1d(), DMDACreate2d(), DMDACreate3d(), DMDACreate()
31 E*/
32 typedef enum {DM_BOUNDARY_NONE, DM_BOUNDARY_GHOSTED, DM_BOUNDARY_MIRROR, DM_BOUNDARY_PERIODIC, DM_BOUNDARY_TWIST} DMBoundaryType;
33 
34 /*S
35   PetscPartitioner - PETSc object that manages a graph partitioner
36 
37   Level: intermediate
38 
39   Concepts: partition, mesh
40 
41 .seealso: PetscPartitionerCreate(), PetscPartitionerSetType(), PetscPartitionerType
42 S*/
43 typedef struct _p_PetscPartitioner *PetscPartitioner;
44 
45 #endif
46