Skip to content
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

Quantum Chemistry application #36

Open
dfelmanl opened this issue Nov 23, 2024 · 2 comments
Open

Quantum Chemistry application #36

dfelmanl opened this issue Nov 23, 2024 · 2 comments

Comments

@dfelmanl
Copy link

Hi,

I'm interested on solving Quantum Chemistry problems with TensorKit. In the Quantum Chemistry model, it is mentioned that the "MPOHamiltonian is not well suited for quantum chemistry". Why is that?

Thank you,
Daniel

@maartenvd
Copy link
Collaborator

The quantum chemistry hamiltonian is rather special. For one, a naive implementation of the hamiltonian as an MPO would have the bond dimension scale cubicly in system size. You can do better and get it down to a quadratic scaling.

The next subtletly is that the hamiltonian has quite a bit of structure which can be further exploited to drive down the computational cost. You could for example get the c^+ c^- operators from the hermitian conjugate of the c^- c^+ operators, saving both some computations and space! There are other tricks (people seem to call it "pre-summation") that are very important if you want to obtain the correct overal scaling (I think it's supposed to be N^2).

Implementing an "optimal" state of the art code (such as block2) would be a lot of work. I have tried to get quite close in MPSKitExperimental.jl, and I have a local version that works on the newest tensorkit/mpskit. Before pushing the code I would've liked to communicate with one of the authors of a more established qcdmrg package (block2, qcmacquis, ors's budapest code, chemps2) to make sure that I am now implementing the eigenvalue problem almost optimally (or learn that I am not).

If you want access now, I can push the code already. Beware that it probably still isn't as performant (I focussed on optimising the eigenvalue problem, but this is now so fast that most time is spent in unoptimised teritory) or reliable as the other packages. It is not a problem in TensorKit or MPSKit, but simply one of implementing the hamiltonian and it's action on an MPS.

@dfelmanl
Copy link
Author

Yes, please share your local version.
I have been in contact before with the block2 author. Let me know if there is something I can help with. I would love to be on that meeting, if possible.

Thank you,
Daniel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants