xref: /petsc/include/petscfetypes.h (revision 41fc7085dc994d7903d2306244d3bcb2bd9a72de)
1a4963045SJacob Faibussowitsch #pragma once
2dbe77d9eSMatthew G. Knepley 
3ac09b921SBarry Smith /* SUBMANSEC = FE */
4ac09b921SBarry Smith 
5dbe77d9eSMatthew G. Knepley /*S
6dbe77d9eSMatthew G. Knepley   PetscFE - PETSc object that manages a finite element space, e.g. the P_1 Lagrange element
7dbe77d9eSMatthew G. Knepley 
8a4ce7ad1SMatthew G. Knepley   Level: beginner
9dbe77d9eSMatthew G. Knepley 
10b24fb147SBarry Smith .seealso: `PetscFECreate()`, `PetscSpace`, `PetscDualSpace`, `PetscSpaceCreate()`, `PetscDualSpaceCreate()`, `PetscFESetType()`, `PetscFEType`
11dbe77d9eSMatthew G. Knepley S*/
12dbe77d9eSMatthew G. Knepley typedef struct _p_PetscFE *PetscFE;
13dbe77d9eSMatthew G. Knepley 
14b7e05686SMatthew G. Knepley /*MC
159c3cf19fSMatthew G. Knepley   PetscFEJacobianType - indicates which pointwise functions should be used to fill the Jacobian matrix
16b7e05686SMatthew G. Knepley 
17a4ce7ad1SMatthew G. Knepley   Level: beginner
18b7e05686SMatthew G. Knepley 
19db781477SPatrick Sanan .seealso: `PetscFEIntegrateJacobian()`
20b7e05686SMatthew G. Knepley M*/
219371c9d4SSatish Balay typedef enum {
229371c9d4SSatish Balay   PETSCFE_JACOBIAN,
239371c9d4SSatish Balay   PETSCFE_JACOBIAN_PRE,
249371c9d4SSatish Balay   PETSCFE_JACOBIAN_DYN
259371c9d4SSatish Balay } PetscFEJacobianType;
26*41fc7085SMatthew G. Knepley 
27*41fc7085SMatthew G. Knepley /*E
28*41fc7085SMatthew G. Knepley   PetscFEGeomMode - Describes the type of geometry being encoded.
29*41fc7085SMatthew G. Knepley 
30*41fc7085SMatthew G. Knepley   Values:
31*41fc7085SMatthew G. Knepley + `PETSC_FEGEOM_BASIC`    - These are normal dim-cells, with dim == dE, and only bulk data is stored.
32*41fc7085SMatthew G. Knepley . `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*41fc7085SMatthew G. Knepley . `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*41fc7085SMatthew G. Knepley - `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.
35*41fc7085SMatthew G. Knepley 
36*41fc7085SMatthew G. Knepley   Level: beginner
37*41fc7085SMatthew G. Knepley 
38*41fc7085SMatthew G. Knepley   Note:
39*41fc7085SMatthew G. Knepley   .vb
40*41fc7085SMatthew G. Knepley   dim - The topological dimension and reference coordinate dimension
41*41fc7085SMatthew G. Knepley   dE  - The real coordinate dimension
42*41fc7085SMatthew G. Knepley   s   - The number of supporting cells for a face
43*41fc7085SMatthew G. Knepley   .ve
44*41fc7085SMatthew G. Knepley 
45*41fc7085SMatthew G. Knepley .seealso: [](ch_dmbase), `PetscFEGeom`, `DM`, `DMPLEX`, `PetscFEGeomCreate()`
46*41fc7085SMatthew G. Knepley E*/
47*41fc7085SMatthew G. Knepley typedef enum {
48*41fc7085SMatthew G. Knepley   PETSC_FEGEOM_BASIC,
49*41fc7085SMatthew G. Knepley   PETSC_FEGEOM_EMBEDDED,
50*41fc7085SMatthew G. Knepley   PETSC_FEGEOM_BOUNDARY,
51*41fc7085SMatthew G. Knepley   PETSC_FEGEOM_COHESIVE
52*41fc7085SMatthew G. Knepley } PetscFEGeomMode;
53