Actual source code: petscfetypes.h

  1: #pragma once

  3: /* SUBMANSEC = FE */

  5: /*S
  6:   PetscFE - PETSc object that manages a finite element space, e.g. the P_1 Lagrange element

  8:   Level: beginner

 10: .seealso: `PetscFECreate()`, `PetscSpace`, `PetscDualSpace`, `PetscSpaceCreate()`, `PetscDualSpaceCreate()`, `PetscFESetType()`, `PetscFEType`
 11: S*/
 12: typedef struct _p_PetscFE *PetscFE;

 14: /*MC
 15:   PetscFEJacobianType - indicates which pointwise functions should be used to fill the Jacobian matrix

 17:   Level: beginner

 19: .seealso: `PetscFEIntegrateJacobian()`
 20: M*/
 21: typedef enum {
 22:   PETSCFE_JACOBIAN,
 23:   PETSCFE_JACOBIAN_PRE,
 24:   PETSCFE_JACOBIAN_DYN
 25: } PetscFEJacobianType;

 27: /*E
 28:   PetscFEGeomMode - Describes the type of geometry being encoded.

 30:   Values:
 31: + `PETSC_FEGEOM_BASIC`    - These are normal dim-cells, with dim == dE, and only bulk data is stored.
 32: . `PETSC_FEGEOM_EMBEDDED` - These are dim-cells embedded in a higher dimension, as an embedded manifold, where dim < dE and only bulk data is stored.
 33: . `PETSC_FEGEOM_BOUNDARY` - These are dim-cells on the boundary of a dE-mesh, so that dim < dE, and both bulk and s = 1 face data are stored.
 34: - `PETSC_FEGEOM_COHESIVE` - These are dim-cells in the interior of a dE-mesh, so that dim < dE, and both bulk and s = 2 face data are stored.

 36:   Level: beginner

 38:   Note:
 39:   .vb
 40:   dim - The topological dimension and reference coordinate dimension
 41:   dE  - The real coordinate dimension
 42:   s   - The number of supporting cells for a face
 43:   .ve

 45: .seealso: [](ch_dmbase), `PetscFEGeom`, `DM`, `DMPLEX`, `PetscFEGeomCreate()`
 46: E*/
 47: typedef enum {
 48:   PETSC_FEGEOM_BASIC,
 49:   PETSC_FEGEOM_EMBEDDED,
 50:   PETSC_FEGEOM_BOUNDARY,
 51:   PETSC_FEGEOM_COHESIVE
 52: } PetscFEGeomMode;