Actual source code: petscpf.h
1: /* $Id: petscpf.h,v 1.12 2001/08/06 21:19:07 bsmith Exp $ */
3: /*
4: mathematical function module.
5: */
8: #include petscvec.h
9: PETSC_EXTERN_CXX_BEGIN
11: /*
12: PPetscFList contains the list of preconditioners currently registered
13: These are added with the PFRegisterDynamic() macro
14: */
15: extern PetscFList PPetscFList;
17: /*E
18: PFType - Type of PETSc mathematical function, a string name
20: Level: beginner
22: .seealso: PFSetType(), PF
23: E*/
24: #define PFType char*
25: #define PFCONSTANT "constant"
26: #define PFMAT "mat"
27: #define PFSTRING "string"
28: #define PFQUICK "quick"
29: #define PFIDENTITY "identity"
30: #define PFMATLAB "matlab"
32: /*S
33: PF - Abstract PETSc mathematical function
35: Level: beginner
37: Concepts: functions
39: .seealso: PFCreate(), PFDestroy(), PFSetType(), PFApply(), PFApplyVec(), PFSet(), PFType
40: S*/
41: typedef struct _p_PF* PF;
43: extern int PF_COOKIE;
45: EXTERN int PFCreate(MPI_Comm,int,int,PF*);
46: EXTERN int PFSetType(PF,const PFType,void*);
47: EXTERN int PFSet(PF,int(*)(void*,int,PetscScalar*,PetscScalar*),int(*)(void*,Vec,Vec),int(*)(void*,PetscViewer),int(*)(void*),void*);
48: EXTERN int PFApply(PF,int,PetscScalar*,PetscScalar*);
49: EXTERN int PFApplyVec(PF,Vec,Vec);
51: EXTERN int PFRegisterDestroy(void);
52: EXTERN int PFRegisterAll(const char[]);
53: extern PetscTruth PFRegisterAllCalled;
55: EXTERN int PFRegister(const char[],const char[],const char[],int(*)(PF,void*));
56: #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
57: #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,0)
58: #else
59: #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,d)
60: #endif
62: EXTERN int PFDestroy(PF);
63: EXTERN int PFSetFromOptions(PF);
64: EXTERN int PFGetType(PF,PFType*);
66: EXTERN int PFView(PF,PetscViewer);
68: #define PFSetOptionsPrefix(a,s) PetscObjectSetOptionsPrefix((PetscObject)(a),s)
70: PETSC_EXTERN_CXX_END
71: #endif