+1 vote
asked by (440 points)


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:

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!

1 Answer

0 votes
answered by (70.1k points)
selected by
Best answer

Hi, I would say that – yes DMRG can certainly be used very well to study critical systems and phase transitions, especially of 1d systems.

So it seems that the core of your issue is that for certain values of lambda, or perhaps certain initial states you happened to use for those values (it may be less about lambda itself, hard to be sure from what I know) that you are likely getting stuck into a state which is not the ground state. As you know that can happen easily with DMRG for some systems. It's good to see you are using the noise term which can help a lot with sticking.

Did you rerun your calculation for the (possibly) troublesome values of lambda, such as lambda=0.26 here, again for a second or third time with different initial states? Is there a local property you can plot to visualize the states DMRG reaches at the end to inspect whether they look similar to each other for nearby lambda or very different? Those are the first two steps I would try. I would also try on very small system sizes first to see if the sticking can be avoided then work my way up to larger system sizes gradually.

Hope that helps a bit –


Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.