Actual source code: petscfvtypes.h
petsc-3.10.5 2019-03-28
1: #if !defined(_PETSCFVTYPES_H)
2: #define _PETSCFVTYPES_H
4: /*S
5: PetscLimiter - PETSc object that manages a finite volume slope limiter
7: Level: intermediate
9: Concepts: finite volume, limiter
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: intermediate
20: Concepts: finite volume
22: .seealso: PetscFVCreate(), PetscFVSetType(), PetscFVType
23: S*/
24: typedef struct _p_PetscFV *PetscFV;
26: /*S
27: PetscFVFaceGeom - Data structure (C struct) for storing information about face geometry for a finite volume method.
29: Level: beginner
31: Note: The components are
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
36: Concepts: finite volume; geometry; unstructured mesh
38: .seealso: DMPlexComputeGeometryFVM()
39: S*/
40: typedef struct {
41: PetscReal normal[3]; /* Area-scaled normals */
42: PetscReal centroid[3]; /* Location of centroid (quadrature point) */
43: PetscScalar grad[2][3]; /* Face contribution to gradient in left and right cell */
44: } PetscFVFaceGeom;
46: /*S
47: PetscFVCellGeom - Data structure (C struct) for storing information about cell geometry for a finite volume method.
49: Level: beginner
51: Note: The components are
52: $ PetscReal centroid[3] - The cell centroid
53: $ PetscReal volume - The cell volume
55: Concepts: finite volume; geometry; unstructured mesh
57: .seealso: DMPlexComputeGeometryFVM()
58: S*/
59: typedef struct {
60: PetscReal centroid[3];
61: PetscReal volume;
62: } PetscFVCellGeom;
64: #endif