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>
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.