1*26bd1501SBarry Smith #if !defined(PETSCFVTYPES_H) 2*26bd1501SBarry 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 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 26891a9168SMatthew G. Knepley /*S 27891a9168SMatthew G. Knepley PetscFVFaceGeom - Data structure (C struct) for storing information about face geometry for a finite volume method. 28891a9168SMatthew G. Knepley 29891a9168SMatthew G. Knepley Level: beginner 30891a9168SMatthew G. Knepley 31891a9168SMatthew G. Knepley Note: The components are 32891a9168SMatthew G. Knepley $ PetscReal normal[3] - Area-scaled normals 33891a9168SMatthew G. Knepley $ PetscReal centroid[3] - Location of centroid (quadrature point) 34891a9168SMatthew G. Knepley $ PetscScalar grad[2][3] - Face contribution to gradient in left and right cell 35891a9168SMatthew G. Knepley 36891a9168SMatthew G. Knepley Concepts: finite volume; geometry; unstructured mesh 37891a9168SMatthew G. Knepley 38891a9168SMatthew G. Knepley .seealso: DMPlexComputeGeometryFVM() 39891a9168SMatthew 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 46891a9168SMatthew G. Knepley /*S 47891a9168SMatthew G. Knepley PetscFVCellGeom - Data structure (C struct) for storing information about cell geometry for a finite volume method. 48891a9168SMatthew G. Knepley 49891a9168SMatthew G. Knepley Level: beginner 50891a9168SMatthew G. Knepley 51891a9168SMatthew G. Knepley Note: The components are 52891a9168SMatthew G. Knepley $ PetscReal centroid[3] - The cell centroid 53891a9168SMatthew G. Knepley $ PetscReal volume - The cell volume 54891a9168SMatthew G. Knepley 55891a9168SMatthew G. Knepley Concepts: finite volume; geometry; unstructured mesh 56891a9168SMatthew G. Knepley 57891a9168SMatthew G. Knepley .seealso: DMPlexComputeGeometryFVM() 58891a9168SMatthew 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