Actual source code: petscfvtypes.h
1: #pragma once
3: /* SUBMANSEC = FV */
5: /*S
6: PetscLimiter - PETSc object that manages a finite volume slope limiter
8: Level: beginner
10: .seealso: `PetscLimiterCreate()`, `PetscLimiterSetType()`, `PetscLimiterType`
11: S*/
12: typedef struct _p_PetscLimiter *PetscLimiter;
14: /*S
15: PetscFV - PETSc object that manages a finite volume discretization
17: Level: beginner
19: .seealso: `PetscFVCreate()`, `PetscFVSetType()`, `PetscFVType`
20: S*/
21: typedef struct _p_PetscFV *PetscFV;
23: /*S
24: PetscFVFaceGeom - Data structure (C struct) for storing information about face geometry for a finite volume method.
26: Level: beginner
28: Note:
29: The components are
30: .vb
31: PetscReal normal[3] - Area-scaled normals
32: PetscReal centroid[3] - Location of centroid (quadrature point)
33: PetscScalar grad[2][3] - Face contribution to gradient in left and right cell
34: .ve
36: .seealso: `PetscFVCellGeom`, `DMPlexComputeGeometryFVM()`
37: S*/
38: typedef struct {
39: PetscReal normal[3]; /* Area-scaled normals */
40: PetscReal centroid[3]; /* Location of centroid (quadrature point) */
41: PetscScalar grad[2][3]; /* Face contribution to gradient in left and right cell */
42: } PetscFVFaceGeom;
44: /*S
45: PetscFVCellGeom - Data structure (C struct) for storing information about cell geometry for a finite volume method.
47: Level: beginner
49: Note: The components are
50: .vb
51: PetscReal centroid[3] - The cell centroid
52: PetscReal volume - The cell volume
53: .ve
55: .seealso: `PetscFVFaceGeom`, `DMPlexComputeGeometryFVM()`
56: S*/
57: typedef struct {
58: PetscReal centroid[3];
59: PetscReal volume;
60: } PetscFVCellGeom;