I was looking into the convergence of the ground state energy in DMRG as a function of NUMSTATES. For instance, on a 1D chain of spinless fermions with open boundary conditions at half-filling (L=36, N_TOTAL=12) and interaction strength V0=4, the ground state energies after 30 sweeps are
M=2 E0 = -8.6661 M=4 E0 = -9.6249 M=8 E0 = -9.7115 M=100 E0 = -9.7133
The truncation error for the M=2 run was just 0.00167, so it is surprising (to me, at lest) that the energy is off by more than 10 percent. A discrepancy of 10 percent or more occurs for chains of different lengths and interaction potentials of different strengths. Doing 100 sweeps instead of 30 has no effect on the first 5 digits of the M=2 results. Nor does increasing NUM_WARMUP_STATES to 100. One possibility is that the calculation is getting stuck in a local minimum.
Does the ALPS DMRG routine have any method for avoiding local minima? For instance, adding a small amount of noise to the calculation to allow tunneling out of local minima? Even if the results of the above calculations simply reflect the poor quality of the M=2 wave function, it would still be useful to know how to handle local minima that might occur in DMRG calculations.
Jesse
On Wed, 15 Jul 2009, Jesse Kinder wrote:
I was looking into the convergence of the ground state energy in DMRG as a function of NUMSTATES. For instance, on a 1D chain of spinless fermions with open boundary conditions at half-filling (L=36, N_TOTAL=12) and interaction strength V0=4, the ground state energies after 30 sweeps are
Presumably that was N_TOTAL=18.
M=2 E0 = -8.6661 M=4 E0 = -9.6249 M=8 E0 = -9.7115 M=100 E0 = -9.7133
The truncation error for the M=2 run was just 0.00167, so it is surprising (to me, at lest) that the energy is off by more than 10 percent. A discrepancy of 10 percent or more occurs for chains of different lengths and interaction potentials of different strengths. Doing 100 sweeps instead of 30 has no effect on the first 5 digits of the M=2 results. Nor does increasing NUM_WARMUP_STATES to 100. One possibility is that the calculation is getting stuck in a local minimum.
The truncation error is measured PER SITE, so if you want to use that as a (very rough) error estimate, then integrate it over the chain. That number is not so far off the error in the energy.
In this calculation, it is surely not a problem of a local minima, but simply that M=2 is way too small to get a good result. For this chain, the maximum von Neumann entropy at a partition is 0.7841, which is not achievable with M=2, even if the two states are maximally entangled.
Does the ALPS DMRG routine have any method for avoiding local minima? For instance, adding a small amount of noise to the calculation to allow tunneling out of local minima? Even if the results of the above calculations simply reflect the poor quality of the M=2 wave function, it would still be useful to know how to handle local minima that might occur in DMRG calculations.
Local minima are a problem mainly in nonhomogeneous systems (eg, 2D systems with a worm-like mapping onto 1D), and in some obscure cases where excitations are trapped on the chain by some symmetry constraint such that they cannot be removed by purely local updates. There are a few techniques to mitigate these problems, but none of them are univesal panaceas.
Cheers, Ian
comp-phys-alps-users@lists.phys.ethz.ch