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;