Improve Chebyshev expansion for exponential
Description
Use the normal recurrence instead of the Clenshaw algorithm. This allows to truncate the expansion with a certain tolerance once the coefficients (using Bessel functions) are small enough. This improves the accuracy and is much better than a fixed number of iterations to be specified.
Also, change the estimate for the maximum energy of the discrete Hamiltonian: it needs to be a sum over all dimensions. Otherwise it is too small by a factor of three, and the expansion does not converge for larger timesteps as a part of the spectrum is capped.
In general, this method typically needs more applications of the Hamiltonian as the Lanczos method, but it has two advantages: it needs less memory (only 3 additional batches) and it avoids orthogonalization, which can be costly.
News snippet
Improve Chebyshev expansion for exponential
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.