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

Excitation ansatz with multi-site excitation blocks #106

Open
HumpyBlumpy opened this issue Dec 14, 2023 · 4 comments
Open

Excitation ansatz with multi-site excitation blocks #106

HumpyBlumpy opened this issue Dec 14, 2023 · 4 comments

Comments

@HumpyBlumpy
Copy link

Hi,

Is it possible to increase the size of the "B" tensor in the quasiparticle ansatz to more than a single site ?

My understanding is that in some cases a proper description of a quasiparticle may require more than one site, and the right way of checking for convergence (https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.111.080401) is by increasing the size of the "B" block rather than its bond dimension.

@lkdvos
Copy link
Member

lkdvos commented Dec 17, 2023

This is definitely possible, however not that trivial to implement. I think @maartenvd has a working version of this in https://github.com/maartenvd/MPSKitExperimental.jl (look for momentum windows), but I am not sure in what state it is, or how to use it.

@maartenvd
Copy link
Collaborator

It may be worth mentioning that the paper you linked is not directly related to the excitation ansatz as it is typically used. The paper deals with superpositions of operators with a definite physical span "L", while we change a single MPS tensor. Because we have access to the virtual degrees of freedom, we are directly changing a rather large physical region while only tuning a single tensor. There is a naive rule of thumb that the 'physical size' that the B tensor can control is roughly given by:

physical dimension ^ (N) = dimension(B tensor) =>N = log(dimension(B_tensor)) / log(physical dimension)

Therefore, you can typically pump up the mps bond dimension which should not change your groundstate very much, but will allow the B tensor to influence larger regions of space. You can even (or theoretically should be able to) use something like OptimalExpand() to expand the bond dimension without changing the approximated ground state. The B tensor will be able to use the newly added blocks, so you essentially increase the size of the B tensor.

All that said, I do have all the necessary code to make a larger B tensor work - but not in a state ready to be used. You can create momentumwindows of any size https://github.com/maartenvd/MPSKitExperimental.jl/blob/d45742b455efce4f22e212ba1fa76fe0e8e666c3/src/momentumwindow/momentum_window.jl#L26 but there's no convenient DMRG implementation that will let you find the excited state (I was using that code to calculate scattering matrices between quasiparticles). All the building blocks are there, so it's a matter of writing a for loop (and fixing things that no longer work). I have some free time coming up before the end of the year, so I'll add a notebook and some code to mpskitexperimental that shows how this can be done.

Code like that was used in https://arxiv.org/abs/1910.03064 where you have rather a-typical excitations. Can you tell us a little bit more about your model, or have you looked at other metrics (such as the variance of the quasiparticle states that you find)?

@maartenvd
Copy link
Collaborator

@HumpyBlumpy
Copy link
Author

My understanding was that increasing the bond dimension is not equivalent to increasing the size physical size of the block. For example, from these notes:

There is no guarantee that the variational energies converge to the exact excitation energy of the full hamiltonian, even for a clearly isolated excitation branch. The reason is that the effect of physical operators of growing size cannot always be reproduced by the excitation ansatz, even by growing the bond dimension.

Thanks for the code. I will play with it. Since it is DMRG, I guess it mostly useful for the fundamental excitation?
I think the larger block ansatz might be particularly useful for "excited excitations".

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

3 participants