Fields

In MonteCarlo.jl fields describe how to handle the interactive term(s) in a model/Hamiltonian. Currently we implement two transformations, the Hirsch transformation and a Gauß-Hermite Quadrature based approximation of the Hubbard Stratonovich transformation, each with a density- and spin-channel variant.

Hirsch Transformation

The Hirsch transformation applies specifically to a Hubbard interaction $U (n_{i\uparrow} - 0.5) (n_{i\downarrow} - 0.5)$. Each number operator can take the values 0 or 1, which allows us to rewrite the term as either $0.5 U (n_{i\uparrow} + n_{i\downarrow} - 1)^2 - 0.25$ or $0.5 U (n_{i\uparrow} - n_{i\downarrow})^2 + 0.25$. These two cases are the density- and spin-channel respectively. The next step is to is to introduce a bosonic field $x$ such that

\[e^{|U|\Delta \tau \left( n_{i\uparrow} - \frac{1}{2} \right) \left(n_{i\downarrow} - \frac{1}{2} \right)} = \frac{1}{2} e^{-\frac{1}{4} \Delta \tau U} \sum_{x=\pm 1} e^{\alpha x (n_{i\uparrow} + n_{i\downarrow} - \frac{1}{2})}\]

or

\[e^{|U|\Delta \tau \left( n_{i\uparrow} - \frac{1}{2} \right) \left(n_{i\downarrow} - \frac{1}{2} \right)} = \frac{1}{2} e^{-\frac{1}{4} \Delta \tau U} \sum_{x=\pm 1} e^{\alpha x (n_{i\uparrow} - n_{i\downarrow})}.\]

For both of these cases we define a positive $U$ as the attractive case. The constant $\alpha = acosh(exp(0.5 \Delta\tau U))$ in the attractive case and $\alpha = acosh(exp(-0.5 \Delta\tau U))$ in the repulsive case. Both of these can be verified by expanding the sum over $x$ and going through the different possible values of the number operator $n$.

In MonteCarlo.jl the first case is implemented as DensityHirschField and the second as MagneticHirschField. Both can be used with positive and negative $U$, though $\alpha$ may become complex. This will of course influence performance. Furthermore the density channel is symmetric between spin up and down, which is used to reduced the size of matrices involved.

See Quantum Monte Carlo Methods

Gauß-Hermite Quadrature

In this case we use Gaussian quadrature to approximate the integral generated by the Hubbard Stratonovich transformation. This is a more general approach than the Hirsch transformation, though we currently only have an implementation for Hubbard interactions.

We start of the same way as with the Hirsch transformation - by rewriting the our interaction as a squared term. Generally speaking we need to arrive at $exp(-0.5\Delta\tau (c_i^\dagger V_{ij} c_j + C)^2 + C^\prime)$. Using the Hubbard Stratonovich transformation this becomes

\[e^{-\frac{1}{2}\Delta\tau (c_i^\dagger V_{ij} c_j + C)^2 + C^\prime} = e^{-\Delta\tau C^\prime} \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} e^{-\frac{1}{2}x^2 \pm x \sqrt{\Delta\tau} (c_i^\dagger V_{ij} c_j + C)} dx\]

One method of solving this integral is Gauß-Hermite quadrature. With four weights and notes we get

\[\frac{1}{\sqrt{2\pi}} \int_{-\infty}^{\infty} e^{-\frac{1}{2}x^2 \pm x \sqrt{\Delta\tau} (c_i^\dagger V_{ij} c_j + C)} dx = \frac{1}{4} \sum_{x = \pm 1, \pm 2} \gamma(x) e^{\sqrt{\Delta\tau} \eta(x) (c_i^\dagger V_{ij} c_j^\dagger + C)}\]

where $\gamma$ and $\eta$ give the weights and nodes for a given $x$. For the density-channel version $V_\uparrow = V_\downarrow = \sqrt{U}$ and $C = 0.5 \sqrt{U}$, for the spin channel $V_\uparrow = - V\downarrow = \sqrt{U}$ and $C = 0$. These two cases are implemented as DensityGHQField and MagneticGHQField. Just like with the Hirsch field these two methods can create real or complex interaction matrices depending on the sign $U$ and the Density case makes use of symmetry.

See ALF Documentation (Auxiliary Field Quantum Monte Carlo section) and the related paper.

Performance & Accuracy

As a rough estimate of relative performance we can look at the runtime of a small Hubbard model (6x6 square lattice, $\beta = 1$, 10 000 sweeps total):

Field TypeU = +1U = -1
DensityHirschField6.8s23s
MagneticHirschField51s17s
DensityGHQField6.2s22s
MagneticGHQField46s15s

As you can see the runtimes are relatively stable for the repulsive Hubbard model (negative U). This is because we either have to include spin up and down channels or work with complex matrices. In the attractive case both of these fall together. With a density-channel field we make use of spin symmetry and work with real matrices, but with a magnetic-channel field both of these slow us down dramatically.

In terms of accuracy none of these should technically have a big advantage over the other other in a Hubbard model. However this doesn't generally seem to be true in practice. In one model we had issues resolving occupations accurately with DensityHirschField and found that spin-channel fields do a better job of resolving most observables. The exception here are spin densities, which are resolved more cleanly by density-channel fields. Overall the MagneticGHQField gave the best results.

In general it is probably a good idea to simulate a smaller system with all the different field options to see which yields the best combination of performance and accuracy.