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 /*MC 27 PetscDualSpaceReferenceCell - The type of reference cell 28 29 Notes: This is used only for automatic creation of reference cells. A PetscDualSpace can accept an arbitary DM for a reference cell. 30 31 Level: intermediate 32 33 .seealso: PetscSpace 34 M*/ 35 typedef enum { PETSCDUALSPACE_REFCELL_SIMPLEX, PETSCDUALSPACE_REFCELL_TENSOR } PetscDualSpaceReferenceCell; 36 PETSC_EXTERN const char * const PetscDualSpaceReferenceCells[]; 37 38 /*S 39 PetscFE - PETSc object that manages a finite element space, e.g. the P_1 Lagrange element 40 41 Level: intermediate 42 43 Concepts: finite element 44 45 .seealso: PetscFECreate(), PetscSpaceCreate(), PetscDualSpaceCreate(), PetscFESetType(), PetscFEType 46 S*/ 47 typedef struct _p_PetscFE *PetscFE; 48 49 /*MC 50 PetscFEJacobianType - indicates which pointwise functions should be used to fill the Jacobian matrix 51 52 Level: intermediate 53 54 .seealso: PetscFEIntegrateJacobian() 55 M*/ 56 typedef enum { PETSCFE_JACOBIAN, PETSCFE_JACOBIAN_PRE, PETSCFE_JACOBIAN_DYN } PetscFEJacobianType; 57 58 #endif 59