Dear all,
I think that there is a bug in how mps_optim changes the bond dimension
during successive sweeps. In the
alps-2.2.b3-r7462-src/alps/applications/dmrg/mps/mps_optim/run_sim.cpp
file, line 64 reads:
double step = (int(parms["MAXSTATES"]) - init_bond) /
(parms["nsweeps"]-1);
It is supposed to compute the increment of the bond size at each step
(starting from init_bond at the first sweep, reaching MAXSTATES at the
final sweep). How, the division if performed using integers before being
written to the variable step as a double. For example, if
(int(parms["MAXSTATES"]) - init_bond) < (parms["nsweeps"]-1), step will
be 0.0, presumably not the intended value.
A simple fix is to perform the division using double, something like:
double step = ((double)(int(parms["MAXSTATES"]) - init_bond)) /
(parms["nsweeps"]-1);
Best regards
Dominique Delande
--
Dominique Delande (Dominique.Delande(a)lkb.upmc.fr)
Laboratoire Kastler-Brossel - Case 74 - Universite P. et M. Curie
4, place Jussieu, F-75252 Paris Cedex 05, FRANCE
Phone : +33 1 44 27 27 97 - Fax : +33 1 44 27 38 45
Acces : Tour 13, Couloir 12-13, 3eme etage - Bureau 316