Chapter 4 Hopping expansion Cross-check

The partition function for one complex field in the \(g=0\) theory is

\[ Z=\int d\mu(\phi) \,e^{-S[\phi]}\\ S= -\kappa\sum_{x}\left[ \phi^\dagger(x) \sum_\mu\phi({x+\mu}) +h.c. \right]\,, \]

The field has the costrain \(\phi^\dagger \phi=1\) so \(\phi \in U(1)\) and \(d\mu\) is the Haar measure over \(U(1)\).

4.0.1 Haar measure

The Haar measure must satisfy \[ \int d\mu(\phi)=1\\ d\mu(\phi')= d\mu(\phi) \quad\mbox{with}\quad \phi'=e^{i\delta}\phi \] these properties are statisfied by \(d\mu=d\theta/2\pi\) with \(\phi=e^{i\theta}\) \[ \int_0^{2\pi} \frac{d\theta}{2\pi}=1\\ \frac{d\theta'}{2\pi}=\frac{d\theta}{2\pi} \quad\mbox{with}\quad \phi'=e^{i\delta}\phi\,. \] With these definitions we can compute \[ \int d\mu(\phi) \phi =\int_0^{2\pi} \frac{d\theta}{2\pi} e^{i\theta}=\oint_{\circlearrowleft} \frac{dz}{2\pi (iz)}z =0 \,,\quad\quad z=e^{i\theta} \] and similar for \(\phi^\dagger\) \[ \int d\mu(\phi) \phi^\dagger =\int_0^{2\pi} \frac{d\theta}{2\pi} e^{-i\theta}=\oint_{\circlearrowright} \frac{dz}{2\pi (-iz)}z=0 \,. \] For all the other power of \(\phi\) we observe that there will not be poles in the integrand and thus the integral will be zero \[ \int d\mu(\phi) \phi^n=0 \quad \mbox{for}\quad n>0\,. \]

4.0.2 Partition function for small hopping parameter \(\kappa\)

Expanding the partition function around \(\kappa=0\) we obtain

\[ Z=\int \prod_x \frac{d\theta(x)}{2\pi} \left[1+\kappa\sum_{x}\left[ \phi^\dagger(x) \sum_\mu\phi({x+\mu}) +h.c. \right]\right]+O(\kappa^2)=1+O(\kappa^2)\,, \] we have use the fact the in the \(O(\kappa)\) term there is at least one integral of the form \(\int d\theta(x) \phi(x)=0\). Notice that up to order \(O(\kappa^2)\) the partition function is already normalized to 1.

4.0.3 Energy

We define the Energy observable as \[ E=\frac{1}{2V}\sum_{x}\left[ \phi^\dagger(x) \sum_\mu\phi({x+\mu}) +h.c. \right]=\frac{V}{2\kappa}S\,. \] It’s expectation value is

\[ \langle E\rangle=\int \prod_x \frac{d\theta(x)}{2\pi} \left[1+\kappa\sum_{x}\left[ \phi^\dagger(x) \sum_\mu\phi({x+\mu}) +h.c. \right]\right]\frac{1}{2V}\sum_{x'}\left[ \phi^\dagger(x') \sum_\mu'\phi({x'+\mu'}) +h.c. \right]+O(\kappa^2)\,. \] The term \(O(\kappa^0)\) is zero since there always be an integral of \(\int d\theta(x) \phi(x)=0\). In the term \(O(\kappa)\) the only non zero contribution comes when the fileds in the Energy observable cancel the fields in the action, this happen only if \(x=x'\) and \(\mu=\mu'\) giving a contribution \(8V\)

  • \(2\) for \(\phi^\dagger(x)\phi(x+\mu) (\phi(x)\phi^\dagger(x+\mu))+\phi(x)\phi^\dagger(x+\mu) (\phi(x)^\dagger\phi(x+\mu))\);
  • \(4\) sum over \(\mu\);
  • \(V\) sum over \(x\).

thus toghether with the overall factor \(\kappa/2V\) we get \[ \langle E\rangle=4\kappa +O(\kappa^2) \]

4.0.4 Numerical test

## Warning: `gather_()` was deprecated in tidyr 1.2.0.
## Please use `gather()` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was generated.

The result from the fit in the region \(\kappa<\) 0.06 gives

\(\langle E \rangle [\kappa<\) 0.06 \(] =\) -0.002840827 + 4.11504 \(\kappa\)

summary(fit)
## 
## Call:
## lm(formula = E_0 ~ k0, data = df)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -3.250e-04 -2.384e-04 -4.208e-05  1.687e-04  8.339e-04 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.0028408  0.0001359   -20.9   <2e-16 ***
## k0           4.1150405  0.0035760  1150.8   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0002694 on 59 degrees of freedom
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 1.324e+06 on 1 and 59 DF,  p-value: < 2.2e-16

We repeat for smaller values of \(\kappa\)

for (treshold in c(0.05,0.04,0.03)  ){
  fit<- lm(E_0~k0 , data = df[which(df$k0<treshold),])
  # chi2 and error?
  a<-coef(fit)[["(Intercept)"]]
  b<-coef(fit)[["k0"]]
  cat("$\\langle E \\rangle [\\kappa<$", treshold,"$] =$",a ,"+",b, "$\\kappa$\n\n")
}

\(\langle E \rangle [\kappa<\) 0.05 \(] =\) -0.00207288 + 4.090886 \(\kappa\)

\(\langle E \rangle [\kappa<\) 0.04 \(] =\) -0.001394341 + 4.068108 \(\kappa\)

\(\langle E \rangle [\kappa<\) 0.03 \(] =\) -0.0009570297 + 4.05229 \(\kappa\)

4.0.5 g term

We can do a similar computation setting \(\kappa_0=\kappa_1=0\) and expanding for small \(g\). We compute the expectation value of \[ E_g=\frac{1}{2V}\sum_{x}\left[ \phi_1^\dagger(x) \phi_0^3({x}) +h.c. \right]\,. \] \[ \langle E_g\rangle=\int \prod_x \frac{d\theta(x)}{2\pi} \left[1-\frac{g}{2}\sum_{x}\left[ \phi_1^\dagger(x) \phi_0^3({x}) +h.c. \right]\right]\frac{1}{2V}\sum_{x'}\left[ \phi_1^\dagger(x')\phi_0^3(x') +h.c. \right]+O(g^2)=-\frac{g}{2}\,. \]

## 
## Call:
## lm(formula = E_0 ~ g, data = df)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -0.0009660 -0.0001208  0.0001143  0.0002147  0.0006750 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.0002917  0.0001338   -2.18   0.0499 *  
## g           -0.4912214  0.0010625 -462.33   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0004177 on 12 degrees of freedom
## Multiple R-squared:  0.9999, Adjusted R-squared:  0.9999 
## F-statistic: 2.137e+05 on 1 and 12 DF,  p-value: < 2.2e-16

4.0.6 Numerical integration g term

Setting \(\kappa_0=\kappa_1=0\) we can numerically solve the integral

\[ \langle E_g\rangle=\frac{\int \prod_x \frac{d\theta_1(x) d\theta_2(x) }{(2\pi)^2} e^{-S} E_g}{\int \prod_x \frac{d\theta_1(x) d\theta_2(x) }{(2\pi)^2} e^{-S}}=\frac{\int_0^{2\pi} \frac{d\theta_1 d\theta_2 }{(2\pi)^2} e^{-g \mbox{Re}[\phi_1\phi_0^3] } \mbox{Re}[\phi_1\phi_0^3] }{\int_0^{2\pi}\frac{d\theta_1 d\theta_2 }{(2\pi)^2} e^{-g \mbox{Re}[\phi_1\phi_0^3] } } \]

Using Mathematica we get \[ \langle E_g\rangle(g=3)=-0.809985 \]

while our numerical simulation gives on an \(4^4\) lattice

df<- read.table("../check_g/E_T4_L4_msq010000000.000000_msq110000000.000000_l00.000000_l10.000000_mu0.000000_g3.000000_rep0")
m<-mean(df[,3])
err<- sd(df[,3])
cat("$$\\overline{ E_g} (g=3)=",mean_print(m,err),"$$\n")

\[\overline{ E_g} (g=3)= -0.810(17) \]

#probably the sd can not compute the variance because the vectori is too long
#below we try with binning")
bins<-1000
df_b<-rep(0,bins-1)
len<-length(df[,3])
for (i in c(1:bins-1)){
  df_b[i]<- mean(df[c(1:len/bins)+i *len/bins ,3])
}
m<-mean(df_b)
err<- sd(df_b)
cat("$$\\overline{ E_g} (g=3)=",mean_print(m,err),"$$\n")

\[\overline{ E_g} (g=3)= -0.8099(17) \]