Actual source code: petscpf.h

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

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

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

     18:    Level: beginner

     20: .seealso: PFSetType(), PF
     21: E*/
     22: #define PFType const 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;

     43: EXTERN PetscErrorCode  PFCreate(MPI_Comm,PetscInt,PetscInt,PF*);
     44: EXTERN PetscErrorCode  PFSetType(PF,PFType,void*);
     45: EXTERN PetscErrorCode  PFSet(PF,PetscErrorCode(*)(void*,PetscInt,PetscScalar*,PetscScalar*),PetscErrorCode(*)(void*,Vec,Vec),PetscErrorCode(*)(void*,PetscViewer),PetscErrorCode(*)(void*),void*);
     46: EXTERN PetscErrorCode  PFApply(PF,PetscInt,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[]);

     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,PFType*);

     65: EXTERN PetscErrorCode  PFView(PF,PetscViewer);

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

     70: #endif