xref: /petsc/include/petscdmfield.h (revision b2b588551f46bb947fed24a0735312447de2080d)
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