xref: /petsc/include/petscpf.h (revision 00ff320a6701aa587ed3bd591b944da12a89b695)
1 /* $Id: petscpf.h,v 1.6 2000/05/10 16:44:25 bsmith Exp bsmith $ */
2 
3 /*
4       mathematical function module.
5 */
6 #if !defined(__PETSCPF_H)
7 #define __PETSCPF_H
8 #include "petscmat.h"
9 
10 /*
11     PFList contains the list of preconditioners currently registered
12    These are added with the PFRegisterDynamic() macro
13 */
14 extern FList PFList;
15 typedef char *PFType;
16 
17 /*
18     Standard PETSc functions
19 */
20 #define PFCONSTANT      "constant"
21 #define PFMAT           "mat"
22 #define PFSTRING        "string"
23 #define PFQUICK         "quick"
24 #define PFIDENTITY      "identity"
25 #define PFMATLAB        "matlab"
26 
27 typedef struct _p_PF* PF;
28 #define PF_COOKIE     PETSC_COOKIE+9
29 
30 
31 EXTERN int PFCreate(MPI_Comm,int,int,PF*);
32 EXTERN int PFSetType(PF,PFType,void*);
33 EXTERN int PFSet(PF,int(*)(void*,int,Scalar*,Scalar*),int(*)(void*,Vec,Vec),int(*)(void*,Viewer),int(*)(void*),void*);
34 EXTERN int PFApply(PF,int,Scalar*,Scalar*);
35 EXTERN int PFApplyVec(PF,Vec,Vec);
36 
37 EXTERN int        PFRegisterDestroy(void);
38 EXTERN int        PFRegisterAll(char*);
39 extern PetscTruth PFRegisterAllCalled;
40 
41 EXTERN int PFRegister(char*,char*,char*,int(*)(PF,void*));
42 #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
43 #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,0)
44 #else
45 #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,d)
46 #endif
47 
48 EXTERN int PFDestroy(PF);
49 EXTERN int PFSetFromOptions(PF);
50 EXTERN int PFSetTypeFromOptions(PF);
51 EXTERN int PFGetType(PF,PFType*);
52 
53 EXTERN int PFView(PF,Viewer);
54 EXTERN int PFPrintHelp(PF);
55 
56 #define PFSetOptionsPrefix(a,s) PetscObjectSetOptionsPrefix((PetscObject)(a),s)
57 #endif
58 
59 
60 
61 
62