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