20 #ifndef SELDON_FILE_ARPACKSOLVER_HXX
27 template<
class T,
class Y>
117 void Init(
int n,
int nev,
int ncv,
int maxit, T tol,
string solver_type,
118 int mode,
string which,
char bmat,
char HowMny,
119 bool with_arpack_verbose =
false);
150 #define SELDON_FILE_ARPACKSOLVER_HXX
Y * v_
Arnoldi basis / Schur vectors.
Y * GetSecondWorkVector()
Gets the address of the second vector in the ARPACK working array.
void Deallocate()
Deallocates arrays.
T tol_
Stopping criterion (relative accuracy of Ritz values).
int nconv_
Number of "converged" Ritz values.
void SetReverseCommunicationFlag(int ido)
Sets the reverse communication flag.
void CheckParameter()
Check parameters.
~ArpackSolver()
Destructor.
Y * resid_
Residual vector.
Y * workev_
ARPACK internal vector.
int GetReverseCommunicationFlag()
Gets the reverse communication flag.
int maxit_
Maximum number of Arnoldi update iterations.
int n_
Dimension of the problem.
bool rvec_
Eigenvectors/schur vectors to be computed?
bool Finish()
Post-processing.
Driver for ARPARK solvers.
Y * workl_
ARPACK internal vector.
int ipntr_[14]
Vector that handles original ARPACK pointers.
int ido_
ARPACK reverse communication flag.
bool Continue()
Calls ARPACK computation routine.
int GetInfoFlag()
Gets the info flag.
int GetConvergedNumber()
Gets the number of "converged" Ritz values.
int mode_
Indicates the type of the eigenproblem (regular, shift and invert, etc).
Y GetEigenValue(int index)
Gets one eigenvalue.
char bmat_
Standard ('I') or generalized ('G") eigenproblem?
void SetArpackVerbose()
tells to Arpack to display debug information
void Init(int n, int nev, int ncv, int maxit, T tol, string solver_type, int mode, string which, char bmat, char HowMny, bool with_arpack_verbose=false)
Initializations.
T * rwork_
ARPACK internal vector.
int ierr_
Error flag on output.
int ldv_
Leading dimension of the Arnoldi basis / Schur vectors (v_).
Y * workd_
ARPACK internal vector.
string solver_type_
Type of solver; set to "symmetric", "non-symmetric", "complex-single", or "complex-double".
void ClearArpackVerbose()
No ARPACK info is to be displayed.
int lworkl_
Dimension of array workl.
int nev_
Number of eigenvalues to be computed.
ArpackSolver()
Constructor.
string which_
Specify which of the Ritz values of OP to compute.
void SetInfoFlag(int info)
Sets the info flag.
Y * GetEigenVector(int index)
Gets one eigenvector.
int info_
ARPACK error flag.
int lworkv_
Dimension of array workv.
Y * GetFirstWorkVector()
Gets the address of the first vector in the ARPACK working array.
int ncv_
Number of Arnoldi vectors generated at each iteration.
void Clear()
Clear memories.
int lrwork_
Dimension of array rwork.
void Allocate()
Allocates arrays.
int iparam_[11]
Vector that handles original ARPACK parameters.
Y * eig_vec_
Eigenvectors.