This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

{textblock*}100pt(399pt,-96pt) CERN-TH-2016-056 Sampling of General Correlators in Worm-Algorithm Based Simulations

Tobias Rindlisbacher E-mail: rindlisbacher@itp.phys.ethz.ch ETH Zürich, Institute for Theoretical Physics, Wolfgang-Pauli-Str. 27, CH - 8093 Zürich, Switzerland Oscar Åkerlund E-mail: oscara@itp.phys.ethz.ch ETH Zürich, Institute for Theoretical Physics, Wolfgang-Pauli-Str. 27, CH - 8093 Zürich, Switzerland Philippe de Forcrand E-mail: forcrand@itp.phys.ethz.ch ETH Zürich, Institute for Theoretical Physics, Wolfgang-Pauli-Str. 27, CH - 8093 Zürich, Switzerland CERN, Physics Department, TH Unit, CH-1211 Genève 23, Switzerland
Abstract

Using the complex ϕ4\phi^{4}-model as a prototype for a system which is simulated by a worm algorithm, we show that not only the charged correlator ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, but also more general correlators such as |ϕ(x)||ϕ(y)|\mathopen{}\mathclose{{\left\langle\mathopen{}\mathclose{{\left|\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right|\mathopen{}\mathclose{{\left|\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right|}}\right\rangle or arg(ϕ(x))arg(ϕ(y))\mathopen{}\mathclose{{\left\langle\arg\mathopen{}\mathclose{{\left(}}\right.\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\mathopen{}\mathclose{{\left.}}\right)\arg\mathopen{}\mathclose{{\left(}}\right.\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, as well as condensates like |ϕ|\mathopen{}\mathclose{{\left\langle\mathopen{}\mathclose{{\left|\phi}}\right|}}\right\rangle, can be measured at every step of the Monte Carlo evolution of the worm instead of on closed-worm configurations only. The method generalizes straightforwardly to other systems simulated by worms, such as spin or sigma models.

Keywords:  Monte Carlo; Worm algorithm; Dual variables; Flux-representation; General correlators.

1 Introduction

In a paper from 2001 [1], Prokof’ev and Svistunov proposed the worm algorithm as an alternative to cluster algorithms [2] to overcome critical slowing-down in the simulation of classical spin models like the Ising or the 3 state Potts model, but also of the complex ϕ4\phi^{4} model.
Critical slowing-down usually occurs at a second order phase transition where the typical length-scale over which the degrees of freedom (e.g. the spins of an Ising system) are correlated, diverges and the system develops long-range order. Local update algorithms then usually become very inefficient due to the high energy barrier that has to be overcome to flip individual spins against the field of its nearest neighbors and to the corresponding low acceptance rate of such updates. Cluster algorithms overcome this problem by being non-local: typical structures of correlated sites, the so called clusters, are grown and then flipped as a whole. Because the typical size of these clusters grows like the correlation length, critical slowing-down is averted. Unfortunately, the typical cluster size usually grows even further when leaving the critical region and going deeper into the ordered phase, resulting in a loss of efficiency of the cluster updates which becomes particularly dramatic when the typical cluster size approaches the size of the whole system111When the typical clusters consist of almost the whole system, the cluster updates essentially just flip the whole system back and forth.. The more relevant problem with cluster algorithms is however that they are in general not useful if the system couples to an external field, as the large energy barrier that has to be overcome to flip a whole cluster against the external field quickly leads to very low acceptance rates even for moderate cluster sizes.
Worm algorithms on the other hand are based on local updates and remain relatively efficient even in the ordered phase and in the presence of external fields. For bosonic systems, worm algorithms emerge quite naturally when expressing the partition function in terms of a particular kind of integer-valued "dual" variables, the so-called flux-variables (see [1, 3, 4, 5, 6, 10] and Sec. 1.1). The working principle behind this dualization process is as follows: consider the simple system described by the following partition function:

Z=01dϕeϕ+λϕ.Z=\int\limits_{0}^{1}\mathrm{d}\,\phi\operatorname{e}^{\phi+\lambda\,\phi}\ . (1.1)

If we wanted to use Monte Carlo to compute for example expectation value and variance of the field ϕ\phi, i.e.

ϕ=log(Z)λandϕ2ϕ2=2log(Z)λ2,\big{\langle}\phi\big{\rangle}\,=\,\frac{\partial\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\lambda}\qquad\text{and}\qquad\big{\langle}\phi^{2}\big{\rangle}-\big{\langle}\phi\big{\rangle}^{2}\,=\,\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\lambda^{2}}\ , (1.2)

the standard way to do this would be to interpret eϕ+λϕ\operatorname{e}^{\phi+\lambda\,\phi} as probability weight for doing importance sampling with respect to ϕ\phi. To obtain the dual formulation, we instead write the integrand of (1.1) in a power series in ϕ\phi, carry out the integral for each monomial (which can usually be done analytically),

wn(λ)=01dϕ((1+λ)ϕ)nn!=(1+λ)n(n+1)!,w_{n}\mathopen{}\mathclose{{\left(}}\right.\lambda\mathopen{}\mathclose{{\left.}}\right)\,=\,\int\limits_{0}^{1}\mathrm{d}\,\phi\frac{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left(}}\right.1+\lambda\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left.}}\right)^{n}}{n!}\,=\,\frac{\mathopen{}\mathclose{{\left(}}\right.1+\lambda\mathopen{}\mathclose{{\left.}}\right)^{n}}{\mathopen{}\mathclose{{\left(}}\right.n+1\mathopen{}\mathclose{{\left.}}\right)!}, (1.3)

such that

Z=n=0wn(λ),Z=\sum\limits_{n=0}^{\infty}w_{n}\mathopen{}\mathclose{{\left(}}\right.\lambda\mathopen{}\mathclose{{\left.}}\right), (1.4)

and then use the wn(λ)w_{n}\mathopen{}\mathclose{{\left(}}\right.\lambda\mathopen{}\mathclose{{\left.}}\right) as probability weights for doing importance sampling with respect to the monomial order nn, which is our new, integer-valued configuration variable, in terms of which the above observables read

log(Z)λ=n1+λand2log(Z)λ2=n2n2n(1+λ)2.\frac{\partial\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\lambda}\,=\,\frac{\big{\langle}n\big{\rangle}}{1+\lambda}\qquad\text{and}\qquad\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\lambda^{2}}\,=\,\frac{\big{\langle}n^{2}\big{\rangle}-\big{\langle}n\big{\rangle}^{2}-\big{\langle}n\big{\rangle}}{\mathopen{}\mathclose{{\left(}}\right.1+\lambda\mathopen{}\mathclose{{\left.}}\right)^{2}}\ . (1.5)

This change of variables from ϕ\phi\in\mathbb{R} to n0n\in\mathbb{N}_{0} is of course only meaningful if the wn(λ)w_{n}\mathopen{}\mathclose{{\left(}}\right.\lambda\mathopen{}\mathclose{{\left.}}\right) are real and non-negative for all nn. In the above mentioned dual representation of bosonic systems, the flux variables, which can be interpreted as representing the hopping of particles/excitations between neighboring sites, play a similar role as nn. However if the excitations carry a conserved charge, these flux variables are in general subject to a so-called closed loop constraint, which makes it impossible to update them with ordinary local Metropolis. The worm algorithm deals with this problem by temporarily violating the constraint on two sites, referred to as head and tail of the worm, and updates the flux variables while the head is moved around from site to neighboring site using importance sampling. The constraint is restored as soon as head and tail meet each other again. This reformulation of the partition function in terms of flux variables also avoids the sign problem in many significant cases, notably in those where the sign problem is related to the introduction of a non-zero chemical potential (see [3, 4, 9, 10, 15] and Sec. 1.1 below).
As pointed out for example in [5, 7, 8], the sampling of the location of the head of the worm (relative to its tail) during the worm update corresponds to the sampling of the correlator for the particle to whose hopping the updated flux variables correspond, and provides therefore an easy and very efficient way to estimate this correlator by recording a histogram for the head-tail distances realized during the worm updates.
In the present paper we show, using the complex ϕ4\phi^{4}-model as a prototype for systems which can be simulated by worm algorithms, that not only the correlator ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle of the charged fields ϕ\phi and ϕ\phi^{*} (which are the excitations to whose hopping the flux variables correspond), but also more general correlators such as |ϕ(x)||ϕ(y)|\mathopen{}\mathclose{{\left\langle\mathopen{}\mathclose{{\left|\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right|\mathopen{}\mathclose{{\left|\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right|}}\right\rangle and arg(ϕ(x))arg(ϕ(y))\mathopen{}\mathclose{{\left\langle\arg\mathopen{}\mathclose{{\left(}}\right.\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\mathopen{}\mathclose{{\left.}}\right)\arg\mathopen{}\mathclose{{\left(}}\right.\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle as well as condensates like |ϕ|\mathopen{}\mathclose{{\left\langle\mathopen{}\mathclose{{\left|\phi}}\right|}}\right\rangle can be measured at every step of the Monte Carlo evolution of a worm. However, as the ϕ\phi field is integrated out exactly (and with it the U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right) symmetry), the direct measurement of such one and two-point functions requires in general the introduction of non-vanishing source terms222As an alternative to source terms, one could also introduce a background field: for the complex ϕ4\phi^{4} model discussed in this paper, one would change variables ϕϕ+ϕ0\phi\rightarrow\phi+\phi_{0} where ϕ0\phi_{0} is the background field which would be set to the vacuum expectation value. to the action, to which, as suggested in [8], correspond additional dual variables representing so-called monomers (see Sec. 1.1). Note that the necessity of a source term in order to obtain a non-vanishing result for the condensate is not a flaw of the dual formulation but a consequence of the definition of the partition function in terms of an Euclidean path-integral, which explicitly sums over all possible field configurations. This means that even in the ordered phase where the minimum of the free energy develops a U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right) degeneracy and one usually assumes (motivated by the fact that in an infinite system, vacua that correspond to different minima of the free energy do not interact) that the system undergoes spontaneous symmetry breaking and picks just one of the corresponding degenerate vacua, the partition function explicitly always sums homogeneously over all of these vacua, unless one specifies a source term in the action that gives dominant weight to just one of them. This will be discussed in more detail in Sec. 2.2 and 2.5.

The paper is organized as follows: in the remainder of this section, we first define in part 1.1 our lattice ϕ4\phi^{4} action and the corresponding partition function, then we derive, following [9], the flux-variable representation of the latter. In part 1.2 we then discuss the relation between the charged correlator and the worm algorithm. Sec. 2 is intended to demonstrate how some simple modifications of the worm algorithm allow one to measure also more general correlators as well as condensates during the worm evolution, provided a non-vanishing source term is added to the action. The section also contains a short discussion on why such a source term is necessary. A short summary follows in Sec. 3. A detailed description of our simulation algorithm is given in appendix A.

1.1 Complex ϕ4\phi^{4} with Source Terms

The Euclidean lattice action for a complex ϕ4\phi^{4} field, coupled to a chemical potential μ\mu and a (complex) source term ss (which could be thought of as an external magnetic field), reads in dd dimensions:

S[ϕ]=x{.κν=1d(e2μδν,dϕxϕx+ν^+e2μδν,dϕx+ν^ϕx)+2|ϕx|2+λ(2|ϕx|21)2(sϕx+sϕx).},S\mathopen{}\mathclose{{\left[}}\right.\phi\mathopen{}\mathclose{{\left.}}\right]\,=\,\sum\limits_{x}\biggl{\{}\bigg{.}-\kappa\,\sum\limits_{\nu=1}^{d}\mathopen{}\mathclose{{\left(}}\right.\operatorname{e}^{2\,\mu\delta_{\nu,d}}\,\phi^{*}_{x}\,\phi_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}+\operatorname{e}^{-2\,\mu\delta_{\nu,d}}\,\phi^{*}_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\,\phi_{x}\mathopen{}\mathclose{{\left.}}\right)+2\,\mathopen{}\mathclose{{\left|\phi_{x}}}\right|^{2}+\lambda\mathopen{}\mathclose{{\left(}}\right.2\,\mathopen{}\mathclose{{\left|\phi_{x}}}\right|^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}-\mathopen{}\mathclose{{\left(}}\right.s^{*}\,\phi_{x}+s\,\phi^{*}_{x}\mathopen{}\mathclose{{\left.}}\right)\bigg{.}\biggr{\}}, (1.6)

where κ\kappa and λ\lambda are dimensionless lattice parameters333We use the convention ϕ=12(ϕ1+iϕ2)\phi=\frac{1}{\sqrt{2}}\mathopen{}\mathclose{{\left(}}\right.\phi_{1}+\mathrm{i}\,\phi_{2}\mathopen{}\mathclose{{\left.}}\right), ϕ=12(ϕ1iϕ2)\phi^{*}=\frac{1}{\sqrt{2}}\mathopen{}\mathclose{{\left(}}\right.\phi_{1}-\mathrm{i}\,\phi_{2}\mathopen{}\mathclose{{\left.}}\right), which is convenient when generalizing the action to the O(N)\operatorname{O}\mathopen{}\mathclose{{\left(N}}\right) case. Note also that our κ\kappa is four times the ”standard κ\kappa” used in other lattice formulations of ϕ4\phi^{4} theory.. As (1.6) is in general complex for non-zero values of the chemical potential μ\mu, the corresponding partition function,

Z=𝒟[ϕ]eS[ϕ],Z\,=\,\int\mathcal{D}\mathopen{}\mathclose{{\left[\phi}}\right]\,\operatorname{e}^{-S\mathopen{}\mathclose{{\left[}}\right.\phi\mathopen{}\mathclose{{\left.}}\right]}, (1.7)

has a so-called sign problem, as a complex 𝒟[ϕ]eS[ϕ]\mathcal{D}\mathopen{}\mathclose{{\left[\phi}}\right]\operatorname{e}^{-S\mathopen{}\mathclose{{\left[}}\right.\phi\mathopen{}\mathclose{{\left.}}\right]} has no probabilistic meaning and can therefore not be used for importance sampling of configurations within a Monte Carlo simulation.

To overcome this problem we follow [9] and first write eS[ϕ]\operatorname{e}^{-S\mathopen{}\mathclose{{\left[}}\right.\phi\mathopen{}\mathclose{{\left.}}\right]} in (1.7) as a product of individual exponentials,

Z=𝒟[ϕ]x{.(.ν=1dexp(.κe2μδν,dϕxϕx+ν^.)exp(.κe2μδν,dϕx+ν^ϕx.).)exp(.2|ϕx|2λ(2|ϕx|21)2.)exp(sϕx)exp(sϕx).},Z\,=\,\int\mathcal{D}\mathopen{}\mathclose{{\left[\phi}}\right]\prod\limits_{x}\biggl{\{}\bigg{.}\biggl{(}\bigg{.}\prod\limits_{\nu=1}^{d}\exp\bigl{(}\big{.}\kappa\,\operatorname{e}^{2\,\mu\delta_{\nu,d}}\,\phi^{*}_{x}\,\phi_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\big{.}\bigr{)}\exp\bigl{(}\big{.}\kappa\,\operatorname{e}^{-2\,\mu\delta_{\nu,d}}\,\phi^{*}_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\,\phi_{x}\big{.}\bigr{)}\bigg{.}\biggr{)}\\ \exp\bigl{(}\big{.}-2\,\mathopen{}\mathclose{{\left|\phi_{x}}}\right|^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.2\,\mathopen{}\mathclose{{\left|\phi_{x}}}\right|^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}\big{.}\bigr{)}\exp\mathopen{}\mathclose{{\left(}}\right.s^{*}\,\phi_{x}\mathopen{}\mathclose{{\left.}}\right)\exp\mathopen{}\mathclose{{\left(}}\right.s\,\phi^{*}_{x}\mathopen{}\mathclose{{\left.}}\right)\bigg{.}\biggr{\}}, (1.8)

and then write these exponentials, except the ones that correspond to the potential part, in terms of their power-series,

exp(.κe2μδν,dϕxϕx+ν^.)=ξx,ν(ϕxϕx+ν^κeμδν,d)ξx,νξx,ν!,\exp\bigl{(}\big{.}\kappa\,\operatorname{e}^{2\,\mu\delta_{\nu,d}}\,\phi^{*}_{x}\,\phi_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\big{.}\bigr{)}\,=\,\sum\limits_{\xi_{x,\nu}}\frac{\mathopen{}\mathclose{{\left(}}\right.\phi^{*}_{x}\,\phi_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\,\kappa\,\operatorname{e}^{\mu\delta_{\nu,d}}\mathopen{}\mathclose{{\left.}}\right)^{\xi_{x,\nu}}}{\xi_{x,\nu}!}, (1.9)
exp(.κe2μδν,dϕx+ν^ϕx.)=ξ¯x,ν(ϕx+ν^ϕxκeμδν,d)ξ¯x,νξ¯x,ν!,\exp\bigl{(}\big{.}\kappa\,\operatorname{e}^{-2\,\mu\delta_{\nu,d}}\,\phi^{*}_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\,\phi_{x}\big{.}\bigr{)}\,=\,\sum\limits_{\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}}\frac{\mathopen{}\mathclose{{\left(}}\right.\phi^{*}_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\,\phi_{x}\,\kappa\,\operatorname{e}^{-\mu\delta_{\nu,d}}\mathopen{}\mathclose{{\left.}}\right)^{\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}}}{\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}!}, (1.10)

and

exp(sϕx)=mx(sϕx)mxmx!\exp\mathopen{}\mathclose{{\left(}}\right.s\,\phi^{*}_{x}\mathopen{}\mathclose{{\left.}}\right)\,=\,\sum\limits_{m_{x}}\frac{\mathopen{}\mathclose{{\left(}}\right.s\,\phi^{*}_{x}\mathopen{}\mathclose{{\left.}}\right)^{m_{x}}}{m_{x}!} (1.11)
exp(sϕx)=m¯x(sϕx)m¯x ¯mx!.\exp\mathopen{}\mathclose{{\left(}}\right.s^{*}\,\phi_{x}\mathopen{}\mathclose{{\left.}}\right)\,=\,\sum\limits_{\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}}\frac{\mathopen{}\mathclose{{\left(}}\right.s^{*}\,\phi_{x}\mathopen{}\mathclose{{\left.}}\right)^{\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}}}{\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}!}. (1.12)

After writing ϕx\phi_{x} in polar form ϕx=rxeiθx2\phi_{x}=\frac{r_{x}\operatorname{e}^{\mathrm{i}\,\theta_{x}}}{\sqrt{2}}, the partition function (1.7) can then be written as

Z={ξ,ξ¯,m,m¯}{.(.x,ν(κ2)ξx,ν+ξ¯x,νξx,ν!ξ¯x,ν!.)(.x(.s2.)mx(.s2.)m¯xmx! ¯mx!.)(.xe2μ(ξx,dξ¯x,d)ππdθxeiθx(.mxm¯x+ν(ξx,νξ¯x,ν(ξxν^,νξ¯xν^,ν)).).)(.x0drxrx1+mx+m¯x+ν(.ξx,ν+ξ¯x,ν+ξxν^,ν+ξ¯xν^,ν.)erx2λ(rx21)2.).}.Z\,=\,\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.\xi,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}},m,\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right\}}\biggl{\{}\bigg{.}\biggl{(}\bigg{.}\prod\limits_{x,\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\xi_{x,\nu}+\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}}}{\xi_{x,\nu}!\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}!}\bigg{.}\biggr{)}\biggl{(}\bigg{.}\prod\limits_{x}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{m_{x}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}}}{m_{x}!\,\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}!}\bigg{.}\biggr{)}\\ \biggl{(}\bigg{.}\prod\limits_{x}\,\operatorname{e}^{2\,\mu\mathopen{}\mathclose{{\left(}}\right.\xi_{x,d}-\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,d}\mathopen{}\mathclose{{\left.}}\right)}\,\int\limits_{-\pi}^{\pi}\mathrm{d}\,\theta_{x}\,\operatorname{e}^{-\mathrm{i}\,\theta_{x}\,\bigl{(}\big{.}m_{x}-\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.\xi_{x,\nu}-\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}-\mathopen{}\mathclose{{\left(}}\right.\xi_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}-\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}}\bigg{.}\biggr{)}\\ \biggl{(}\bigg{.}\prod\limits_{x}\,\int\limits_{0}^{\infty}\mathrm{d}\,r_{x}\,r_{x}^{1+m_{x}+\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}+\sum\limits_{\nu}\bigl{(}\big{.}\xi_{x,\nu}+\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}+\xi_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}+\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\big{.}\bigr{)}}\,\operatorname{e}^{-r_{x}^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}}\bigg{.}\biggr{)}\bigg{.}\biggr{\}}. (1.13)

The non-negative intergers ξx,ν\xi_{x,\nu}, ξ¯x,ν\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu} and mxm_{x},  ¯mx\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x} are called flux and monomer variables, respectively: ξx,ν\xi_{x,\nu} counts the number of hoppings of particles from site xx to site (x+ν^)(x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}) and of antiparticles from site (x+ν^)(x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}) to xx, while ξ¯x,ν\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu} counts the corresponding inverse moves. It is therefore convenient [9] to introduce new variables kx,νk_{x,\nu} and lx,νl_{x,\nu}, such that

ξx,νξ¯x,ν=kx,νandξx,ν+ξ¯x,ν=|kx,ν|+ 2lx,ν,lx,ν0,\xi_{x,\nu}-\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}\,=\,k_{x,\nu}\,\in\,\mathbb{Z}\qquad\text{and}\qquad\xi_{x,\nu}+\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle\xi$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x,\nu}\,=\,\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|\,+\,2\,l_{x,\nu}\quad,\quad l_{x,\nu}\in\,\mathbb{N}_{0}, (1.14)

where kx,νk_{x,\nu} counts the net charge flowing from site xx to site (x+ν^)(x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}) and (|kx,ν|+2lx,ν)(\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}) counts the total number of particles and antiparticles hopping around between xx and (x+ν^)\mathopen{}\mathclose{{\left(}}\right.x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}\mathopen{}\mathclose{{\left.}}\right). Similarly mxm_{x} and  ¯mx\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x} count the particle and anti-particle content of site xx, and we define pxp_{x} and qxq_{x} as follows,

mx ¯mx=pxandmx+ ¯mx=|px|+ 2qx,qx0,m_{x}-\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}\,=\,p_{x}\,\in\,\mathbb{Z}\qquad\text{and}\qquad m_{x}+\mathchoice{\displaystyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\displaystyle m$}}}{\textstyle\hbox to0.0pt{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}\hss}{\leavevmode\hbox{\set@color$\textstyle m$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle m$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}_{x}\,=\,\mathopen{}\mathclose{{\left|p_{x}}}\right|\,+\,2\,q_{x}\quad,\quad q_{x}\in\mathbb{N}_{0}, (1.15)

so that pxp_{x} counts the total charge content of site xx and (|px|+2qx)(\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}) its total particle content. Integrating now over the θx\theta_{x} in (1.13) and using (1.14) and (1.15) yields the final form of the ϕ4\phi^{4} partition function (up to an irrelevant constant pre-factor):

Z={k,l,p,q}x{.(.ν(κ2)|kx,ν|+2lx,ν(|kx,ν|+lx,ν)!lx,ν!.)(.s2.)12(|px|+px)+qx(.s2.)12(|px|px)+qxe2μkx,d(|px|+qx)!qx!δ(.px+ν(kx,νkxν^,ν).)Wλ(.|px|+2qx+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).).},Z\,=\,\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}\prod\limits_{x}\biggl{\{}\bigg{.}\biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+l_{x,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{x,\nu}!}\bigg{.}\biggr{)}\,\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|+p_{x}\mathopen{}\mathclose{{\left.}}\right)+q_{x}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|-p_{x}\mathopen{}\mathclose{{\left.}}\right)+q_{x}}\,\operatorname{e}^{2\,\mu\,k_{x,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|+q_{x}\mathopen{}\mathclose{{\left.}}\right)!\,q_{x}!}\\ \delta\bigl{(}\big{.}p_{x}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\,W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{\}}, (1.16)

where

Wλ(x)=0drr1+xer2λ(r21)2=0duux/2euλ(u1)22.W_{\lambda}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\,=\,\int\limits_{0}^{\infty}\mathrm{d}\,r\,r^{1+x}\,\operatorname{e}^{-r^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}}\,=\,\int\limits_{0}^{\infty}\mathrm{d}\,u\,\frac{u^{x/2}\,\operatorname{e}^{-u-\lambda\mathopen{}\mathclose{{\left(}}\right.u-1\mathopen{}\mathclose{{\left.}}\right)^{2}}}{2}. (1.17)

At first sight it seems that the source terms in (1.16) give rise to a complex phase. By writing them in the form

(.s2.)12(|px|+px)+qx(.s2.)12(|px|px)+qx=(.|s|2.)|px|+2qx(.s|s|.)px=(.rs2.)|px|+2qxeiθspx,\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|+p_{x}\mathopen{}\mathclose{{\left.}}\right)+q_{x}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|-p_{x}\mathopen{}\mathclose{{\left.}}\right)+q_{x}}\,=\,\bigl{(}\big{.}\frac{\mathopen{}\mathclose{{\left|s}}\right|}{\sqrt{2}}\big{.}\bigr{)}^{\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}}\,\bigl{(}\big{.}\frac{s}{\mathopen{}\mathclose{{\left|s}}\right|}\big{.}\bigr{)}^{p_{x}}\,=\,\bigl{(}\big{.}\frac{r_{s}}{2}\big{.}\bigr{)}^{\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}}\,\operatorname{e}^{\mathrm{i}\,\theta_{s}\,p_{x}}, (1.18)

with the radial, rs=2|s|r_{s}=\sqrt{2}\,\mathopen{}\mathclose{{\left|s}}\right|, and the polar source, θs\theta_{s}, we see that locally this is indeed the case. But due to the delta-function constraint in (1.16), we have xpx= 0\sum_{x}\,p_{x}\,=\,0444Due to the delta function constraints in (1.16) we have px=ν(kx,νkxν^,ν)p_{x}=-\sum_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right). Furthermore we have x,ν(kx,νkxν^,ν)=0\sum_{x,\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)=0, as each kk-variable appears twice in this sum with opposite sign, and therefore xpx=0\sum_{x}\,p_{x}=0., which implies xeiθspx=1\prod_{x}\operatorname{e}^{\mathrm{i}\,\theta_{s}\,p_{x}}=1, and there is therefore no net complex phase555Note that if ss and ss^{*} were treated as independent variables, (1.18) would not be true and the overall complex phase would not vanish in general.. All other terms in (1.16) are manifestly real and non-negative, and thus the flux representation (1.16) of the partition function (1.7) is sign-problem free and can be sampled by Monte Carlo.

1.2 Charged Correlator and Worm Algorithm

Due to the delta function constraints, configurations contributing to (1.16) cannot be sampled directly by a local Metropolis algorithm: the transition probabilities for local updates of the pp and kk variables would always vanish. For a non-zero source rs=2|s|r_{s}=\sqrt{2}\mathopen{}\mathclose{{\left|s}}\right|, one could sample the kk and pp variables simultaneously, such that the delta function constraint is always satisfied, but if |s|\mathopen{}\mathclose{{\left|s}}\right| is small, this would be highly inefficient due to low acceptance rates. For |s|=0\mathopen{}\mathclose{{\left|s}}\right|=0, in order to satisfy the delta function constraint, one would have to update randomly chosen closed chains of kk variables, which is in general also very inefficient. The alternative is to use a worm algorithm, which, roughly speaking, is based on the idea [1, 7, 8, 9] to update the kk variables while sampling configurations that contribute to the charged correlator ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\,\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle instead of configurations that contribute to (1.16) itself, as will be explained in what follows.

1.2.1 Charged Correlator

In order to define correlation functions, we consider from now on the source ss in (1.16) as a local quantity sxs_{x}, keeping in mind, that the partition function (or any observable) will actually only be evaluated when sx=sxs_{x}=s\,\forall x. The charged two-point function is then given by the following expression:

ϕ(x)ϕ(y)ϕ(x)ϕ(y)=2log(Z)sxsy=1Z2Zsxsy1ZZsx1ZZsy.\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\,\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle-\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\,=\,\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial s^{*}_{x}\partial s_{y}}\,=\,\frac{1}{Z}\frac{\partial^{2}Z}{\partial s^{*}_{x}\partial s_{y}}-\frac{1}{Z}\frac{\partial Z}{\partial s^{*}_{x}}\frac{1}{Z}\frac{\partial Z}{\partial s_{y}}. (1.19)

Carrying out the formal derivative of ZZ with respect to sxs^{*}_{x} in (1.16), leads to (highlighting in red the changes from (1.16)):

Zsx={k,l,p,q}{.12(.|px|px.)+qx2(.z(.s2.)12(|pz|+pz)+qz(.s2.)12(|pz|pz)+qzδx,ze2μkz,d(|pz|+qz)!qz!(.ν(κ2)|kx,ν|+2lx,ν(|kz,ν|+lz,ν)!lz,ν!.)δ(.pz+ν(kz,νkzν^,ν).)Wλ(.|pz|+2qz+ν(.|kz,ν|+|kzν^,ν|+2(lz,ν+lzν^,ν).).).).},\frac{\partial Z}{\partial s^{*}_{x}}\,=\,\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}\biggl{\{}\bigg{.}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{\frac{1}{2}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|-p_{x}\big{.}\bigr{)}+q_{x}}{\sqrt{2}}}\biggl{(}\bigg{.}\prod\limits_{z}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|-p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-\delta_{x,z}}}\,\operatorname{e}^{2\,\mu\,k_{z,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+q_{z}\mathopen{}\mathclose{{\left.}}\right)!\,q_{z}!}\\ \biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+l_{z,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{z,\nu}!}\bigg{.}\biggr{)}\delta\bigl{(}\big{.}p_{z}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{z,\nu}-k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{z}}}\right|+2\,q_{z}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{z,\nu}+l_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{)}\bigg{.}\biggr{\}}, (1.20)

which, after dividing by ZZ, can be interpreted as,

1ZZsx=1s12(|px|px)+qx,\frac{1}{Z}\frac{\partial Z}{\partial s^{*}_{x}}\,=\,\frac{1}{s^{*}}\mathopen{}\mathclose{{\left\langle\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|-p_{x}\mathopen{}\mathclose{{\left.}}\right)+q_{x}}}\right\rangle, (1.21)

Analogously the formal derivative of ZZ with respect to sys_{y} yields

1ZZsy=1s12(|py|+py)+qy,\frac{1}{Z}\frac{\partial Z}{\partial s_{y}}\,=\,\frac{1}{s}\mathopen{}\mathclose{{\left\langle\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{y}}}\right|+p_{y}\mathopen{}\mathclose{{\left.}}\right)+q_{y}}}\right\rangle, (1.22)

and for the mixed second derivative we find:

1Z2Zsxsy=1|s|2(.12(|px|px)+qx.)(.12(|py|+py)+qy.),\frac{1}{Z}\frac{\partial^{2}Z}{\partial s^{*}_{x}\partial s_{y}}\,=\,\frac{1}{\mathopen{}\mathclose{{\left|s}}\right|^{2}}\mathopen{}\mathclose{{\left\langle\bigl{(}\big{.}\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|-p_{x}\mathopen{}\mathclose{{\left.}}\right)+q_{x}\big{.}\bigr{)}\bigl{(}\big{.}\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{y}}}\right|+p_{y}\mathopen{}\mathclose{{\left.}}\right)+q_{y}\big{.}\bigr{)}}}\right\rangle, (1.23)

where, we have set sx=sy=ss_{x}=s_{y}=s as stated above. Although equations (1.21), (1.22) and (1.23) are correct, they are only well defined if |s|0\mathopen{}\mathclose{{\left|s}}\right|\neq 0. Also these expressions so far do not affect in any way the delta function constraint in (1.16) and will therefore not help in finding an efficient updating algorithm for the kk-variables.

To bring (1.20) into a more useful form, we can absorb the factor of (.12(.|px|px.)+qx.)\bigl{(}\big{.}\frac{1}{2}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|-p_{x}\big{.}\bigr{)}+q_{x}\big{.}\bigr{)} into a shift of the pxp_{x} and qxq_{x} summation variables666To improve readability, we continue to highlight in red the important changes from one equation to the next.:

  • Terms in (1.20) for which px0p_{x}\geq 0, such that (.12(.|px|px.)+qx.)=qx\bigl{(}\big{.}\frac{1}{2}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|-p_{x}\big{.}\bigr{)}+q_{x}\big{.}\bigr{)}=q_{x} can, for qx>0q_{x}>0, be written as

    12(.z(.s2.)12(|pz|+pz)+qz(.s2.)12(|pz|pz)+qzδx,ze2μkz,d(|pz|+qz)!(qzδx,z)!(.νκ|kx,ν|+2lx,ν(|kz,ν|+lz,ν)!lz,ν!.)δ(.pz+ν(kz,νkzν^,ν).)Wλ(.|pz|+2qz+ν(.|kz,ν|+|kzν^,ν|+2(lz,ν+lzν^,ν).).).).{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{\sqrt{2}}}\biggl{(}\bigg{.}\prod\limits_{z}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|-p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-\delta_{x,z}}}\,\operatorname{e}^{2\,\mu\,k_{z,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+q_{z}\mathopen{}\mathclose{{\left.}}\right)!\,\mathopen{}\mathclose{{\left(}}\right.q_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-\delta_{x,z}}\mathopen{}\mathclose{{\left.}}\right)!}\\ \biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\kappa^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+l_{z,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{z,\nu}!}\bigg{.}\biggr{)}\delta\bigl{(}\big{.}p_{z}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{z,\nu}-k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{z}}}\right|+2\,q_{z}+\sum\limits_{\nu}\bigl{(}\big{.}\big{|}k_{z,\nu}\big{|}+\big{|}k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\big{|}+2\,(l_{z,\nu}+l_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{)}. (1.24)

    By introducing new variables pzp^{\prime}_{z} and qzq^{\prime}_{z}, such that

    pz=pzδx,z,qz=qz+δx,z,p_{z}=p^{\prime}_{z}-\delta_{x,z}\qquad,\qquad q_{z}=q^{\prime}_{z}+\delta_{x,z}, (1.25)

    we have |px|=|px|1\big{|}p_{x}\big{|}=\big{|}p^{\prime}_{x}\big{|}-1 and obtain from (1.24):

    12(.z(.s2.)12(|pz|+pz)+qz(.s2.)12(|pz|pz)+qze2μkz,d(|pz|+qz)!qz!(.ν(κ2)|kx,ν|+2lx,ν(|kz,ν|+lz,ν)!lz,ν!.)δ(.pzδx,z+ν(kz,νkzν^,ν).)Wλ(.|pz|+2qz+δx,z+ν(.|kz,ν|+|kzν^,ν|+2(lz,ν+lzν^,ν).).).).{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{\sqrt{2}}}\biggl{(}\bigg{.}\prod\limits_{z}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\big{|}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\big{|}+{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\mathopen{}\mathclose{{\left.}}\right)+{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\big{|}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\big{|}-{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\mathopen{}\mathclose{{\left.}}\right)+{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}}\,\operatorname{e}^{2\,\mu\,k_{z,d}}}{\mathopen{}\mathclose{{\left(}}\right.\big{|}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\big{|}+{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}\mathopen{}\mathclose{{\left.}}\right)!\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}!}\\ \biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+l_{z,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{z,\nu}!}\bigg{.}\biggr{)}\delta\bigl{(}\big{.}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}-\delta_{x,z}}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{z,\nu}-k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\big{|}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\big{|}+2\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z}}+\sum\limits_{\nu}\bigl{(}\big{.}\big{|}k_{z,\nu}\big{|}+\big{|}k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\big{|}+2\,(l_{z,\nu}+l_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{)}. (1.26)

    Note that for terms with qx=0q_{x}=0, the right hand side of (1.25) would require qx=1q^{\prime}_{x}=-1, which is not valid as, according to (1.15), all qq-variables have to be non-negative. But these terms are anyway zero in (1.20) and it is therefore completely fine that they can not be expressed in terms of valid primed variables pxp^{\prime}_{x}, qxq^{\prime}_{x}.

  • Terms in (1.20) with px<0p_{x}<0, for which 12(|px|px)=|px|\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|-p_{x}\mathopen{}\mathclose{{\left.}}\right)=\mathopen{}\mathclose{{\left|p_{x}}}\right|, can be written as

    12(.z(.s2.)12(|pz|+pz)+qz(.s2.)12(|pz|pz)+qzδx,ze2μkz,d(|pz|+qzδx,z)!qz!(.ν(κ2)|kx,ν|+2lx,ν(|kz,ν|+lz,ν)!lz,ν!.)δ(.pz+ν(kz,νkzν^,ν).)Wλ(.|pz|+2qz+ν(.|kz,ν|+|kzν^,ν|+2(lz,ν+lzν^,ν).).).),{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{\sqrt{2}}}\biggl{(}\bigg{.}\prod\limits_{z}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|-p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-\delta_{x,z}}}\,\operatorname{e}^{2\,\mu\,k_{z,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+q_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-\delta_{x,z}}\mathopen{}\mathclose{{\left.}}\right)!\,q_{z}!}\\ \biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+l_{z,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{z,\nu}!}\bigg{.}\biggr{)}\delta\bigl{(}\big{.}p_{z}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{z,\nu}-k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{z}}}\right|+2\,q_{z}+\sum\limits_{\nu}\bigl{(}\big{.}\big{|}k_{z,\nu}\big{|}+\big{|}k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\big{|}+2\,(l_{z,\nu}+l_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{)}, (1.27)

    and by choosing pzp^{\prime}_{z} and qzq^{\prime}_{z} in order to satisfy

    pz=pzδx,z,qz=qz,p_{z}=p^{\prime}_{z}-\delta_{x,z}\qquad,\qquad q_{z}=q^{\prime}_{z}, (1.28)

    such that this time |px|=|px|+1\mathopen{}\mathclose{{\left|p_{x}}}\right|=\mathopen{}\mathclose{{\left|p^{\prime}_{x}}}\right|+1, we obtain from (1.27) again

    12(.z(.s2.)12(|pz|+pz)+qz(.s2.)12(|pz|pz)+qze2μkz,d(|pz|+qz)!qz!(.ν(κ2)|kx,ν|+2lx,ν(|kz,ν|+lz,ν)!lz,ν!.)δ(.pzδx,z+ν(kz,νkzν^,ν).)Wλ(.|pz|+2qz+δx,z+ν(.|kz,ν|+|kzν^,ν|+2(lz,ν+lzν^,ν).).).).{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{\sqrt{2}}}\biggl{(}\bigg{.}\prod\limits_{z}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\big{|}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\big{|}+{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\mathopen{}\mathclose{{\left.}}\right)+{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\big{|}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\big{|}-{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\mathopen{}\mathclose{{\left.}}\right)+{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}}\,\operatorname{e}^{2\,\mu\,k_{z,d}}}{\mathopen{}\mathclose{{\left(}}\right.\big{|}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\big{|}+{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}\mathopen{}\mathclose{{\left.}}\right)!\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}}!}\\ \biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+l_{z,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{z,\nu}!}\bigg{.}\biggr{)}\delta\bigl{(}\big{.}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}-\delta_{x,z}}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{z,\nu}-k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\big{|}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}p^{\prime}_{z}}\big{|}+2\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}q^{\prime}_{z}+\delta_{x,z}}+\sum\limits_{\nu}\bigl{(}\big{.}\big{|}k_{z,\nu}\big{|}+\big{|}k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\big{|}+2\,(l_{z,\nu}+l_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{)}. (1.29)

Dropping again the primes from the pp and qq variables, eq. (1.20) can therefore be written as

Zsx=12{k,l,p,q}z{.(.s2.)12(|pz|+pz)+qz(.s2.)12(|pz|pz)+qze2μkz,d(|pz|+qz)!qz!(.ν(κ2)|kx,ν|+2lx,ν(|kz,ν|+lz,ν)!lz,ν!.)δ(.pzδx,z+ν(kz,νkzν^,ν).)Wλ(.|pz|+2qz+δx,z+ν(.|kz,ν|+|kzν^,ν|+2(lz,ν+lzν^,ν).).).},\frac{\partial Z}{\partial s^{*}_{x}}\,=\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{\sqrt{2}}}\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}\prod\limits_{z}\biggl{\{}\bigg{.}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|-p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\,\operatorname{e}^{2\,\mu\,k_{z,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+q_{z}\mathopen{}\mathclose{{\left.}}\right)!\,q_{z}!}\\ \biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+l_{z,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{z,\nu}!}\bigg{.}\biggr{)}\delta\bigl{(}\big{.}p_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-\delta_{x,z}}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{z,\nu}-k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{z}}}\right|+2\,q_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z}}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{z,\nu}+l_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{\}}, (1.30)

and in a similar way we find

Zsx=12{k,l,p,q}z{.(.s2.)12(|pz|+pz)+qz(.s2.)12(|pz|pz)+qze2μkz,d(|pz|+qz)!qz!(.ν(κ2)|kx,ν|+2lx,ν(|kz,ν|+lz,ν)!lz,ν!.)δ(.pz+δx,z+ν(kz,νkzν^,ν).)Wλ(.|pz|+2qz+δx,z+ν(.|kz,ν|+|kzν^,ν|+2(lz,ν+lzν^,ν).).).},\frac{\partial Z}{\partial s_{x}}\,=\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{\sqrt{2}}}\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}\prod\limits_{z}\biggl{\{}\bigg{.}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|-p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\,\operatorname{e}^{2\,\mu\,k_{z,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+q_{z}\mathopen{}\mathclose{{\left.}}\right)!\,q_{z}!}\\ \biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+l_{z,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{z,\nu}!}\bigg{.}\biggr{)}\delta\bigl{(}\big{.}p_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z}}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{z,\nu}-k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{z}}}\right|+2\,q_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z}}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{z,\nu}+l_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{\}}, (1.31)

and finally:

2Zsxsy=12{k,l,p,q}z{.(.s2.)12(|pz|+pz)+qz(.s2.)12(|pz|pz)+qze2μkz,d(|pz|+qz)!qz!(.ν(κ2)|kx,ν|+2lx,ν(|kz,ν|+lz,ν)!lz,ν!.)δ(.pzδx,z+δy,z+ν(kz,νkzν^,ν).)Wλ(.|pz|+2qz+δx,z+δy,z+ν(.|kz,ν|+|kzν^,ν|+2(lz,ν+lzν^,ν).).).}.\frac{\partial^{2}Z}{\partial s^{*}_{x}\partial s_{y}}\,=\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{2}}\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}\prod\limits_{z}\biggl{\{}\bigg{.}\frac{\bigl{(}\big{.}\frac{s}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\bigl{(}\big{.}\frac{s^{*}}{\sqrt{2}}\big{.}\bigr{)}^{\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|-p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}}\,\operatorname{e}^{2\,\mu\,k_{z,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+q_{z}\mathopen{}\mathclose{{\left.}}\right)!\,q_{z}!}\\ \biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+l_{z,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{z,\nu}!}\bigg{.}\biggr{)}\delta\bigl{(}\big{.}p_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-\delta_{x,z}+\delta_{y,z}}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{z,\nu}-k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{z}}}\right|+2\,q_{z}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z}+\delta_{y,z}}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{z,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{z,\nu}+l_{z-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{\}}. (1.32)

Equations (1.30), (1.31) and (1.32) are now well defined even if |s|=0\mathopen{}\mathclose{{\left|s}}\right|=0 and we can deduce that in the flux representation formulation of the ϕ4\phi^{4} partition function, the right way to implement observables like

ϕ(x)=1ZZsx,\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\,=\,\frac{1}{Z}\,\frac{\partial Z}{\partial s^{*}_{x}}, (1.33)
ϕ(x)=1ZZsx\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\,=\,\frac{1}{Z}\,\frac{\partial Z}{\partial s_{x}} (1.34)

and

ϕ(x)ϕ(y)=1Z2Zsxsy,\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\,\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\,=\,\frac{1}{Z}\,\frac{\partial^{2}Z}{\partial s^{*}_{x}\partial s_{y}}, (1.35)

is[5, 6, 7, 8], to think of ϕ(x)\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) and ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) as external source and sink, respectively, where the effect of adding ϕ(x)\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) to the system is a change in the local constraint at xx,

δ(.px+ν(kx,νkxν^,ν).)δ(.px1+ν(kx,νkxν^,ν).),\delta\bigl{(}\big{.}p_{x}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\,\longrightarrow\,\delta\bigl{(}\big{.}p_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-1}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}, (1.36)

and in the local weight at xx,

Wλ(.|px|+2qx+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).)Wλ(.|px|+2qx+1+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).).W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\\ \longrightarrow\,W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+1}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}. (1.37)

Similarly we have for the insertion of ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right):

δ(.px+ν(kx,νkxν^,ν).)δ(.px+1+ν(kx,νkxν^,ν).),\delta\bigl{(}\big{.}p_{x}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\,\longrightarrow\,\delta\bigl{(}\big{.}p_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+1}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}, (1.38)

and,

Wλ(.|px|+2qx+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).)Wλ(.|px|+2qx+1+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).).W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\\ \longrightarrow\,W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+1}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}. (1.39)

1.2.2 Worm Algorithm

The idea behind the worm algorithm is now as follows (cf. [1, 7, 8, 9]): first propose to insert at some site x0x_{0} an external source/sink pair ϕ(x0)\phi\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right), ϕ(x0)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right). The 1-1 in the delta function constraint at x0x_{0}, coming from the ϕ(x0)\phi\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right) insertion and the +1+1 from the insertion of ϕ(x0)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right) cancel each other and the insertion of the external source/sink pair changes therefore only the argument of WλW_{\lambda} at x0x_{0}:

Wλ(.|px0|+2qx0+ν(.|kx0,ν|+|kx0ν^,ν|+2(lx0,ν+lx0ν^,ν).).)Wλ(.|px0|+2qx0+2+ν(.|kx0,ν|+|kx0ν^,ν|+2(lx0,ν+lx0ν^,ν).).).W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x_{0}}}}\right|+2\,q_{x_{0}}+\sum\limits_{\nu}\bigl{(}\big{.}\big{|}k_{x_{0},\nu}\big{|}+\big{|}k_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\big{|}+2\,(l_{x_{0},\nu}+l_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\\ \longrightarrow\,W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x_{0}}}}\right|+2\,q_{x_{0}}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+2}+\sum\limits_{\nu}\bigl{(}\big{.}\big{|}k_{x_{0},\nu}\big{|}+\big{|}k_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\big{|}+2\,(l_{x_{0},\nu}+l_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}. (1.40)

If this insertion is rejected, the proposal counts as an attempted worm update. If the insertion is accepted, the next step could either consist of proposing to remove the source/sink pair again from the system, or to move ϕ\phi^{*} from x0x_{0} to a randomly chosen neighboring site, e.g. x=x0+ν^x=x_{0}+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}. The latter update would change the product of local weights for the sites x0x_{0} and xx as follows:

δ(.px0+μ(kx0,μkx0μ^,μ).)δ(.px+μ(kx,μkxμ^,μ).)Wλ(.|px0|+2qx0+2+μ(.|kx0,μ|+|kx0μ^,μ|+2(lx0,μ+lx0μ^,μ).).)Wλ(.|px|+2qx+μ(.|kx,μ|+|kxμ^,μ|+2(lx,μ+lxμ^,μ).).)δ(.px01+μ(kx0,μkx0μ^,μ).)δ(.px+1+μ(kx,μkxμ^,μ).)Wλ(.|px0|+2qx0+1+μ(.|kx0,μ|+|kx0μ^,μ|+2(lx0,μ+lx0μ^,μ).).)Wλ(.|px|+2qx+1+μ(.|kx,μ|+|kxμ^,μ|+2(lx,μ+lxμ^,μ).).),\delta\bigl{(}\big{.}p_{x_{0}}+\sum\limits_{\mu}\mathopen{}\mathclose{{\left(}}\right.k_{x_{0},\mu}-k_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\delta\bigl{(}\big{.}p_{x}+\sum\limits_{\mu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\mu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ \cdot W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x_{0}}}}\right|+2\,q_{x_{0}}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+2}+\sum\limits_{\mu}\bigl{(}\big{.}\big{|}k_{x_{0},\mu}\big{|}+\big{|}k_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu}\big{|}+2\,(l_{x_{0},\mu}+l_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu})\big{.}\bigr{)}\big{.}\bigr{)}\\ \cdot W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}+\sum\limits_{\mu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\mu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu}}}\right|+2\,(l_{x,\mu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu})\big{.}\bigr{)}\big{.}\bigr{)}\\ \longrightarrow\delta\bigl{(}\big{.}p_{x_{0}}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-1}+\sum\limits_{\mu}\mathopen{}\mathclose{{\left(}}\right.k_{x_{0},\mu}-k_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\delta\bigl{(}\big{.}p_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+1}+\sum\limits_{\mu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\mu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ \cdot W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x_{0}}}}\right|+2\,q_{x_{0}}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+1}+\sum\limits_{\mu}\bigl{(}\big{.}\big{|}k_{x_{0},\mu}\big{|}+\big{|}k_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu}\big{|}+2\,(l_{x_{0},\mu}+l_{x_{0}-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu})\big{.}\bigr{)}\big{.}\bigr{)}\\ \cdot W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+1}+\sum\limits_{\mu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\mu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu}}}\right|+2\,(l_{x,\mu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}},\mu})\big{.}\bigr{)}\big{.}\bigr{)}, (1.41)

and in order to get a non-zero result on the right hand side of the arrow in (1.41), this update has to be combined with a simultaneous shift of the corresponding flux variable, kx,νkx,ν+1k_{x,\nu}\rightarrow k_{x,\nu}+1 (assuming for the moment that the pp variables are kept fixed) as depicted in Fig. 1. If this move of ϕ\phi^{*} from x0x_{0} to xx and the simultaneous shift kx,νkx,ν+1k_{x,\nu}\rightarrow k_{x,\nu}+1 are accepted, one can propose to move ϕ\phi^{*} further to a random nearest-neighboring site of xx, and so on. In this way, one can update the kk-variables while sampling the charged correlator ϕ(x0)ϕ(x)\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle. Whenever, during this procedure, the head of the worm hits the site x0x_{0} where also the worm’s tail is located, one can in addition to the head-shift also propose to remove the external source/sink pair again. If this latter proposal is accepted, the worm terminates: we have completed a whole worm-update and are left with a new closed-worm configuration which contributes to the partition function (1.16)777As an alternative to the insertion and removal of the external source/sink pair, one can do importance sampling with respect to the location of the pair and just reweight it away when evaluating observables on closed-worm configurations..

01122330112233ϕ(x0)\phi(x_{0})ϕ(x)\phi^{*}(x)01122330112233ϕ(x0)\phi(x_{0})ϕ(x+ν^)\phi^{*}(x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}})
Figure 1: Starting from the configuration on the left-hand side, a standard worm-update consists of proposing to shift ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) from xx to some random neighboring site, x+ν^x+\widehat{\nu}, say, and to compensate for the charge-displacement by increasing the flux-variable kx,νk_{x,\nu}, as depicted in the right-hand figure.

If |s|\mathopen{}\mathclose{{\left|s}}\right| is non-zero, one also has to include the update of the pp-variables into the worm algorithm in order to correctly sample the charged correlator. This can in principle be done by adding a new move to the worm-update algorithm, in which one replaces the shift in the kk-variable, kx,νkx,ν+1k_{x,\nu}\rightarrow k_{x,\nu}+1, required to compensate for the ±1\pm 1 in the delta functions in (1.41), by the two shifts pxpx+1p_{x}\rightarrow p_{x}+1 and px+ν^px+ν^1p_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\rightarrow p_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}-1, which could be interpreted as compensating for the displacement from xx to x+ν^x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}} of the external charge ϕ\phi^{*}, by inserting a pair of oppositely charged (dynamical) monomers at xx and x+ν^x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}. However, in this case, there is no need to restrict the set of possible locations to which the head, ϕ\phi^{*}, of the worm can be shifted to the nearest-neighboring sites of xx, and one can instead choose a random site yy as the target location (see Fig. 2). If such a move is accepted, the worm just continues from the new location as before proposing either to move the head to a nearest-neighboring site by changing a kk-variable, or to move the head to a random new site by changing two pp-variables. But still, the worm can only be terminated if the head hits again the site where its tail is located and the removal of the external source/sink pair is accepted.
The measurement of the two-point functions, e.g. of the component ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, happens by measuring the fractional Monte Carlo time during which the external source/sink pair is present in the system and located at sites xx and yy respectively.

01122330112233ϕ(x0)\phi(x_{0})ϕ(x)\phi^{*}(x)01122330112233ϕ(x0)\phi(x_{0})ϕ(y)\phi^{*}(y)
Figure 2: For |s|>0\mathopen{}\mathclose{{\left|s}}\right|>0, starting from the configuration on the left-hand side, the disconnected worm-update consists of proposing to shift ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) from xx to some random site yy and to compensate for the charge-displacement by increasing pxp_{x} (open blue circle) and decreasing pyp_{y} (filled blue circle), as depicted on the right-hand side of the figure.

So far, the algorithm is analogous to the closed-worm algorithm described in [11] for the case of a Potts model in the presence of a chemical potential and an external magnetic field. In the next section we supplement this algorithm with additional moves which allow for the sampling of more two-point functions as well as of one-point functions. For the latter the moves will be analogous to the open-worm moves of [11], but unlike [11], where simulations are performed using closed-worm or open-worm a priori, here the choice between closed-worm and open-worm will be performed stochastically.

2 Sampling General Correlators and Condensates During the Worm

In the previous section we have seen that the worm algorithm can be interpreted as sampling the two-point function 1Z2Zsxsy\frac{1}{Z}\frac{\partial^{2}Z}{\partial s^{*}_{x}\partial s_{y}}. The latter can therefore be measured in a very efficient way during the worm-update by keeping track of the fractional Monte Carlo time the external source/sink pair is present in the system and source and sink are located at xx and yy respectively.
Other observables on the other hand, can only be measured on "closed-worm" configurations, obtained in between successive worm updates888A worm update consists of either a failed attempt to insert an external source/sink pair into the system, or, if the insertion succeeds, of all local updates between insertion and removal of the source/sink pair.. The auto-correlation times of such observables do not depend on the number of worm updates but on the number of "micro-steps"[7] done during these worm updates (i.e. the number of local updates of the flux variables). It therefore makes sense to choose the number of worm updates between successive measurements (on closed-worm configurations) so that the average number of local updates is of the order of the number of degrees of freedom in the system, which corresponds to the usual definition of a sweep used in ordinary non-worm based Monte Carlo simulations. As the average worm length999The average worm length is the average number of attempted local updates between start and end of a worm, i.e. between insertion and removal of the external source/sink pair. varies as a function of the simulation parameters (κ\kappa, λ\lambda, ss), so does the optimal number of worm updates which are necessary to obtain a certain average number of local updates between successive measurements.

Refer to caption
Refer to caption
Figure 3: The figure shows for a (2+1)-dimensional system of spatial size Ns=8N_{s}=8, with couplings κ=0.25\kappa=0.25, λ=7.5\lambda=7.5 and source rs=0.01r_{s}=0.01, the integrated auto-correlation time τint\tau_{int} for the average energy as a function of μ\mu for three different values of Nt{16, 32, 48}N_{t}\in\mathopen{}\mathclose{{\left\{}}\right.16,\,32,\,48\mathopen{}\mathclose{{\left.}}\right\}. In the left-hand figure, τint\tau_{int} is measured in units of 2dN2\,d\,N worms11. With increasing μ\mu, the average worm-length increases, such that the average number of worms required to de-correlate two configurations decreases. In the right-hand figure, τint\tau_{int} is measured in units of sweeps, where a sweep is defined as the number of worm updates, such that the total number of local updates during the worm updates is of the order of the number of degrees of freedom in the system. In these units, the integrated auto-correlation time seems to depend only weakly on the volume, even at the pseudo critical points around μ0.8\mu\sim 0.8.

In Fig. 3 we show the integrated auto-correlation time for the average "energy"101010Note that we call EE the ”energy” just for simplicity: it is only one part of the full energy of the system.,

E=log(Z)κ,\mathopen{}\mathclose{{\left\langle E}}\right\rangle\,=\,\frac{\partial\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\kappa}\ , (2.1)

as a function of μ\mu, once in units of 2dN2\,d\,N worms111111The pre-factor 2dN2\,d\,N is just a normalization: d=2+1d=2+1 is the number of space-time dimensions, while NN is the number of independent components of ϕ\phi, i.e. in the present case, we have N=2N=2, as a complex scalar field can be understood as an O(2)\operatorname{O}\mathopen{}\mathclose{{\left(2}}\right) field. The factor NN reflects the fact that the worm can start with NN different choices for the head and 2d2\,d reflects the number of different directions in which the worm can start on each site. (left) and once in units of sweeps (right), where we now define a sweep, as suggested above, as the number LsweepL_{sweep} of worms which are necessary on average to proceed as many local updates as there are degrees of freedom in the system. In the first case, where the auto-correlation time is given in units of worm-updates, it can be seen that the number of such worms required to de-correlate two configurations decreases with increasing μ\mu, and that in the disordered phase, τint\tau_{int} is proportional to the system size, while in the ordered phase no volume-dependency is visible. This has of course to do with the fact that the average number of local updates required to complete a worm, increases with μ\mu and becomes proportional to the system volume in the ordered phase (see Fig. 4). In the second case, where τint\tau_{int} is measured in terms of sweeps, no volume dependency is visible, except at the pseudo-critical point. And even there, the volume dependency seems to be rather mild.

Refer to caption
Figure 4: The figure shows for a (2+1)-dimensional system of spatial size Ns=8N_{s}=8, with couplings κ=0.25\kappa=0.25, λ=7.5\lambda=7.5 and source rs=0.01r_{s}=0.01, the average worm length divided by the system volume as a function of μ\mu for four different values of Nt{24, 32, 64, 128}N_{t}\in\mathopen{}\mathclose{{\left\{}}\right.24,\,32,\,64,\,128\mathopen{}\mathclose{{\left.}}\right\}. As can be seen, for μ>0.8\mu>0.8, when the system is in the ordered phase (broken symmetry), the different curves almost coincide, which means that the worm length is proportional to the volume. The latter is not true in the symmetric phase (unbroken symmetry), but as the worms are much shorter in this phase, the different curves cannot be distinguished on the given scale.

It is highly convenient to use the above definition of a sweep as measure for the time between successive measurements, because the computational cost for such sweeps is almost independent of μ\mu (at least for a reasonably broad interval of μ\mu values) and it can therefore also efficiently be used in combination with parallel tempering [13], where it avoids long waiting times among the replicas before swap moves can take place.

Note that although we tune the number of worms per sweep so that the average number of local updates or micro-steps per sweep is of the order of the system size, the sweep itself is defined in terms of a fixed number of worm updates and not in terms of a fixed number of micro-steps. By allowing the insertion and removal of external sources/sinks, we have extended the configuration space explored by the Markov process, so that it generates both, configurations that contribute to the usual partition function ZZ, as well as configurations that contribute to partition functions of the form Z2(x,y)=2ZsxsyZ_{2}\mathopen{}\mathclose{{\left(}}\right.x,y\mathopen{}\mathclose{{\left.}}\right)=\frac{\partial^{2}Z}{\partial s^{*}_{x}\partial s_{y}}, which describe the behavior of the system in the presence of an external source ϕ\phi at xx and an external sink ϕ\phi^{*} at yy for all possible (x,y)\mathopen{}\mathclose{{\left(}}\right.x,y\mathopen{}\mathclose{{\left.}}\right). So the Markov process in fact samples configurations that contribute to the generalized partition function

Zgen=Z+x,yZ2(x,y).Z_{gen}\,=\,Z\,+\,\sum\limits_{x,y}\,Z_{2}\mathopen{}\mathclose{{\left(}}\right.x,y\mathopen{}\mathclose{{\left.}}\right)\ . (2.2)

But we want for example,

ϕ(x)ϕ(y)=Z2(x,y)Z,\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\,=\,\frac{Z_{2}\mathopen{}\mathclose{{\left(}}\right.x,y\mathopen{}\mathclose{{\left.}}\right)}{Z}\ , (2.3)

and not

ϕ(x)ϕ(y)gen=Z2(x,y)Zgen,\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle_{gen}\,=\,\frac{Z_{2}\mathopen{}\mathclose{{\left(}}\right.x,y\mathopen{}\mathclose{{\left.}}\right)}{Z_{gen}}\ , (2.4)

and therefore, only if we define a sweep in terms of a fixed number of worm updates (which, since worm updates always start and end on closed-worm configurations, equals the number of configurations that contribute to ZZ) instead of a fixed number of micro-steps, we get the correct result without having to determine the correction factor Zgen/ZZ_{gen}/Z. For observables which depend on configurations in ZZ only, this correction factor is irrelevant. Also the masses obtained from fits to (2.3) and (2.4) would of course be identical. But for example the magnetic susceptibility obtained from (2.4), i.e.

χm,gen=1Vx,yϕ(x)ϕ(y)gen\chi_{m,gen}\,=\,\frac{1}{V}\sum_{x,y}\,\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle_{gen} (2.5)

would in general be wrong.

The introduction of ZgenZ_{gen} (2.2) looks like an unnecessary complication. Indeed, in the standard worm algorithm (see e.g. [5]), one simply uses reweighting of Z2(x,x)Z_{2}\mathopen{}\mathclose{{\left(}}\right.x,x\mathopen{}\mathclose{{\left.}}\right) to estimate ZZ. Here we need ZgenZ_{gen} because, in the remainder of this section, we will further generalize to

Zgen=Z+kxZ1(k)(x)+lx,yZ2(l)(x,y),Z_{gen}\,=\,Z\,+\,\sum\limits_{k}\sum\limits_{x}Z^{(k)}_{1}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\,+\,\sum\limits_{l}\sum\limits_{x,y}Z_{2}^{(l)}\mathopen{}\mathclose{{\left(}}\right.x,y\mathopen{}\mathclose{{\left.}}\right)\ , (2.6)

where

Z1(1)(x)=Zsx=Zϕ(x),Z1(2)(x)=Zsx=Zϕ(x)Z^{(1)}_{1}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)=\frac{\partial Z}{\partial s^{*}_{x}}=Z\,\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\quad,\quad Z^{(2)}_{1}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)=\frac{\partial Z}{\partial s_{x}}=Z\,\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle (2.7)

and

Z2(1,2,3,4)(x,y)={.2Zsxsy,2Zsxsy,2Zsxsy,2Zsxsy.}.Z^{(1,2,3,4)}_{2}\mathopen{}\mathclose{{\left(}}\right.x,y\mathopen{}\mathclose{{\left.}}\right)\,=\,\biggl{\{}\bigg{.}\frac{\partial^{2}Z}{\partial s^{*}_{x}\partial s_{y}}\,,\,\frac{\partial^{2}Z}{\partial s^{*}_{x}\partial s^{*}_{y}}\,,\,\frac{\partial^{2}Z}{\partial s_{x}\partial s^{*}_{y}}\,,\,\frac{\partial^{2}Z}{\partial s_{x}\partial s_{y}}\bigg{.}\biggr{\}}\ . (2.8)

This will allow us to measure also more general correlators like ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle or ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, as well as the corresponding condensates ϕ\mathopen{}\mathclose{{\left\langle\phi}}\right\rangle and ϕ\mathopen{}\mathclose{{\left\langle\phi^{*}}}\right\rangle during the worm updates, instead of on closed-worm configurations only.

2.1 General Correlator in Terms of External Sources: New Worm Moves

To demonstrate how one can measure general correlators during the worm updates (without the use of reweighting), we use (1.18) to write the source terms in the partition function (1.16) in polar form:

Z={k,l,p,q}x{.(.ν(κ2)|kx,ν|+2lx,ν(|kx,ν|+lx,ν)!lx,ν!.)(.rs2.)|px|+2qxeiθspxe2μkx,d(|px|+qx)!qx!δ(.px+ν(kx,νkxν^,ν).)Wλ(.|px|+2qx+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).).}.Z\,=\,\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}\prod\limits_{x}\biggl{\{}\bigg{.}\biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+l_{x,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{x,\nu}!}\bigg{.}\biggr{)}\,\frac{\bigl{(}\big{.}\frac{r_{s}}{2}\big{.}\bigr{)}^{\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}}\,\operatorname{e}^{\mathrm{i}\,\theta_{s}\,p_{x}}\,\operatorname{e}^{2\,\mu\,k_{x,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|+q_{x}\mathopen{}\mathclose{{\left.}}\right)!\,q_{x}!}\\ \delta\bigl{(}\big{.}p_{x}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\,W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{\}}. (2.9)

We can then for example define the correlator for radial excitations by

r(x)r(y)r(x)r(y)=2log(Z)rs,xrs,y=1Z2Zrs,xrs,y1ZZrs,x1ZZrs,y,\mathopen{}\mathclose{{\left\langle r\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\,r\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle-\mathopen{}\mathclose{{\left\langle r\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\mathopen{}\mathclose{{\left\langle r\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\,=\,\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial r_{s,x}\partial r_{s,y}}\,=\,\frac{1}{Z}\frac{\partial^{2}Z}{\partial r_{s,x}\partial r_{s,y}}-\frac{1}{Z}\frac{\partial Z}{\partial r_{s,x}}\frac{1}{Z}\frac{\partial Z}{\partial r_{s,y}}, (2.10)

where

Zrs,z=12{k,l,p,q}(|pz|+2qz)x{.(.ν(κ2)|kx,ν|+2lx,ν(|kx,ν|+lx,ν)!lx,ν!.)(.rs2.)|px|+2qxδx,zeiθspxe2μkx,d(|px|+qx)!qx!δ(.px+ν(kx,νkxν^,ν).)Wλ(.|px|+2qx+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).).}.\frac{\partial Z}{\partial r_{s,z}}\,=\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{2}}\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+2\,q_{z}\mathopen{}\mathclose{{\left.}}\right)}\prod\limits_{x}\biggl{\{}\bigg{.}\biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+l_{x,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{x,\nu}!}\bigg{.}\biggr{)}\,\frac{\bigl{(}\big{.}\frac{r_{s}}{2}\big{.}\bigr{)}^{\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}-\delta_{x,z}}}\,\operatorname{e}^{\mathrm{i}\,\theta_{s}\,p_{x}}\,\operatorname{e}^{2\,\mu\,k_{x,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|+q_{x}\mathopen{}\mathclose{{\left.}}\right)!\,q_{x}!}\\ \delta\bigl{(}\big{.}p_{x}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\,W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{\}}. (2.11)

The meaning of this correlator becomes clear when writing the original action (1.6) in terms of spherical coordinates (rx,θx)\mathopen{}\mathclose{{\left(}}\right.r_{x},\,\theta_{x}\mathopen{}\mathclose{{\left.}}\right):

S[ϕ]=x{.κν=1drxrx+ν^cos(θxθx+ν^2iμδν,d)+rx2+λ(rx21)2rs,xrxcos(θxθs,x).}.S\mathopen{}\mathclose{{\left[}}\right.\phi\mathopen{}\mathclose{{\left.}}\right]\,=\,\sum\limits_{x}\biggl{\{}\bigg{.}-\kappa\,\sum\limits_{\nu=1}^{d}\,r_{x}r_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}-2\,\mathrm{i}\,\mu\,\delta_{\nu,d}\mathopen{}\mathclose{{\left.}}\right)\\ +\,r_{x}^{2}\,+\,\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}\,-\,r_{s,x}r_{x}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{s,x}\mathopen{}\mathclose{{\left.}}\right)\bigg{.}\biggr{\}}. (2.12)

Taking the derivative of the partition function with respect to rs,zr_{s,z} brings therefore down a factor rzcos(θzθs)r_{z}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{z}-\theta_{s}\mathopen{}\mathclose{{\left.}}\right) under the integral, which for all θz\theta_{z} measures the magnitude of the projection of the field on the direction specified by θs,z\theta_{s,z}. Analogously, taking the derivative of the partition function with respect θs,z\theta_{s,z} would bring down a factor rs,zrzsin(θzθs,z)r_{s,z}r_{z}\sin\mathopen{}\mathclose{{\left(}}\right.\theta_{z}-\theta_{s,z}\mathopen{}\mathclose{{\left.}}\right) which, after dividing by rs,zr_{s,z}, yields for all θz\theta_{z} the magnitude of the projection of the field on the direction perpendicular to the direction specified by θs,z\theta_{s,z}.

If we write

|pz|+2qz=12(|pz|+pz)+qz+12(|pz|pz)+qz,\mathopen{}\mathclose{{\left|p_{z}}}\right|+2\,q_{z}\,=\,\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|+p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}+\frac{1}{2}\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{z}}}\right|-p_{z}\mathopen{}\mathclose{{\left.}}\right)+q_{z}, (2.13)

we recognize, that by using again shifts of the form (1.25), (1.28), we can write (2.11) as

Zrs,z=12σ±1eiθsσ{k,l,p,q}x{.(.ν(κ2)|kx,ν|+2lx,ν(|kx,ν|+lx,ν)!lx,ν!.)(.rs2.)|px|+2qxeiθspxe2μkx,d(|px|+qx)!qx!δ(.px+δx,zσ+ν(kx,νkxν^,ν).)Wλ(.|px|+2qx+δx,z+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).).}=12(.eiθsZsz+eiθsZsz.).\frac{\partial Z}{\partial r_{s,z}}\,=\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\frac{1}{2}}\sum\limits_{\sigma\in\pm 1}\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\operatorname{e}^{\mathrm{i}\,\theta_{s}\,\sigma}}\,\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}\prod\limits_{x}\biggl{\{}\bigg{.}\biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+l_{x,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{x,\nu}!}\bigg{.}\biggr{)}\\ \frac{\bigl{(}\big{.}\frac{r_{s}}{2}\big{.}\bigr{)}^{\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}}\,\operatorname{e}^{\mathrm{i}\,\theta_{s}\,p_{x}}\,\operatorname{e}^{2\,\mu\,k_{x,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|+q_{x}\mathopen{}\mathclose{{\left.}}\right)!\,q_{x}!}\,\delta\bigl{(}\big{.}p_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z}\,\sigma}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z}}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{\}}\\ =\frac{1}{\sqrt{2}}\biggl{(}\bigg{.}\operatorname{e}^{-\mathrm{i}\,\theta_{s}}\,\frac{\partial Z}{\partial s^{*}_{z}}+\operatorname{e}^{\mathrm{i}\,\theta_{s}}\,\frac{\partial Z}{\partial s_{z}}\bigg{.}\biggr{)}. (2.14)

Proceeding in the same way with the second derivative, we find:

1Z2Zrs,z1rs,z2=14Zσ1,σ2±1eiθs(σ1+σ2){k,l,p,q}x{.(.ν(κ2)|kx,ν|+2lx,ν(|kx,ν|+lx,ν)!lx,ν!.)(.rs2.)|px|+2qxeiθspxe2μkx,d(|px|+qx)!qx!δ(.px+δx,z1σ1+δx,z2σ2+ν(kx,νkxν^,ν).)Wλ(.|px|+2qx+δx,z1+δx,z2+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).).).}=12(.1Z2Zsz1sz2+1Z2Zsz1sz2+e2iθsZ2Zsz1sz2+e2iθsZ2Zsz1sz2.).\frac{1}{Z}\frac{\partial^{2}Z}{\partial r_{s,z_{1}}\partial r_{s,z_{2}}}\,=\,\frac{1}{{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}4}\,Z}\sum\limits_{\sigma_{1},\sigma_{2}\in\pm 1}\,{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\operatorname{e}^{\mathrm{i}\,\theta_{s}\mathopen{}\mathclose{{\left(}}\right.\sigma_{1}+\sigma_{2}\mathopen{}\mathclose{{\left.}}\right)}}\,\sum\limits_{\mathopen{}\mathclose{{\left\{}}\right.k,l,p,q\mathopen{}\mathclose{{\left.}}\right\}}\prod\limits_{x}\biggl{\{}\bigg{.}\biggl{(}\bigg{.}\prod\limits_{\nu}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+2\,l_{x,\nu}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+l_{x,\nu}\mathopen{}\mathclose{{\left.}}\right)!\,l_{x,\nu}!}\bigg{.}\biggr{)}\\ \frac{\bigl{(}\big{.}\frac{r_{s}}{2}\big{.}\bigr{)}^{\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}}\,\operatorname{e}^{\mathrm{i}\,\theta_{s}\,p_{x}}\,\operatorname{e}^{2\,\mu\,k_{x,d}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|+q_{x}\mathopen{}\mathclose{{\left.}}\right)!\,q_{x}!}\,\delta\bigl{(}\big{.}p_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z_{1}}\,\sigma_{1}+\delta_{x,z_{2}}\,\sigma_{2}}+\sum\limits_{\nu}\mathopen{}\mathclose{{\left(}}\right.k_{x,\nu}-k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{)}\\ W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}+\delta_{x,z_{1}}+\delta_{x,z_{2}}}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}\big{.}\bigr{)}\bigg{.}\biggr{\}}\\ =\frac{1}{2}\biggl{(}\bigg{.}\frac{1}{Z}\frac{\partial^{2}Z}{\partial s^{*}_{z_{1}}\partial s^{\phantom{*}}_{z_{2}}}+\frac{1}{Z}\frac{\partial^{2}Z}{\partial s^{\phantom{*}}_{z_{1}}\partial s^{*}_{z_{2}}}+\frac{\operatorname{e}^{2\,\mathrm{i}\,\theta_{s}}}{Z}\frac{\partial^{2}Z}{\partial s_{z_{1}}\partial s_{z_{2}}}+\frac{\operatorname{e}^{-2\,\mathrm{i}\,\theta_{s}}}{Z}\frac{\partial^{2}Z}{\partial s^{*}_{z_{1}}\partial s^{*}_{z_{2}}}\bigg{.}\biggr{)}. (2.15)

Of course, (2.15) could have been obtained in a simpler way by using that

sx=rs,xeiθs,x2,sx=rs,xeiθs,x2,s_{x}=\frac{r_{s,x}\operatorname{e}^{\mathrm{i}\theta_{s,x}}}{\sqrt{2}}\quad,\qquad s^{*}_{x}=\frac{r_{s,x}\operatorname{e}^{-\mathrm{i}\theta_{s,x}}}{\sqrt{2}}, (2.16)

and therefore

Zrs,z=x(.sxrs,zZsx+sxrs,zZsx.)=eiθs,z2Zsz+eiθs,z2Zsz,\frac{\partial Z}{\partial r_{s,z}}\,=\,\sum\limits_{x}\biggl{(}\bigg{.}\frac{\partial s^{*}_{x}}{\partial r_{s,z}}\frac{\partial Z}{\partial s^{*}_{x}}\,+\,\frac{\partial s_{x}}{\partial r_{s,z}}\frac{\partial Z}{\partial s_{x}}\bigg{.}\biggr{)}\,=\,\frac{\operatorname{e}^{-\mathrm{i}\theta_{s,z}}}{\sqrt{2}}\frac{\partial Z}{\partial s^{*}_{z}}\,+\,\frac{\operatorname{e}^{\mathrm{i}\theta_{s,z}}}{\sqrt{2}}\frac{\partial Z}{\partial s_{z}}, (2.17)

and so on, but it is instructive to repeat the argument with the shifts of the pp- and qq-variables which give rise to the Kronecker deltas in the local constraints and local weights on the second and third line of (2.15).

In a similar way, one finds the correlator for tangential or angular excitations:

1Z1rs,z1rs,z22Zθs,z1θs,z2=12(.1Z2Zsz1sz2+1Z2Zsz1sz2e2iθsZ2Zsz1sz2e2iθsZ2Zsz1sz2.).\frac{1}{Z}\frac{1}{r_{s,z_{1}}r_{s,z_{2}}}\frac{\partial^{2}Z}{\partial\theta_{s,z_{1}}\partial\theta_{s,z_{2}}}\,=\\ \frac{1}{2}\biggl{(}\bigg{.}\frac{1}{Z}\frac{\partial^{2}Z}{\partial s^{*}_{z_{1}}\partial s^{\phantom{*}}_{z_{2}}}+\frac{1}{Z}\frac{\partial^{2}Z}{\partial s^{\phantom{*}}_{z_{1}}\partial s^{*}_{z_{2}}}-\frac{\operatorname{e}^{2\,\mathrm{i}\,\theta_{s}}}{Z}\frac{\partial^{2}Z}{\partial s_{z_{1}}\partial s_{z_{2}}}-\frac{\operatorname{e}^{-2\,\mathrm{i}\,\theta_{s}}}{Z}\frac{\partial^{2}Z}{\partial s^{*}_{z_{1}}\partial s^{*}_{z_{2}}}\bigg{.}\biggr{)}. (2.18)

The first two pieces inside the bracket on the last line of (2.15) and on the right hand side of (2.18) can directly be measured during the worm update described above, no matter whether rsr_{s} is zero or not. The other two pieces are non-zero only if rs>0r_{s}>0 and in order to measure them during the worm update, we have to extend the worm algorithm by an additional type of move which allows the worm to change the external source/sink at its head. This can be done by modifying the disconnected worm update described above in Fig. 2 in such a way, that instead of moving the external source ϕ\phi^{*} from xx to some other site yy and shifting pxpx+1p_{x}\rightarrow p_{x}+1 and pypy1p_{y}\rightarrow p_{y}-1, one can remove ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) completely from the system, still compensate the absence of its charge at xx by shifting pxpx+1p_{x}\rightarrow p_{x}+1, but now, instead of inserting at yy again a ϕ\phi^{*} and compensating for its charge by shifting pypy1p_{y}\rightarrow p_{y}-1, we insert a ϕ\phi and shift pypy+1p_{y}\rightarrow p_{y}+1 (see Fig. 5). If this move is accepted, the worm samples from now on the last instead of the first piece from inside the brackets on the last lines of (2.15) and (2.18). The move which changes the external charge at the head of the worm back from ϕ\phi to ϕ\phi^{*} works completely analogously, except that the pp-variables have to be shifted in the opposite direction. The complex phases appearing in these expressions get always canceled by the complex phases coming from the shifts of the pp-variables during the head-changing moves. Note also that with these additional head-changing moves, the worm can still be terminated only if its head and tail are located on the same site, and in addition, if the head’s external charge is again the same as at the beginning of the worm.

The head-changing moves are completely general: if we had chosen for example the SU(2)\operatorname{SU}\mathopen{}\mathclose{{\left(2}}\right) principal chiral model instead of complex ϕ4\phi^{4}, we could also have introduced moves that would allow us to sample correlators like π(x)π0(y)\big{\langle}\pi^{-}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\pi^{0}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)\big{\rangle}, π+(x)σ(y)\big{\langle}\pi^{+}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\sigma\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)\big{\rangle}, etc. during the worm [15]. In [16] we used this method to verify the existence of oscillatory two-point functions in the three-state Potts model if the real and imaginary parts of the field are coupled to different external fields.

01122330112233ϕ(x0)\phi(x_{0})ϕ(x)\phi^{*}(x)01122330112233ϕ(x0)\phi(x_{0})ϕ(y)\phi(y)
Figure 5: New worm moves: for |s|>0\mathopen{}\mathclose{{\left|s}}\right|>0, starting from the configuration on the left-hand side, the (necessarily disconnected) head-changing worm-update consists of proposing to remove ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) from xx, and to insert instead ϕ(y)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right) at some random other site yy. The resulting charge-imbalance in the system and at xx and yy is compensated by increasing both, pxp_{x} and pyp_{y} by 1 (blue circle), as depicted in the right-hand figure. The inverse move works analogously: propose to replace ϕ(y)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right) by ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) and to simultaneously decrease pxp_{x} and pyp_{y} by 1.

2.2 Measuring Condensates with a Worm: Why a Source Term is Needed

The partition function for our complex ϕ4\phi^{4} model is defined in terms of an Euclidean path integral which explicitly sums over all possible field configurations. This means that without an explicit breaking of the global U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right) symmetry (e.g. by a source term in the action), the condensates ϕ\mathopen{}\mathclose{{\left\langle\phi}}\right\rangle and ϕ\mathopen{}\mathclose{{\left\langle\phi^{*}}}\right\rangle have to vanish identically even in the ordered phase, as the sum of all the condensates corresponding to different U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right)-degenerate vacua, is zero. In the context of "ordinary" Monte Carlo simulations, based on local Metropolis or heat-bath updates of the original field variables, ϕx\phi_{x}, this might not always be so obvious, as in such simulations, with increasing system size, the Markov chain usually has more and more problems to tunnel between different degenerate vacua. The reason for this is of course the local update strategy and the fact, that the different vacua should indeed become non-interacting in the thermodynamic limit. This means that any intermediate configuration required for the tunneling from one vacuum into another, becomes energetically more and more expensive with increasing system size and therefore more and more unlikely to be realized, so that the Markov chain tends to remain for a long time in the same vacuum, leading to apparently non-zero condensates. This is of course an illusion: it just reflects the fact that the algorithm is non-ergodic and therefore fails to generate a representative subset of configurations that contribute to the path integral.
In the flux-representation (1.16) the situation is qualitatively different: a non-zero source term is mandatory for a non-zero condensate, even for very large systems! The reason for this is the following: as we have integrated out the complex phases of the ϕ\phi-field analytically in order to obtain the weights for the dual configurations in terms of flux variables, we also integrated out the global U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right) symmetry. Therefore every admissible flux-variable configuration, which could be understood to describe a configuration of particle world-lines, stands in fact for the superposition of the simultaneous realizations of these particle world-line configurations in each of the degenerate vacua. So, without adding source terms to the system, a spontaneous breaking of the global U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right) symmetry can only be observed in quantities which look the same in all degenerate vacua, or which are non-local in the sense that they depend on at least two sites 121212To be more precise: as we have integrated out the complex phase of the ϕ\phi field to arrive at the partition function (1.16), we cannot even break the global U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right) symmetry by setting the source ss to a non-zero value. One manifestation of this is the fact that (1.16) does not depend on the phase θs\theta_{s} of the external source but only on its magnitude rs=2|s|r_{s}=\sqrt{2}\mathopen{}\mathclose{{\left|s}}\right|, as shown at the end of Sec. 1.1. Another manifestation is that |ϕ|=|ϕ|\big{|}\mathopen{}\mathclose{{\left\langle\phi}}\right\rangle\big{|}=\big{|}\mathopen{}\mathclose{{\left\langle\phi^{*}}}\right\rangle\big{|} which can be seen from (1.21) and (1.22), together with the fact that xpx=0\sum_{x}p_{x}=0 for all valid configurations contributing to (1.16). However, by specifying a non-zero value for rsr_{s} we can measure the U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right) invariant |ϕ|=|ϕ|\big{|}\mathopen{}\mathclose{{\left\langle\phi}}\right\rangle\big{|}=\big{|}\mathopen{}\mathclose{{\left\langle\phi^{*}}}\right\rangle\big{|} in polar coordinates (see also [15]).: for example the value of the kk-variable between two sites, which measures how well the fields on these two sites are "in phase"131313Here ”in phase” effectively means ”aligned”, but for the case where one sums over all possible orientations in which the fields can align in the internal space, i.e. how dominant the "in phase" contribution to the integral over the individual phases of the fields on the two sites is. If the average value of the kk-variables increases, this indicates that the system gets more and more ordered.
By looking at equations (1.30) and (1.31), we can see that if |s|=0\mathopen{}\mathclose{{\left|s}}\right|=0 (which implies px=0xp_{x}=0\,\forall x), there is no way to satisfy the local delta function constraints in (1.30) or (1.31) simultaneously for all sites: one can move the defect (introduced by the ±1\pm 1 in the delta function at xx) around by changing a sequence of kk-variables, but without the insertion of a second external source or sink at which this sequence of changed kk-variables could terminate (which would then correspond to measuring a two-point function instead of a condensate), there will always be a vanishing delta function factor somewhere in the weight of the configuration. So there exist no configurations which could support a non-zero measurement of a condensate if the source is set to zero.
However, if |s|\mathopen{}\mathclose{{\left|s}}\right| is non-zero, a second external source or sink is not required, as then the defect can be compensated by a shift of one of the pp-variables in the system. It is precisely this property which we can use to efficiently measure condensates (and therefore also the disconnected piece of correlators) even in the case of small sources (see Fig. 6): we propose for example to insert at some site xx a single external source or sink, ϕ\phi or ϕ\phi^{*}, and to compensate the corresponding ±1\pm 1 appearing in the delta function at xx by an appropriate shift pxpx1p_{x}\rightarrow p_{x}\mp 1. If this insertion is accepted, we can either continue by proposing to remove the external source/sink again and to shift pxp_{x} back to its original value, or we can propose to move the external source/sink to one of the neighboring sites of xx, say x+ν^x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}} and to update kx,νk_{x,\nu} in order to compensate for the resulting charge-displacement (completely analogous to the "connected move" in the "charged worm" described in the previous section). This procedure is repeated until the update which removes the external source/sink is accepted. Here, our algorithm is analogous to the open-worm algorithm from [11]. The expectation values ϕ\mathopen{}\mathclose{{\left\langle\phi^{*}}}\right\rangle and ϕ\mathopen{}\mathclose{{\left\langle\phi}}\right\rangle are then obtained by measuring the fraction of the Monte Carlo time, for which the external source/sink is present in the system.

01122330112233ϕ(x)\phi^{*}(x)01122330112233ϕ(x+ν^)\phi^{*}(x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}})01122330112233
Figure 6: The left-hand figure shows the situation where the insertion of a ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) at some site xx (indicated by the red circle) and a simultaneous shift, pxpx1p_{x}\rightarrow p_{x}-1, (indicated by the filled blue dot) has been accepted. One can now propose either to remove ϕ\phi^{*} again from the system and to shift pxp_{x} back to its original value, or one can propose to move ϕ(x)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) to the site x+ν^x+\widehat{\nu} and to shift kx,νkx,ν+1k_{x,\nu}\rightarrow k_{x,\nu}+1, as depicted in the middle figure. If the latter move is accepted one can again propose to either shift ϕ(x+ν^)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x+\widehat{\nu}\mathopen{}\mathclose{{\left.}}\right) further to a neighboring site of x+ν^x+\widehat{\nu}, or to remove ϕ\phi^{*} from the system and shifting px+ν^px+ν^+1p_{x+\widehat{\nu}}\rightarrow p_{x+\widehat{\nu}}+1, such that we would be left with the situation in the right-hand figure.

Yet another advantage of this method for measuring condensates is, that it provides a simple means of variance reduction. One can absorb the summation over the qq-variables into the weight-function instead of sampling their values, i.e. one uses

W~λ,rs(A,|p|)=q(.rs2.)|p|+2q(|p|+q)!q!Wλ(.|p|+2q+A.)=0duuA/2euλ(u1)22I|p|(rsu),\tilde{W}_{\lambda,r_{s}}\mathopen{}\mathclose{{\left(}}\right.A,\mathopen{}\mathclose{{\left|p}}\right|\mathopen{}\mathclose{{\left.}}\right)\,=\,\sum_{q}\,\frac{\bigl{(}\big{.}\frac{r_{s}}{2}\big{.}\bigr{)}^{\mathopen{}\mathclose{{\left|p}}\right|+2\,q}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p}}\right|+q\mathopen{}\mathclose{{\left.}}\right)!\,q!}\,W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p}}\right|+2\,q\,+\,A\big{.}\bigr{)}\\ =\,\int\limits_{0}^{\infty}\mathrm{d}\,u\,\frac{u^{A/2}\,\operatorname{e}^{-u-\lambda\mathopen{}\mathclose{{\left(}}\right.u-1\mathopen{}\mathclose{{\left.}}\right)^{2}}}{2}\,I_{\mathopen{}\mathclose{{\left|p}}\right|}\mathopen{}\mathclose{{\left(}}\right.r_{s}\sqrt{u}\mathopen{}\mathclose{{\left.}}\right)\ , (2.19)

in the worm algorithm instead of Wλ(.|p|+2q+A.)W_{\lambda}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|p}}\right|+2\,q+A\big{.}\bigr{)} itself, where AA contains the sum over the kk and ll-variables, and the Iν(x)I_{\nu}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) are modified Bessel functions of the first kind. The values of (2.19) can be pre-computed for a set of positive integers AA and pp and stored in a two-dimensional array141414More precisely: one can even pre-compute directly the relevant weight ratios W~λ,rs(A,|p|+1)/W~λ,rs(A,|p|)\tilde{W}_{\lambda,r_{s}}\mathopen{}\mathclose{{\left(}}\right.A,\mathopen{}\mathclose{{\left|p}}\right|+1\mathopen{}\mathclose{{\left.}}\right)/\tilde{W}_{\lambda,r_{s}}\mathopen{}\mathclose{{\left(}}\right.A,\mathopen{}\mathclose{{\left|p}}\right|\mathopen{}\mathclose{{\left.}}\right) and W~λ,rs(A+1,|p|)/W~λ,rs(A,|p|)\tilde{W}_{\lambda,r_{s}}\mathopen{}\mathclose{{\left(}}\right.A+1,\mathopen{}\mathclose{{\left|p}}\right|\mathopen{}\mathclose{{\left.}}\right)/\tilde{W}_{\lambda,r_{s}}\mathopen{}\mathclose{{\left(}}\right.A,\mathopen{}\mathclose{{\left|p}}\right|\mathopen{}\mathclose{{\left.}}\right) .. This speeds up the simulation and reduces the noise in the correlator and condensate measurements further.

In Appendix A, we provide pseudo-code describing our implementation of the concepts introduced in this and the previous sections, together with some comments and a derivation of the transition probabilities required to ensure detailed balance during the Monte Carlo simulation.

2.3 Gain in Efficiency

In figures 7 and 9 we compare results for the connected zero-momentum pieces of three different correlators, the charged one,

2log(Z)sxsy,\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial s^{*}_{x}\partial s_{y}}, (2.20)

the one for radial,

2log(Z)rs,xrs,y\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial r_{s,x}\partial r_{s,y}} (2.21)

and the one for angular excitations,

1rs22log(Z)θs,xθs,y,\frac{1}{r_{s}^{2}}\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\theta_{s,x}\partial\theta_{s,y}}, (2.22)

obtained with two different measurement techniques: once with the naive approach, based on measuring (1.21), (1.22) and (1.23) on closed-worm configurations, and once with the improved method, by measuring the correlators and condensates during the worm-updates according to (1.30), (1.31) and (1.32), as well as (2.15) and (2.18). The results from both methods were obtained during the same simulation and thus are directly comparable. For the naive approach, measurements were taken after every sweep (with a sweep defined as below eq. (2.1)). For the improved method, every Nsweeps=1000N_{sweeps}=1000 sweeps, the histograms for the correlators and the condensates, accumulated during the worm-updates, were normalized by 1/(Lsweep×Nsweeps)1/(L_{sweep}\times N_{sweeps}) (which is the Monte Carlo time over which the histograms were accumulated), stored and reset. The simulations had a length of 5×1065\times 10^{6} sweeps (plus thermalization). The errors were then obtained with the jack-knife method. As can be seen, the correlators obtained with the improved method provide a much cleaner and less noisy signal than the ones obtained with the naive procedure (based on the values of the pp and qq-variables in closed worm configurations). The large relative errors in the correlators shown in Fig. 9, are due to the subtraction of the disconnected piece in (2.20) and (2.21), which is large in the ordered phase. Overall, the new method yields smaller errors on the fitted mass, by a factor 5\sim 5.

In Fig. 8 we show, for the two measurement methods, as a function of μ\mu, the errors in the smallest component of the zero momentum piece of (2.21) (i.e. for t=Nt/2t=N_{t}/2), before the disconnected piece is subtracted. In the disordered phase (μ<0.8\mu<0.8), the improved measurement reduces the error in this observable by about an order of magnitude. In the ordered phase on the other hand (μ>0.8\mu>0.8), the two methods seem to yield similar errors. The same is true for other components of the zero-momentum correlator, away from t=Nt/2t=N_{t}/2.
If one is just interested in extracting a mass from (2.21), the disconnected piece is irrelevant as it can be taken into account by simply adding a constant CC to the fitting function:

frad(t)=C+Acosh(m(tNt/2)).f_{rad}\mathopen{}\mathclose{{\left(}}\right.t\mathopen{}\mathclose{{\left.}}\right)\,=\,C\,+\,A\,\cosh\mathopen{}\mathclose{{\left(}}\right.m\mathopen{}\mathclose{{\left(}}\right.t-N_{t}/2\mathopen{}\mathclose{{\left.}}\right)\mathopen{}\mathclose{{\left.}}\right)\ . (2.23)

Still, in Fig. 10 we show how the reduced errors in the correlation functions, shown in Fig. 8, affect such a mass-fit: more precisely, Fig. 10 shows how the fitted mass depends on the fitting range. The zero-momentum correlation functions measured during a simulation contain contributions from several states which have different masses. They all decay exponentially like emit\sim\operatorname{e}^{-m_{i}\,t}, which on a periodic lattice (and for neutral states) leads to terms like cosh(mi(tNt/2))\sim\cosh\mathopen{}\mathclose{{\left(}}\right.m_{i}\mathopen{}\mathclose{{\left(}}\right.t-N_{t}/2\mathopen{}\mathclose{{\left.}}\right)\mathopen{}\mathclose{{\left.}}\right). In order to extract the correct ground-state mass by fitting (2.23) to the measured correlation function, one therefore either has to include additional cosh\cosh-terms to take the excited states into account (which is usually difficult) or one has to restrict the fitting range to some interval [tmin,Nttmin]\mathopen{}\mathclose{{\left[}}\right.t_{min},N_{t}-t_{min}\mathopen{}\mathclose{{\left.}}\right] in which the excited states have already died away sufficiently. Fig. 10 now shows how the mass mm, obtained by fitting (2.23) (without excited states) to the correlation function, changes as function of tmint_{min}. For the improved correlator (black), it can be seen that the fitted mass approaches a clearly visible plateau with increasing tmint_{min}. For the non-improved correlator (red), the plateau would of course also be there, but due to the bigger noise in this correlator measurement, the ground state signal gets quickly lost with increasing tmint_{min}, sometimes even before the excited states become negligible, such that the plateau cannot be observed.

2log(Z)sxsy\scriptstyle\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial s^{*}_{x}\partial s_{y}}

Refer to caption

2log(Z)rs,xrs,y\scriptstyle\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial r_{s,x}\partial r_{s,y}}

Refer to caption

1rs22log(Z)θs,xθs,y\scriptstyle\frac{1}{r_{s}^{2}}\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\theta_{s,x}\partial\theta_{s,y}}

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 7: We compare for a (2+1)-dimensional system with Ns=8N_{s}=8, Nt=64N_{t}=64, κ=0.25\kappa=0.25, λ=7.5\lambda=7.5, rs=0.01r_{s}=0.01 and μ=0.65\mu=0.65, the zero-momentum pieces of the indicated two-point functions, obtained with two different measurement methods: the correlators in the upper row are obtained with the naive approach, by making use of eqns. (1.21), (1.22) and (1.23) (and analogous ones), i.e. by measuring the pp and qq content of closed-worm configurations, while the ones in the bottom row are obtained by measuring the correlators and condensates during the worm, making use of eqns. (1.30), (1.31) and (1.32) (and similar ones). Both data sets were obtained from the same simulation. For the top row correlators, measurements were taken after every sweep and for the bottom row correlators the histograms were stored and reset after every 1000 sweeps. The error bars were then obtained with the jack-knife procedure (note that the correlators are displayed on a log-scale, whereas each error-bar is on a linear scale, which is set by the log-re-scaling factor of the corresponding data point). The dotted lines correspond to exponential fits which lead to the mass-values displayed in the upper right corner of each plot. Note the reduction in the error promoted by the new method.
Refer to caption
Refer to caption
Figure 8: The figure shows for a (2+1)-dimensional system with Ns=8N_{s}=8, κ=0.25\kappa=0.25, λ=7.5\lambda=7.5, rs=0.01r_{s}=0.01 and Nt=64N_{t}=64 (left) or Nt=256N_{t}=256 (right) the error in the zero-momentum piece of the correlator r(0)r(t)\mathopen{}\mathclose{{\left\langle r\mathopen{}\mathclose{{\left(}}\right.0\mathopen{}\mathclose{{\left.}}\right)r\mathopen{}\mathclose{{\left(}}\right.t\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle at distance t=nt/2t=n_{t}/2 as a function of μ\mu. The black data corresponds to the error in the measurements obtained with the non-improved method while the red data shows the error in the measurements obtained with the improved method.

2log(Z)sxsy\scriptstyle\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial s^{*}_{x}\partial s_{y}}

Refer to caption

2log(Z)rs,xrs,y\scriptstyle\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial r_{s,x}\partial r_{s,y}}

Refer to caption

1rs22log(Z)θs,xθs,y\scriptstyle\frac{1}{r_{s}^{2}}\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\theta_{s,x}\partial\theta_{s,y}}

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 9: Same as in figure 7, but for μ=1.2\mu=1.2, which is already in the symmetry broken phase. The correlators in the upper three plots were obtained with the standard measurement method on closed-worm configurations while the lower three figures were obtained with the improved method during the worm updates. Again the dotted lines correspond to exponential fits from which the mass-values are obtained which are displayed in the upper right corner of each plot. The relatively large, but homogeneous (note the log scale) errors visible in the two plots in the middle are mainly due to the subtraction of the large disconnected piece. Note the reduction in the error promoted by the new method.
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 10: The figure shows for a (2+1)-dimensional system with Ns=8N_{s}=8, Nt=64N_{t}=64, κ=0.25\kappa=0.25, λ=7.5\lambda=7.5, rs=0.01r_{s}=0.01 and for different values of μ\mu, the dependency of the mass mm, obtained by fitting (2.23) to the zero-momentum piece of the radial correlator r(0)r(t)\mathopen{}\mathclose{{\left\langle r\mathopen{}\mathclose{{\left(}}\right.0\mathopen{}\mathclose{{\left.}}\right)r\mathopen{}\mathclose{{\left(}}\right.t\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, on the fitting range [tmin,Nttmin]\mathopen{}\mathclose{{\left[}}\right.t_{min},N_{t}-t_{min}\mathopen{}\mathclose{{\left.}}\right]. The red data results from fits to the correlation functions obtained with the improved method while the black data was obtained from fits to the naively measured correlators. A clear mass plateau (indicated by the dotted horizontal line) is visible with the improved method, and only with it. Note that the critical value of μ\mu is μc0.8\mu_{c}\approx 0.8.

2.4 Alternatives and Possible Improvements

Despite the obvious improvement in the signal-to-noise ratio provided by the method described above in Sec. 2.1 for measuring different channels of general two-point functions during different stages of a generalized worm-algorithm, this measuring at different stages of the algorithm has the potential draw-back that the different channels of the two-point function are not necessarily determined with the same accuracy: with the current algorithm, the statistics in the measurement of any component of the two-point function is proportional to its expectation value. This is fine as long as there are not too many channels in the two-point functions or if one is only interested in the dominant propagating modes. However, if one is for example interested in the full mass spectrum of the theory, including sub-dominant modes/channels, this can be problematic. A naive attempt to deal with this problem would be to use reweighting to obtain always measurements for all channels during all stages of the worm-algorithm: if the worm is for example currently sampling ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, then measurements for ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle and ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle can be obtained by appropriate reweighting factors, virtually replacing the external sources at head and tail of the worm (and appropriately shifting some pp-variables) and vice versa. It is however clear that there will in general be a big overlap problem between the different channels of the correlator.
The proportionality between statistics and true expectation value for the components of two-point functions which are sampled during the evolution of the worm, already leads to problems when dealing with just the standard two-point function, ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, if one is interested in very low temperatures or if the masses are all large, such that the correlator decays very quickly. To overcome this problem it was proposed in [6] to use an additional weight ρ(xy)\rho\mathopen{}\mathclose{{\left(}}\right.x-y\mathopen{}\mathclose{{\left.}}\right) in the sampling of the two-point function ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, where ρ(xy)\rho\mathopen{}\mathclose{{\left(}}\right.x-y\mathopen{}\mathclose{{\left.}}\right) can be thought of as an initial guess for ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle, such that the algorithm has to sample only the ratio

ϕ(x)ϕ(y)ρ(xy),\frac{\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle}{\rho\mathopen{}\mathclose{{\left(}}\right.x-y\mathopen{}\mathclose{{\left.}}\right)}\ , (2.24)

which, for a good choice of ρ(xy)\rho\mathopen{}\mathclose{{\left(}}\right.x-y\mathopen{}\mathclose{{\left.}}\right), should vary much less as function of (xy)\mathopen{}\mathclose{{\left(}}\right.x-y\mathopen{}\mathclose{{\left.}}\right) than ϕ(x)ϕ(y)\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle itself, leading to an exponential improvement in the signal-to-noise ratio. This ρ(xy)\rho\mathopen{}\mathclose{{\left(}}\right.x-y\mathopen{}\mathclose{{\left.}}\right) could of course be generalized to a set of functions ρf1,f2(xy)\rho_{f_{1},f_{2}}\mathopen{}\mathclose{{\left(}}\right.x-y\mathopen{}\mathclose{{\left.}}\right), where f1f_{1} and f2f_{2} label the different possible choices for the external charges at head and tail of the worm. Furthermore, one could then use a method similar to the Wang-Landau sampling [14] in order to find the optimal ρf1,f2(xy)\rho_{f_{1},f_{2}}\mathopen{}\mathclose{{\left(}}\right.x-y\mathopen{}\mathclose{{\left.}}\right), leading to equal statistics for all components and channels of the two-point function.

2.5 Effect of Source Term

As already mentioned in Sec. 2.2, the Euclidean path integral that defines the partition function for our theory sums over all possible field configurations and thereby integrates out the global U(1)\operatorname{U}\mathopen{}\mathclose{{\left(1}}\right) symmetry. In the dual formulation in terms of flux variables this feature of the partition function is manifest as during the dualization process, the integration over the field ϕx\phi_{x} has been carried out exactly. Spontaneous symmetry breaking can therefore only be observed in our simulations either when looking at non-local observables as for example two-point functions or the charge density, 12Vlog(Z)μ=1Vxkx,d\frac{1}{2\,V}\frac{\partial\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial\mu}=\mathopen{}\mathclose{{\left\langle\frac{1}{V}\sum_{x}k_{x,d}}}\right\rangle, or after the introduction of a non-vanishing source and the choice of an appropriate coordinate system for the internal space, in which one can then observe spontaneous symmetry breaking also in condensates.
In this section we now address the question of how big the source has to be chosen and how one can extract results for the theory at zero source from simulations carried out in the presence of a non-zero source. For this discussion, we will use the partition function (1.7) in terms of the original field variables in polar form:

Z=𝒟[r,θ]ex{.κν=1drxrx+ν^cos(θxθx+ν^2iμδν,d)rx2λ(rx21)2+rsrxcos(θxθs).}.Z=\int\mathcal{D}\mathopen{}\mathclose{{\left[r,\theta}}\right]\operatorname{e}^{\sum\limits_{x}\bigl{\{}\big{.}\kappa\,\sum\limits_{\nu=1}^{d}\,r_{x}r_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}-2\,\mathrm{i}\,\mu\,\delta_{\nu,d}\mathopen{}\mathclose{{\left.}}\right)-r_{x}^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}+r_{s}r_{x}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{s}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{\}}}\ . (2.25)

In these variables the condensate for radial excitations (2.14) then reads

r=1Vlog(Z)rs=1VZ𝒟[r,θ](.xrxcos(θxθs).)ex{.κν=1drxrx+ν^cos(θxθx+ν^2iμδν,d)rx2λ(rx21)2+rsrxcos(θxθs).},\mathopen{}\mathclose{{\left\langle r}}\right\rangle\,=\,\frac{1}{V}\frac{\partial\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial r_{s}}\,=\,\frac{1}{V\,Z}\int\mathcal{D}\mathopen{}\mathclose{{\left[r,\theta}}\right]\bigl{(}\big{.}{\color[rgb]{1,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{1,0,0}\sum\limits_{x}r_{x}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{s}\mathopen{}\mathclose{{\left.}}\right)}\big{.}\bigr{)}\\ \cdot\operatorname{e}^{\sum\limits_{x}\bigl{\{}\big{.}\kappa\,\sum\limits_{\nu=1}^{d}\,r_{x}r_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}-2\,\mathrm{i}\,\mu\,\delta_{\nu,d}\mathopen{}\mathclose{{\left.}}\right)-r_{x}^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}+r_{s}r_{x}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{s}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{\}}}\ , (2.26)

and the cosine in the observable under the integral makes it clear that this will only yield the expected result in the ordered phase if rsr_{s} is sufficiently large in order to give dominant weight to the ϕ\phi-configurations where θxθs\theta_{x}\sim\theta_{s} when integrating over the phases θx\theta_{x}. On the other hand, we would like rsr_{s} to be as small as possible in order to reduce the associated bias. To get an approximate answer on how large rsr_{s} should be chosen, we can proceed as follows: we know that in the ordered phase, the exponential of the interaction term ("interaction" in the sense of coupling fields on neighboring sites),

eκxν=1drxrx+ν^cos(θxθx+ν^ 2iμδν,d),\operatorname{e}^{\kappa\sum\limits_{x}\sum\limits_{\nu=1}^{d}r_{x}r_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}-\,2\,\mathrm{i}\,\mu\,\delta_{\nu,d}\mathopen{}\mathclose{{\left.}}\right)}\ , (2.27)

dominates over the entropy in the configuration space of the θx\theta_{x} variables and the dominant contribution to the integral over these variables will come from configurations where all θx\theta_{x} are parallel or, as we called it earlier, "in phase", i.e. we can assume that in the ordered phase, the partition function (2.25) behaves like

Zord=𝒟[r]dθex{.κν=1drxrx+ν^cosh(2μδν,d)rx2λ(rx21)2+rsrxcos(θθs).}=𝒟[r]ex{.κν=1drxrx+ν^cosh(2μδν,d)rx2λ(rx21)2.}I0(rsxrx),Z_{ord}=\int\mathcal{D}\mathopen{}\mathclose{{\left[r}}\right]\int\mathrm{d}\,\theta\operatorname{e}^{\sum\limits_{x}\bigl{\{}\big{.}\kappa\,\sum\limits_{\nu=1}^{d}\,r_{x}r_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\cosh\mathopen{}\mathclose{{\left(}}\right.2\,\mu\,\delta_{\nu,d}\mathopen{}\mathclose{{\left.}}\right)-r_{x}^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}+r_{s}r_{x}\cos\mathopen{}\mathclose{{\left(}}\right.\theta-\theta_{s}\mathopen{}\mathclose{{\left.}}\right)\big{.}\bigr{\}}}\\ =\int\mathcal{D}\mathopen{}\mathclose{{\left[r}}\right]\operatorname{e}^{\sum\limits_{x}\bigl{\{}\big{.}\kappa\,\sum\limits_{\nu=1}^{d}\,r_{x}r_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\cosh\mathopen{}\mathclose{{\left(}}\right.2\,\mu\,\delta_{\nu,d}\mathopen{}\mathclose{{\left.}}\right)-r_{x}^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}\big{.}\bigr{\}}}I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\sum_{x}r_{x}\mathopen{}\mathclose{{\left.}}\right)\ , (2.28)

with Iν(x)I_{\nu}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right) being the modified Bessel functions of the first kind. If we now evaluate (2.26) by using (2.28), we find

r1Vlog(Zord)rs=1Zord𝒟[r](xrx)VI1(rsxrx)I0(rsxrx)ex{.κν=1drxrx+ν^cosh(2μδν,d)rx2λ(rx21)2.}I0(rsxrx)r¯I1(rsVr¯)I0(rsVr¯),\mathopen{}\mathclose{{\left\langle r}}\right\rangle\sim\frac{1}{V}\frac{\partial\log\mathopen{}\mathclose{{\left(}}\right.Z_{ord}\mathopen{}\mathclose{{\left.}}\right)}{\partial r_{s}}\,=\,\frac{1}{Z_{ord}}\int\mathcal{D}\mathopen{}\mathclose{{\left[r}}\right]\frac{\mathopen{}\mathclose{{\left(}}\right.\sum_{x}r_{x}\mathopen{}\mathclose{{\left.}}\right)}{V}\frac{I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}\sum_{x}r_{x}\mathopen{}\mathclose{{\left.}}\right)}{I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\sum_{x}r_{x}\mathopen{}\mathclose{{\left.}}\right)}\\ \cdot\operatorname{e}^{\sum\limits_{x}\bigl{\{}\big{.}\kappa\,\sum\limits_{\nu=1}^{d}\,r_{x}r_{x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}}\cosh\mathopen{}\mathclose{{\left(}}\right.2\,\mu\,\delta_{\nu,d}\mathopen{}\mathclose{{\left.}}\right)-r_{x}^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}\big{.}\bigr{\}}}I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\sum\limits_{x}r_{x}\mathopen{}\mathclose{{\left.}}\right)\approx\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\,\frac{I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}{I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\>\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}\ , (2.29)

where r\textstyle r¯\overline{\hbox{}} is the mean field solution to (2.29) and VV is the system volume. The ratio of Bessel functions in (2.29) vanishes if rsVr¯r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}} is zero and asymptotically approaches 11 for (rsVr¯)\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\rightarrow\infty\mathopen{}\mathclose{{\left.}}\right) as shown in the left panel of Fig. 11 as a function of rsr_{s}.

Refer to caption
Refer to caption
Figure 11: The figure illustrates the behavior of (2.29) (left) and (2.31) (right) as a function of rsr_{s} for four different volumes V=8224, 8264, 82128, 82256V=8^{2}\cdot 24,\,8^{2}\cdot 64,\,8^{2}\cdot 128,\,8^{2}\cdot 256, where we have set r¯=1\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}=1 and in the axes labels we have used the abbreviation f(z)=I1(z)/I0(z)f\mathopen{}\mathclose{{\left(}}\right.z\mathopen{}\mathclose{{\left.}}\right)=I_{1}\mathopen{}\mathclose{{\left(}}\right.z\mathopen{}\mathclose{{\left.}}\right)/I_{0}\mathopen{}\mathclose{{\left(}}\right.z\mathopen{}\mathclose{{\left.}}\right). The peaks in the curves on the right-hand side mark the value of rsr_{s} where f(rsV)f\mathopen{}\mathclose{{\left(}}\right.r_{s}V\mathopen{}\mathclose{{\left.}}\right) stops to be proportional to rsr_{s}, and are obtained when rs4/(3V)r_{s}\approx 4/\mathopen{}\mathclose{{\left(}}\right.3\,V\mathopen{}\mathclose{{\left.}}\right).

In the thermodynamic limit (V)\mathopen{}\mathclose{{\left(}}\right.V\rightarrow\infty\mathopen{}\mathclose{{\left.}}\right), a non-zero value of rsr_{s} leads to

I1(rsVr¯)I0(rsVr¯)(V)1,\frac{I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}{I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}\underset{\mathopen{}\mathclose{{\left(}}\right.V\rightarrow\infty\mathopen{}\mathclose{{\left.}}\right)}{\longrightarrow}1\ , (2.30)

no matter how small rsr_{s} is. However, in practice we can simulate only finite systems and the thermodynamic limit has to be obtained by extrapolation (finite volume scaling). If we are interested in results for r\mathopen{}\mathclose{{\left\langle r}}\right\rangle in an infinite system at rs=0r_{s}=0, (2.29) reminds us that one first has to take the infinite volume limit before sending (rs0)\mathopen{}\mathclose{{\left(}}\right.r_{s}\rightarrow 0\mathopen{}\mathclose{{\left.}}\right); otherwise the result will always be zero, since for every finite volume there is a minimal value for rsr_{s} below which (rsVr¯)\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right) will be in the region where I1(rsVr¯)I0(rsVr¯)\frac{I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}{I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)} is proportional to rsr_{s}. The value of rsr_{s} at which this change of behavior of I1(rsVr¯)I0(rsVr¯)\frac{I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}{I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)} happens is given by the peak in the quantity

rsrs(.I1(rsVr¯)I0(rsVr¯).)r_{s}\,\frac{\partial}{\partial r_{s}}\biggl{(}\bigg{.}\frac{I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}{I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}\bigg{.}\biggr{)} (2.31)

when plotted as a function of rsr_{s} and we can define the volume dependent lower bound for rsr_{s}:

rslb(V)=maxrs>0(.rsrs(.I1(rsVr¯)I0(rsVr¯).).),r_{s}^{lb}\mathopen{}\mathclose{{\left(}}\right.V\mathopen{}\mathclose{{\left.}}\right)\,=\,\max_{r_{s}>0}\biggl{(}\bigg{.}r_{s}\,\frac{\partial}{\partial r_{s}}\biggl{(}\bigg{.}\frac{I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}{I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\,V\,\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}\bigg{.}\biggr{)}\bigg{.}\biggr{)}\ , (2.32)

which scales like

rslb(V)1V,r_{s}^{lb}\mathopen{}\mathclose{{\left(}}\right.V\mathopen{}\mathclose{{\left.}}\right)\propto\frac{1}{V}\ , (2.33)

as could have been expected since rsr_{s} couples to an extensive quantity in the action (2.12). In the full theory rslb(V)r_{s}^{lb}\mathopen{}\mathclose{{\left(}}\right.V\mathopen{}\mathclose{{\left.}}\right) would be determined by the maximum in the susceptibility

χr=rsV2log(Z)rs2\chi_{r}\,=\,\frac{r_{s}}{V}\frac{\partial^{2}\log\mathopen{}\mathclose{{\left(}}\right.Z\mathopen{}\mathclose{{\left.}}\right)}{\partial r_{s}^{2}} (2.34)

as a function of rsr_{s}. The values of rsr_{s} used for simulations that should yield results to be used in a scaling analysis to extract information on an infinite system at zero source, should therefore be chosen such that rsrslb(Vmin)r_{s}\gg r_{s}^{lb}\mathopen{}\mathclose{{\left(}}\right.V_{min}\mathopen{}\mathclose{{\left.}}\right), where VminV_{min} is the volume of the smallest system involved in the analysis.

Deep in the disordered phase on the other hand, entropy dominates over the exponential of the interaction term (2.27) and we can approximate the partition function (2.25) as follows:

Zdis=𝒟[r]x(.dθxerx2λ(rx21)2+rsrxcos(θxθs).)=𝒟[r]x(.erx2λ(rx21)2I0(rsrx).)=(.drer2λ(r21)2I0(rsr).)V.Z_{dis}=\int\mathcal{D}\mathopen{}\mathclose{{\left[r}}\right]\prod\limits_{x}\biggl{(}\bigg{.}\int\mathrm{d}\,\theta_{x}\operatorname{e}^{-r_{x}^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}+r_{s}r_{x}\cos\mathopen{}\mathclose{{\left(}}\right.\theta_{x}-\theta_{s}\mathopen{}\mathclose{{\left.}}\right)}\bigg{.}\biggr{)}\\ =\int\mathcal{D}\mathopen{}\mathclose{{\left[r}}\right]\prod\limits_{x}\biggl{(}\bigg{.}\operatorname{e}^{-r_{x}^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r_{x}^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}}I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}r_{x}\mathopen{}\mathclose{{\left.}}\right)\bigg{.}\biggr{)}=\biggl{(}\bigg{.}\int\mathrm{d}\,r\operatorname{e}^{-r^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}}I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}r\mathopen{}\mathclose{{\left.}}\right)\bigg{.}\biggr{)}^{V}\ . (2.35)

For the condensate we then find

r1Vlog(Zdis)rs=drrI1(rsr)er2λ(r21)2drI0(rsr)er2λ(r21)2r¯I1(rsr¯)I0(rsr¯)rsr¯22+𝒪(rs3).\mathopen{}\mathclose{{\left\langle r}}\right\rangle\sim\frac{1}{V}\frac{\partial\log\mathopen{}\mathclose{{\left(}}\right.Z_{dis}\mathopen{}\mathclose{{\left.}}\right)}{\partial r_{s}}\,=\,\frac{\int\mathrm{d}\,r\,r\,I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}r\mathopen{}\mathclose{{\left.}}\right)\operatorname{e}^{-r^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}}}{\int\mathrm{d}\,rI_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}r\mathopen{}\mathclose{{\left.}}\right)\operatorname{e}^{-r^{2}-\lambda\mathopen{}\mathclose{{\left(}}\right.r^{2}-1\mathopen{}\mathclose{{\left.}}\right)^{2}}}\sim\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\,\frac{I_{1}\mathopen{}\mathclose{{\left(}}\right.r_{s}\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}{I_{0}\mathopen{}\mathclose{{\left(}}\right.r_{s}\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}\mathopen{}\mathclose{{\left.}}\right)}\approx\frac{r_{s}\mathchoice{\displaystyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\displaystyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\textstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\textstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}{\scriptscriptstyle\thinspace\hbox to0.0pt{\leavevmode\hbox{\set@color$\scriptscriptstyle r$}\hss}{\thinspace\leavevmode\hbox{\set@color$\overline{\hbox{}}$}}}^{2}}{2}+\mathcal{O}\big{(}r_{s}^{3}\big{)}\ . (2.36)

In the disordered phase the condensate is therefore expected to behave always like rrs\mathopen{}\mathclose{{\left\langle r}}\right\rangle\propto r_{s} unless rs1r_{s}\gg 1 as there is now no volume factor in the argument of the Bessel functions. Due to this direct proportionality between condensate and source, it also follows that the susceptibility χr\chi_{r} defined in eq. (2.34) should (to lowest order in rsr_{s}) be identical to the condensate.

In Fig. 12 we show for a (2+1)-dimensional system with κ=0.25\kappa=0.25, λ=7.5\lambda=7.5, Ns=8N_{s}=8, Nt=24, 64, 128, 256N_{t}=24,\,64,\,128,\,256 and for three different values of the chemical potential μ\mu the condensate r\mathopen{}\mathclose{{\left\langle r}}\right\rangle (left) and the corresponding susceptibility χr\chi_{r} (right) as a function of the source rsr_{s}. The top figures correspond to μ=0.686\mu=0.686, which is in the disordered phase, where condensate and susceptibility are both proportional to the source rsr_{s} and independent of the system size. The other figures correspond to μ=0.857\mu=0.857 (middle) and μ=1.2\mu=1.2 (bottom) which are both in the ordered phase (since μc0.8\mu_{c}\approx 0.8) where the condensate develops a plateau as soon as rsr_{s} reaches a volume-dependent minimal value.

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 12: The figure shows for a (2+1)-dimensional system with Ns=8N_{s}=8, κ=0.25\kappa=0.25 and λ=7.5\lambda=7.5 the condensate r\mathopen{}\mathclose{{\left\langle r}}\right\rangle (left) and the corresponding susceptibility (right) as a function of the magnitude of the source rsr_{s} for Nt=24,64,182,256N_{t}=24,64,182,256 in the disordered phase at μ=0.686\mu=0.686 (top), just in the ordered phase at μ=0.857\mu=0.857 (middle) and deep in the ordered phase at μ=1.2\mu=1.2 (bottom). The continuous curves were obtained by multi-histogram reweighting.

It should be mentioned at this point that if one is only interested in the magnitude of the condensate, an alternative to the introduction of a source for measuring it would be to use that

ϕ(x)ϕ(y)|xy||ϕ|2.\mathopen{}\mathclose{{\left\langle\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\underset{\mathopen{}\mathclose{{\left|x-y}}\right|\rightarrow\infty}{\longrightarrow}\mathopen{}\mathclose{{\left|\mathopen{}\mathclose{{\left\langle\phi}}\right\rangle}}\right|^{2}\ . (2.37)

The same equation also holds for the correlator of radial excitations (2.15) (where for |s|=0\mathopen{}\mathclose{{\left|s}}\right|=0 only the first two terms in (2.15) are non-zero):

r(x)r(y)|xy|r2= 2|ϕ|2.\mathopen{}\mathclose{{\left\langle r\mathopen{}\mathclose{{\left(}}\right.x\mathopen{}\mathclose{{\left.}}\right)r\mathopen{}\mathclose{{\left(}}\right.y\mathopen{}\mathclose{{\left.}}\right)}}\right\rangle\underset{\mathopen{}\mathclose{{\left|x-y}}\right|\rightarrow\infty}{\longrightarrow}\mathopen{}\mathclose{{\left\langle r}}\right\rangle^{2}\,=\,2\,\mathopen{}\mathclose{{\left|\mathopen{}\mathclose{{\left\langle\phi}}\right\rangle}}\right|^{2}\ . (2.38)

The latter is particularly convenient: as we are usually simulating periodic finite systems, zero-momentum correlation functions always have a minimum, which is the point where the deviation of the value of the correlation function from the square of the corresponding condensate is minimal. For the zero-momentum piece of (2.38) the minimum is always located at Nt/2N_{t}/2, while for the zero-momentum piece of (2.37), its location can change as function of μ\mu. However, since for vanishing source rs=2|s|=0r_{s}=\sqrt{2}\mathopen{}\mathclose{{\left|s}}\right|=0 only the first two terms of (2.15) can be measured, while the other two terms (the ones that cannot be measured) would contribute similarly to the constant piece of the zero-momentum correlator, one has to keep in mind that the measured background should be multiplied by a factor 22 in order to get the correct value for the squared condensate r2\mathopen{}\mathclose{{\left\langle r}}\right\rangle^{2}.

Another possibility would be to extract |ϕ|\mathopen{}\mathclose{{\left\langle\mathopen{}\mathclose{{\left|\phi}}\right|}}\right\rangle or r\mathopen{}\mathclose{{\left\langle r}}\right\rangle from a fit of the form

f(t)=C12+A(em1t+em2(Ntt))f\mathopen{}\mathclose{{\left(}}\right.t\mathopen{}\mathclose{{\left.}}\right)\,=\,C_{1}^{2}\,+\,A\,\mathopen{}\mathclose{{\left(}}\right.\operatorname{e}^{-m_{1}\,t}\,+\,e^{-m_{2}\,\mathopen{}\mathclose{{\left(}}\right.N_{t}\,-\,t\mathopen{}\mathclose{{\left.}}\right)}\mathopen{}\mathclose{{\left.}}\right) (2.39)

or

f(t)=12C22+Acosh(m(tNt/2))f\mathopen{}\mathclose{{\left(}}\right.t\mathopen{}\mathclose{{\left.}}\right)\,=\,\frac{1}{2}\,C_{2}^{2}\,+\,A\,\cosh\mathopen{}\mathclose{{\left(}}\right.m\,\mathopen{}\mathclose{{\left(}}\right.t-N_{t}/2\mathopen{}\mathclose{{\left.}}\right)\mathopen{}\mathclose{{\left.}}\right) (2.40)

to the zero-momentum pieces of the correlators in (1.32) and (2.15), respectively, so that |ϕ|=C1\mathopen{}\mathclose{{\left\langle\mathopen{}\mathclose{{\left|\phi}}\right|}}\right\rangle\,=\,C_{1} and r=C2\mathopen{}\mathclose{{\left\langle r}}\right\rangle\,=\,C_{2}, where the factor 1/21/2 in front of the first term in (2.40) is again due to the fact that for rs=0r_{s}=0 only the first two terms of (2.15) can be measured. In Fig. 13, we show an example of such measurements and compare them to results obtained by measuring the condensate directly, as described in Sec. 2.2, for four different, non-zero values of the source rsr_{s}. Note that the slight oscillations in the data coming from the systems with vanishing source are not just due to systematic errors in the fitting process, but are a manifestation of the phenomenon described in [12], which is due to the quantization of the charge, visible in a finite system at low temperature (i.e. large NtN_{t}) (see also Fig. 14, right). In Fig. 14, we compare for two systems with different temporal extents, the result for the condensate r\mathopen{}\mathclose{{\left\langle r}}\right\rangle obtained with the fitting method with the one obtained by extracting the condensate from the minimum (at t=Nt/2t=N_{t}/2) of the zero-momentum piece of (2.15). The fitting method is more involved but works better for not too large NtN_{t}, while for sufficiently large NtN_{t} the two methods seem to work equally well.

Refer to caption
Figure 13: The figure shows for a (2+1)-dimensional system with Ns=8N_{s}=8, Nt=256N_{t}=256, κ=0.25\kappa=0.25 and λ=7.5\lambda=7.5 the condensate r\mathopen{}\mathclose{{\left\langle r}}\right\rangle measured in three different ways: the data points which are joined by different lines correspond to direct measurements of the condensate for different values of the source rs=0.01,0.001,0.0001,0.00001r_{s}=0.01,0.001,0.0001,0.00001, the blue and red dots were obtained by fitting (2.39) to the correlators for charged (1.35) and radial (2.15) excitations respectively for rs=0r_{s}=0.
Refer to caption
Refer to caption
Figure 14: The figure shows for two (2+1)-dimensional systems with Ns=8N_{s}=8, κ=0.25\kappa=0.25, λ=7.5\lambda=7.5 and rs=0r_{s}=0 and Nt=256N_{t}=256 (left) and Nt=1024N_{t}=1024 (right) the condensate r\mathopen{}\mathclose{{\left\langle r}}\right\rangle as a function of μ\mu, determined once by identifying r2\mathopen{}\mathclose{{\left\langle r}}\right\rangle^{2} with twice (see explanation in text below eq.(2.38)) the value of the zero-momentum piece of the measured (2.15) (black), and once by fitting to the same correlator the function (2.40) (red). As can be seen, for Nt=256N_{t}=256 (left), the black and the red curve do not agree very well: the black curve shows too large values as the temperature is still too large and the zero-momentum correlator at Nt/2N_{t}/2 deviates too much from the constant background. The red curve from the fit shows however already an oscillatory signal. For Nt=1024N_{t}=1024 (right), the agreement between the two curves is much better and the oscillations as a function of μ\mu are very pronounced. We have increased the number of sampling points between μ=0.8\mu=0.8 and μ=0.9\mu=0.9 in order to resolve also some of the fast oscillations (see inset). Between μ=0.8\mu=0.8 and μ=1.2\mu=1.2, the charge density increases from zero to slightly above one, which happens in Nsd1=82=64N_{s}^{d-1}=8^{2}=64 small steps. Each valley in the condensate corresponds to one of these small steps.

3 Summary

Using the complex ϕ4\phi^{4} model as an example, we first reviewed the relation between the worm-algorithm and the charged correlator, how the former can be derived from the latter and how the standard worm can be thought of as sampling the charged correlator.
We then showed how the worm-algorithm can be generalized in order to sample also more general correlators and condensates and explained why this requires the inclusion of a non-vanishing source term in the action. In general, all correlators probing different internal space components of the field can be sampled during the worm Monte Carlo evolution by generalizing the standard worm-algorithm along the lines we presented.
In the Appendix we explain in some detail how our algorithm works and how the transition probabilities are computed in order to satisfy detailed balance.

Appendix A Worm Algorithm

In this appendix we describe our implementation of the generalized worm-algorithm introduced in the text. We explain why the code is organized in this particular way and show how the transition probabilities are obtained as to satisfy detailed balance.

A.1 Organization of Program

The main components of our program are described in Alg. 1 in terms of pseudo-code. They consist of 3 main routines:

  • a routine "WORM_UPDATE(x0,…)", which updates the kk and ll (and if the source is non-zero, also the pp and qq) variables while sampling the full two-point function, starting and ending at "x0",

  • a routine "COND_WORM_UPDATE(x0,…)", which, if the source is non-zero, also updates the kk, ll, pp and qq variables while sampling the ϕ\phi and ϕ\phi^{*} condensates, starting at "x0" and ending at some other site (which will then be used as new value for "x0"),

  • and the routine "SWEEP()", which, for a fixed number of times, randomly executes either "WORM _UPDATE(x0,…)" or "COND_WORM_UPDATE(x0,…)" (provided the source is non-zero), or picks a new random location for "x0".

In "SWEEP()", the probability for choosing next a new random location for "x0" is always 1/2. If |s|\mathopen{}\mathclose{{\left|s}}\right| (or equivalently rsr_{s}) is set to zero, the probability for executing next "WORM_UPDATE(x0,…)" is also 1/2. If |s|\mathopen{}\mathclose{{\left|s}}\right| is non-zero, "WORM_UPDATE(x0,…)" and "COND_WORM_UPDATE(x0,…)" share the 1/2 probability for being executed next and are therefore executed with probability 1/4 each. The two worms can always start in two different ways: for "WORM_UPDATE(x0,…)" we can either have ϕ\phi as the head and ϕ\phi^{*} as the tail of the worm or vice versa, and similarly for "COND_WORM _UPDATE(x0,…)", we can either attempt to start by inserting a ϕ\phi or a ϕ\phi^{*} (together with an appropriate shift of a pp-variable, i.e. the insertion of an appropriate dynamical monomer of opposite charge).

The ll and qq variables are updated along with the kk and pp variables in "WORM_UP-DATE(x0,…)" and "COND_WORM_UPDATE(x0,…)": at every step of the worm the type of variable (kk, ll, pp or qq variable) to be updated next is selected at random, in such a way that the probability of selecting an ll variable (qq variable) is the same as the probability of selecting a kk variable (pp variable). In for example [9] another updating strategy was used, where only the kk variables were updated during the worm evolution while the ll variables were updated in separate sweeps, executed periodically after a fixed number of worms. This can become problematic as soon as the system develops long-range order and the average worm-length becomes of the order of the system size: the worm then evolves for a long time in a fixed ll-background, which slows down de-correlation and gives rise to larger errors in the two-point functions measured during the worm evolution. Furthermore, alternating between different types of updates in a fixed order strictly speaking breaks detailed balance (although this is usually harmless). Our updating scheme avoids both of these problems: the ll and qq variables do not form a fixed background while the worm evolves and detailed balance is satisfied at every step of the simulation.

Note that if one is interested in two-point functions only, one could in principle avoid the removal and re-insertion of the external source/sink pair (and the uniform sampling of x0x0) whenever the worm closes, and instead just do importance sampling with respect to the location of the pair, which would be slightly more efficient as it would require less calls to the random-number generator. Measurements of observables which have to be obtained on closed-worm configurations would then have to be corrected by a reweighting factor, compensating for the presence of the external source/sink pair at x0x0.

Note also that "WORM_UPDATE(x0,…)" and "COND_WORM_UPDATE(x0,…)" could in principle be combined into a single worm, which, provided |s|\mathopen{}\mathclose{{\left|s}}\right| is non-zero, would not only sample the location and type of the head of the worm, but also sample the state of the worms tail: whether it should consist of an external source or sink as in "WORM_UPDATE(x0,…)" or if it should be replaced by an appropriate shift of the pp-variable (i.e. by a dynamical monomer) at the location of the tail as is the case in "COND_WORM_UPDATE(x0,…)". The reason why we decided to use separate worms is that our full simulation program is implemented to work for arbitrary linear and non-linear O(N)\operatorname{O}\mathopen{}\mathclose{{\left(N}}\right) sigma models (complex ϕ4\phi^{4} corresponds to the linear O(2)\operatorname{O}\mathopen{}\mathclose{{\left(2}}\right)-case and the also mentioned SU(2)\operatorname{SU}\mathopen{}\mathclose{{\left(2}}\right) chiral-effective model to the non-linear O(4)\operatorname{O}\mathopen{}\mathclose{{\left(4}}\right)-case) with arbitrary source terms, in which case the implementation with two different worms for sampling two- and one-point functions turned out to be simpler.

A.2 Detailed Balance and Transition Probabilities

In order to ensure that our Markov chain really samples the partition, one- and two-point function, we have to ensure detailed balance between each pair of successive configurations CC and CC^{\prime}, i.e. configurations contributing to the partition, one- or two-point function, which can be turned into each other by a single update. The detailed balance equation takes the general form

w(C)P(CC)=w(C)P(CC),w\mathopen{}\mathclose{{\left(}}\right.C\mathopen{}\mathclose{{\left.}}\right)P\mathopen{}\mathclose{{\left(}}\right.C\rightarrow C^{\prime}\mathopen{}\mathclose{{\left.}}\right)\,=\,w\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\mathopen{}\mathclose{{\left.}}\right)P\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\rightarrow C\mathopen{}\mathclose{{\left.}}\right)\ , (A.1)

where w(C)w\mathopen{}\mathclose{{\left(}}\right.C\mathopen{}\mathclose{{\left.}}\right) is the weight of the configuration CC and P(CC)P\mathopen{}\mathclose{{\left(}}\right.C\rightarrow C^{\prime}\mathopen{}\mathclose{{\left.}}\right) is the transition probability for going from configuration CC to CC^{\prime}. However, as during different stages of our simulation, the number of possible moves changes, it can happen, that the move CCC\rightarrow C^{\prime} is chosen with a different probability than the inverse move CCC^{\prime}\rightarrow C. We must then factor out from the transition probabilities the different move-choice probabilities, pp, and write

P(CC)=p(CC)Pr(CC),P\mathopen{}\mathclose{{\left(}}\right.C\rightarrow C^{\prime}\mathopen{}\mathclose{{\left.}}\right)\,=\,p\mathopen{}\mathclose{{\left(}}\right.C\rightarrow C^{\prime}\mathopen{}\mathclose{{\left.}}\right)\,P_{r}\mathopen{}\mathclose{{\left(}}\right.C\rightarrow C^{\prime}\mathopen{}\mathclose{{\left.}}\right)\ , (A.2)

and similarly

P(CC)=p(CC)Pr(CC),P\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\rightarrow C\mathopen{}\mathclose{{\left.}}\right)\,=\,p\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\rightarrow C\mathopen{}\mathclose{{\left.}}\right)\,P_{r}\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\rightarrow C\mathopen{}\mathclose{{\left.}}\right)\ , (A.3)

and then use only the reduced transition probabilities, PrP_{r}, for the Metropolis acceptance test, i.e.

Pr(CC)=min(.1,p(CC)w(C)p(CC)w(C).),P_{r}\mathopen{}\mathclose{{\left(}}\right.C\rightarrow C^{\prime}\mathopen{}\mathclose{{\left.}}\right)\,=\,\min\biggl{(}\bigg{.}1,\frac{p\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\rightarrow C\mathopen{}\mathclose{{\left.}}\right)\,w\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\mathopen{}\mathclose{{\left.}}\right)}{p\mathopen{}\mathclose{{\left(}}\right.C\rightarrow C^{\prime}\mathopen{}\mathclose{{\left.}}\right)\,w\mathopen{}\mathclose{{\left(}}\right.C\mathopen{}\mathclose{{\left.}}\right)}\bigg{.}\biggr{)}\ , (A.4)

and

Pr(CC)=min(.1,p(CC)w(C)p(CC)w(C).).P_{r}\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\rightarrow C\mathopen{}\mathclose{{\left.}}\right)\,=\,\min\biggl{(}\bigg{.}1,\frac{p\mathopen{}\mathclose{{\left(}}\right.C\rightarrow C^{\prime}\mathopen{}\mathclose{{\left.}}\right)\,w\mathopen{}\mathclose{{\left(}}\right.C\mathopen{}\mathclose{{\left.}}\right)}{p\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\rightarrow C\mathopen{}\mathclose{{\left.}}\right)\,w\mathopen{}\mathclose{{\left(}}\right.C^{\prime}\mathopen{}\mathclose{{\left.}}\right)}\bigg{.}\biggr{)}\ . (A.5)

The reason for this is, that in order for the Metropolis test to take place, the corresponding move has to be chosen already and the probability for this to happen should therefore not be taken into account a second time for the final decision whether the transition to the new configuration should take place or not. This is of course always the case, but if the move choice probabilities are the same for all the moves that are possible during the simulation, in particular for all pairs of move and inverse move, the move choice probabilities just cancel out in (A.4) and (A.5).
The diagram in figure 15 illustrates the different move-choice probabilities which occur at different stages of the simulation and in order to demonstrate how the corresponding reduced transition probabilities are determined, we show the derivation of these probabilities for the moves occurring in "WORM_UPDATE(…)". In what follows we use the abbreviation Ax=|px|+2qx+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).)A_{x}=\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}},\nu})\big{.}\bigr{)}, and for the variable ncn_{c} we have that nc=1n_{c}=1 if rs=2|s|=0r_{s}=\sqrt{2}\mathopen{}\mathclose{{\left|s}}\right|=0, and nc=2n_{c}=2 otherwise151515The value of ncn_{c} is different for rs=2|s|=0r_{s}=\sqrt{2}\mathopen{}\mathclose{{\left|s}}\right|=0 and rs=2|s|0r_{s}=\sqrt{2}\mathopen{}\mathclose{{\left|s}}\right|\neq 0 because ”WORM_UPDATE(x0,…)” is executed with different probabilities within ”SWEEP()” in these two cases, as explained at the beginning of Sec. A.1..

  • The detailed balance equation for starting the worm at site x0x_{0}, i.e. inserting an external source/sink pair at this point, reads:

    Wλ(.Ax0.)14ncPr=14Wλ(.Ax0+2.)12Pr,W_{\lambda}\bigl{(}\big{.}A_{x_{0}}\big{.}\bigr{)}\,\frac{1}{4\,n_{c}}\,P_{r}\,=\,\frac{1}{4}\,W_{\lambda}\bigl{(}\big{.}A_{x_{0}}+2\big{.}\bigr{)}\frac{1}{2}\,P^{\prime}_{r}, (A.6)

    from which it follows that:

    Pr=min(.1,ncWλ(.Ax0+2.)2Wλ(.Ax0.).),P_{r}\,=\,\min\biggl{(}\bigg{.}1,\frac{n_{c}\,W_{\lambda}\bigl{(}\big{.}A_{x_{0}}+2\big{.}\bigr{)}}{2\,W_{\lambda}\bigl{(}\big{.}A_{x_{0}}\big{.}\bigr{)}}\bigg{.}\biggr{)}, (A.7)
  • If the head of the worm consists of a ϕ\phi^{*}, we define Δ=1\Delta=1, and if the head is a ϕ\phi, we set Δ=1\Delta=-1 instead.

    • For moving the head from site xx to its nearest-neighbor in positive direction, say to x=x+ν^x^{\prime}=x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}, and changing kx,νkx,ν+Δ=:kx,νk_{x,\nu}\rightarrow k_{x,\nu}+\Delta=:k^{\prime}_{x,\nu}, the detailed balance equation reads:

      (κ2)|kx,ν|+2lx,νe2μkx,νδν,d(|kx,ν|+lx,ν)!lx,ν!Wλ(.Ax.)Wλ(.Ax.)12(2d+nc)Pr=(κ2)|kx,ν|+2lx,νe2μkx,νδν,d(|kx,ν|+lx,ν)!lx,ν!Wλ(.Ax1+|kx,ν||kx,ν|.)Wλ(.Ax+1+|kx,ν||kx,ν|.)12(2d+nc)Pr,\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\big{|}k_{x,\nu}\big{|}+2l_{x,\nu}}\operatorname{e}^{2\,\mu\,k_{x,\nu}\,\delta_{\nu,d}}}{\mathopen{}\mathclose{{\left(}}\right.\big{|}k_{x,\nu}\big{|}+l_{x,\nu}\mathopen{}\mathclose{{\left.}}\right)!l_{x,\nu}!}\,W_{\lambda}\bigl{(}\big{.}A_{x}\big{.}\bigr{)}\,W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}\big{.}\bigr{)}\,\frac{1}{2\,\mathopen{}\mathclose{{\left(}}\right.2\,d+\,n_{c}\mathopen{}\mathclose{{\left.}}\right)}\,P_{r}\,=\\ \frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\big{|}k^{\prime}_{x,\nu}\big{|}+2l_{x,\nu}}\operatorname{e}^{2\,\mu\,k^{\prime}_{x,\nu}\,\delta_{\nu,d}}}{\mathopen{}\mathclose{{\left(}}\right.\big{|}k^{\prime}_{x,\nu}\big{|}+l_{x,\nu}\mathopen{}\mathclose{{\left.}}\right)!l_{x,\nu}!}\,W_{\lambda}\bigl{(}\big{.}A_{x}-1+\mathopen{}\mathclose{{\left|k^{\prime}_{x,\nu}}}\right|-\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|\big{.}\bigr{)}\\ \cdot\,W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}+1+\mathopen{}\mathclose{{\left|k^{\prime}_{x,\nu}}}\right|-\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|\big{.}\bigr{)}\,\frac{1}{2\,\mathopen{}\mathclose{{\left(}}\right.2\,d+\,n_{c}\mathopen{}\mathclose{{\left.}}\right)}\,P^{\prime}_{r}, (A.8)

      from which it follows that if |kx,ν|>|kx,ν|\mathopen{}\mathclose{{\left|k^{\prime}_{x,\nu}}}\right|>\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|:

      Pr=min(.1,κ2e2μΔδν,d|kx,ν|+lx,νWλ(.Ax+2.)Wλ(.Ax.).),P_{r}\,=\,\min\biggl{(}\bigg{.}1,\frac{\frac{\kappa}{2}\operatorname{e}^{2\,\mu\,\Delta\,\delta_{\nu,d}}}{\mathopen{}\mathclose{{\left|k^{\prime}_{x,\nu}}}\right|+l_{x,\nu}}\frac{W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}+2\big{.}\bigr{)}}{W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}\big{.}\bigr{)}}\bigg{.}\biggr{)}, (A.9)

      and if |kx,ν|<|kx,ν|\big{|}k^{\prime}_{x,\nu}\big{|}<\big{|}k_{x,\nu}\big{|}:

      Pr=min(.1,|kx,ν|+lx,νκ2e2μΔδν,dWλ(.Ax2.)Wλ(.Ax.).).P_{r}\,=\,\min\biggl{(}\bigg{.}1,\frac{\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+l_{x,\nu}}{\frac{\kappa}{2}\operatorname{e}^{-2\,\mu\,\Delta\,\delta_{\nu,d}}}\frac{W_{\lambda}\bigl{(}\big{.}A_{x}-2\big{.}\bigr{)}}{W_{\lambda}\bigl{(}\big{.}A_{x}\big{.}\bigr{)}}\bigg{.}\biggr{)}. (A.10)
    • When moving the head from site xx to a nearest-neighbor in a negative direction, e.g. x=xν^x^{\prime}=x-\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}} and shifting kx,νkx,νΔ=:kx,νk_{x^{\prime},\nu}\rightarrow k_{x^{\prime},\nu}-\Delta=:k^{\prime}_{x^{\prime},\nu}, the corresponding detailed balance equation becomes:

      (κ2)|kx,ν|+2lx,νe2μkx,νδnu,d(|kx,ν|+lx,ν)!lx,ν!Wλ(.Ax.)Wλ(.Ax.)12(2d+nc)Pr=(κ2)|kx,ν|+2lx,νe2μkx,νδnu,d(|kx,ν|+lx,ν)!lx,ν!Wλ(.Ax1+|kx,ν||kx,ν|.)Wλ(.Ax+1+|kx,ν||kx,ν|.)12(2d+nc)Pr,\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\big{|}k_{x^{\prime},\nu}\big{|}+2l_{x^{\prime},\nu}}\operatorname{e}^{2\,\mu\,k_{x^{\prime},\nu}\delta_{nu,d}}}{\mathopen{}\mathclose{{\left(}}\right.\big{|}k_{x^{\prime},\nu}\big{|}+l_{x^{\prime},\nu}\mathopen{}\mathclose{{\left.}}\right)!l_{x^{\prime},\nu}!}\,W_{\lambda}\bigl{(}\big{.}A_{x}\big{.}\bigr{)}\,W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}\big{.}\bigr{)}\,\frac{1}{2\,\mathopen{}\mathclose{{\left(}}\right.2\,d+\,n_{c}\mathopen{}\mathclose{{\left.}}\right)}\,P_{r}\,=\\ \frac{\mathopen{}\mathclose{{\left(}}\right.\frac{\kappa}{2}\mathopen{}\mathclose{{\left.}}\right)^{\big{|}k^{\prime}_{x^{\prime},\nu}\big{|}+2l_{x^{\prime},\nu}}\operatorname{e}^{2\,\mu\,k_{x^{\prime},\nu}\,\delta_{nu,d}}}{\mathopen{}\mathclose{{\left(}}\right.\big{|}k^{\prime}_{x^{\prime},\nu}\big{|}+l_{x^{\prime},\nu}\mathopen{}\mathclose{{\left.}}\right)!l_{x^{\prime},\nu}!}\,W_{\lambda}\bigl{(}\big{.}A_{x}-1+\big{|}k^{\prime}_{x^{\prime},\nu}\big{|}-\big{|}k_{x^{\prime},\nu}\big{|}\big{.}\bigr{)}\\ \cdot\,W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}+1+\big{|}k^{\prime}_{x^{\prime},\nu}\big{|}-\big{|}k_{x^{\prime},\nu}\big{|}\big{.}\bigr{)}\,\frac{1}{2\,\mathopen{}\mathclose{{\left(}}\right.2\,d+\,n_{c}\mathopen{}\mathclose{{\left.}}\right)}\,P^{\prime}_{r}, (A.11)

      such that for |kx,ν|>|kx,ν|\big{|}k^{\prime}_{x^{\prime},\nu}\big{|}>\big{|}k_{x^{\prime},\nu}\big{|}:

      Pr=min(.1,κ2e2μΔδν,d|kx,ν|+lx,νWλ(.Ax+2.)Wλ(.Ax.).),P_{r}\,=\,\min\biggl{(}\bigg{.}1,\frac{\frac{\kappa}{2}\operatorname{e}^{-2\,\mu\,\Delta\,\delta_{\nu,d}}}{\big{|}k^{\prime}_{x^{\prime},\nu}\big{|}+l_{x^{\prime},\nu}}\frac{W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}+2\big{.}\bigr{)}}{W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}\big{.}\bigr{)}}\bigg{.}\biggr{)}, (A.12)

      and if |kx,ν|<|kx,ν|\big{|}k^{\prime}_{x^{\prime},\nu}\big{|}<\big{|}k_{x^{\prime},\nu}\big{|}:

      Pr=min(.1,|kx,ν|+lx,νκ2e2μΔδν,dWλ(.Ax2.)Wλ(.Ax.).).P_{r}\,=\,\min\biggl{(}\bigg{.}1,\frac{\big{|}k_{x^{\prime},\nu}\big{|}+l_{x^{\prime},\nu}}{\frac{\kappa}{2}\operatorname{e}^{2\,\mu\,\Delta\,\delta_{\nu,d}}}\frac{W_{\lambda}\bigl{(}\big{.}A_{x}-2\big{.}\bigr{)}}{W_{\lambda}\bigl{(}\big{.}A_{x}\big{.}\bigr{)}}\bigg{.}\biggr{)}. (A.13)
    • Moving the head from site xx to another random site xx^{\prime} and shifting pxpx+Δ=:pxp_{x}\rightarrow p_{x}+\Delta=:p^{\prime}_{x}, pxpxΔ=:pxp_{x^{\prime}}\rightarrow p_{x^{\prime}}-\Delta=:p^{\prime}_{x^{\prime}} leads to the detailed balance equation,

      (rs2)|px|+2qx(|px|+qx)!qx!(rs2)|px|+2qx(|px|+qx)!qx!Wλ(.Ax.)Wλ(.Ax.)12(2d+nc)Pr=(rs2)|px|+2qx(|px|+qx)!qx!(rs2)|px|+2qx(|px|+qx)!qx!Wλ(.Ax1+|px||px|.)Wλ(.Ax+1+|px||px|.)12(2d+nc)Pr,\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{r_{s}}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|p_{x}}}\right|+2q_{x}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x}}}\right|+q_{x}\mathopen{}\mathclose{{\left.}}\right)!q_{x}!}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{r_{s}}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|p_{x^{\prime}}}}\right|+2q_{x^{\prime}}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p_{x^{\prime}}}}\right|+q_{x^{\prime}}\mathopen{}\mathclose{{\left.}}\right)!q_{x^{\prime}}!}\,W_{\lambda}\bigl{(}\big{.}A_{x}\big{.}\bigr{)}\,W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}\big{.}\bigr{)}\,\frac{1}{2\,\mathopen{}\mathclose{{\left(}}\right.2\,d+\,n_{c}\mathopen{}\mathclose{{\left.}}\right)}\,P_{r}\\ =\,\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{r_{s}}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|p^{\prime}_{x}}}\right|+2q_{x}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p^{\prime}_{x}}}\right|+q_{x}\mathopen{}\mathclose{{\left.}}\right)!q_{x}!}\frac{\mathopen{}\mathclose{{\left(}}\right.\frac{r_{s}}{2}\mathopen{}\mathclose{{\left.}}\right)^{\mathopen{}\mathclose{{\left|p^{\prime}_{x^{\prime}}}}\right|+2q_{x^{\prime}}}}{\mathopen{}\mathclose{{\left(}}\right.\mathopen{}\mathclose{{\left|p^{\prime}_{x^{\prime}}}}\right|+q_{x^{\prime}}\mathopen{}\mathclose{{\left.}}\right)!q_{x^{\prime}}!}\\ \cdot\,W_{\lambda}\bigl{(}\big{.}A_{x}-1+\mathopen{}\mathclose{{\left|p^{\prime}_{x}}}\right|-\mathopen{}\mathclose{{\left|p_{x}}}\right|\big{.}\bigr{)}\,W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}+1+\mathopen{}\mathclose{{\left|p^{\prime}_{x^{\prime}}}}\right|-\mathopen{}\mathclose{{\left|p_{x^{\prime}}}}\right|\big{.}\bigr{)}\,\frac{1}{2\,\mathopen{}\mathclose{{\left(}}\right.2\,d+\,n_{c}\mathopen{}\mathclose{{\left.}}\right)}\,P^{\prime}_{r}, (A.14)

      such that

      Pr=min(.1,Rr,xRr,x.),P_{r}\,=\,\min\bigl{(}\big{.}1,R_{r,x}\,R_{r,x^{\prime}}\big{.}\bigr{)}, (A.15)

      where

      Rr,x={rs|px|+qxif |px|>|px||px|+qxrs4Wλ(.Ax2.)Wλ(.Ax.)if |px|<|px|.R_{r,x}\,=\,\begin{cases}\frac{r_{s}}{\mathopen{}\mathclose{{\left|p^{\prime}_{x}}}\right|+q_{x}}&\mbox{if }\mathopen{}\mathclose{{\left|p^{\prime}_{x}}}\right|>\mathopen{}\mathclose{{\left|p_{x}}}\right|\\ \frac{\mathopen{}\mathclose{{\left|p_{x}}}\right|+q_{x}}{\frac{r_{s}}{4}}\frac{W_{\lambda}\bigl{(}\big{.}A_{x}-2\big{.}\bigr{)}}{W_{\lambda}\bigl{(}\big{.}A_{x}\big{.}\bigr{)}}&\mbox{if }\mathopen{}\mathclose{{\left|p^{\prime}_{x}}}\right|<\mathopen{}\mathclose{{\left|p_{x}}}\right|.\end{cases} (A.16)

      and

      Rr,x={rs4|px|+qxWλ(.Ax+2.)Wλ(.Ax.)if |px|>|px||px|+qxrsif |px|<|px|.R_{r,x^{\prime}}\,=\,\begin{cases}\frac{\frac{r_{s}}{4}}{\big{|}p^{\prime}_{x^{\prime}}\big{|}+q_{x^{\prime}}}\frac{W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}+2\big{.}\bigr{)}}{W_{\lambda}\bigl{(}\big{.}A_{x^{\prime}}\big{.}\bigr{)}}&\mbox{if }\big{|}p^{\prime}_{x^{\prime}}\big{|}>\big{|}p_{x^{\prime}}\big{|}\\ \frac{\big{|}p_{x^{\prime}}\big{|}+q_{x^{\prime}}}{r_{s}}&\mbox{if }\big{|}p^{\prime}_{x^{\prime}}\big{|}<\big{|}p_{x^{\prime}}\big{|}.\end{cases} (A.17)
    • Removing the head from site xx and inserting it again at xx^{\prime} with opposite external charge leads again to (A.14), (A.15), (A.16) and (A.17), but this time with pxpx+Δ=:pxp_{x}\rightarrow p_{x}+\Delta=:p^{\prime}_{x} and pxpx+Δ=:pxp_{x^{\prime}}\rightarrow p_{x^{\prime}}+\Delta=:p^{\prime}_{x^{\prime}}.

  • Finally, if head and tail are again located both on site x0x_{0} and consist of opposite external charges, one can propose to terminate the worm, for which the detailed balance equation is given by

    14Wλ(.Ax0.)12Pr=Wλ(.Ax02.)14ncPr,\frac{1}{4}\,W_{\lambda}\bigl{(}\big{.}A_{x_{0}}\big{.}\bigr{)}\frac{1}{2}\,P_{r}\,=\,W_{\lambda}\bigl{(}\big{.}A_{x_{0}}-2\big{.}\bigr{)}\frac{1}{4\,n_{c}}\,P^{\prime}_{r}, (A.18)

    and therefore:

    Pr=min(.1,2Wλ(.Ax02.)ncWλ(.Ax0.).).P_{r}\,=\,\min\biggl{(}\bigg{.}1,\frac{2\,W_{\lambda}\bigl{(}\big{.}A_{x_{0}}-2\big{.}\bigr{)}}{n_{c}\,W_{\lambda}\bigl{(}\big{.}A_{x_{0}}\big{.}\bigr{)}}\bigg{.}\biggr{)}. (A.19)

The reduced transition probabilities for the moves in "COND_WORM_UPDATE(…)" can be obtained in a a completely analogous way.

xxxxxxx+ν^x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\nu}}\vphantom{\displaystyle\nu}}{\smash{\textstyle\hat{\textstyle\nu}}\vphantom{\textstyle\nu}}{\smash{\scriptstyle\hat{\scriptstyle\nu}}\vphantom{\scriptstyle\nu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\nu}}\vphantom{\scriptscriptstyle\nu}}\cdotsyy1/2(V1)\nicefrac{{1}}{{2(V-1)}}1/2(V1)\nicefrac{{1}}{{2(V-1)}}yyzzxx1/2\nicefrac{{1}}{{2}}l- or q-updatex+μ^x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}}xxx+μ^x+\mathchoice{\smash{\displaystyle\hat{\displaystyle\mu}}\vphantom{\displaystyle\mu}}{\smash{\textstyle\hat{\textstyle\mu}}\vphantom{\textstyle\mu}}{\smash{\scriptstyle\hat{\scriptstyle\mu}}\vphantom{\scriptstyle\mu}}{\smash{\scriptscriptstyle\hat{\scriptscriptstyle\mu}}\vphantom{\scriptscriptstyle\mu}}1/2\nicefrac{{1}}{{2}}l- or q-update1/4nc\nicefrac{{1}}{{4\,\text{nc}}}1/4\nicefrac{{1}}{{4}}1/8d\nicefrac{{1}}{{8\,\text{d}}}1/8d\nicefrac{{1}}{{8\,\text{d}}}\cdots1/8d\nicefrac{{1}}{{8\,\text{d}}}1/8d\nicefrac{{1}}{{8\,\text{d}}}\cdots1/4\nicefrac{{1}}{{4}}1/4nc\nicefrac{{1}}{{4\,\text{nc}}}1/2\nicefrac{{1}}{{2}}1/4nc\nicefrac{{1}}{{4\,\text{nc}}}1/2\nicefrac{{1}}{{2}}l- or q-update1/2\nicefrac{{1}}{{2}}l- or q-update1/2mnu\nicefrac{{1}}{{2\,\text{mnu}}}1/2mnu\nicefrac{{1}}{{2\,\text{mnu}}}1/2mnu\nicefrac{{1}}{{2\,\text{mnu}}}1/2mnu\nicefrac{{1}}{{2\,\text{mnu}}}1/2mnu\nicefrac{{1}}{{2\,\text{mnu}}}1/2mnu\nicefrac{{1}}{{2\,\text{mnu}}}1/2mnu\nicefrac{{1}}{{2\,\text{mnu}}}1/2mnu\nicefrac{{1}}{{2\,\text{mnu}}}COND_WORM_UPDATE()WORM_UPDATE()
Figure 15: The figure illustrates the move-choice probabilities for the different moves which are possible at different stages of the worm algorithm. Theses move-choice probabilities are necessary to determine the correct transition probabilities, satisfying detailed balance.
Algorithm 1 The following pseudo-code describes our simulation program. The routine "SWEEP()" makes use of a worm-update routine "WORM_UPDATE()" which samples the two-point functions, allows for monomer insertions and head-changes of the worm (provided sr>0). If sr>0, it makes also use of a second worm-update routine "COND_WORM_UPDATE()" which samples the condensates. The input parameters are as follows:
&sites is a reference to the two-dimensional array "sites", where:
sites[ixi_{x}][0]=|px|+2qx+ν(.|kx,ν|+|kxν^,ν|+2(lx,ν+lxν^,ν).)\mathopen{}\mathclose{{\left|p_{x}}}\right|+2\,q_{x}+\sum\limits_{\nu}\bigl{(}\big{.}\mathopen{}\mathclose{{\left|k_{x,\nu}}}\right|+\mathopen{}\mathclose{{\left|k_{x-\widehat{\nu},\nu}}}\right|+2\,(l_{x,\nu}+l_{x-\widehat{\nu},\nu})\big{.}\bigr{)},
sites[ixi_{x}][1]=sites[x][0] (for a O(N)\operatorname{O}\mathopen{}\mathclose{{\left(N}}\right) model with N>2N>2 sites[ixi_{x}][1] would be different from sites[ixi_{x}][0]),
sites[ixi_{x}][2]=pxp_{x}, sites[ixi_{x}][3]=qxq_{x},
&bonds is a reference to the 3-dimensional array "bonds", where for nu<d, with ν\nu=nu+1:
bonds[ixi_{x}][nu][0]=kx,νk_{x,\nu},
bonds[ixi_{x}][nu][1]=lx,νl_{x,\nu},
and for nu\geqd, with ν\nu=(nu-d)+1:
bonds[ixi_{x}][nu][0]=&bonds[ixν^i_{x-\widehat{\nu}}][nu-d][0],
bonds[ixi_{x}][nu][1]=&bonds[ixν^i_{x-\widehat{\nu}}][nu-d][1],
&xnbr is a reference to the nearest-neighbor lookup table "xnbr", where for nu<d, with ν\nu=nu+1, we have xnbr[ixi_{x}][nu]=ix+ν^i_{x+\widehat{\nu}}, and for nu>=d, with ν\nu=(nu-d)+1: xnbr[ixi_{x}][nu]=ixν^i_{x-\widehat{\nu}}.
&wh is a reference to the array "wh" of weight ratios:
wh[n]=Wλ(n+2)/Wλ(n)W_{\lambda}\mathopen{}\mathclose{{\left(}}\right.n+2\mathopen{}\mathclose{{\left.}}\right)/W_{\lambda}\mathopen{}\mathclose{{\left(}}\right.n\mathopen{}\mathclose{{\left.}}\right), where Wλ(n)W_{\lambda}\mathopen{}\mathclose{{\left(}}\right.n\mathopen{}\mathclose{{\left.}}\right) is defined in eq. (1.17),
h=κ\kappa is the hopping parameter,
mu=μ\mu is the chemical potential,
sr=srs_{r} is the radial source,
Ns: number of sites per spatial dimension,
Nt: number of sites in the temporal direction,
d: number of dimensions,
sweeplen: number of attempted worms or shifts of x0 per sweep, can be tuned to obtain sweeps with fixed average number of local updates.
&ni: reference to the variable "ni", containing the total charge xkx,4\sum\limits_{x}\,k_{x,4},
&corrs and &corrt are references to the variables "corrs" and "corrt", containing the spatial and temporal (zero-momentum) propagators, e.g. corrt[t]1Vx0\sim\frac{1}{V}\sum_{x_{0}}(ϕ(x0)ϕ(x0+d^t)ϕ(x0)ϕ(x0+d^t)ϕ(x0)ϕ(x0+d^t)ϕ(x0)ϕ(x0+d^t))\begin{pmatrix}\phi\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.x_{0}+\widehat{d}\cdot t\mathopen{}\mathclose{{\left.}}\right)&\phi\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x_{0}+\widehat{d}\cdot t\mathopen{}\mathclose{{\left.}}\right)\\ \phi^{*}\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right)\phi\mathopen{}\mathclose{{\left(}}\right.x_{0}+\widehat{d}\cdot t\mathopen{}\mathclose{{\left.}}\right)&\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x_{0}\mathopen{}\mathclose{{\left.}}\right)\phi^{*}\mathopen{}\mathclose{{\left(}}\right.x_{0}+\widehat{d}\cdot t\mathopen{}\mathclose{{\left.}}\right)\end{pmatrix}.
The notation x%N for x\in\mathbb{Z}, N\in\mathbb{N}, refers to (xmodN){0,,N1}\mathopen{}\mathclose{{\left(}}\right.x\bmod N\mathopen{}\mathclose{{\left.}}\right)\in\{0,\ldots,N-1\} and the function randi(N) returns a random integer in the range {0,,N1}\{0,\ldots,N-1\} while rand() is understood to return a random floating point number in the semi-open interval [0,1)[0,1).
function sweep(&x0, &sites, &bonds, &xnbr, h, mu, sr, Ns, Nt, d, sweeplen, &ni, &corrs, &corrt, &cond)
  V=Nt*pow(Ns,d-1);
  nc=1;
  if sr>0 then
    nc=2;
  end if
  imax=sweeplen;\triangleright Call on average imax/(2*nc) times the routine WORM_UPDATE(). If source is none zero, then nc=2 and also COND_WORM_UPDATE() will on average be called imax/(2*nc) times. The remaining 50% of the cases, x0 is changed.
  for i=0; i<imax; ++i do
    tm=randi(2*nc);
    if tm>=nc then
     x0=(x0+1+randi(V-2))%V;
    else if tm==0 then
     WORM_UPDATE(x0, sites, bonds, xnbr, wh, h, mu, sr, Ns ,Nt ,ni ,corrs ,corrt);
    else
     COND_WORM_UPDATE(x0, sites, bonds, xnbr, wh, h, mu, sr, Ns ,Nt ,ni, cond);
    end if
  end for
end function
function worm_update(&x0, &sites, &bonds, &xnbr, &wh, h, mu, sr, Ns, Nt, d, &ni, &corrs, &corrt)
  c0=randi(2);\triangleright c0=0: tail of worm is a source; c0=1: tail of worm is sink.
  x=x0;
  c=c0;
  rho=2*nc*0.25*wh[sites[x][0]];
  if rho>=1 || rand()<rho then\triangleright acceptance test for insertion of source and sink at x.
    sites[x][0]+=2;
    sites[x][1]+=2;
  else
    return ;
  end if
  if c==0 then\triangleright Source or sink at x?
    del=1;
  else
    del=-1;
  end if
  if sr>0 then
    mnu=2*d+2;\triangleright if the radial source is non-zero, two additional moves are possible at each step of the worm.
    nc=2;
  else
    mnu=2*d;\triangleright if the source is zero, the worm can evolve only by moving its head from one site to one of its 2*d neighboring sites.
    nc=1;
  end if
  cx=array(d,0);\triangleright cx[nu] will contain the relative distance in ν\nu-direction (with ν\nu=(nu+1)) between head an tail of the worm.
  while true do
    tc=(c+1)%2;
    for i=0; i<d-1; ++i do
     corrs[cx[i]][c0][tc]+=1;\triangleright increase the histogram for the current head-tail separation in each spatial direction.
    end for
    corrt[cx[d-1]][c0][tc]+=1;\triangleright increase the histogram for the current head-tail separation in temporal direction.
    nu=randi(2*mnu);
    if nu>=mnu then\triangleright update l or q-variables or terminate worm if possible:
     if c==c0 && x==x0 then\triangleright if head and tail are on the same site and consist of a source-sink pair: propose to terminate the worm by removing them,
      rho=1./(2*nc*0.25*wh[sites[x][0]-2]);
      if rho>=1 || rand()<rho then
         sites[x][0]-=2;
         sites[x][1]-=2;
         break;
      end if
     else\triangleright if head and tail are not on the same site or if they do not consist of a corresponding source-sink pair: attempt to update either the l or the q-variables.
      if nu-mnu<2*d then
         L_UPDATE(sites, bonds, xnbr, wh, V, d);
      else
         Q_UPDATE(sites, wh, V);
      end if
     end if
    else if nu<2*d then\triangleright attempt to move the head to a neighboring site.
     tnu=nu%d;
     xn=xnbr[x][nu];
     tdk=1-2*floor(nu/d);\triangleright determines if nu corresponds to a positive or negative direction.
     k=bonds[x][nu][0];
     l=bonds[x][nu][1];
     kn=k+tdk*del;\triangleright the factor of tdk is there because k-variables in negative direction enter the delta function constraint at x with a negative sign and must therefore be changed in the opposite direction.
     ch=abs(k)-l;
     chn=abs(kn)-l;
     dak=chn-ch;
     if dak>0 then
      rho=0.5*h*wh[sites[xn][0]]/chn;
     else
      rho=ch/(0.5*h*wh[sites[x][0]-2]);
     end if
     if tnu==(d-1) then
      if tdk*del>0 then
         rho*=exp(2*mu);
      else
         rho*=exp(-2*mu);
      end if
     end if
     if rho>=1 || rand()<rho then\triangleright acceptance test for moving the head of the worm from site x to site xn while changing bonds[x][nu][0] from k to kn.
      bonds[x][nu][0]=kn;
      if dak>0 then
         sites[xn][0]+=2*dak;
         sites[xn][1]+=2*dak;
      else
         sites[x][0]+=2*dak;
         sites[x][1]+=2*dak;
      end if
      cx[tnu]+=tdk;
      if tnu==(d-1) then\triangleright if the head of the worm is moved in time direction, update ni.
         ni+=tdk*del;
         cx[tnu]=cx[tnu]%Nt;
      else
         cx[tnu]=cx[tnu]%Ns;
      end if
      x=xn;
     end if
    else\triangleright attempt to move the head to a distant location by inserting monomers.
     cn=nu-2*d;
     xn=randi(V-1);\triangleright choose random new location xn (distinct from x).
     if xn>=x then
      ++xn;
     end if
     p1=sites[x][2];
     q1=sites[x][3];
     p1n=p1+del;
     dap1=abs(p1n)-abs(p1);
     if dap1>0 then
      rho=sr/(abs(p1n)+q1);
     else
      rho=(abs(p1)+q1)/(0.25*sr*wh[sites[x][0]-2]);
     end if
     if cn==0 then
      deln=1;
     else
      deln=-1;
     end if
     p2=sites[xn][2];
     q2=sites[xn][3];
     p2n=p2-deln;
     dap2=abs(p2n)-abs(p2);
     if dap2>0 then
      rho*=0.25*sr*wh[sites[xn][0]]/(abs(p2n)+q2);
     else
      rho*=(abs(p2)+q2)/sr;
     end if
     if rho>=1 || rand()<rho then\triangleright acceptance test for removing the head of the worm at x and inserting it again at xn.
      sites[x][2]=p1n;
      if dap1<0 then
         sites[x][0]-=2;
         sites[x][1]-=2;
      end if
      sites[xn][2]=p2n;
      if dap2>0 then
         sites[xn][0]+=2;
         sites[xn][1]+=2;
      end if
      xi=x;
      xin=xn;
      for tnu=0; tnu<d-1; ++tnu do\triangleright compute new distance between the worm’s head and tail in each direction.
         cx[tnu]+=((xin%Ns)-(xi%Ns));
         cx[tnu]=cx[tnu]%Ns;
         xin=floor(xin/Ns);
         xi=floor(xi/Ns);
      end for
      cx[d-1]+=((xin%Nt)-(xi%Nt));
      cx[d-1]=cx[d-1]%Nt;
      x=xn;
      c=cn;
      del=deln;
     end if
    end if
  end while
  return ;
end function
function cond_worm_update(&x0, &sites, &bonds, &xnbr, &wh, h, mu, sr, Ns, Nt, d, &ni, &cond)
  c=randi(2);
  x=x0;
  if c==0 then
    del=1;\triangleright charge at worm’s tail positive or negative?
  else
    del=-1;
  end if
  p1=sites[x][2];
  q1=sites[x][3];
  p1n=p1-del;
  dap1=abs(p1n)-abs(p1);
  rho=2.;
  if dap1>0 then
    rho*=0.25*sr*wh[sites[x][0]]/(abs(p1n)+q1);
  else
    rho*=(abs(p1)+q1)/sr;
  end if
  if rho>=1 || rand()<rho then\triangleright acceptance test for inserting an external source and a monomer at x. If not accepted: terminate routine.
    sites[x][2]=p2n;
    if dap1>0 then
     sites[x][0]+=2;
     sites[x][1]+=2;
    end if
  else
    return ;
  end if
  tc=(c+1)%2;
  mnu=2*d;
  while true do
    cond[tc]+=1;
    nu=randi(4*mnu);\triangleright four possible moves: move head of worm, update a l-variable, terminate worm or update a q-variable.
    if nu<mnu then\triangleright attempt to move the worms head.
     tnu=nu%d;
     xn=xnbr[x][nu];
     tdk=1-2*floor(nu/d);
     k=bonds[x][nu][0];
     l=bonds[x][nu][1];
     kn=k+tdk*del;
     ch=abs(k)+l;
     chn=abs(kn)+l;
     dak=chn-ch;
     if dak>0 then
      rho=0.5*h*wh[sites[xn][0]]/chn;
     else
      rho=ch/(0.5*h*wh[sites[x][0]-2]);
     end if
     if tnu==(d-1) then\triangleright if proposed move is in time-direction, take chemical potential into account.
      if tdk*del>0 then
         rho*=exp(2*mu);
      else
         rho*=exp(-2*mu);
      end if
     end if
     if rho>=1 || rand()<rho then
      if tnu==(d-1) then
         ni+=tdk*del;
      end if
      if dak>0 then
         sites[xn][0]+=2*dak;
         sites[xn][1]+=2*dak;
      else
         sites[x][0]+=2*dak;
         sites[x][1]+=2*dak;
      end if
      bonds[x][nu][0]=kn;
      x=xn;
     end if
    else if nu<2*mnu then\triangleright attempt to update a l-variable.
     L_UPDATE(sites,bonds,xnbr,wh,V,d);
    else if nu<3*mnu then\triangleright attempt to terminate the worm by replacing the external charge at the head by a monomer.
     p1=sites[x][2];
     q1=sites[x][3];
     p1n=p1+del;
     dap1=abs(p1n)-abs(p1);
     rho=1/(2*nc);
     if dap1>0 then
      rho*=sr/(abs(p1n)+q1);
     else
      rho*=(abs(p1)+q1)/(0.25*sr*wh[sites[x][0]-2]);
     end if
     if rho>=1 || rand()<rho then
      sites[x][2]=p1n;
      if dap1<0 then
         sites[x][0]-=2;
         sites[x][1]-=2;
      end if
      x0=x;
      break;
     end if
    else\triangleright attempt to update a q-variable.
     Q_UPDATE(sites, wh, V);
    end if
  end while
  return ;
end function
function l_update(&sites, &bonds, &xnbr, &wh, V, d)
  x=randi(V);
  nu=randi(d);
  del=1-2*randi(2);
  l=bonds[x][nu][1];
  ln=l+del;
  if ln>=0 then
    xn=xnbr[x][nu];
    ak=abs(sites[x][nu][0]);
    if del>0 then
     rho=0.25*wh[sites[x][0]]*wh[sites[xn][0]]*h*h/(ln*(ak+ln));
    else
     rho=l*(ak+l)/(h*h*0.25*wh[sites[x][0]-2]*wh[sites[xn][0]-2]);
    end if
    if rho>=1 || rand()<rho then
     bonds[x][nu][1]=ln;
     sites[x][0]+=2*del;
     sites[x][1]+=2*del;
     sites[xn][0]+=2*del;
     sites[xn][1]+=2*del;
    end if
  end if
  return ;
end function
function q_update(&sites, &wh, V)
  x=randi(V);
  del=1-2*randi(2);
  q=sites[x][3];
  qn=q+del;
  if qn>=0 then
    ap=abs(sites[x][2]);
    if del>0 then
     rho=0.25*wh[sites[x][0]]*sr*sr/(qn*(ap+qn));
    else
     rho=q*(ap+q)/(sr*sr*0.25*wh[sites[x][0]-2]);
    end if
    if rho>=1 || rand()<rho then
     sites[x][0]+=2*del;
     sites[x][1]+=2*del;
     sites[x][3]=qn;
    end if
  end if
  return ;
end function

References

  • [1] N. Prokof’ev, B. Svistunov, Worm Algorithm for Classical Statistical Models, Phys. Rev. Lett. 87 (2001) 160601, arXiv:cond-mat/0103146
  • [2] R. H. Swendsen, J.-S. Wang, Nonuniversal Critical Dynamics in Monte Carlo Simulations, Phys. Rev. Lett. 58 (1987) 86
  • [3] M. G. Endres, Avoiding the boson sign problem at finite chemical potential, PoS (LATTICE 2006) 133, arXiv:hep-lat/0609037
  • [4] M. G. Endres, Method for simulating O(N) lattice models at finite density, Phys. Rev. D 75 (2007) 065012, arXiv:hep-lat/0610029
  • [5] U. Wolff, Simulating the All-Order Strong Coupling Expansion I: Ising Model Demo, Nucl. Phys. B 810 (2009) 491-502, arXiv:0808.3934 [hep-lat]
  • [6] U. Wolff, Simulating the All-Order Strong Coupling Expansion III: O(N) sigma/loop models, Nucl. Phys. B 824 (2010) 254-272, arXiv:0908.0284 [hep-lat]
  • [7] T. Korzec, I. Vierhaus, U. Wolff, Performance of a worm algorithm in ϕ4\phi^{4} theory at finite quartic coupling, Comp. Phys. Comm. 182 (2011) 1477, arXiv:1101.3452 [hep-lat]
  • [8] C. Gattringer, T. Kloiber, Spectroscopy in finite density lattice field theory: An exploratory study in the relativistic Bose gas, Phys. Lett. B 720 (2013) 210–214, arXiv:1212.3770 [hep-lat]
  • [9] C. Gattringer, T. Kloiber, Lattice study of the Silver Blaze phenomenon for a charged scalar ϕ4\phi^{4} field, Nucl. Phys. B869 (2013) 56 arXiv:1206.2954 [hep-lat]
  • [10] F. Bruckmann, C. Gattringer, T. Kloiber, T. Sulejmanpasic, Dual lattice representation for O(N)\operatorname{O}\mathopen{}\mathclose{{\left(N}}\right) and CP(N1)\operatorname{CP}\mathopen{}\mathclose{{\left(N-1}}\right) models with a chemical potential, Phys. Lett. B 749 (2015) 495-501, arXiv:1507.04253 [hep-lat].
  • [11] Y. Delgado, H. G. Evertz, C. Gattringer, Worm algorithms for the 3-state Potts model with magnetic field and chemical potential, Comp. Phys. Commun. 183 (2012) 1920-1927, arXiv:1202.4293 [hep-lat]
  • [12] D. Banerjee, S. Chandrasekharan, Finite size effects in the presence of a chemical potential: A study in the classical non-linear O(2) sigma-model, Phys. Rev. D 81 (2010) 125007, arXiv:1001.3648 [hep-lat]
  • [13] C. J. Geyer, Markov chain Monte Carlo maximum likelihood, Computing Science and Statistics: Proc. 23rd Symp. Interface (1991) 156-163
  • [14] A. G. Cunha-Netto, A. A. Caparica, S. Tsai, R. Dickman, D. P. Landau, Improving Wang-Landau sampling with adaptive windows, Phys. Rev. E 78 (2008) 055701, arXiv:0808.1210 [cond-mat.statmech]
  • [15] T. Rindlisbacher, P. de Forcrand, Lattice simulation of the SU(2)\operatorname{SU}\mathopen{}\mathclose{{\left(2}}\right) chiral model at zero and non-zero pion density, PoS (LATTICE 2015) 171, arXiv:1512.05684 [hep-lat]
  • [16] O. Akerlund, P. de Forcrand, T. Rindlisbacher, Oscillating propagators in heavy-dense QCD, arXiv:1602.02925 [hep-lat]