xref: /petsc/src/vec/pf/pfimpl.h (revision 6d8694c4fbab79f9439f1ad13c0386ba7ee1ca4b)
1a4963045SJacob Faibussowitsch #pragma once
2292f8084SBarry Smith 
3c6db04a5SJed Brown #include <petscpf.h>
4af0996ceSBarry Smith #include <petsc/private/petscimpl.h>
5665c2dedSJed Brown #include <petscviewer.h>
6292f8084SBarry Smith 
70f51fdf8SToby Isaac PETSC_EXTERN PetscBool      PFRegisterAllCalled;
814acc2feSToby Isaac PETSC_EXTERN PetscErrorCode PFRegisterAll(void);
90f51fdf8SToby Isaac 
10292f8084SBarry Smith typedef struct _PFOps *PFOps;
11292f8084SBarry Smith struct _PFOps {
12dd394643SJed Brown   PetscErrorCode (*apply)(void *, PetscInt, const PetscScalar *, PetscScalar *);
13292f8084SBarry Smith   PetscErrorCode (*applyvec)(void *, Vec, Vec);
14292f8084SBarry Smith   PetscErrorCode (*destroy)(void *);
15292f8084SBarry Smith   PetscErrorCode (*view)(void *, PetscViewer);
16*ce78bad3SBarry Smith   PetscErrorCode (*setfromoptions)(PF, PetscOptionItems);
17292f8084SBarry Smith };
18292f8084SBarry Smith 
19292f8084SBarry Smith struct _p_PF {
20011f5a45SSatish Balay   PETSCHEADER(struct _PFOps);
21292f8084SBarry Smith   PetscInt dimin, dimout; /* dimension of input and output spaces */
22292f8084SBarry Smith   void    *data;
23292f8084SBarry Smith };
24