Policy class to solve the Krylov problem and calculate \(
\mathrm{exp}(t H) |\psi\rangle \) given a Krylov space, a timestep t and if necessary an initial norm.
More...
#include <solver_policies.h>
Inheritance diagram for syten::Krylov::SolverPolicies::Exponential:
Collaboration diagram for syten::Krylov::SolverPolicies::Exponential:Public Member Functions | |
| SRDef | sp_convergence (DenseTensor< 2, SDef > mat, SDef _idt) |
| Returns the change in coefficients between the last call and the current call with the new matrix. More... | |
| template<typename Vec > | |
| auto | sp_result (std::vector< Vec > const &krylov, SRDef initialnorm, SDef _idt) const |
Calculates \( \mathrm{exp}(t H) |\psi\rangle \) where \(
|\psi \rangle \) is taken as the first element of krylov multiplied by its initial norm initialnorm and t = _idt. More... | |
| template<typename... Unused> | |
| void | sp_wrapup (Unused &&...) |
| Unused dummy implementation. More... | |
Static Protected Member Functions | |
| static DenseTensor< 1, SDef > | get_coeffs (DenseTensor< 2, SDef > mat, SDef _idt) |
Given a dense matrix mat and a coefficient _idt, attempts to calculate the coefficients of the basis vectors to sum up to \( \mathrm{exp}( \mathtt{_idt} H) |e_0\rangle
\). More... | |
Private Attributes | |
| DenseTensor< 1, SDef > | memoizedCoeffs |
| Coefficients calculated during previous call. More... | |
| SDef | memoizedPrefactor = NAN |
Coefficient t used during previous call. More... | |
Policy class to solve the Krylov problem and calculate \(
\mathrm{exp}(t H) |\psi\rangle \) given a Krylov space, a timestep t and if necessary an initial norm.
The timestep t is transported in the solver-dependent parameter.