SyTen
syten::Krylov::SolverPolicies Namespace Reference

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

Detailed Description

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.