1*b2b58855SToby Isaac #if !defined(__PETSCDMFIELD_H) 2*b2b58855SToby Isaac #define __PETSCDMFIELD_H 3*b2b58855SToby Isaac #include <petscdm.h> 4*b2b58855SToby Isaac #include <petscdt.h> 5*b2b58855SToby Isaac #include <petscfe.h> 6*b2b58855SToby Isaac 7*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldInitializePackage(void); 8*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldFinalizePackage(void); 9*b2b58855SToby Isaac 10*b2b58855SToby Isaac PETSC_EXTERN PetscClassId DMFIELD_CLASSID; 11*b2b58855SToby Isaac 12*b2b58855SToby Isaac /*J 13*b2b58855SToby Isaac DMFieldType - String with the name of a DMField method 14*b2b58855SToby Isaac 15*b2b58855SToby Isaac Level: intermediate 16*b2b58855SToby Isaac J*/ 17*b2b58855SToby Isaac typedef const char *DMFieldType; 18*b2b58855SToby Isaac #define DMFIELDDA "da" 19*b2b58855SToby Isaac #define DMFIELDDS "ds" 20*b2b58855SToby Isaac #define DMFIELDSHELL "shell" 21*b2b58855SToby Isaac 22*b2b58855SToby Isaac PETSC_EXTERN PetscFunctionList DMFieldList; 23*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldSetType(DMField, DMFieldType); 24*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldGetType(DMField, DMFieldType*); 25*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldRegister(const char[],PetscErrorCode (*)(DMField)); 26*b2b58855SToby Isaac 27*b2b58855SToby Isaac typedef enum {DMFIELD_VERTEX,DMFIELD_EDGE,DMFIELD_FACET,DMFIELD_CELL} DMFieldContinuity; 28*b2b58855SToby Isaac PETSC_EXTERN const char *const DMFieldContinuities[]; 29*b2b58855SToby Isaac 30*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldDestroy(DMField*); 31*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldView(DMField,PetscViewer); 32*b2b58855SToby Isaac 33*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldGetDM(DMField,DM*); 34*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldGetNumComponents(DMField,PetscInt*); 35*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldGetContinuity(DMField,DMFieldContinuity*); 36*b2b58855SToby Isaac 37*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldEvaluate(DMField,Vec,PetscDataType,void*,void*,void*); 38*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldEvaluateFE(DMField,IS,PetscQuadrature,PetscDataType,void*,void*,void*); 39*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldEvaluateFV(DMField,IS,PetscDataType,void*,void*,void*); 40*b2b58855SToby Isaac 41*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldCreateDefaultQuadrature(DMField,IS,PetscQuadrature*); 42*b2b58855SToby Isaac 43*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldGetFEInvariance(DMField,IS,PetscBool*,PetscBool*,PetscBool*); 44*b2b58855SToby Isaac 45*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldCreateDA(DM,PetscInt,const PetscScalar *,DMField *); 46*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldCreateDS(DM,PetscInt,Vec,DMField *); 47*b2b58855SToby Isaac 48*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldCreateShell(DM,PetscInt,DMFieldContinuity,void *,DMField *); 49*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldShellGetContext(DMField,void *); 50*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldShellSetEvaluate(DMField,PetscErrorCode(*)(DMField,Vec,PetscDataType,void*,void*,void*)); 51*b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldShellSetEvaluateFV(DMField,PetscErrorCode(*)(DMField,IS,PetscDataType,void*,void*,void*)); 52*b2b58855SToby Isaac 53*b2b58855SToby Isaac #endif 54