xref: /petsc/include/petscdmtypes.h (revision 619efd4ad85daf97ae52d52a37c79828819389a9)
11e25c274SJed Brown #if !defined(_PETSCDMTYPES_H)
21e25c274SJed Brown #define _PETSCDMTYPES_H
31e25c274SJed Brown 
41e25c274SJed Brown /*S
51e25c274SJed Brown      DM - Abstract PETSc object that manages an abstract grid object and its interactions with the algebraic solvers
61e25c274SJed Brown 
71e25c274SJed Brown    Level: intermediate
81e25c274SJed Brown 
91e25c274SJed Brown   Concepts: grids, grid refinement
101e25c274SJed Brown 
111e25c274SJed Brown    Notes: The DMDACreate() based object and the DMCompositeCreate() based object are examples of DMs
121e25c274SJed Brown 
131e25c274SJed Brown .seealso:  DMCompositeCreate(), DMDACreate(), DMSetType(), DMType
141e25c274SJed Brown S*/
151e25c274SJed Brown typedef struct _p_DM* DM;
161e25c274SJed Brown 
17bff4a2f0SMatthew G. Knepley /*E
18bff4a2f0SMatthew G. Knepley   DMBoundaryType - Describes the choice for fill of ghost cells on physical domain boundaries.
19bff4a2f0SMatthew G. Knepley 
20bff4a2f0SMatthew G. Knepley   Level: beginner
21bff4a2f0SMatthew G. Knepley 
22*619efd4aSMatthew G. Knepley   A boundary may be of type DM_BOUNDARY_NONE (no ghost nodes), DM_BOUNDARY_GHOSTED (ghost vertices/cells
23bff4a2f0SMatthew G. Knepley   exist but aren't filled, you can put values into them and then apply a stencil that uses those ghost locations),
24bff4a2f0SMatthew G. Knepley   DM_BOUNDARY_MIRROR (not yet implemented for 3d), DM_BOUNDARY_PERIODIC (ghost vertices/cells filled by the opposite
25bff4a2f0SMatthew G. Knepley   edge of the domain), or DM_BOUNDARY_TWIST (like periodic, only glued backwards like a Mobius strip).
26bff4a2f0SMatthew G. Knepley 
27bff4a2f0SMatthew G. Knepley   Note: This is information for the boundary of the __PHYSICAL__ domain. It has nothing to do with boundaries between
28bff4a2f0SMatthew G. Knepley   processes, that width is always determined by the stencil width, see DMDASetStencilWidth().
29bff4a2f0SMatthew G. Knepley 
30bff4a2f0SMatthew G. Knepley .seealso: DMDASetBoundaryType(), DMDACreate1d(), DMDACreate2d(), DMDACreate3d(), DMDACreate()
31bff4a2f0SMatthew G. Knepley E*/
32bff4a2f0SMatthew G. Knepley typedef enum {DM_BOUNDARY_NONE, DM_BOUNDARY_GHOSTED, DM_BOUNDARY_MIRROR, DM_BOUNDARY_PERIODIC, DM_BOUNDARY_TWIST} DMBoundaryType;
33bff4a2f0SMatthew G. Knepley 
3477623264SMatthew G. Knepley /*S
3577623264SMatthew G. Knepley   PetscPartitioner - PETSc object that manages a graph partitioner
3677623264SMatthew G. Knepley 
3777623264SMatthew G. Knepley   Level: intermediate
3877623264SMatthew G. Knepley 
3977623264SMatthew G. Knepley   Concepts: partition, mesh
4077623264SMatthew G. Knepley 
4177623264SMatthew G. Knepley .seealso: PetscPartitionerCreate(), PetscPartitionerSetType(), PetscPartitionerType
4277623264SMatthew G. Knepley S*/
4377623264SMatthew G. Knepley typedef struct _p_PetscPartitioner *PetscPartitioner;
4477623264SMatthew G. Knepley 
451e25c274SJed Brown #endif
46