Driver for ARPARK solvers. More...
#include <ArpackSolver.hxx>
Public Member Functions | |
ArpackSolver () | |
Constructor. | |
~ArpackSolver () | |
Destructor. | |
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. More... | |
void | CheckParameter () |
Check parameters. | |
void | Clear () |
Clear memories. | |
void | Allocate () |
Allocates arrays. | |
void | Deallocate () |
Deallocates arrays. | |
void | SetArpackVerbose () |
tells to Arpack to display debug information | |
void | ClearArpackVerbose () |
No ARPACK info is to be displayed. | |
Y * | GetFirstWorkVector () |
Gets the address of the first vector in the ARPACK working array. | |
Y * | GetSecondWorkVector () |
Gets the address of the second vector in the ARPACK working array. | |
Y * | GetEigenVector (int index) |
Gets one eigenvector. More... | |
Y | GetEigenValue (int index) |
Gets one eigenvalue. More... | |
int | GetReverseCommunicationFlag () |
Gets the reverse communication flag. | |
void | SetReverseCommunicationFlag (int ido) |
Sets the reverse communication flag. More... | |
int | GetInfoFlag () |
Gets the info flag. | |
void | SetInfoFlag (int info) |
Sets the info flag. More... | |
int | GetConvergedNumber () |
Gets the number of "converged" Ritz values. | |
bool | Continue () |
Calls ARPACK computation routine. | |
bool | Finish () |
Post-processing. | |
Static Public Member Functions | |
static void | SetArpackVerbose (string s) |
tells to Arpack to display debug information | |
Protected Attributes | |
int | n_ |
Dimension of the problem. | |
int | nev_ |
Number of eigenvalues to be computed. | |
int | ncv_ |
Number of Arnoldi vectors generated at each iteration. | |
int | maxit_ |
Maximum number of Arnoldi update iterations. | |
T | tol_ |
Stopping criterion (relative accuracy of Ritz values). | |
string | solver_type_ |
Type of solver; set to "symmetric", "non-symmetric", "complex-single", or "complex-double". | |
int | mode_ |
Indicates the type of the eigenproblem (regular, shift and invert, etc). | |
string | which_ |
Specify which of the Ritz values of OP to compute. | |
char | bmat_ |
Standard ('I') or generalized ('G") eigenproblem? | |
char | HowMny_ |
Y | sigma_ |
Shift. | |
Y * | resid_ |
Residual vector. | |
int | ishfts_ |
With shift? | |
int | ldv_ |
Leading dimension of the Arnoldi basis / Schur vectors (v_). | |
int * | pselect_ |
int | ierr_ |
Error flag on output. | |
bool | rvec_ |
Eigenvectors/schur vectors to be computed? | |
int | ido_ |
ARPACK reverse communication flag. | |
int | info_ |
ARPACK error flag. | |
int | lworkl_ |
Dimension of array workl. | |
int | lworkv_ |
Dimension of array workv. | |
int | lrwork_ |
Dimension of array rwork. | |
int | iparam_ [11] |
Vector that handles original ARPACK parameters. | |
int | ipntr_ [14] |
Vector that handles original ARPACK pointers. | |
T * | rwork_ |
ARPACK internal vector. | |
Y * | workl_ |
ARPACK internal vector. | |
Y * | workd_ |
ARPACK internal vector. | |
Y * | workev_ |
ARPACK internal vector. | |
Y * | v_ |
Arnoldi basis / Schur vectors. | |
int | nconv_ |
Number of "converged" Ritz values. | |
Y * | eig_val_ |
Eigenvalues. | |
Y * | eig_vec_ |
Eigenvectors. | |
Driver for ARPARK solvers.
Definition at line 28 of file ArpackSolver.hxx.
Y Seldon::ArpackSolver< T, Y >::GetEigenValue | ( | int | index | ) |
Gets one eigenvalue.
index | index of the eigenvalue. |
Definition at line 279 of file ArpackSolver.cxx.
Y * Seldon::ArpackSolver< T, Y >::GetEigenVector | ( | int | index | ) |
Gets one eigenvector.
index | index of the eigenvector. |
Definition at line 268 of file ArpackSolver.cxx.
void Seldon::ArpackSolver< T, Y >::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.
n | dimension of the problem. |
nev | number of eigenvalues to be computed. |
ncv | number of Arnoldi vectors generated at each iteration. |
maxit | maximum number of Arnoldi update iterations. |
tol | stopping criterion (relative accuracy of Ritz values). |
solver_type | type of solver. Set to "symmetric", "non-symmetric", "complex-single", or "complex-double" |
mode | indicates the type of the eigenproblem (regular, shift and invert, etc). |
which | specify which of the Ritz values of OP to compute. |
bmat | standard ('I') or generalized ('G") eigenproblem? |
HowMny | whether eigenvectors ('A') or schur vectors ('P') to be computed. Works with 'rvec' set to false. |
with_arpack_verbose | whether ARPACK info is displayed. |
Definition at line 65 of file ArpackSolver.cxx.
void Seldon::ArpackSolver< T, Y >::SetInfoFlag | ( | int | info | ) |
Sets the info flag.
info | the info flag to set. |
Definition at line 317 of file ArpackSolver.cxx.
void Seldon::ArpackSolver< T, Y >::SetReverseCommunicationFlag | ( | int | ido | ) |
Sets the reverse communication flag.
ido | the reverse communication flag to be set. |
Definition at line 298 of file ArpackSolver.cxx.
|
protected |
Whether eigenvectors ('A') or schur vectors ('P') to be computed. Works with 'rvec' set to false.
Definition at line 55 of file ArpackSolver.hxx.
|
protected |
Logical array with dimension equal to the number of Arnoldi vectors (ncv_).
Definition at line 69 of file ArpackSolver.hxx.