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

Include WI and WII time evolution MPO constructor in ITensorMPS #101

Closed
tipfom opened this issue Dec 4, 2024 · 4 comments
Closed

Include WI and WII time evolution MPO constructor in ITensorMPS #101

tipfom opened this issue Dec 4, 2024 · 4 comments

Comments

@tipfom
Copy link
Contributor

tipfom commented Dec 4, 2024

Hi,

I've created an implementation of the WI and WII MPO time evolution methods [1] in ITensor, compatible with OpSum Hamiltonians.
The current source code [2] is based on the opsum_to_mpo functionality in without qn conservation.

Is this some functionality that could be included with ITensorMPS.jl?
I'd be willing to spend some time to write an example and relevant unit tests.

Kind regards,
Tim

[1] See, e.g., https://tensornetwork.org/mps/algorithms/timeevo/mpo.html or the paper https://journals.aps.org/prb/abstract/10.1103/PhysRevB.91.165112.

[2] https://gist.github.com/tipfom/89ed4a8acae722466fab2a1b4548e984

@mtfishman
Copy link
Member

Very nice! I think it is better to design it as a separate Julia package built on top of ITensorMPS.jl, analogous to https://github.com/ITensor/ITensorMPOConstruction.jl, and then we could consider moving it into ITensorMPS.jl once it is more developed, tested, etc. We definitely wouldn't incorporate it into ITensorMPS.jl without it having support for QNs.

@tipfom
Copy link
Contributor Author

tipfom commented Dec 4, 2024

Ok, that makes perfect sense! I'll be having a look at the qn conserving construction in https://github.com/ITensor/ITensorMPS.jl/blob/main/src/opsum_to_mpo/opsum_to_mpo_qn.jl and see if I can adjust my code.

If I find the time, I can also setup a Julia package.

Should I close the issue?

@mtfishman
Copy link
Member

Note that we are working on a package: https://github.com/ITensor/ITensorPkgSkeleton.jl to make it easier to set up Julia packages living in the ITensor ecosystem. You should be able to call ITensorPkgSkeleton.generate("ITensorExpMPO.jl") (or whatever you want to call it) to generate a starting point for your package (though note that we just wrote it and are still developing it, but maybe it can still be helpful to you).

@tipfom
Copy link
Contributor Author

tipfom commented Dec 5, 2024

Thanks @mtfishman!
I've gotten it working and created ITensorExpMPO.jl.
The code now supports QN conservation, altough I've only tested it for spin systems so far.

I'll clean up the code in the near future and test fermionic systems as well.

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