Solver policies to be used by StandardKrylov and TensorNetworksKrylov. More...
Classes | |
class | Eigen |
Policy class to solve a Krylov subspace problem to get the lowest-eigenvalue eigenvector. More... | |
class | Exponential |
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... | |
class | ExponentialFineOverlap |
Exponential solver which also calculates a fine grid of overlaps for every time step taken. More... | |
struct | StandardImmediateSolve |
Tag struct to signal to the Standard solver SolverPolicy sp_result() function that it will only be called once. More... | |
Solver policies to be used by StandardKrylov and TensorNetworksKrylov.
Solver policies need to support the following interface:
SRDef sp_convergence(DenseTensor<2, SDef> mat, Params...)
: used to evaluate whether the Krylov subspace has converged, should return the change in coefficients between the last and current call. Params...
are custom arguments supplied by the caller.auto sp_result(std::vector<Vec> const& krylov, SRDef init_norm, Params...)
: evaluates the actual result, taking into account the initial norm. Params...
are custom arguments supplied by the caller.void sp_wrapup([Unused...|DenseTensor<2, SDef> projected_mat, std::vector<Vector> const& krylov, SRDef initialnorm, Params...])
: Hook to do custom computations once the Krylov space has converged. Used in time evolution to discretise the step further and evaluate overlaps at many points efficiently.