SyTen

◆ eigenDavidson()

template<typename Vector , typename Matrix >
IterativeExit syten::eigenDavidson ( Vector &&  vec,
Matrix const &  mat,
IterativeConfig const &  conf,
Vector &  evec 
)
inline

Davidson eigensolver, closely follows Davidson, JOURNAL OF COMPUTATIONAL PHYSICS 17, 87-94, (1975).

The idea to just leave off the preconditioner is taken from ITensor.

Start Step A

End Step A; End Step I

Start Step B

End Step B

Start Step C

End Step C

Step D intentionally left off

Start Step E

End Step E

Start Step F

End Step F

Start Step G

End Step G

Start Step H

End Step H

Start Step I (continue with next loop)

References std::vector< T >::back(), conj(), Converged, syten::Cuda::copy(), E_Input, syten::IterativeExit::error, syten::DenseEigensolver::DenseSymEigensolverBase< Type >::evalues, syten::DenseEigensolver::DenseSymEigensolverBase< Type >::evectors, InexactArithmetic, syten::IterativeExit::iter, MaxIterations, MaxPossible, syten::IterativeExit::message, std::move(), norm(), overlap(), overThreshold(), std::vector< T >::push_back(), real(), syten::IterativeExit::reason, SYTEN_ZNORM_THRESHOLD, to_string_rd(), underThreshold(), and syten::IterativeExit::value.

+ Here is the call graph for this function: