Page 1 of 1

Bosonic Haldane Model

Posted: 20 Aug 2020, 22:48
by nervxxx
I am going through some example models, and was looking at the Bosonic Haldane Model in particular:

https://github.com/tenpy/tenpy/blob/mas ... py#L13-L80

It is stated that the Hamiltonian reads
.. math ::
H = \sum_{ij} t_{ij} b_i^\dagger b_j + \sum_i \mu (n_{A, i} - n_{B, i})
+ V \sum_{\langle ij \rangle, i<j} n_{A, i} n_{B, j}
However, looking at the implementation of on-site terms I see

Code: Select all

        for u in range(len(self.lat.unit_cell)):
            self.add_onsite(mu, 0, 'N', category='mu N')
            self.add_onsite(-mu, 1, 'N', category='mu N')
Is this code double-summing? I mean, the for-loop runs over u=0,1 of the honeycomb, and seems to repeat the same action in each pass. So it feels like it is implementing \sum_i 2\mu (n_{A,i} - n_{B,i}). Or, am I mistaken and not understanding its action correctly at all?

Re: Bosonic Haldane Model

Posted: 21 Aug 2020, 09:51
by Johannes
You're right, that's a double counting. Good catch, thanks for pointing it out!
The Fermionic Hofstadter model has the same problem, of course.
Additionally, one of the example models had the issue.

I've fixed it in a8448f36c23fda6f2ea8217f4f8e938acb7f67df
@bart Did you see this? Any other consequences?

Re: Bosonic Haldane Model

Posted: 15 Dec 2020, 14:40
by bart
Thanks for spotting this and apologies for the slow reply. The will have consequences for any case where the chemical potential is non-zero. This does not effect the example default parameters but it's good that it's fixed now.