Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Seldon::ArpackSolver< T, Y > Class Template Reference

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...
 
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.
 
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_
 
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.
 

Detailed Description

template<class T, class Y>
class Seldon::ArpackSolver< T, Y >

Driver for ARPARK solvers.

Definition at line 28 of file ArpackSolver.hxx.

Member Function Documentation

◆ GetEigenValue()

template<class T , class Y >
Y Seldon::ArpackSolver< T, Y >::GetEigenValue ( int  index)

Gets one eigenvalue.

Parameters
indexindex of the eigenvalue.

Definition at line 279 of file ArpackSolver.cxx.

◆ GetEigenVector()

template<class T , class Y >
Y * Seldon::ArpackSolver< T, Y >::GetEigenVector ( int  index)

Gets one eigenvector.

Parameters
indexindex of the eigenvector.

Definition at line 268 of file ArpackSolver.cxx.

◆ Init()

template<class T , class Y >
void Seldon::ArpackSolver< T, Y >::Init ( int  n,
int  nev,
int  ncv,
int  maxit,
tol,
string  solver_type,
int  mode,
string  which,
char  bmat,
char  HowMny,
bool  with_arpack_verbose = false 
)

Initializations.

Parameters
ndimension of the problem.
nevnumber of eigenvalues to be computed.
ncvnumber of Arnoldi vectors generated at each iteration.
maxitmaximum number of Arnoldi update iterations.
tolstopping criterion (relative accuracy of Ritz values).
solver_typetype of solver. Set to "symmetric", "non-symmetric", "complex-single", or "complex-double"
modeindicates the type of the eigenproblem (regular, shift and invert, etc).
whichspecify which of the Ritz values of OP to compute.
bmatstandard ('I') or generalized ('G") eigenproblem?
HowMnywhether eigenvectors ('A') or schur vectors ('P') to be computed. Works with 'rvec' set to false.
with_arpack_verbosewhether ARPACK info is displayed.

Definition at line 65 of file ArpackSolver.cxx.

◆ SetInfoFlag()

template<class T , class Y >
void Seldon::ArpackSolver< T, Y >::SetInfoFlag ( int  info)

Sets the info flag.

Parameters
infothe info flag to set.

Definition at line 317 of file ArpackSolver.cxx.

◆ SetReverseCommunicationFlag()

template<class T , class Y >
void Seldon::ArpackSolver< T, Y >::SetReverseCommunicationFlag ( int  ido)

Sets the reverse communication flag.

Parameters
idothe reverse communication flag to be set.

Definition at line 298 of file ArpackSolver.cxx.

Member Data Documentation

◆ HowMny_

template<class T , class Y >
char Seldon::ArpackSolver< T, Y >::HowMny_
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.

◆ pselect_

template<class T , class Y >
int* Seldon::ArpackSolver< T, Y >::pselect_
protected

Logical array with dimension equal to the number of Arnoldi vectors (ncv_).

Definition at line 69 of file ArpackSolver.hxx.


The documentation for this class was generated from the following files: