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