2: #ifndef _PFIMPL
3: #define _PFIMPL
5: #include petscpf.h
7: typedef struct _PFOps *PFOps;
8: struct _PFOps {
9: PetscErrorCode (*apply)(void*,PetscInt,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