1292f8084SBarry Smith 2519f805aSKarl Rupp #if !defined(_PFIMPL) 3292f8084SBarry Smith #define _PFIMPL 4292f8084SBarry Smith 5c6db04a5SJed Brown #include <petscpf.h> 6af0996ceSBarry Smith #include <petsc/private/petscimpl.h> 7665c2dedSJed Brown #include <petscviewer.h> 8292f8084SBarry Smith 90f51fdf8SToby Isaac PETSC_EXTERN PetscBool PFRegisterAllCalled; 1014acc2feSToby Isaac PETSC_EXTERN PetscErrorCode PFRegisterAll(void); 110f51fdf8SToby Isaac 12292f8084SBarry Smith typedef struct _PFOps *PFOps; 13292f8084SBarry Smith struct _PFOps { 14dd394643SJed Brown PetscErrorCode (*apply)(void*,PetscInt,const PetscScalar*,PetscScalar*); 15292f8084SBarry Smith PetscErrorCode (*applyvec)(void*,Vec,Vec); 16292f8084SBarry Smith PetscErrorCode (*destroy)(void*); 17292f8084SBarry Smith PetscErrorCode (*view)(void*,PetscViewer); 18*dbbe0bcdSBarry Smith PetscErrorCode (*setfromoptions)(PF,PetscOptionItems*); 19292f8084SBarry Smith }; 20292f8084SBarry Smith 21292f8084SBarry Smith struct _p_PF { 22011f5a45SSatish Balay PETSCHEADER(struct _PFOps); 23292f8084SBarry Smith PetscInt dimin,dimout; /* dimension of input and output spaces */ 24292f8084SBarry Smith void *data; 25292f8084SBarry Smith }; 26292f8084SBarry Smith 27292f8084SBarry Smith #endif 28