xref: /petsc/src/vec/pf/pfimpl.h (revision dbbe0bcd3f3a8fbab5a45420dc06f8387e5764c6)
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