The "EnergyTruncation" method (see. More...
#include <standard_energy_truncation.h>
Inheritance diagram for syten::EnergyTruncation::Standard< Matrix, Vector, OrthoPolicy, EnergyTruncationPolicy >:
Collaboration diagram for syten::EnergyTruncation::Standard< Matrix, Vector, OrthoPolicy, EnergyTruncationPolicy >: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)