1 #if !defined(PETSCFVTYPES_H) 2 #define PETSCFVTYPES_H 3 4 /*S 5 PetscLimiter - PETSc object that manages a finite volume slope limiter 6 7 Level: beginner 8 9 .seealso: PetscLimiterCreate(), PetscLimiterSetType(), PetscLimiterType 10 S*/ 11 typedef struct _p_PetscLimiter *PetscLimiter; 12 13 /*S 14 PetscFV - PETSc object that manages a finite volume discretization 15 16 Level: beginner 17 18 .seealso: PetscFVCreate(), PetscFVSetType(), PetscFVType 19 S*/ 20 typedef struct _p_PetscFV *PetscFV; 21 22 /*S 23 PetscFVFaceGeom - Data structure (C struct) for storing information about face geometry for a finite volume method. 24 25 Level: beginner 26 27 Note: The components are 28 $ PetscReal normal[3] - Area-scaled normals 29 $ PetscReal centroid[3] - Location of centroid (quadrature point) 30 $ PetscScalar grad[2][3] - Face contribution to gradient in left and right cell 31 32 .seealso: DMPlexComputeGeometryFVM() 33 S*/ 34 typedef struct { 35 PetscReal normal[3]; /* Area-scaled normals */ 36 PetscReal centroid[3]; /* Location of centroid (quadrature point) */ 37 PetscScalar grad[2][3]; /* Face contribution to gradient in left and right cell */ 38 } PetscFVFaceGeom; 39 40 /*S 41 PetscFVCellGeom - Data structure (C struct) for storing information about cell geometry for a finite volume method. 42 43 Level: beginner 44 45 Note: The components are 46 $ PetscReal centroid[3] - The cell centroid 47 $ PetscReal volume - The cell volume 48 49 .seealso: DMPlexComputeGeometryFVM() 50 S*/ 51 typedef struct { 52 PetscReal centroid[3]; 53 PetscReal volume; 54 } PetscFVCellGeom; 55 56 #endif 57