The "EnergyTruncation" method (see. More...
#include <standard_energy_truncation.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 | |
template<typename... Params> | |
IterativeExit | apply_energy_truncation (Config const &conf, Vector &result, Params &&... params) |
Solve the problem obeying configuration conf . More... | |
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... | |
Standard ()=delete | |
Default ctor deleted. More... | |
Standard (Matrix const &H_) | |
Second construction method: Pass in a matrix, you still have to call reinit() to pass in an initial vector. More... | |
Standard (Matrix const &H_, 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 (Config 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... | |
Public Member Functions inherited from syten::EnergyTruncation::EnergyTruncationPolicy | |
template<typename Vec > | |
SRDef | sp_convergence (DenseTensor< 2, SDef > mat, EnergyWindow const &energy_window, EnergyWindow const &relative_energy_window, SRDef const &truncation_threshold, std::vector< Vec > const &krylov) |
Tests convergence of energy truncation via i) evaluation of expansion coefficients <e_i|kv_1> of initial state |kv_1> restricted to eigenstates of effective Hamiltonian in given energy window (e_i \in (e_{min}, e_{max})) ii) convergence criterion is obtained by evaluating norm of coefficient vector. More... | |
template<typename Vec > | |
auto | sp_result (std::vector< Vec > const &krylov, Vec &result, SRDef initial_norm, bool const &project_dense) const |
Calculates the result based on coefficients previously-calculated in sp_convergence(). More... | |
template<typename... Unused> | |
void | sp_wrapup (Unused &&...) |
Unused dummy implementation. More... | |
Private Attributes | |
std::vector< SRDef > | a |
Diagonal entries of generated matrix. More... | |
std::vector< SRDef > | b |
Off-diagonal entries of generated matrix. More... | |
Matrix const & | H |
Matrix object used to construct Krylov space. More... | |
SRDef | initial_norm {NAN} |
Norm of initial state, NAN if uninitialised. More... | |
std::vector< Vector > | krylov |
Vector of generated Krylov vectors. More... | |
Vector | vec_stored |
temporary Krylov vector candidate. More... | |
The "EnergyTruncation" method (see.
Holtzner et al.: https://journals.aps.org/prb/abstract/10.1103/PhysRevB.83.195115)