The "Standard" Krylov method using the same solver and orthonormalisation policies as TensorNetworksKrylov but with the original Lanczos order. More...
#include <standard_krylov.h>
Public Types | |
using | Matrix_type = Matrix |
type of the supplied matrix More... | |
using | Vector_type = Vector |
type of the supplied vector More... | |
Public Member Functions | |
std::tuple< std::vector< Vector >, DenseTensor< 2, SRDef > > | get_krylov_and_Heff () |
DenseTensor< 2, SRDef > | get_projected_matrix () |
Constructs a DenseTensor representation of the projected matrix from the stored a and b coefficients. More... | |
Standard & | operator= (Standard &&)=default |
Move assignment op defaulted. More... | |
Standard & | operator= (Standard const &)=delete |
Copy assignment op deleted. More... | |
void | reinit (Vector &&initial_) |
Reinitialise the solver by passing in a new initial vector. More... | |
template<typename... Params> | |
IterativeExit | solve (IterativeConfig const &conf, Vector &result, Params &&... params) |
Solve the problem obeying configuration conf . More... | |
template<typename... Params> | |
IterativeExit | solve_no_extend (IterativeConfig const &conf, Vector &result, Params &&... params) |
Solves the problem once without extending the Krylov space. More... | |
Standard ()=delete | |
Default ctor deleted. More... | |
Standard (Matrix const &matrix_) | |
Second construction method: Pass in a matrix, you still have to call reinit() to pass in an initial vector. More... | |
Standard (Matrix const &matrix_, Vector &&initial_) | |
First construction method: pass in a matrix and an initial vector. More... | |
Standard (Standard &&)=default | |
Move ctor defaulted. More... | |
Standard (Standard const &)=delete | |
Copy ctor deleted. More... | |
bool | test_solve_now (IterativeConfig const &conf) |
Returns true if one should attempt a solution at this step, depending on the configuration. More... | |
template<typename... Params> | |
void | wrapup (Params &&... params) |
Hook to evaluate data at completion of the current Krylov space calculation. More... | |
Private Attributes | |
std::vector< SRDef > | a |
Diagonal entries of generated matrix. More... | |
std::vector< SRDef > | b |
Off-diagonal entries of generated matrix. More... | |
SRDef | initial_norm {NAN} |
Norm of initial state, NAN if uninitialised. More... | |
std::vector< Vector > | krylov |
Vector of generated Krylov vectors. More... | |
Matrix const & | matrix |
Matrix object to solve. More... | |
Vector | vec_stored |
temporary Krylov vector candidate. More... | |
bool | vec_valid {false} |
true if vec_stored contains a valid result of an operator application More... | |
The "Standard" Krylov method using the same solver and orthonormalisation policies as TensorNetworksKrylov but with the original Lanczos order.