xref: /petsc/include/petscfetypes.h (revision 5b6bfdb9644f185dbf5e5a09b808ec241507e1e7)
1 #if !defined(_PETSCFETYPES_H)
2 #define _PETSCFETYPES_H
3 
4 /*S
5   PetscSpace - PETSc object that manages a linear space, e.g. the space of d-dimensional polynomials of given degree
6 
7   Level: intermediate
8 
9   Concepts: finite element
10 
11 .seealso: PetscSpaceCreate(), PetscDualSpaceCreate(), PetscSpaceSetType(), PetscSpaceType
12 S*/
13 typedef struct _p_PetscSpace *PetscSpace;
14 
15 /*S
16   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
17 
18   Level: intermediate
19 
20   Concepts: finite element
21 
22 .seealso: PetscDualSpaceCreate(), PetscSpaceCreate(), PetscDualSpaceSetType(), PetscDualSpaceType
23 S*/
24 typedef struct _p_PetscDualSpace *PetscDualSpace;
25 
26 /*S
27   PetscFE - PETSc object that manages a finite element space, e.g. the P_1 Lagrange element
28 
29   Level: intermediate
30 
31   Concepts: finite element
32 
33 .seealso: PetscFECreate(), PetscSpaceCreate(), PetscDualSpaceCreate(), PetscFESetType(), PetscFEType
34 S*/
35 typedef struct _p_PetscFE *PetscFE;
36 
37 /*MC
38   PetscFEJacobianType - indicates which pointwise functions should be used to fill the Jacobian matrix
39 
40   Level: intermediate
41 
42 .seealso: PetscFEIntegrateJacobian()
43 M*/
44 typedef enum { PETSCFE_JACOBIAN, PETSCFE_JACOBIAN_PRE, PETSCFE_JACOBIAN_DYN } PetscFEJacobianType;
45 
46 #endif
47