xref: /petsc/include/petscfvtypes.h (revision 88f5f89ed87fdd9324993f41f8c13b5c9a147b49)
126bd1501SBarry Smith #if !defined(PETSCFVTYPES_H)
226bd1501SBarry Smith #define PETSCFVTYPES_H
3f62f30faSMatthew G. Knepley 
4f62f30faSMatthew G. Knepley /*S
5ab2453f0SMatthew G. Knepley   PetscLimiter - PETSc object that manages a finite volume slope limiter
6ab2453f0SMatthew G. Knepley 
7*88f5f89eSMatthew G. Knepley   Level: beginner
8ab2453f0SMatthew G. Knepley 
9ab2453f0SMatthew G. Knepley .seealso: PetscLimiterCreate(), PetscLimiterSetType(), PetscLimiterType
10ab2453f0SMatthew G. Knepley S*/
11ab2453f0SMatthew G. Knepley typedef struct _p_PetscLimiter *PetscLimiter;
12ab2453f0SMatthew G. Knepley 
13ab2453f0SMatthew G. Knepley /*S
14f62f30faSMatthew G. Knepley   PetscFV - PETSc object that manages a finite volume discretization
15f62f30faSMatthew G. Knepley 
16*88f5f89eSMatthew G. Knepley   Level: beginner
17f62f30faSMatthew G. Knepley 
18f62f30faSMatthew G. Knepley .seealso: PetscFVCreate(), PetscFVSetType(), PetscFVType
19f62f30faSMatthew G. Knepley S*/
20f62f30faSMatthew G. Knepley typedef struct _p_PetscFV *PetscFV;
21f62f30faSMatthew G. Knepley 
22891a9168SMatthew G. Knepley /*S
23891a9168SMatthew G. Knepley   PetscFVFaceGeom - Data structure (C struct) for storing information about face geometry for a finite volume method.
24891a9168SMatthew G. Knepley 
25891a9168SMatthew G. Knepley   Level: beginner
26891a9168SMatthew G. Knepley 
27891a9168SMatthew G. Knepley   Note: The components are
28891a9168SMatthew G. Knepley $  PetscReal   normal[3]   - Area-scaled normals
29891a9168SMatthew G. Knepley $  PetscReal   centroid[3] - Location of centroid (quadrature point)
30891a9168SMatthew G. Knepley $  PetscScalar grad[2][3]  - Face contribution to gradient in left and right cell
31891a9168SMatthew G. Knepley 
32891a9168SMatthew G. Knepley .seealso: DMPlexComputeGeometryFVM()
33891a9168SMatthew G. Knepley S*/
34523f37fcSMatthew G. Knepley typedef struct {
35523f37fcSMatthew G. Knepley   PetscReal   normal[3];   /* Area-scaled normals */
36523f37fcSMatthew G. Knepley   PetscReal   centroid[3]; /* Location of centroid (quadrature point) */
37523f37fcSMatthew G. Knepley   PetscScalar grad[2][3];  /* Face contribution to gradient in left and right cell */
38523f37fcSMatthew G. Knepley } PetscFVFaceGeom;
39523f37fcSMatthew G. Knepley 
40891a9168SMatthew G. Knepley /*S
41891a9168SMatthew G. Knepley   PetscFVCellGeom - Data structure (C struct) for storing information about cell geometry for a finite volume method.
42891a9168SMatthew G. Knepley 
43891a9168SMatthew G. Knepley   Level: beginner
44891a9168SMatthew G. Knepley 
45891a9168SMatthew G. Knepley   Note: The components are
46891a9168SMatthew G. Knepley $  PetscReal   centroid[3] - The cell centroid
47891a9168SMatthew G. Knepley $  PetscReal   volume      - The cell volume
48891a9168SMatthew G. Knepley 
49891a9168SMatthew G. Knepley .seealso: DMPlexComputeGeometryFVM()
50891a9168SMatthew G. Knepley S*/
51523f37fcSMatthew G. Knepley typedef struct {
52523f37fcSMatthew G. Knepley   PetscReal centroid[3];
53523f37fcSMatthew G. Knepley   PetscReal volume;
54523f37fcSMatthew G. Knepley } PetscFVCellGeom;
55523f37fcSMatthew G. Knepley 
56f62f30faSMatthew G. Knepley #endif
57