xref: /petsc/include/petscfetypes.h (revision 55cc6565afd6083c43e42b90a05df9e925a128d8)
1dbe77d9eSMatthew G. Knepley #if !defined(_PETSCFETYPES_H)
2dbe77d9eSMatthew G. Knepley #define _PETSCFETYPES_H
3dbe77d9eSMatthew G. Knepley 
4dbe77d9eSMatthew G. Knepley /*S
5dbe77d9eSMatthew G. Knepley   PetscSpace - PETSc object that manages a linear space, e.g. the space of d-dimensional polynomials of given degree
6dbe77d9eSMatthew G. Knepley 
7dbe77d9eSMatthew G. Knepley   Level: intermediate
8dbe77d9eSMatthew G. Knepley 
9dbe77d9eSMatthew G. Knepley   Concepts: finite element
10dbe77d9eSMatthew G. Knepley 
11dbe77d9eSMatthew G. Knepley .seealso: PetscSpaceCreate(), PetscDualSpaceCreate(), PetscSpaceSetType(), PetscSpaceType
12dbe77d9eSMatthew G. Knepley S*/
13dbe77d9eSMatthew G. Knepley typedef struct _p_PetscSpace *PetscSpace;
14dbe77d9eSMatthew G. Knepley 
15dbe77d9eSMatthew G. Knepley /*S
16dbe77d9eSMatthew G. Knepley   PetscDualSpace - PETSc object that manages the dual space to a linear space, e.g. the space of evaluation functionals at the vertices of a triangle
17dbe77d9eSMatthew G. Knepley 
18dbe77d9eSMatthew G. Knepley   Level: intermediate
19dbe77d9eSMatthew G. Knepley 
20dbe77d9eSMatthew G. Knepley   Concepts: finite element
21dbe77d9eSMatthew G. Knepley 
22dbe77d9eSMatthew G. Knepley .seealso: PetscDualSpaceCreate(), PetscSpaceCreate(), PetscDualSpaceSetType(), PetscDualSpaceType
23dbe77d9eSMatthew G. Knepley S*/
24dbe77d9eSMatthew G. Knepley typedef struct _p_PetscDualSpace *PetscDualSpace;
25dbe77d9eSMatthew G. Knepley 
26*55cc6565SMatthew G. Knepley /*MC
27*55cc6565SMatthew G. Knepley   PetscDualSpaceReferenceCell - The type of reference cell
28*55cc6565SMatthew G. Knepley 
29*55cc6565SMatthew G. Knepley   Notes: This is used only for automatic creation of reference cells. A PetscDualSpace can accept an arbitary DM for a reference cell.
30*55cc6565SMatthew G. Knepley 
31*55cc6565SMatthew G. Knepley   Level: intermediate
32*55cc6565SMatthew G. Knepley 
33*55cc6565SMatthew G. Knepley .seealso: PetscSpace
34*55cc6565SMatthew G. Knepley M*/
35*55cc6565SMatthew G. Knepley typedef enum { PETSCDUALSPACE_REFCELL_SIMPLEX, PETSCDUALSPACE_REFCELL_TENSOR } PetscDualSpaceReferenceCell;
36*55cc6565SMatthew G. Knepley PETSC_EXTERN const char * const PetscDualSpaceReferenceCells[];
37*55cc6565SMatthew G. Knepley 
38dbe77d9eSMatthew G. Knepley /*S
39dbe77d9eSMatthew G. Knepley   PetscFE - PETSc object that manages a finite element space, e.g. the P_1 Lagrange element
40dbe77d9eSMatthew G. Knepley 
41dbe77d9eSMatthew G. Knepley   Level: intermediate
42dbe77d9eSMatthew G. Knepley 
43dbe77d9eSMatthew G. Knepley   Concepts: finite element
44dbe77d9eSMatthew G. Knepley 
45dbe77d9eSMatthew G. Knepley .seealso: PetscFECreate(), PetscSpaceCreate(), PetscDualSpaceCreate(), PetscFESetType(), PetscFEType
46dbe77d9eSMatthew G. Knepley S*/
47dbe77d9eSMatthew G. Knepley typedef struct _p_PetscFE *PetscFE;
48dbe77d9eSMatthew G. Knepley 
49b7e05686SMatthew G. Knepley /*MC
509c3cf19fSMatthew G. Knepley   PetscFEJacobianType - indicates which pointwise functions should be used to fill the Jacobian matrix
51b7e05686SMatthew G. Knepley 
52b7e05686SMatthew G. Knepley   Level: intermediate
53b7e05686SMatthew G. Knepley 
54b7e05686SMatthew G. Knepley .seealso: PetscFEIntegrateJacobian()
55b7e05686SMatthew G. Knepley M*/
56b7e05686SMatthew G. Knepley typedef enum { PETSCFE_JACOBIAN, PETSCFE_JACOBIAN_PRE, PETSCFE_JACOBIAN_DYN } PetscFEJacobianType;
57b7e05686SMatthew G. Knepley 
58dbe77d9eSMatthew G. Knepley #endif
59