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