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;