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