Date: 2022-03-31T04:47:53+00:00

Actual source code: petscdmfield.h

      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