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