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: intermediate 8 9 Concepts: finite volume, limiter 10 11 .seealso: PetscLimiterCreate(), PetscLimiterSetType(), PetscLimiterType 12 S*/ 13 typedef struct _p_PetscLimiter *PetscLimiter; 14 15 /*S 16 PetscFV - PETSc object that manages a finite volume discretization 17 18 Level: intermediate 19 20 Concepts: finite volume 21 22 .seealso: PetscFVCreate(), PetscFVSetType(), PetscFVType 23 S*/ 24 typedef struct _p_PetscFV *PetscFV; 25 26 /* Assuming dim <= 3 */ 27 typedef struct { 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 } PetscFVFaceGeom; 32 33 typedef struct { 34 PetscReal centroid[3]; 35 PetscReal volume; 36 } PetscFVCellGeom; 37 38 #endif 39