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 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); 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 27