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