The OrthoMat struct implements an orthonormalization that is not 'in place' of the krylov vectors, but affects the Hamiltonian matrix <f|H|f> and thus optimizes for the number of additions see arxiv:1203.2523v3. More...
#include <classic_krylov.h>
Collaboration diagram for syten::Krylov::ClassicImpl::OrthoMat< Lanczos >:Classes | |
| struct | InnerProductHelper |
| The InnerProductHelper struct provides access to the orthonormalized vectors (in a sense) More... | |
Public Types | |
| using | Matrix = DenseTensor< 2, SDef > |
| Matrix type used here. More... | |
Public Member Functions | |
| auto | mat (Lanczos const &instance, IterativeConfig const &, IterativeExit &) const |
| Returns the Hamiltonian matrix in the updated basis. More... | |
| SRDef | operator() (Lanczos const &instance, IterativeConfig const &, IterativeExit &r) const |
| operator () set up the hamiltonian matrix of the system and return it together with an object implementing the inner product of the orthogonalized vectors with the solution More... | |
Private Member Functions | |
| SDef | fhf (Index fst, Index snd) const |
| fhf get <f_i|H|f_j> More... | |
| bool | newOverlapsOK () const |
| newOverlapsOK check that the reorthonormalized vectors really are orthogonal and normalized More... | |
Private Attributes | |
| std::vector< std::vector< SDef > > | fHf |
| representation of H in the input basis of non-orthogonal vectors More... | |
| std::vector< std::vector< SDef > > | H_ |
| representation of H in the orthogonalised basis More... | |
| std::vector< std::vector< SDef > > | S |
| orthogonalising transformation for input basis More... | |
| std::vector< std::vector< SDef > > | W |
| overlap matrix of input basis vectors More... | |
The OrthoMat struct implements an orthonormalization that is not 'in place' of the krylov vectors, but affects the Hamiltonian matrix <f|H|f> and thus optimizes for the number of additions see arxiv:1203.2523v3.