-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ITensorMPS] Expose new KrylovKit.realeigsolve
features to dmrg
#1546
base: main
Are you sure you want to change the base?
Conversation
KrylovKit.eigsolve
features to dmrg
I didn't know about I'll take a look at this PR when I get a chance. |
KrylovKit.eigsolve
features to dmrg
KrylovKit.realeigsolve
features to dmrg
I measured the impact of |
The difference should get larger as you make |
That's what I expect as well, but 10 with 10 iterations is already 33x larger than ITensors` default. |
|
Gotcha, that makes sense. This is the what slowed down |
KrylovKit.realeigsolve
features to dmrg
KrylovKit.realeigsolve
features to dmrg
@corbett5 could you move this PR over to https://github.com/ITensor/ITensorMPS.jl? All of the MPS/MPO code is over there now. |
Description
As of
v0.8
KrylovKit supports finding the eigenvectors of real non-symmetric operators with real eigenvalues. This eliminates the need for complex arithmetic. For my problem it produces the same results as the standardhermitian=false
algorithm.I added an option to specify an early return from the eigensolve. I haven't tested this out but the documentation suggests it could significantly improve performance when the initial guess is very good, which I think could be a common case in later sweeps of DMRG so worth trying out.
I also forwarded the
eigsolve_verbosity
on toeigensolve
. Previously this argument was ignored.How Has This Been Tested?
It has not.
Checklist:
using JuliaFormatter; format(".")
in the base directory of the repository (~/.julia/dev/ITensors
) to format your code according to our style guidelines.