SyTen
syten::EnergyTruncation::Standard< Matrix, Vector, OrthoPolicy, EnergyTruncationPolicy > Class Template Reference

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, 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...
 
 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< SRDefa
 Diagonal entries of generated matrix. More...
 
std::vector< SRDefb
 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...
 

Detailed Description

template<typename Matrix, typename Vector, typename OrthoPolicy, typename EnergyTruncationPolicy>
class syten::EnergyTruncation::Standard< Matrix, Vector, OrthoPolicy, EnergyTruncationPolicy >

The "EnergyTruncation" method (see.

Holtzner et al.: https://journals.aps.org/prb/abstract/10.1103/PhysRevB.83.195115)


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