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