1*dbe77d9eSMatthew G. Knepley /* 2*dbe77d9eSMatthew G. Knepley Objects which encapsulate finite element spaces and operations 3*dbe77d9eSMatthew G. Knepley */ 4*dbe77d9eSMatthew G. Knepley #if !defined(__PETSCFE_H) 5*dbe77d9eSMatthew G. Knepley #define __PETSCFE_H 6*dbe77d9eSMatthew G. Knepley #include <petscdm.h> 7*dbe77d9eSMatthew G. Knepley #include <petscfetypes.h> 8*dbe77d9eSMatthew G. Knepley 9*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscFEInitializePackage(void); 10*dbe77d9eSMatthew G. Knepley 11*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscClassId PETSCSPACE_CLASSID; 12*dbe77d9eSMatthew G. Knepley 13*dbe77d9eSMatthew G. Knepley /*J 14*dbe77d9eSMatthew G. Knepley PetscSpaceType - String with the name of a PETSc linear space 15*dbe77d9eSMatthew G. Knepley 16*dbe77d9eSMatthew G. Knepley Level: beginner 17*dbe77d9eSMatthew G. Knepley 18*dbe77d9eSMatthew G. Knepley .seealso: PetscSpaceSetType(), PetscSpace 19*dbe77d9eSMatthew G. Knepley J*/ 20*dbe77d9eSMatthew G. Knepley typedef const char *PetscSpaceType; 21*dbe77d9eSMatthew G. Knepley #define PETSCSPACEPOLYNOMIAL "poly" 22*dbe77d9eSMatthew G. Knepley 23*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscFunctionList PetscSpaceList; 24*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscBool PetscSpaceRegisterAllCalled; 25*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceCreate(MPI_Comm, PetscSpace *); 26*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceSetType(PetscSpace, PetscSpaceType); 27*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceGetType(PetscSpace, PetscSpaceType *); 28*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceSetFromOptions(PetscSpace); 29*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceRegister(const char [], PetscErrorCode (*)(PetscSpace)); 30*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceRegisterAll(void); 31*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscSpaceRegisterDestroy(void); 32*dbe77d9eSMatthew G. Knepley 33*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscClassId PETSCDUALSPACE_CLASSID; 34*dbe77d9eSMatthew G. Knepley 35*dbe77d9eSMatthew G. Knepley /*J 36*dbe77d9eSMatthew G. Knepley PetscDualSpaceType - String with the name of a PETSc dual space 37*dbe77d9eSMatthew G. Knepley 38*dbe77d9eSMatthew G. Knepley Level: beginner 39*dbe77d9eSMatthew G. Knepley 40*dbe77d9eSMatthew G. Knepley .seealso: PetscDualSpaceSetType(), PetscDualSpace 41*dbe77d9eSMatthew G. Knepley J*/ 42*dbe77d9eSMatthew G. Knepley typedef const char *PetscDualSpaceType; 43*dbe77d9eSMatthew G. Knepley #define PETSCDUALSPACELAGRANGE "lagrange" 44*dbe77d9eSMatthew G. Knepley 45*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscFunctionList PetscDualSpaceList; 46*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscBool PetscDualSpaceRegisterAllCalled; 47*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceCreate(MPI_Comm, PetscDualSpace *); 48*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceSetType(PetscDualSpace, PetscDualSpaceType); 49*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceGetType(PetscDualSpace, PetscDualSpaceType *); 50*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceSetFromOptions(PetscDualSpace); 51*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceRegister(const char [], PetscErrorCode (*)(PetscDualSpace)); 52*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceRegisterAll(void); 53*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceRegisterDestroy(void); 54*dbe77d9eSMatthew G. Knepley 55*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode PetscDualSpaceGetDimension(PetscDualSpace, PetscInt *); 56*dbe77d9eSMatthew G. Knepley 57*dbe77d9eSMatthew G. Knepley PETSC_EXTERN PetscClassId PETSCFE_CLASSID; 58*dbe77d9eSMatthew G. Knepley 59*dbe77d9eSMatthew G. Knepley PetscErrorCode PetscFEGetTabulation(PetscFE, PetscInt, const PetscReal [], PetscReal **, PetscReal **, PetscReal **); 60*dbe77d9eSMatthew G. Knepley #endif 61