Hello,
My understanding is that DMRG can be successfully used to study phase transitions and calculating critical exponents, etc. Yet, I am having trouble getting sufficient convergence for a range of parameters, in order to properly find the critical point and extract critical exponents. This happens or several different models, so I suspect that I am simply not using it properly. So let me describe some specific issues I encounter.
I am running DMRG (on the c++ version) for different parameters @@\lambda@@ and systems sizes @@L@@, recording the expectation value of the Z2 order parameter @@\phi@@.
Here are 3 runs, relatively close to the phase transition:
$$
\lambda =0.259592, \phi = 0.698822, E_GS =-7.39535
\lambda =0.26, \phi = 0.0681269, E_GS =-7.39147
\lambda =0.260816, \phi = 0.633245, E_GS = -7.37986
$$
The second run @@\lambda=0.26@@, despite being very close in parameter space to the other two, ends up being stuck in the wrong phase (at least, I suspect that the outer two are correct and the middle one is wrong).
I am doing at least 40 sweeps, with the schedule below:
sweeps
{
maxm minm cutoff niter noise
10 1 1E-5 3 1e-05
10 1 1E-5 3 1e-05
10 1 1E-6 3 1e-05
10 1 1E-7 3 1e-05
10 1 1E-7 3 1e-07
10 1 1E-7 3 1e-07
10 1 1E-7 3 1e-07
10 1 1E-7 3 1e-07
15 1 1E-7 3 1e-07
15 1 1E-7 3 1e-09
15 1 1E-7 3 1e-09
20 1 1E-7 2 1e-09
20 1 1E-8 2 1e-09
20 1 1E-8 2 1e-12
20 1 1E-8 2 1e-12
20 1 1E-8 2 1e-12
30 1 1E-9 2 1e-12
50 1 1E-9 2 1e-12
100 1 1e-9 2 1e-07
100 1 1E-9 2 0
}
I did vary all the seep parameters, without much success.
The two outer runs seem to converge with a much smaller bond dimension. The largest m during the last 40th sweep was 37, 51, 34, respectively (which I think simply reflects the higher entanglement in the symmetric phase). In all cases, it is quite much smaller than the maxm I allow.
For concreteness, this is a bosonic phi^4 model. The above is for @@L=100@@ and @@maxOcc=16@@. The starting state is a product state of coherent states on each site with finite @@\phi@@. This is an attempt starting close to one of the symmetry broken states. I think this generally works better than a randomMPS.
I suspect that for some system sizes I get an entire curve of @@\phi@@ vs @@\lambda@@ which are incorrect, whereas for other @@L@@, it seems to converge properly.
Any tips are greatly appreciated!