I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it.
HOWTO /
BinderCumulantIn this tutorial we will work through the steps to calculate the Binder Cumulant to identify a symmetry breaking phase transition. IntroductionThe Binder Cumulant is typically used with finite-size scaling. It it defined as {$$U_4 = 1 - \frac{\langle{m^4}\rangle}{3\langle{m^2}\rangle^2}$$} where {$\langle{m}\rangle$} is a {$Z_2$} order parameter (the Binder Cumulant can be obtained for other symmetry broken order parameters, but the prefactor is different). The idea is that in the vicinity of a critical point this satisfies a scaling form {$$U_4(T,L) = {\cal U}(t L^{1/\nu})$$} where {$L$} is the system size, and {$t = T-T_c$} is some coupling constant (or temperature) with a critical point at {$t=0$}. Thus the value of {$U_4$} at the critical point {$t=0$} is independent of {$L$}, thus a plot of {$U_4$} as a function of {$T$} for several different system sizes should intersect at {$T=T_c$}. In the thermodynamic limit, the Binder Cumulant doesn't provide anything useful -- it takes the value {$2/3$} if the order parameter is non-zero (when, in the large {$L$} limit, {$\langle{m^4}\rangle = \langle{m^2}\rangle^2$}), and 0 when the order parameter is zero (where the order parameter is Gaussian, and all cumulants vanish except for the variance, leading to {$\langle{m^4}\rangle = 3 \langle{m^2}\rangle$}). Nevertheless, for an iMPS we always have a finite correlation length, so this procedure cannot identify the critical point. For an iMPS, the {$$\langle{m}\rangle_L = \kappa_1 L$$} which is the order parameter per site. {$$\langle{m^2}\rangle_L = \kappa_1^2 L^2 + \kappa_2 L$$} where {$\kappa_2$} is the variance per site (related to the susceptibility). We also have {$$\langle{m^4}\rangle_L = \kappa_1^4 L^4 + 6 \kappa_2 \kappa_1^2 L^3 + (4 \kappa_1 \kappa_3 + 3 \kappa_2^2)L^2 + \kappa_4 L$$} Taking the large {$L$} limit directly gives only the leading order terms in the moments, which for the {$n$}-th moment is simply {$\langle{m}\rangle^n$}. This doesn't give anything useful, the purpose behind the Binder Cumulant is to take advantage of the higher cumulants. What we can do instead is evaluate the moments polynomial using the length scale that is available to us, namely the correlation length obtained from the transfer matrix. This gives a rather natural procedure. Note that this is only a length scale, we can in principle choose {$L = s \xi$}, where {$s$} is any fixed scaling constant. The effect of {$s$} is to change the actual value of the Binder Cumulant at the critical point (analogous to changing boundary conditions for the finite-size Binder Cumulant). We can choose {$s$} freely, to give a numerically stable fitting procedure. ProcedureWe are going to use as an example the Ising model in a transverse field. We need very few states for this, so the calculations are very fast. Firstly, we construct a lattice.
Now we need to construct a set of wavefunctions. For a 'real' calculation we would want to do this in a more sophisticated way, but for the Ising model it is enough to use a simple bash script, keeping from 4 to 8 states (for this example, 8 states is plenty, but less than 4 states doesn't reproduce the critical point very well). for h in $(seq 0.980 0.001 1.020) ; do for m in $(seq 4 8) ; do if [ ! -f psi-h$h-m$m ] ; then mp-idmrg-s3e -H lattice:"-4*H_zz + 2*$h*H_x" -m 1..${m}x100,${m}x100 -w psi-h$h-m$m --create fi mp-idmrg-s3e -H lattice:"-4*H_zz + 2*$h*H_x" -m ${m}x200 -w psi-h$h-m$m --miniter 6 --mix-factor 1e-3 mp-idmrg-s3e -H lattice:"-4*H_zz + 2*$h*H_x" -m ${m}x200 -w psi-h$h-m$m --miniter 6 --mix-factor 1e-4 mp-idmrg-s3e -H lattice:"-4*H_zz + 2*$h*H_x" -m ${m}x200 -w psi-h$h-m$m --miniter 6 --mix-factor 1e-5 mp-idmrg-s3e -H lattice:"-4*H_zz + 2*$h*H_x" -m ${m}x200 -w psi-h$h-m$m --miniter 6 --mix-factor 1e-6 mp-idmrg-s3e -H lattice:"-4*H_zz + 2*$h*H_x" -m ${m}x200 -w psi-h$h-m$m --miniter 6 --mix-factor 1e-7 mp-idmrg-s3e -H lattice:"-4*H_zz + 2*$h*H_x" -m ${m}x200 -w psi-h$h-m$m --miniter 6 --mix-factor 0 done done The Ising model is surprisingly difficult to get accurate convergence, it might be necessary to run this script more than once. This is because it takes so few states, but the MPS needs to be converged to very high precision. We now need to calculate the 4th moment of the order parameter. The order parameter is the {$z$} magnetization per site, which we could express as
This gives the 4th moment. We also need the 2nd moment. But these are not independent, we can obtain the 2nd moment from the 4th moment, so we don't need to do a separate calculation. The final quantity that we need is the correlation length. We can obtain this from Finally, we need to evaluate the polynomial. There are lots of ways of doing this, there is a helper program in Putting all of this together, a script that calculates the Binder Cumulant for a wavefunction is #!/bin/bash if [ $# -ne 3 ] ; then echo "usage: calc-binder <psi> <operator> <scale>" exit 1 fi psi="$1" op="$2" s="$3" moments=$(mp-imoments "$psi" "${op}^4" | awk '/^4/{print $3}') corr=$(mp-ispectrum "$psi" -n 2 | awk 'END {print $5}') binder $moments $corr $s I named this program for h in $(seq 0.980 0.001 1.020) ; do for m in $(seq 4 8) ; do (echo -n $m ' ' $h ' ' ; ./calc-binder psi-h$h-m$m lattice:H_z 5) >> results-m${m}.dat done done This produces a set of data files which we can plot, to produce: I used scaling factor {$s=5$}, chosen by trial and error. |