1*b0a32e0cSBarry Smith /* $Id: petscpf.h,v 1.8 2000/08/24 22:43:56 bsmith Exp bsmith $ */ 2f97fa5f8SBarry Smith 3f97fa5f8SBarry Smith /* 43e3e4676SBarry Smith mathematical function module. 5f97fa5f8SBarry Smith */ 60a835dfdSSatish Balay #if !defined(__PETSCPF_H) 70a835dfdSSatish Balay #define __PETSCPF_H 80a835dfdSSatish Balay #include "petscmat.h" 9f97fa5f8SBarry Smith 10f97fa5f8SBarry Smith /* 11*b0a32e0cSBarry Smith PPetscFList contains the list of preconditioners currently registered 123e3e4676SBarry Smith These are added with the PFRegisterDynamic() macro 13f97fa5f8SBarry Smith */ 14*b0a32e0cSBarry Smith extern PetscFList PPetscFList; 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" 223eda8832SBarry Smith #define PFSTRING "string" 233eda8832SBarry Smith #define PFQUICK "quick" 2474637425SBarry Smith #define PFIDENTITY "identity" 2574637425SBarry Smith #define PFMATLAB "matlab" 26f97fa5f8SBarry Smith 273e3e4676SBarry Smith typedef struct _p_PF* PF; 283e3e4676SBarry Smith #define PF_COOKIE PETSC_COOKIE+9 29f97fa5f8SBarry Smith 30f97fa5f8SBarry Smith 31ca44d042SBarry Smith EXTERN int PFCreate(MPI_Comm,int,int,PF*); 32ca44d042SBarry Smith EXTERN int PFSetType(PF,PFType,void*); 33*b0a32e0cSBarry Smith EXTERN int PFSet(PF,int(*)(void*,int,Scalar*,Scalar*),int(*)(void*,Vec,Vec),int(*)(void*,PetscViewer),int(*)(void*),void*); 34ca44d042SBarry Smith EXTERN int PFApply(PF,int,Scalar*,Scalar*); 35ca44d042SBarry Smith EXTERN int PFApplyVec(PF,Vec,Vec); 36f97fa5f8SBarry Smith 37ca44d042SBarry Smith EXTERN int PFRegisterDestroy(void); 38ca44d042SBarry Smith EXTERN int PFRegisterAll(char*); 393eda8832SBarry Smith extern PetscTruth PFRegisterAllCalled; 40f97fa5f8SBarry Smith 41ca44d042SBarry Smith EXTERN int PFRegister(char*,char*,char*,int(*)(PF,void*)); 42f97fa5f8SBarry Smith #if defined(PETSC_USE_DYNAMIC_LIBRARIES) 433e3e4676SBarry Smith #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,0) 44f97fa5f8SBarry Smith #else 453e3e4676SBarry Smith #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,d) 46f97fa5f8SBarry Smith #endif 47f97fa5f8SBarry Smith 48ca44d042SBarry Smith EXTERN int PFDestroy(PF); 49ca44d042SBarry Smith EXTERN int PFSetFromOptions(PF); 50ca44d042SBarry Smith EXTERN int PFSetTypeFromOptions(PF); 51ca44d042SBarry Smith EXTERN int PFGetType(PF,PFType*); 52f97fa5f8SBarry Smith 53*b0a32e0cSBarry Smith EXTERN int PFView(PF,PetscViewer); 54f97fa5f8SBarry Smith 553eda8832SBarry Smith #define PFSetOptionsPrefix(a,s) PetscObjectSetOptionsPrefix((PetscObject)(a),s) 56f97fa5f8SBarry Smith #endif 57f97fa5f8SBarry Smith 58f97fa5f8SBarry Smith 59f97fa5f8SBarry Smith 60f97fa5f8SBarry Smith 61