Actual source code: pfimpl.h

  1: #pragma once

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

  6: PETSC_EXTERN PetscBool      PFRegisterAllCalled;
  7: PETSC_EXTERN PetscErrorCode PFRegisterAll(void);

  9: typedef struct _PFOps *PFOps;
 10: struct _PFOps {
 11:   PetscErrorCode (*apply)(void *, PetscInt, const PetscScalar *, PetscScalar *);
 12:   PetscErrorCode (*applyvec)(void *, Vec, Vec);
 13:   PetscErrorCode (*destroy)(void *);
 14:   PetscErrorCode (*view)(void *, PetscViewer);
 15:   PetscErrorCode (*setfromoptions)(PF, PetscOptionItems);
 16: };

 18: struct _p_PF {
 19:   PETSCHEADER(struct _PFOps);
 20:   PetscInt dimin, dimout; /* dimension of input and output spaces */
 21:   void    *data;
 22: };