Actual source code: slepcst.h

  2: /*
  3:       Spectral transformation module for eigenvalue problems.  
  4: */
  7: #include "petscksp.h"

  9: extern int ST_COOKIE;

 11: typedef struct _p_ST* ST;

 13: #define STSHELL     "shell"
 14: #define STSHIFT     "shift"
 15: #define STSINV      "sinvert"
 16: typedef char *STType;

 18: extern int STCreate(MPI_Comm,ST*);
 19: extern int STDestroy(ST);
 20: extern int STSetType(ST,STType);
 21: extern int STGetType(ST,STType*);
 22: extern int STSetOperators(ST,Mat,Mat);
 23: extern int STGetOperators(ST,Mat*,Mat*);
 24: extern int STSetUp(ST);
 25: extern int STSetFromOptions(ST);
 26: extern int STView(ST,PetscViewer);

 28: extern int STApply(ST,Vec,Vec);
 29: extern int STApplyB(ST,Vec,Vec);
 30: extern int STApplyNoB(ST,Vec,Vec);

 32: extern PetscFList STList;
 33: extern int STRegisterAll(char*);
 34: extern int STRegisterDestroy(void);
 35: extern int STRegister(char*,char*,char*,int(*)(ST));
 36: #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
 37: #define STRegisterDynamic(a,b,c,d) STRegister(a,b,c,0)
 38: #else
 39: #define STRegisterDynamic(a,b,c,d) STRegister(a,b,c,d)
 40: #endif

 42: extern int STSetKSP(ST,KSP);
 43: extern int STGetKSP(ST,KSP*);
 44: extern int STSetShift(ST,PetscScalar);
 45: extern int STGetShift(ST,PetscScalar*);
 46: extern int STGetNumberOfShifts(ST,int*);

 48: extern int STSetVector(ST,Vec);
 49: extern int STGetVector(ST,Vec*);

 51: extern int STSetOptionsPrefix(ST,char*);
 52: extern int STAppendOptionsPrefix(ST,char*);
 53: extern int STGetOptionsPrefix(ST,char**);

 55: extern int STBackTransform(ST,PetscScalar*,PetscScalar*);
 56: extern int STAssociatedKSPSolve(ST,Vec,Vec);

 58: extern int STGetNumberLinearIterations(ST,int*);
 59: extern int STResetNumberLinearIterations(ST);

 61: /* --------- options specific to particular spectral transformations-------- */

 63: typedef enum { STSINVERT_MATMODE_COPY, STSINVERT_MATMODE_INPLACE,
 64:                STSINVERT_MATMODE_SHELL } STSinvertMatMode;

 66: extern int STSinvertSetMatMode(ST,STSinvertMatMode);
 67: extern int STSinvertSetMatStructure(ST,MatStructure);

 69: extern int STShellSetApply(ST, int (*)(void*,Vec,Vec), void*);
 70: extern int STShellSetBackTransform(ST, int (*)(void*,PetscScalar*,PetscScalar*));
 71: extern int STShellSetName(ST,char*);
 72: extern int STShellGetName(ST,char**);

 74: #endif