I am trying to simulate a hard-bosonic Haldane model in the honeycomb lattice. The model is defined at Eq-2 of paper,arXiv:1603.04827. I have created the nearest neighbor bonds and next-nearest neighbor bonds as in the following way in a "Lattice"-class,
Python: Select all
NN = [(0, 1, np.array([0, 0])), (0, 1, beta1), (0, 1, -beta3)]
nNN=[(0,0,beta1),(0,0,beta2),(0,0,beta3),
(1,1,-beta1),(1,1,-beta2),(1,1,-beta3)]
Way-I:
Python: Select all
for u1, u2, dx in self.lat.next_nearest_neighbors:
self.add_coupling(1j*D,u1, 'Bd', u2, 'B', dx)
self.add_coupling(-1j*D,u1, 'B', u2, 'Bd', dx)
Way-II:
Python: Select all
for u1, u2, dx in self.lat.next_nearest_neighbors:
self.add_coupling(1j*D,u1, 'Bd', u2, 'B', dx)
self.add_coupling(-1j*D,u2, 'Bd', u1, 'B', dx)
Note:
(i) The both of the above way should produce same results.
(ii) The finite-DMRG does not show any bad behavior like the above. So, I guess, in the i-DMRG code there must be a problem in the environment update part. Because complex hopping is direction dependent, so may be the direction dependent situation is not encountered in the environment update part. It is just my guess

(iii) I know i-DMRG is not good for critical points when the correlation length is large. For my simulation, I have avoided those points in parameter space.
Sincerely,
Dhiman