Actual source code: petscdmfield.h
petsc-3.14.6 2021-03-30
1: #if !defined(PETSCDMFIELD_H)
2: #define PETSCDMFIELD_H
3: #include <petscdm.h>
4: #include <petscdt.h>
5: #include <petscfe.h>
7: PETSC_EXTERN PetscErrorCode DMFieldInitializePackage(void);
8: PETSC_EXTERN PetscErrorCode DMFieldFinalizePackage(void);
10: PETSC_EXTERN PetscClassId DMFIELD_CLASSID;
12: /*J
13: DMFieldType - String with the name of a DMField method
15: Level: intermediate
16: J*/
17: typedef const char *DMFieldType;
18: #define DMFIELDDA "da"
19: #define DMFIELDDS "ds"
20: #define DMFIELDSHELL "shell"
22: PETSC_EXTERN PetscFunctionList DMFieldList;
23: PETSC_EXTERN PetscErrorCode DMFieldSetType(DMField, DMFieldType);
24: PETSC_EXTERN PetscErrorCode DMFieldGetType(DMField, DMFieldType*);
25: PETSC_EXTERN PetscErrorCode DMFieldRegister(const char[],PetscErrorCode (*)(DMField));
27: typedef enum {DMFIELD_VERTEX,DMFIELD_EDGE,DMFIELD_FACET,DMFIELD_CELL} DMFieldContinuity;
28: PETSC_EXTERN const char *const DMFieldContinuities[];
30: PETSC_EXTERN PetscErrorCode DMFieldDestroy(DMField*);
31: PETSC_EXTERN PetscErrorCode DMFieldView(DMField,PetscViewer);
33: PETSC_EXTERN PetscErrorCode DMFieldGetDM(DMField,DM*);
34: PETSC_EXTERN PetscErrorCode DMFieldGetNumComponents(DMField,PetscInt*);
35: PETSC_EXTERN PetscErrorCode DMFieldGetContinuity(DMField,DMFieldContinuity*);
37: PETSC_EXTERN PetscErrorCode DMFieldEvaluate(DMField,Vec,PetscDataType,void*,void*,void*);
38: PETSC_EXTERN PetscErrorCode DMFieldEvaluateFE(DMField,IS,PetscQuadrature,PetscDataType,void*,void*,void*);
39: PETSC_EXTERN PetscErrorCode DMFieldEvaluateFV(DMField,IS,PetscDataType,void*,void*,void*);
40: PETSC_EXTERN PetscErrorCode DMFieldCreateFEGeom(DMField,IS,PetscQuadrature,PetscBool,PetscFEGeom **);
42: PETSC_EXTERN PetscErrorCode DMFieldCreateDefaultQuadrature(DMField,IS,PetscQuadrature*);
44: PETSC_EXTERN PetscErrorCode DMFieldGetDegree(DMField,IS,PetscInt *,PetscInt *);
46: PETSC_EXTERN PetscErrorCode DMFieldCreateDA(DM,PetscInt,const PetscScalar *,DMField *);
47: PETSC_EXTERN PetscErrorCode DMFieldCreateDS(DM,PetscInt,Vec,DMField *);
49: PETSC_EXTERN PetscErrorCode DMFieldCreateShell(DM,PetscInt,DMFieldContinuity,void *,DMField *);
50: PETSC_EXTERN PetscErrorCode DMFieldShellSetDestroy(DMField,PetscErrorCode(*)(DMField));
51: PETSC_EXTERN PetscErrorCode DMFieldShellGetContext(DMField,void *);
52: PETSC_EXTERN PetscErrorCode DMFieldShellSetEvaluate(DMField,PetscErrorCode(*)(DMField,Vec,PetscDataType,void*,void*,void*));
53: PETSC_EXTERN PetscErrorCode DMFieldShellSetEvaluateFE(DMField,PetscErrorCode(*)(DMField,IS,PetscQuadrature,PetscDataType,void*,void*,void*));
54: PETSC_EXTERN PetscErrorCode DMFieldShellEvaluateFEDefault(DMField,IS,PetscQuadrature,PetscDataType,void*,void*,void*);
55: PETSC_EXTERN PetscErrorCode DMFieldShellSetEvaluateFV(DMField,PetscErrorCode(*)(DMField,IS,PetscDataType,void*,void*,void*));
56: PETSC_EXTERN PetscErrorCode DMFieldShellEvaluateFVDefault(DMField,IS,PetscDataType,void*,void*,void*);
57: PETSC_EXTERN PetscErrorCode DMFieldShellSetGetDegree(DMField,PetscErrorCode(*)(DMField,IS,PetscInt *,PetscInt *));
58: PETSC_EXTERN PetscErrorCode DMFieldShellSetCreateDefaultQuadrature(DMField,PetscErrorCode(*)(DMField,IS,PetscQuadrature *));
60: #endif