xref: /petsc/include/petscpf.h (revision ffb21b54217adcc862e3bfa7ecf727601c56345b)
1*ffb21b54SBarry Smith /* $Id: pf.h,v 1.2 2000/01/24 04:05:37 bsmith Exp bsmith $ */
2f97fa5f8SBarry Smith 
3f97fa5f8SBarry Smith /*
43e3e4676SBarry Smith       mathematical function module.
5f97fa5f8SBarry Smith */
63e3e4676SBarry Smith #if !defined(__PF_H)
73e3e4676SBarry Smith #define __PF_H
8f97fa5f8SBarry Smith #include "mat.h"
9f97fa5f8SBarry Smith 
10f97fa5f8SBarry Smith /*
113e3e4676SBarry Smith     PFList contains the list of preconditioners currently registered
123e3e4676SBarry Smith    These are added with the PFRegisterDynamic() macro
13f97fa5f8SBarry Smith */
143e3e4676SBarry Smith extern FList PFList;
153e3e4676SBarry Smith typedef char *PFType;
16f97fa5f8SBarry Smith 
17f97fa5f8SBarry Smith /*
183e3e4676SBarry Smith     Standard PETSc functions
19f97fa5f8SBarry Smith */
203e3e4676SBarry Smith #define PFCONSTANT      "constant"
213e3e4676SBarry Smith #define PFMAT           "mat"
22f97fa5f8SBarry Smith 
233e3e4676SBarry Smith typedef struct _p_PF* PF;
243e3e4676SBarry Smith #define PF_COOKIE     PETSC_COOKIE+9
25f97fa5f8SBarry Smith 
26f97fa5f8SBarry Smith 
273e3e4676SBarry Smith extern int PFCreate(MPI_Comm,int,int,PF*);
283e3e4676SBarry Smith extern int PFSetType(PF,PFType,void*);
29*ffb21b54SBarry Smith extern int PFSet(PF,int(*)(void*,int,Scalar*,Scalar*),int(*)(void*,Vec,Vec),int(*)(void*,Viewer),int(*)(void*),void*);
303e3e4676SBarry Smith extern int PFApply(PF,int,Scalar*,Scalar*);
313e3e4676SBarry Smith extern int PFApplyVec(PF,Vec,Vec);
32f97fa5f8SBarry Smith 
333e3e4676SBarry Smith extern int PFRegisterDestroy(void);
343e3e4676SBarry Smith extern int PFRegisterAll(char*);
353e3e4676SBarry Smith extern int PFRegisterAllCalled;
36f97fa5f8SBarry Smith 
37*ffb21b54SBarry Smith extern int PFRegister(char*,char*,char*,int(*)(PF,void*));
38f97fa5f8SBarry Smith #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
393e3e4676SBarry Smith #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,0)
40f97fa5f8SBarry Smith #else
413e3e4676SBarry Smith #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,d)
42f97fa5f8SBarry Smith #endif
43f97fa5f8SBarry Smith 
443e3e4676SBarry Smith extern int PFDestroy(PF);
453e3e4676SBarry Smith extern int PFSetFromOptions(PF);
463e3e4676SBarry Smith extern int PFSetTypeFromOptions(PF);
473e3e4676SBarry Smith extern int PFGetType(PF,PFType*);
48f97fa5f8SBarry Smith 
493e3e4676SBarry Smith extern int PFView(PF,Viewer);
50f97fa5f8SBarry Smith 
51f97fa5f8SBarry Smith #endif
52f97fa5f8SBarry Smith 
53f97fa5f8SBarry Smith 
54f97fa5f8SBarry Smith 
55f97fa5f8SBarry Smith 
56