1 #ifndef PETSC_PFIMPL_H 2 #define PETSC_PFIMPL_H 3 4 #include <petscpf.h> 5 #include <petsc/private/petscimpl.h> 6 #include <petscviewer.h> 7 8 PETSC_EXTERN PetscBool PFRegisterAllCalled; 9 PETSC_EXTERN PetscErrorCode PFRegisterAll(void); 10 11 typedef struct _PFOps *PFOps; 12 struct _PFOps { 13 PetscErrorCode (*apply)(void *, PetscInt, const PetscScalar *, PetscScalar *); 14 PetscErrorCode (*applyvec)(void *, Vec, Vec); 15 PetscErrorCode (*destroy)(void *); 16 PetscErrorCode (*view)(void *, PetscViewer); 17 PetscErrorCode (*setfromoptions)(PF, PetscOptionItems *); 18 }; 19 20 struct _p_PF { 21 PETSCHEADER(struct _PFOps); 22 PetscInt dimin, dimout; /* dimension of input and output spaces */ 23 void *data; 24 }; 25 26 #endif // PETSC_PFIMPL_H 27