xref: /petsc/src/vec/pf/pfimpl.h (revision a69119a591a03a9d906b29c0a4e9802e4d7c9795)
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)(PF, PetscOptionItems *);
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