I am using DMRG to study a quite large (~100 spins) spin-1/2 2D system. At some point I see the energy values going up and down, with changes in the third decimal place. After approx. 20 sweeps this oscillation seems to stop
First of all I’d like to understand why this happens. Is this related to the system getting stuck at some local minimum or to GS degeneracy? Maybe you can give me some insight on this
Is there any strategy that can be used to keep this from happening? Could it help using PBC?
Hi Ines,
I can see why you don’t want to wait for 20 sweeps for convergence, since DMRG can often be much more efficient in the best circumstances.
Without knowing more it’s hard to guess what’s going on, though it could be something about the initial state you are starting from combined with properties of the system. Is it a gapless system with lots of low-lying excitations? If so, sometimes DMRG can take a long time to converge.
Here is what I would try:
try just doing a lot of sweeps but at a small maximum bond dimension or maxdim. So for example, do 40 sweeps at at a maxdim of 10, then 40 more at a maxdim of 20. This should not take very long, maybe just a handful of minutes, since the maxdim is kept small. But it might bring your state much closer to the ground state in terms of local properties. Then after this, gradually raise maxdim to the larger values needed to converge many digits of the energy.
try guessing or making better intial states. Which ones are ‘better’ depends on the specifics of the system you are studying.
make plots or even better, movies, of your system during each sweep. You can do this using the “Observer” feature of our DMRG code. This can be very helpful to gain intuition about the “DMRG dynamics” of your system like whether the system is getting stuck for a very long time in a meta-stable state.
Beyond these ideas, other more creative things can be tried, like first running DMRG on a nearby Hamiltonian with a similar ground state but which may be easier to converge (e.g. one with a larger gap / shorter correlation length) and then using the output of that as input for your final DMRG calculation on the correct H.