Actual source code: slepceps.h
1: /*
2: User interface for the SLEPC eigenproblem solvers.
3: */
6: #include slepc.h
7: #include slepcst.h
9: extern int EPS_COOKIE;
11: /*S
12: EPS - Abstract SLEPc object that manages all the eigenvalue
13: problem solvers.
15: Level: beginner
17: Concepts: eigen solvers
19: .seealso: EPSCreate(), ST
20: S*/
21: typedef struct _p_EPS* EPS;
23: #define EPSPOWER "power"
24: #define EPSRQI "rqi"
25: #define EPSSUBSPACE "subspace"
26: #define EPSARNOLDI "arnoldi"
27: #define EPSLAPACK "lapack"
28: /* the next ones are interfaces to external libraries */
29: #define EPSARPACK "arpack"
30: #define EPSBLZPACK "blzpack"
31: #define EPSPLANSO "planso"
32: #define EPSTRLAN "trlan"
34: typedef char * EPSType;
36: typedef enum { EPS_HEP=1, EPS_GHEP,
37: EPS_NHEP, EPS_GNHEP } EPSProblemType;
39: typedef enum { EPS_LARGEST_MAGNITUDE, EPS_SMALLEST_MAGNITUDE,
40: EPS_LARGEST_REAL, EPS_SMALLEST_REAL,
41: EPS_LARGEST_IMAGINARY, EPS_SMALLEST_IMAGINARY } EPSWhich;
43: typedef enum { EPS_MGS_ORTH, EPS_CGS_ORTH } EPSOrthogonalizationType;
44: typedef enum { EPS_ORTH_REFINE_NEVER, EPS_ORTH_REFINE_IFNEEDED,
45: EPS_ORTH_REFINE_ALWAYS } EPSOrthogonalizationRefinementType;
47: extern int EPSCreate(MPI_Comm,EPS *);
48: extern int EPSDestroy(EPS);
49: extern int EPSSetType(EPS,EPSType);
50: extern int EPSGetType(EPS,EPSType*);
51: extern int EPSSetProblemType(EPS,EPSProblemType);
52: extern int EPSGetProblemType(EPS,EPSProblemType*);
53: extern int EPSSetOperators(EPS,Mat,Mat);
54: extern int EPSSetFromOptions(EPS);
55: extern int EPSSetUp(EPS);
56: extern int EPSSolve(EPS);
57: extern int EPSView(EPS,PetscViewer);
59: extern PetscFList EPSList;
60: extern int EPSRegisterAll(char *);
61: extern int EPSRegisterDestroy(void);
62: extern int EPSRegister(char*,char*,char*,int(*)(EPS));
63: #if defined(PETSC_USE_DYNAMIC_LIBRARIES)
64: #define EPSRegisterDynamic(a,b,c,d) EPSRegister(a,b,c,0)
65: #else
66: #define EPSRegisterDynamic(a,b,c,d) EPSRegister(a,b,c,d)
67: #endif
69: extern int EPSSetST(EPS,ST);
70: extern int EPSGetST(EPS,ST*);
71: extern int EPSSetTolerances(EPS,PetscReal,int);
72: extern int EPSGetTolerances(EPS,PetscReal*,int*);
73: extern int EPSSetDimensions(EPS,int,int);
74: extern int EPSGetDimensions(EPS,int*,int*);
76: extern int EPSGetConverged(EPS,int*);
77: extern int EPSGetEigenpair(EPS,int,PetscScalar*,PetscScalar*,Vec,Vec);
78: extern int EPSComputeRelativeError(EPS,int,PetscReal*);
79: extern int EPSComputeResidualNorm(EPS,int,PetscReal*);
80: extern int EPSGetErrorEstimate(EPS,int,PetscReal*);
82: extern int EPSSetMonitor(EPS,int (*)(EPS,int,int,PetscReal*,int,void*),void*);
83: extern int EPSSetValuesMonitor(EPS,int (*)(EPS,int,int,PetscScalar*,PetscScalar*,int,void*),void*);
84: extern int EPSClearMonitor(EPS);
85: extern int EPSGetMonitorContext(EPS,void **);
86: extern int EPSGetIterationNumber(EPS,int*);
87: extern int EPSGetNumberLinearIterations(EPS eps,int*);
89: extern int EPSSetInitialVector(EPS,Vec);
90: extern int EPSGetInitialVector(EPS,Vec*);
91: extern int EPSSetDropEigenvectors(EPS);
92: extern int EPSSetWhichEigenpairs(EPS,EPSWhich);
93: extern int EPSGetWhichEigenpairs(EPS,EPSWhich*);
94: extern int EPSSetOrthogonalization(EPS,EPSOrthogonalizationType,EPSOrthogonalizationRefinementType,PetscReal);
95: extern int EPSGetOrthogonalization(EPS,EPSOrthogonalizationType*,EPSOrthogonalizationRefinementType*,PetscReal*);
97: extern int EPSIsGeneralized(EPS,PetscTruth*);
98: extern int EPSIsHermitian(EPS,PetscTruth*);
100: extern int EPSDefaultEstimatesMonitor(EPS,int,int,PetscReal*,int,void*);
101: extern int EPSDefaultValuesMonitor(EPS,int,int,PetscScalar*,PetscScalar*,int,void*);
103: extern int EPSSetOptionsPrefix(EPS,char*);
104: extern int EPSAppendOptionsPrefix(EPS,char*);
105: extern int EPSGetOptionsPrefix(EPS,char**);
107: typedef enum {/* converged */
108: EPS_CONVERGED_TOL = 2,
109: /* diverged */
110: EPS_DIVERGED_ITS = -3,
111: EPS_DIVERGED_BREAKDOWN = -4,
112: EPS_DIVERGED_NONSYMMETRIC = -5,
113: EPS_CONVERGED_ITERATING = 0} EPSConvergedReason;
115: extern int EPSGetConvergedReason(EPS,EPSConvergedReason *);
117: extern int EPSComputeExplicitOperator(EPS,Mat*);
118: extern int EPSSortEigenvalues(int,PetscScalar*,PetscScalar*,EPSWhich,int,int*);
119: extern int EPSDenseNHEP(int,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*);
120: extern int EPSDenseNHEPSorted(int,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*,int,EPSWhich);
121: extern int EPSQRDecomposition(EPS,int,int,PetscScalar*,int);
122: extern int EPSReverseProjection(EPS,int,int,PetscScalar*);
123: extern int EPSSwapEigenpairs(EPS,int,int);
125: extern int STPreSolve(ST,EPS);
126: extern int STPostSolve(ST,EPS);
127: extern int EPSSetDefaults(EPS eps);
129: /* --------- options specific to particular eigensolvers -------- */
131: extern int EPSSubspaceSetInner(EPS,int);
133: extern int EPSBlzpackSetBlockSize(EPS,int);
134: extern int EPSBlzpackSetInterval(EPS,PetscReal,PetscReal);
135: extern int EPSBlzpackSetMatGetInertia(EPS,int (*f)(Mat,int*,int*,int*));
137: #endif