SyTen
syten::Krylov::Standard< Matrix, Vector, OrthoPolicy, SolverPolicy > Class Template Reference

The "Standard" Krylov method using the same solver and orthonormalisation policies as TensorNetworksKrylov but with the original Lanczos order. More...

#include <standard_krylov.h>

+ Inheritance diagram for syten::Krylov::Standard< Matrix, Vector, OrthoPolicy, SolverPolicy >:
+ Collaboration diagram for syten::Krylov::Standard< Matrix, Vector, OrthoPolicy, SolverPolicy >:

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, SRDefget_projected_matrix ()
 Constructs a DenseTensor representation of the projected matrix from the stored a and b coefficients. More...
 
Standardoperator= (Standard &&)=default
 Move assignment op defaulted. More...
 
Standardoperator= (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< SRDefa
 Diagonal entries of generated matrix. More...
 
std::vector< SRDefb
 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...
 

Detailed Description

template<typename Matrix, typename Vector, typename OrthoPolicy, typename SolverPolicy>
class syten::Krylov::Standard< Matrix, Vector, OrthoPolicy, SolverPolicy >

The "Standard" Krylov method using the same solver and orthonormalisation policies as TensorNetworksKrylov but with the original Lanczos order.


The documentation for this class was generated from the following file: