This exercise illustrates the modifications that are required to implement a new observable, the correlation function of the bond-hopping in the 1-dimensional Hubbard chain. This observable is interesting in many different setups. For example, the model studied here exhibits an emergent symmetry that relates the anti-ferromagnetic order parameter and the bond dimerization (I. Affleck, PRL 55 (1985) pp. 1355; I. Affleck and F. D. M. Haldane, PRB 36 (1987) pp. 5291). Another example where this quantity is useful to investigate is the 1-dimensional Su-Schrieffer-Heeger model describing an electron-phonon system.
8.3.1Applying Wick’s theorem¶
Here the task is to define a new equal-time observable, the kinetic energy correlation, given by
where refer to the unit cells and encodes the bond label. Since we are working in 1D, there is only one bond per unit cell and such that
Note that the first term of Eq. (1) is of the generic form . This expectation value can be readily decomposed into single-particle Green functions by using Wick’s theorem. It can be applied for a fixed field configuration since the Hamiltonian is then bi-linear in the fermion operators.
The second term vanishes for due to flavor symmetry (Mz-decoupling used here in the vanilla version) or due to the symmetry (density decoupling available in the generic implementation of Hubbard model). The single-particle Green functions are provided in the Obser routine, where all equal-time observables are measured, as
8.3.2Necessary code modifications¶
In solution we have the modified submodule Hamiltonian_Hubbard_Plain_Vanilla_smod.F90, as well as the parameter file. The following are the essential steps to be carried out:
Introduce the new observable and allocate the memory required to store the measurements. This is done in the subroutine
Alloc_obs(Ltau)by increasing the length of the arrayObs_eqappropriately and adding a new case to specify the filename in which the results are stored on disc. (You might want to revisit this section later on to add the time-displaced version of the correlation function by changingObs_tauin the same fashion.)The actual measurements are taken in the subroutine
Obser(GR,Phase,Ntau). WhileGRis passed to the subroutine, the first lines of code already implement the construct . (This section does not have to be modified, but it is useful to keep this in mind for future reference when you implement a new model from scratch.)The measurement of an equal-time correlation function consists of two separate parts: the connected one given by the first term in Eq. (1), and the background, given by the second term.
Implement the measurement of the connected part, stored as in this example, using the Wick decomposition sketched above.
Keep in mind that the background is non-vanishing and has to be measured separately (you can compare with the density correlation function), and is stored in .
The analysis tool will then automatically combine both contributions and evaluate Eq. (1) using the jackknife method to estimate the mean and error of the correlation function.
The 1-D Hubbard exhibits an emergent symmetry:
where and (T. Sato, M. Hohenadler et al., Phys. Rev. B 104 (2021) L161105) and this exercise provides all the tools required to study it. Beware of the large system sizes, and therefore long run times, that are required to extract the logarithmic scaling corrections. More details are discussed in the appendix of above reference.
Finally, it is straightforward to implement the time-displaced version of this correlation function, following essentially the same steps as described above. The observable is now stored in Obs_tau, the measurements are taken in ObserT, and you can find the implementation in the solution to this exercise as well.