1*d03aef70SBarry Smith 2*d03aef70SBarry Smith /* 3*d03aef70SBarry Smith Preconditioner module. 4*d03aef70SBarry Smith */ 5*d03aef70SBarry Smith #if !defined(__PC_PACKAGE) 6*d03aef70SBarry Smith #define __PC_PACKAGE 7*d03aef70SBarry Smith #include "petsc.h" 8*d03aef70SBarry Smith #include "mat.h" 9*d03aef70SBarry Smith 10*d03aef70SBarry Smith typedef enum { PCNONE, PCJACOBI, PCSOR } PCMETHOD; 11*d03aef70SBarry Smith 12*d03aef70SBarry Smith typedef struct _PC* PC; 13*d03aef70SBarry Smith 14*d03aef70SBarry Smith int PCCreate(PC*); 15*d03aef70SBarry Smith int PCSetMethod(PC,PCMETHOD); 16*d03aef70SBarry Smith int PCApply(void*,Vec,Vec); 17*d03aef70SBarry Smith int PCSetUp(PC); 18*d03aef70SBarry Smith int PCApplyRichardson(void *,Vec,Vec,Vec,int); 19*d03aef70SBarry Smith int PCApplyRichardsonExists(PC); 20*d03aef70SBarry Smith int PCRegisterAll(); 21*d03aef70SBarry Smith int PCRegister(PCMETHOD,char *,int (*)(PC)); 22*d03aef70SBarry Smith int PCDestroy(PC); 23*d03aef70SBarry Smith 24*d03aef70SBarry Smith #endif 25