xref: /petsc/include/petscpc.h (revision e78c158d3e892157a2f28f9e3058d5e1a81a32a3)
1 
2 /*
3       Preconditioner module.
4 */
5 #if !defined(__PC_PACKAGE)
6 #define __PC_PACKAGE
7 #include "petsc.h"
8 #include "mat.h"
9 
10 typedef enum { PCNONE, PCJACOBI, PCSOR, PCDIRECT } PCMETHOD;
11 
12 typedef struct _PC* PC;
13 
14 extern int    PCCreate(PC*);
15 extern int    PCSetMethod(PC,PCMETHOD);
16 extern int    PCApply(void*,Vec,Vec);
17 extern int    PCSetUp(PC);
18 extern int    PCApplyRichardson(void *,Vec,Vec,Vec,int);
19 extern int    PCApplyRichardsonExists(PC);
20 extern int    PCRegisterAll();
21 extern int    PCRegister(PCMETHOD,char *,int (*)(PC));
22 extern int    PCDestroy(PC);
23 extern int    PCSetFromOptions(PC);
24 extern int    PCGetMethodFromOptions(int,char *,PCMETHOD *);
25 extern int    PCPrintMethods(char *);
26 extern int    PCGetMethodFromContext(PC,PCMETHOD*);
27 extern int    PCGetMethodName(PCMETHOD,char **);
28 extern int    PCSetMatrix(PC,Mat);
29 extern int    PCGetMatrix(PC,Mat*);
30 extern int    PCSetVector(PC,Vec);
31 extern int    PCPrintHelp(PC);
32 
33 extern int PCSORSetSymmetric(PC, int);
34 extern int PCSORSetOmega(PC, double);
35 
36 #endif
37