Actual source code: petscpf.h

  1: /*
  2:       mathematical function module. 
  3: */
 6:  #include petscvec.h
  7: PETSC_EXTERN_CXX_BEGIN

  9: /*
 10:     PFList contains the list of preconditioners currently registered
 11:    These are added with the PFRegisterDynamic() macro
 12: */
 13: extern PetscFList PFList;

 15: /*J
 16:     PFType - Type of PETSc mathematical function, a string name

 18:    Level: beginner

 20: .seealso: PFSetType(), PF
 21: J*/
 22: #define PFType char*
 23: #define PFCONSTANT      "constant"
 24: #define PFMAT           "mat"
 25: #define PFSTRING        "string"
 26: #define PFQUICK         "quick"
 27: #define PFIDENTITY      "identity"
 28: #define PFMATLAB        "matlab"

 30: /*S
 31:      PF - Abstract PETSc mathematical function

 33:    Level: beginner

 35:   Concepts: functions

 37: .seealso:  PFCreate(), PFDestroy(), PFSetType(), PFApply(), PFApplyVec(), PFSet(), PFType
 38: S*/
 39: typedef struct _p_PF* PF;

 41: extern PetscClassId PF_CLASSID;

 43: extern PetscErrorCode  PFCreate(MPI_Comm,PetscInt,PetscInt,PF*);
 44: extern PetscErrorCode  PFSetType(PF,const PFType,void*);
 45: extern PetscErrorCode  PFSet(PF,PetscErrorCode(*)(void*,PetscInt,const PetscScalar*,PetscScalar*),PetscErrorCode(*)(void*,Vec,Vec),PetscErrorCode(*)(void*,PetscViewer),PetscErrorCode(*)(void*),void*);
 46: extern PetscErrorCode  PFApply(PF,PetscInt,const PetscScalar*,PetscScalar*);
 47: extern PetscErrorCode  PFApplyVec(PF,Vec,Vec);

 49: extern PetscErrorCode  PFRegisterDestroy(void);
 50: extern PetscErrorCode  PFRegisterAll(const char[]);
 51: extern PetscErrorCode  PFInitializePackage(const char[]);
 52: extern PetscBool  PFRegisterAllCalled;

 54: extern PetscErrorCode  PFRegister(const char[],const char[],const char[],PetscErrorCode (*)(PF,void*));
 55: #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
 56: #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,0)
 57: #else
 58: #define PFRegisterDynamic(a,b,c,d) PFRegister(a,b,c,d)
 59: #endif

 61: extern PetscErrorCode  PFDestroy(PF*);
 62: extern PetscErrorCode  PFSetFromOptions(PF);
 63: extern PetscErrorCode  PFGetType(PF,const PFType*);

 65: extern PetscErrorCode  PFView(PF,PetscViewer);

 67: #define PFSetOptionsPrefix(a,s) PetscObjectSetOptionsPrefix((PetscObject)(a),s)

 69: PETSC_EXTERN_CXX_END
 70: #endif