Actual source code: petscfvtypes.h

      1: #if !defined(PETSCFVTYPES_H)
      2: #define PETSCFVTYPES_H

      4: /*S
      5:   PetscLimiter - PETSc object that manages a finite volume slope limiter

      7:   Level: beginner

      9: .seealso: PetscLimiterCreate(), PetscLimiterSetType(), PetscLimiterType
     10: S*/
     11: typedef struct _p_PetscLimiter *PetscLimiter;

     13: /*S
     14:   PetscFV - PETSc object that manages a finite volume discretization

     16:   Level: beginner

     18: .seealso: PetscFVCreate(), PetscFVSetType(), PetscFVType
     19: S*/
     20: typedef struct _p_PetscFV *PetscFV;

     22: /*S
     23:   PetscFVFaceGeom - Data structure (C struct) for storing information about face geometry for a finite volume method.

     25:   Level: beginner

     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

     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;

     40: /*S
     41:   PetscFVCellGeom - Data structure (C struct) for storing information about cell geometry for a finite volume method.

     43:   Level: beginner

     45:   Note: The components are
     46: $  PetscReal   centroid[3] - The cell centroid
     47: $  PetscReal   volume      - The cell volume

     49: .seealso: DMPlexComputeGeometryFVM()
     50: S*/
     51: typedef struct {
     52:   PetscReal centroid[3];
     53:   PetscReal volume;
     54: } PetscFVCellGeom;

     56: #endif