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