CheMPS2
|
#include <Davidson.h>
Public Member Functions | |
Davidson (const int veclength, const int MAX_NUM_VEC, const int NUM_VEC_KEEP, const double RTOL, const double DIAG_CUTOFF, const bool debug_print, const char problem_type= 'E') | |
Constructor. More... | |
virtual | ~Davidson () |
Destructor. | |
char | FetchInstruction (double **pointers) |
The iterator to converge the ground state vector. More... | |
int | GetNumMultiplications () const |
Get the number of matrix vector multiplications which have been performed. More... | |
Davidson class.
The Davidson class implements Davidson's algorithm to find the lowest eigenvalue and corresponding eigenvector of a symmetric operator. Information can be found in
[1] E.R. Davidson, J. Comput. Phys. 17 (1), 87-94 (1975). http://dx.doi.org/10.1016/0021-9991(75)90065-0
[2] http://people.inf.ethz.ch/arbenz/ewp/Lnotes/chapter11.pdf (In this class algorithm 11.1 is implemented, with equation (11.3) instead of line (16).)
Definition at line 34 of file Davidson.h.
CheMPS2::Davidson::Davidson | ( | const int | veclength, |
const int | MAX_NUM_VEC, | ||
const int | NUM_VEC_KEEP, | ||
const double | RTOL, | ||
const double | DIAG_CUTOFF, | ||
const bool | debug_print, | ||
const char | problem_type = 'E' |
||
) |
Constructor.
veclength | Linear dimension of the symmetric matrix, or the length of the vectors |
MAX_NUM_VEC | The maximum number of vectors in which the symmetric matrix is approximately diagonalized |
NUM_VEC_KEEP | The number of vectors to keep during deflation |
RTOL | The tolerance for the two-norm of the residual ( for convergence ) |
DIAG_CUTOFF | Cutoff value for the diagonal preconditioner |
debug_print | Whether or not to debug print |
problem_type | 'E' for eigenvalue or 'L' for linear problem. |
Definition at line 31 of file Davidson.cpp.
char CheMPS2::Davidson::FetchInstruction | ( | double ** | pointers | ) |
The iterator to converge the ground state vector.
pointers | Array of double* of length 2 when problem_type=='E' or length 3 when problem_type=='L'. |
Definition at line 105 of file Davidson.cpp.
int CheMPS2::Davidson::GetNumMultiplications | ( | ) | const |
Get the number of matrix vector multiplications which have been performed.
Definition at line 103 of file Davidson.cpp.