The ClassicKrylov struct encapsulates the Lanczos algorithm. Template Parameters are: More...
#include <classic_krylov.h>
Public Types | |
using | Matrix_type = Matrix |
The template-supplied matrix type. More... | |
using | Vector_type = Vector |
The template-supplied vector type. More... | |
Public Member Functions | |
Classic ()=default | |
the default constructor More... | |
template<typename Matrix_ , typename Vector_ , template< typename > class Solver_, template< typename > class GetMat_> | |
Classic (Classic< Matrix_, Vector_, Solver_, GetMat_ > &&other) | |
move constructor More... | |
template<typename Matrix_ , typename Vector_ , template< typename > class Solver_, template< typename > class GetMat_> | |
Classic (Classic< Matrix_, Vector_, Solver_, GetMat_ > const &other) | |
copy constructor More... | |
Classic (Matrix mat_) | |
constructor for non-assignable/-default-constructible Matrix types (like references) More... | |
template<typename... Pars> | |
IterativeExit | operator() (IterativeConfig const &conf, Pars &&...pars) |
operator() resume the lanczos algorithm More... | |
template<typename... Pars> | |
IterativeExit | operator() (Vector v, IterativeConfig const &conf, Pars &&...pars) |
operator() implements the Lanczos algorithm; discards all previous data More... | |
template<typename Matrix_ , typename Vector_ , template< typename > class Solver_, template< typename > class GetMat_> | |
Classic & | operator= (Classic< Matrix_, Vector_, Solver_, GetMat_ > &&rhs) |
move assignment. steals all data, but not solver and ortho More... | |
template<typename Matrix_ , typename Vector_ , template< typename > class Solver_, template< typename > class GetMat_> | |
Classic & | operator= (Classic< Matrix_, Vector_, Solver_, GetMat_ > const &rhs) |
copy assignment. copies all data, but not solver and ortho More... | |
template<typename... Pars> | |
void | solve (IterativeConfig &conf, IterativeExit &r, Pars &&...pars) |
Simplified interface to solve() More... | |
Public Attributes | |
std::vector< SRDef > | a |
the diagonal in the Hamiltonian matrix in the krylov space More... | |
std::vector< SRDef > | b |
the off-diagonal in the Hamiltonian matrix in the krylov space (apart from first entry, which is the initial norm) More... | |
std::vector< Vector > | krylov |
the vectors spanning the krylov space More... | |
Matrix | mat |
the matrix to 'solve' More... | |
Ortho< Classic > | ortho |
possible implementation of reorthonormalization or other side-effects More... | |
Solver< Classic > | solver |
the solver, eg exponential- or eigen-solver More... | |
Vector | vec |
a helper vector More... | |
Protected Member Functions | |
void | lanczosPart1 () |
lanczosPart1 does the orthonormalization of H|f> wrt the previous Lanczos vectors More... | |
void | lanczosPart2 () |
lanczosPart2 updates the data structures More... | |
The ClassicKrylov struct encapsulates the Lanczos algorithm. Template Parameters are:
Matrix,the | type of matrix we wish to solve. implicit interface:
|
Vector,the | type Matrix operates on. implicit interface:
|
Solver,a | template taking the type of Vector. implicit interface:
|
Ortho,a | template taking ClassicKrylov<...> as parameter. implicit interface:
|