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