Momentum Distribution from MPS

How do I use this algorithm? What does that parameter do?
Post Reply
theoluk
Posts: 1
Joined: 06 Sep 2024, 02:15

Momentum Distribution from MPS

Post by theoluk »

I have written code which uses dmrg to find the ground state MPS of a Bose-Hubbard system.

Code: Select all

engine = dmrg.TwoSiteDMRGEngine(psi, model, dmrg_params)
E, psi = engine.run()
It is easy enough to extract the density distribution and correlators from this, using

Code: Select all

density = psi.expectation_value('N').reshape((Lx, Ly))
corrs = psi.correlation_function('N','N')
But I am interested in extracting the momentum distribution of the resulting state. I can use expectation_value('P') to get a site-by-site magnitude, however what I am really interested in is a full 2D resolved distribution of the momentum of the state. In particular, I am interested in seeing the coherent momentum peaks in a superfluid state.

I am curious if this is something which is possible, straightforward or not, in the MPS-style formalism, since my searches so far have come up fairly empty. I would welcome any advice, papers, or directions in which to look.
User avatar
Johannes
Site Admin
Posts: 457
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: Momentum Distribution from MPS

Post by Johannes »

I'm not quite sure what you mean with "momentum distribution".
What you can do is measure the correlation function corrs=psi.correlation_function('bd', b') to get \(\bra{\psi} b^\dagger_i b_{j} \ket{\psi}\) in real space, and then perform a fourier trafo on both axes, which gives you something like \(\bra{\psi} b^\dagger_k b_{k'} \ket{\psi}\) with \(b_k = sum_j \exp(i j k) b_j\).
For that to make sense, you however need to think wether the Fourier trafo is actually well defined and physically sensible, i.e. whether those b_k still fulfill the commutation relations you expect, and whether k is a good quantum number - with MPS, we usually consider open systems at least in x-direction, where this is not the case!
Post Reply