xref: /petsc/include/petscdmdatypes.h (revision fe998a80077c9ee0917a39496df43fc256e1b478)
1 #if !defined(_PETSCDMDATYPES_H)
2 #define _PETSCDMDATYPES_H
3 
4 #include <petscdmtypes.h>
5 
6 /*E
7     DMDAStencilType - Determines if the stencil extends only along the coordinate directions, or also
8       to the northeast, northwest etc
9 
10    Level: beginner
11 
12 .seealso: DMDACreate1d(), DMDACreate2d(), DMDACreate3d(), DMDACreate(), DMDASetStencilType()
13 E*/
14 typedef enum { DMDA_STENCIL_STAR,DMDA_STENCIL_BOX } DMDAStencilType;
15 
16 /*E
17     DMDAInterpolationType - Defines the type of interpolation that will be returned by
18        DMCreateInterpolation.
19 
20    Level: beginner
21 
22 .seealso: DMDACreate1d(), DMDACreate2d(), DMDACreate3d(), DMCreateInterpolation(), DMDASetInterpolationType(), DMDACreate()
23 E*/
24 typedef enum { DMDA_Q0, DMDA_Q1 } DMDAInterpolationType;
25 
26 /*E
27     DMDAElementType - Defines the type of elements that will be returned by
28        DMDAGetElements()
29 
30    Level: beginner
31 
32 .seealso: DMDACreate1d(), DMDACreate2d(), DMDACreate3d(), DMCreateInterpolation(), DMDASetInterpolationType(),
33           DMDASetElementType(), DMDAGetElements(), DMDARestoreElements(), DMDACreate()
34 E*/
35 typedef enum { DMDA_ELEMENT_P1, DMDA_ELEMENT_Q1 } DMDAElementType;
36 
37 /*S
38      DMDALocalInfo - C struct that contains information about a structured grid and a processors logical
39               location in it.
40 
41    Level: beginner
42 
43   Concepts: distributed array
44 
45   Developer note: Then entries in this struct are int instead of PetscInt so that the elements may
46                   be extracted in Fortran as if from an integer array
47 
48 .seealso:  DMDACreate1d(), DMDACreate2d(), DMDACreate3d(), DMDestroy(), DM, DMDAGetLocalInfo(), DMDAGetInfo()
49 S*/
50 typedef struct {
51   PetscInt         dim,dof,sw;
52   PetscInt         mx,my,mz;    /* global number of grid points in each direction */
53   PetscInt         xs,ys,zs;    /* starting point of this processor, excluding ghosts */
54   PetscInt         xm,ym,zm;    /* number of grid points on this processor, excluding ghosts */
55   PetscInt         gxs,gys,gzs;    /* starting point of this processor including ghosts */
56   PetscInt         gxm,gym,gzm;    /* number of grid points on this processor including ghosts */
57   DMBoundaryType   bx,by,bz; /* type of ghost nodes at boundary */
58   DMDAStencilType  st;
59   DM               da;
60 } DMDALocalInfo;
61 
62 #endif
63