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