1: #pragma once
  3: /* SUBMANSEC = FE */
  5: /*S
  6:   PetscFE - PETSc object that manages a finite element space, e.g. the P_1 Lagrange element
  8:   Level: beginner
 10: .seealso: `PetscFECreate()`, `PetscSpace`, `PetscDualSpace`, `PetscSpaceCreate()`, `PetscDualSpaceCreate()`, `PetscFESetType()`, `PetscFEType`
 11: S*/
 12: typedef struct _p_PetscFE *PetscFE;
 14: /*MC
 15:   PetscFEJacobianType - indicates which pointwise functions should be used to fill the Jacobian matrix
 17:   Level: beginner
 19: .seealso: `PetscFEIntegrateJacobian()`
 20: M*/
 21: typedef enum {
 22:   PETSCFE_JACOBIAN,
 23:   PETSCFE_JACOBIAN_PRE,
 24:   PETSCFE_JACOBIAN_DYN
 25: } PetscFEJacobianType;