xref: /petsc/include/petscdmfield.h (revision 87497f523770ea28bdc907071c6e8146b51bca00)
126bd1501SBarry Smith #if !defined(PETSCDMFIELD_H)
226bd1501SBarry Smith #define      PETSCDMFIELD_H
3ac09b921SBarry Smith 
4b2b58855SToby Isaac #include <petscdm.h>
5b2b58855SToby Isaac #include <petscdt.h>
6b2b58855SToby Isaac #include <petscfe.h>
7b2b58855SToby Isaac 
8ac09b921SBarry Smith /* SUBMANSEC = DM */
9ac09b921SBarry Smith 
10b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldInitializePackage(void);
11b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode DMFieldFinalizePackage(void);
12b2b58855SToby Isaac 
13b2b58855SToby Isaac PETSC_EXTERN PetscClassId DMFIELD_CLASSID;
14b2b58855SToby Isaac 
15b2b58855SToby Isaac /*J
16*87497f52SBarry Smith     DMFieldType - String with the name of a `DMField` method
17b2b58855SToby Isaac 
18b2b58855SToby Isaac     Level: intermediate
19*87497f52SBarry Smith 
20*87497f52SBarry Smith .seealso: `DMField`, `DMFieldSetType()`, `DMFieldGetType()`, `DMFieldRegister()`
21b2b58855SToby Isaac J*/
22b2b58855SToby Isaac typedef const char *DMFieldType;
23b2b58855SToby Isaac #define DMFIELDDA    "da"
24b2b58855SToby Isaac #define DMFIELDDS    "ds"
25b2b58855SToby Isaac #define DMFIELDSHELL "shell"
26b2b58855SToby Isaac 
27b2b58855SToby Isaac PETSC_EXTERN PetscFunctionList DMFieldList;
28b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldSetType(DMField, DMFieldType);
29b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldGetType(DMField, DMFieldType*);
30b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldRegister(const char[],PetscErrorCode (*)(DMField));
31b2b58855SToby Isaac 
32b2b58855SToby Isaac typedef enum {DMFIELD_VERTEX,DMFIELD_EDGE,DMFIELD_FACET,DMFIELD_CELL} DMFieldContinuity;
33b2b58855SToby Isaac PETSC_EXTERN const char *const DMFieldContinuities[];
34b2b58855SToby Isaac 
35b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldDestroy(DMField*);
36b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldView(DMField,PetscViewer);
37b2b58855SToby Isaac 
38b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldGetDM(DMField,DM*);
39b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldGetNumComponents(DMField,PetscInt*);
40b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldGetContinuity(DMField,DMFieldContinuity*);
41b2b58855SToby Isaac 
42b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldEvaluate(DMField,Vec,PetscDataType,void*,void*,void*);
43b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldEvaluateFE(DMField,IS,PetscQuadrature,PetscDataType,void*,void*,void*);
44b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldEvaluateFV(DMField,IS,PetscDataType,void*,void*,void*);
452bb1671aSToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldCreateFEGeom(DMField,IS,PetscQuadrature,PetscBool,PetscFEGeom **);
46b2b58855SToby Isaac 
47b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldCreateDefaultQuadrature(DMField,IS,PetscQuadrature*);
48b2b58855SToby Isaac 
49b7260050SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldGetDegree(DMField,IS,PetscInt *,PetscInt *);
50b2b58855SToby Isaac 
51b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldCreateDA(DM,PetscInt,const PetscScalar *,DMField *);
52b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldCreateDS(DM,PetscInt,Vec,DMField *);
536858538eSMatthew G. Knepley PETSC_EXTERN PetscErrorCode    DMFieldCreateDSWithDG(DM,DM,PetscInt,Vec,Vec,DMField *);
54b2b58855SToby Isaac 
55b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldCreateShell(DM,PetscInt,DMFieldContinuity,void *,DMField *);
56028944aaSToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellSetDestroy(DMField,PetscErrorCode(*)(DMField));
57b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellGetContext(DMField,void *);
58b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellSetEvaluate(DMField,PetscErrorCode(*)(DMField,Vec,PetscDataType,void*,void*,void*));
59028944aaSToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellSetEvaluateFE(DMField,PetscErrorCode(*)(DMField,IS,PetscQuadrature,PetscDataType,void*,void*,void*));
60028944aaSToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellEvaluateFEDefault(DMField,IS,PetscQuadrature,PetscDataType,void*,void*,void*);
61b2b58855SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellSetEvaluateFV(DMField,PetscErrorCode(*)(DMField,IS,PetscDataType,void*,void*,void*));
62028944aaSToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellEvaluateFVDefault(DMField,IS,PetscDataType,void*,void*,void*);
63b7260050SToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellSetGetDegree(DMField,PetscErrorCode(*)(DMField,IS,PetscInt *,PetscInt *));
64028944aaSToby Isaac PETSC_EXTERN PetscErrorCode    DMFieldShellSetCreateDefaultQuadrature(DMField,PetscErrorCode(*)(DMField,IS,PetscQuadrature *));
65b2b58855SToby Isaac 
66b2b58855SToby Isaac #endif
67