Actual source code: petscfvtypes.h
1: #pragma once
3: /* MANSEC = DM */
4: /* SUBMANSEC = FV */
6: /*S
7: PetscLimiter - PETSc object that manages a finite volume slope limiter
9: Level: beginner
11: .seealso: `PetscLimiterCreate()`, `PetscLimiterSetType()`, `PetscLimiterType`
12: S*/
13: typedef struct _p_PetscLimiter *PetscLimiter;
15: /*S
16: PetscFV - PETSc object that manages a finite volume discretization
18: Level: beginner
20: .seealso: `PetscFVCreate()`, `PetscFVSetType()`, `PetscFVType`
21: S*/
22: typedef struct _p_PetscFV *PetscFV;
24: /*S
25: PetscFVFaceGeom - Data structure (C struct) for storing information about face geometry for a finite volume method.
27: Level: beginner
29: Note:
30: The components are
31: .vb
32: PetscReal normal[3] - Area-scaled normals
33: PetscReal centroid[3] - Location of centroid (quadrature point)
34: PetscScalar grad[2][3] - Face contribution to gradient in left and right cell
35: .ve
37: .seealso: `PetscFVCellGeom`, `DMPlexComputeGeometryFVM()`
38: S*/
39: typedef struct {
40: PetscReal normal[3]; /* Area-scaled normals */
41: PetscReal centroid[3]; /* Location of centroid (quadrature point) */
42: PetscScalar grad[2][3]; /* Face contribution to gradient in left and right cell */
43: } PetscFVFaceGeom;
45: /*S
46: PetscFVCellGeom - Data structure (C struct) for storing information about cell geometry for a finite volume method.
48: Level: beginner
50: Note: The components are
51: .vb
52: PetscReal centroid[3] - The cell centroid
53: PetscReal volume - The cell volume
54: .ve
56: .seealso: `PetscFVFaceGeom`, `DMPlexComputeGeometryFVM()`
57: S*/
58: typedef struct {
59: PetscReal centroid[3];
60: PetscReal volume;
61: } PetscFVCellGeom;