xref: /petsc/include/petscfetypes.h (revision 6d8694c4fbab79f9439f1ad13c0386ba7ee1ca4b)
1a4963045SJacob Faibussowitsch #pragma once
2dbe77d9eSMatthew G. Knepley 
3*ce78bad3SBarry Smith /* MANSEC = DM */
4ac09b921SBarry Smith /* SUBMANSEC = FE */
5ac09b921SBarry Smith 
6dbe77d9eSMatthew G. Knepley /*S
7dbe77d9eSMatthew G. Knepley   PetscFE - PETSc object that manages a finite element space, e.g. the P_1 Lagrange element
8dbe77d9eSMatthew G. Knepley 
9a4ce7ad1SMatthew G. Knepley   Level: beginner
10dbe77d9eSMatthew G. Knepley 
11b24fb147SBarry Smith .seealso: `PetscFECreate()`, `PetscSpace`, `PetscDualSpace`, `PetscSpaceCreate()`, `PetscDualSpaceCreate()`, `PetscFESetType()`, `PetscFEType`
12dbe77d9eSMatthew G. Knepley S*/
13dbe77d9eSMatthew G. Knepley typedef struct _p_PetscFE *PetscFE;
14dbe77d9eSMatthew G. Knepley 
15b7e05686SMatthew G. Knepley /*MC
169c3cf19fSMatthew G. Knepley   PetscFEJacobianType - indicates which pointwise functions should be used to fill the Jacobian matrix
17b7e05686SMatthew G. Knepley 
18a4ce7ad1SMatthew G. Knepley   Level: beginner
19b7e05686SMatthew G. Knepley 
20db781477SPatrick Sanan .seealso: `PetscFEIntegrateJacobian()`
21b7e05686SMatthew G. Knepley M*/
229371c9d4SSatish Balay typedef enum {
239371c9d4SSatish Balay   PETSCFE_JACOBIAN,
249371c9d4SSatish Balay   PETSCFE_JACOBIAN_PRE,
259371c9d4SSatish Balay   PETSCFE_JACOBIAN_DYN
269371c9d4SSatish Balay } PetscFEJacobianType;
2741fc7085SMatthew G. Knepley 
2841fc7085SMatthew G. Knepley /*E
2941fc7085SMatthew G. Knepley   PetscFEGeomMode - Describes the type of geometry being encoded.
3041fc7085SMatthew G. Knepley 
3141fc7085SMatthew G. Knepley   Values:
3241fc7085SMatthew G. Knepley + `PETSC_FEGEOM_BASIC`    - These are normal dim-cells, with dim == dE, and only bulk data is stored.
3341fc7085SMatthew 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.
3441fc7085SMatthew 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.
3541fc7085SMatthew 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.
3641fc7085SMatthew G. Knepley 
3741fc7085SMatthew G. Knepley   Level: beginner
3841fc7085SMatthew G. Knepley 
3941fc7085SMatthew G. Knepley   Note:
4041fc7085SMatthew G. Knepley   .vb
4141fc7085SMatthew G. Knepley   dim - The topological dimension and reference coordinate dimension
4241fc7085SMatthew G. Knepley   dE  - The real coordinate dimension
4341fc7085SMatthew G. Knepley   s   - The number of supporting cells for a face
4441fc7085SMatthew G. Knepley   .ve
4541fc7085SMatthew G. Knepley 
4641fc7085SMatthew G. Knepley .seealso: [](ch_dmbase), `PetscFEGeom`, `DM`, `DMPLEX`, `PetscFEGeomCreate()`
4741fc7085SMatthew G. Knepley E*/
4841fc7085SMatthew G. Knepley typedef enum {
4941fc7085SMatthew G. Knepley   PETSC_FEGEOM_BASIC,
5041fc7085SMatthew G. Knepley   PETSC_FEGEOM_EMBEDDED,
5141fc7085SMatthew G. Knepley   PETSC_FEGEOM_BOUNDARY,
5241fc7085SMatthew G. Knepley   PETSC_FEGEOM_COHESIVE
5341fc7085SMatthew G. Knepley } PetscFEGeomMode;
54