2: #ifndef _PFIMPL 3: #define _PFIMPL 5: #include <petscpf.h> 7: typedef struct _PFOps *PFOps; 8: struct _PFOps { 9: PetscErrorCode (*apply)(void*,PetscInt,const PetscScalar*,PetscScalar*); 10: PetscErrorCode (*applyvec)(void*,Vec,Vec); 11: PetscErrorCode (*destroy)(void*); 12: PetscErrorCode (*view)(void*,PetscViewer); 13: PetscErrorCode (*setfromoptions)(PF); 14: }; 16: struct _p_PF { 17: PETSCHEADER(struct _PFOps); 18: PetscInt dimin,dimout; /* dimension of input and output spaces */ 19: void *data; 20: }; 22: #endif