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 /*E 35 DMPointLocationType - Describes the method to handle point location failure 36 37 Level: beginner 38 39 If a search using DM_POINTLOCATION_NONE fails, the failure is signaled with a negative cell number. On the 40 other hand, if DM_POINTLOCATION_NEAREST is used, on failure, the (approximate) nearest point in the mesh is 41 used, replacing the given point in the input vector. DM_POINTLOCATION_REMOVE returns values only for points 42 which were located. 43 44 .seealso: DMLocatePoints() 45 E*/ 46 typedef enum {DM_POINTLOCATION_NONE, DM_POINTLOCATION_NEAREST, DM_POINTLOCATION_REMOVE} DMPointLocationType; 47 48 /*S 49 PetscPartitioner - PETSc object that manages a graph partitioner 50 51 Level: intermediate 52 53 Concepts: partition, mesh 54 55 .seealso: PetscPartitionerCreate(), PetscPartitionerSetType(), PetscPartitionerType 56 S*/ 57 typedef struct _p_PetscPartitioner *PetscPartitioner; 58 59 #endif 60