exponential of the sum of operators on different sites

How do I use this algorithm? What does that parameter do?
Post Reply
nnit
Posts: 2
Joined: 12 May 2023, 08:44

exponential of the sum of operators on different sites

Post by nnit »

Hello,
I'm trying to calculate the expectation value of the charge parity operator. I'm working with the Bose-Hubbard model and in 1D I'm able to correctly compute the expectation value of the operator
\( O(r) = \prod_{i=0}^{r-1} \exp(i\pi(n_{i}-1)) \)
as product of single site operators.
The problem arises when I try to move on a NLegLadder. I have to consider the following operator
\( O(r, N) = \prod _{i=0}^{r-1} \exp(i \pi \sum_{y=0}^{N-1} (n_{i,y}-1)) \)
I can not use just another product of single site operators \( \exp(i \pi (n_{i,y}-1)) \), it gives me the wrong result.
I have to consider first the sites of one rung m, and then multiply it by the following rung.
How can I construct the exponential of the sum of single site operators acting on different sites?
Thank you
User avatar
Johannes
Site Admin
Posts: 428
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: exponential of the sum of operators on different sites

Post by Johannes »

I'm confused what the problem is. Clearly, there's a mathematical identity
\(\exp(i \pi \sum_y( n_{x,y} - 1)) = \prod_y \exp(i \pi (n_{x,y} - 1))\), so
\(\prod_x \exp(i \pi \sum_y( n_{x,y} - 1)) = \prod_{x,y} \exp(i \pi (n_{x,y} - 1))\), which is a product of exponentials of onsite-operators.
How do you know that "it gives the wrong result"?
Maybe, you actually want to calculate something else, like the individual signs for given x? The sum of those?
nnit
Posts: 2
Joined: 12 May 2023, 08:44

Re: exponential of the sum of operators on different sites

Post by nnit »

Hi Johannes,
I think that the result is wrong by making a comparison with this article:
https://doi.org/10.1103/PhysRevLett.118.157602
In this case they are using GFMC to simulate a system of one or more chains and calculate the quantity described above.
In my case it seems to me that I continue to treat the system as if it were a single chain in which interaction is considered only between successive sites according to the snake order of the ladder. In reality I am not sure that their result is correct and mine is wrong, but their results are aligned with other works in literature.
I also tried to build a multi-site operator by multiplying the single site operators this way

Code: Select all

Ddens = psi.sites[0].get_op('dN') 
O_p_c = np_conserved.expm(1.j * np.pi * Ddens)
psi.sites[0].add_op('O_p_c', O_p_c, hc = False)
NewOpc = tenpy.networks.site.kron(O_p_c, O_p_c, group=False)
Is this method different in principle from simply applying the product of single-site operators?
Thank you very much
User avatar
Johannes
Site Admin
Posts: 428
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: exponential of the sum of operators on different sites

Post by Johannes »

Okay, it wasn't clear to me that r < Lx, such that this is a non-trivial operator (given charge conservation). In the paper, they use r = L/2, what did you try?

if you always start at x=0, it's actually just measuring the parity of particles to the left at a given bond (say in the center at L/2, but make sure that you choose a bond between ladder rungs). If you use particle number conservation in the MPS, you basically get it for free from the charge numbers and Schmidt weights:

Code: Select all

def parity_fluctuation(psi, r, Ly):
    assert psi.chinfo.names == ['N'] or psi.chinfo.names == ['N_parity']
    charge_values, probabilities = psi.probability_per_charge(bond=r*Ly)
    return np.sum(np.mod(charge_values[:, 0], 2) * probabilities)
If you want to double-check it explicitly, you can use expectation_value_term or expectation_value_multi_sites with exactly the local O_p_c you defined, assuming that you passed the correct filling to get the desired offset.
Post Reply