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