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