Actual source code: petscfvtypes.h

      1: #pragma once

      3: /* MANSEC = DM */
      4: /* SUBMANSEC = FV */

      6: /*S
      7:   PetscLimiter - PETSc object that manages a finite volume slope limiter

      9:   Level: beginner

     11: .seealso: `PetscLimiterCreate()`, `PetscLimiterSetType()`, `PetscLimiterType`
     12: S*/
     13: typedef struct _p_PetscLimiter *PetscLimiter;

     15: /*S
     16:   PetscFV - PETSc object that manages a finite volume discretization

     18:   Level: beginner

     20: .seealso: `PetscFVCreate()`, `PetscFVSetType()`, `PetscFVType`
     21: S*/
     22: typedef struct _p_PetscFV *PetscFV;

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

     27:   Level: beginner

     29:   Note:
     30:   The components are
     31: .vb
     32:   PetscReal   normal[3]   - Area-scaled normals
     33:   PetscReal   centroid[3] - Location of centroid (quadrature point)
     34:   PetscScalar grad[2][3]  - Face contribution to gradient in left and right cell
     35: .ve

     37: .seealso: `PetscFVCellGeom`, `DMPlexComputeGeometryFVM()`
     38: S*/
     39: typedef struct {
     40:   PetscReal   normal[3];   /* Area-scaled normals */
     41:   PetscReal   centroid[3]; /* Location of centroid (quadrature point) */
     42:   PetscScalar grad[2][3];  /* Face contribution to gradient in left and right cell */
     43: } PetscFVFaceGeom;

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

     48:   Level: beginner

     50:   Note: The components are
     51: .vb
     52:    PetscReal   centroid[3] - The cell centroid
     53:    PetscReal   volume      - The cell volume
     54: .ve

     56: .seealso: `PetscFVFaceGeom`, `DMPlexComputeGeometryFVM()`
     57: S*/
     58: typedef struct {
     59:   PetscReal centroid[3];
     60:   PetscReal volume;
     61: } PetscFVCellGeom;