-
Notifications
You must be signed in to change notification settings - Fork 33
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
Comments
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. |
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)? |
it was very little work ... https://github.com/maartenvd/MPSKitExperimental.jl/blob/main/examples/QuasiparticleDMRG.ipynb |
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:
Thanks for the code. I will play with it. Since it is DMRG, I guess it mostly useful for the fundamental excitation? |
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.
The text was updated successfully, but these errors were encountered: