126bd1501SBarry Smith #if !defined(PETSCFVTYPES_H) 226bd1501SBarry Smith #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 7*88f5f89eSMatthew G. Knepley Level: beginner 8ab2453f0SMatthew G. Knepley 9ab2453f0SMatthew G. Knepley .seealso: PetscLimiterCreate(), PetscLimiterSetType(), PetscLimiterType 10ab2453f0SMatthew G. Knepley S*/ 11ab2453f0SMatthew G. Knepley typedef struct _p_PetscLimiter *PetscLimiter; 12ab2453f0SMatthew G. Knepley 13ab2453f0SMatthew G. Knepley /*S 14f62f30faSMatthew G. Knepley PetscFV - PETSc object that manages a finite volume discretization 15f62f30faSMatthew G. Knepley 16*88f5f89eSMatthew G. Knepley Level: beginner 17f62f30faSMatthew G. Knepley 18f62f30faSMatthew G. Knepley .seealso: PetscFVCreate(), PetscFVSetType(), PetscFVType 19f62f30faSMatthew G. Knepley S*/ 20f62f30faSMatthew G. Knepley typedef struct _p_PetscFV *PetscFV; 21f62f30faSMatthew G. Knepley 22891a9168SMatthew G. Knepley /*S 23891a9168SMatthew G. Knepley PetscFVFaceGeom - Data structure (C struct) for storing information about face geometry for a finite volume method. 24891a9168SMatthew G. Knepley 25891a9168SMatthew G. Knepley Level: beginner 26891a9168SMatthew G. Knepley 27891a9168SMatthew G. Knepley Note: The components are 28891a9168SMatthew G. Knepley $ PetscReal normal[3] - Area-scaled normals 29891a9168SMatthew G. Knepley $ PetscReal centroid[3] - Location of centroid (quadrature point) 30891a9168SMatthew G. Knepley $ PetscScalar grad[2][3] - Face contribution to gradient in left and right cell 31891a9168SMatthew G. Knepley 32891a9168SMatthew G. Knepley .seealso: DMPlexComputeGeometryFVM() 33891a9168SMatthew G. Knepley S*/ 34523f37fcSMatthew G. Knepley typedef struct { 35523f37fcSMatthew G. Knepley PetscReal normal[3]; /* Area-scaled normals */ 36523f37fcSMatthew G. Knepley PetscReal centroid[3]; /* Location of centroid (quadrature point) */ 37523f37fcSMatthew G. Knepley PetscScalar grad[2][3]; /* Face contribution to gradient in left and right cell */ 38523f37fcSMatthew G. Knepley } PetscFVFaceGeom; 39523f37fcSMatthew G. Knepley 40891a9168SMatthew G. Knepley /*S 41891a9168SMatthew G. Knepley PetscFVCellGeom - Data structure (C struct) for storing information about cell geometry for a finite volume method. 42891a9168SMatthew G. Knepley 43891a9168SMatthew G. Knepley Level: beginner 44891a9168SMatthew G. Knepley 45891a9168SMatthew G. Knepley Note: The components are 46891a9168SMatthew G. Knepley $ PetscReal centroid[3] - The cell centroid 47891a9168SMatthew G. Knepley $ PetscReal volume - The cell volume 48891a9168SMatthew G. Knepley 49891a9168SMatthew G. Knepley .seealso: DMPlexComputeGeometryFVM() 50891a9168SMatthew G. Knepley S*/ 51523f37fcSMatthew G. Knepley typedef struct { 52523f37fcSMatthew G. Knepley PetscReal centroid[3]; 53523f37fcSMatthew G. Knepley PetscReal volume; 54523f37fcSMatthew G. Knepley } PetscFVCellGeom; 55523f37fcSMatthew G. Knepley 56f62f30faSMatthew G. Knepley #endif 57