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 (*createDefaultFaceQuadrature)(DMField, IS, PetscQuadrature *);
     22:   PetscErrorCode (*computeFaceData)(DMField, IS, PetscQuadrature, PetscFEGeom *);
     23: };
     24: struct _p_DMField {
     25:   PETSCHEADER(struct _DMFieldOps);
     26:   DM                dm;
     27:   DMFieldContinuity continuity;
     28:   PetscInt          numComponents;
     29:   void             *data;
     30: };

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