Actual source code: dmfieldimpl.h

  1: #pragma once

  3: #include <petscdmfield.h>
  4: #include <petsc/private/petscimpl.h>

  6: PETSC_EXTERN PetscBool      DMFieldRegisterAllCalled;
  7: PETSC_EXTERN PetscErrorCode DMFieldRegisterAll(void);

  9: typedef struct _DMFieldOps *DMFieldOps;
 10: struct _DMFieldOps {
 11:   PetscErrorCode (*create)(DMField);
 12:   PetscErrorCode (*destroy)(DMField);
 13:   PetscErrorCode (*setfromoptions)(PetscOptionItems *, DMField);
 14:   PetscErrorCode (*setup)(DMField);
 15:   PetscErrorCode (*view)(DMField, PetscViewer);
 16:   PetscErrorCode (*evaluate)(DMField, Vec, PetscDataType, void *, void *, void *);
 17:   PetscErrorCode (*evaluateFE)(DMField, IS, PetscQuadrature, PetscDataType, void *, void *, void *);
 18:   PetscErrorCode (*evaluateFV)(DMField, IS, PetscDataType, void *, void *, void *);
 19:   PetscErrorCode (*getDegree)(DMField, IS, PetscInt *, PetscInt *);
 20:   PetscErrorCode (*createDefaultQuadrature)(DMField, IS, PetscQuadrature *);
 21:   PetscErrorCode (*computeFaceData)(DMField, IS, PetscQuadrature, PetscFEGeom *);
 22: };
 23: struct _p_DMField {
 24:   PETSCHEADER(struct _DMFieldOps);
 25:   DM                dm;
 26:   DMFieldContinuity continuity;
 27:   PetscInt          numComponents;
 28:   void             *data;
 29: };

 31: PETSC_INTERN PetscErrorCode DMFieldCreate(DM, PetscInt, DMFieldContinuity, DMField *);
 32: PETSC_INTERN PetscErrorCode DMFieldGetFVQuadrature_Internal(DMField, IS, PetscQuadrature *);