Hello Miles,
I've encountered a strange convergence issue with DMRG using periodic boundary conditions, and conservation of total Sz (iqdmrg). The system is the simple spin-1 AKLT model (I know, we wouldn't need to run GS DMRG on it ... !). Anyway, it appears that the following commands
Args argsH = Args("Exact=",true);
IQMPO H = toMPO<IQTensor>(ampo,argsH);
lead to:
1) incorrect evaluation of the energy of the initial state,
2) no convergence of DMRG to the ground state.
I was using the two lines of code above instead of the simple
IQMPO H = toMPO<IQTensor>(ampo);
because the latter displays "Using approx/svd conversion of AutoMPO->IQMPO".
My questions are the following:
1) What is happening in the "exact" case ? How does toMPO<IQTensor>
work in that case ?
2) In the "approx/svd conversion" case, is there a way to know how accurate is the compression of the Hamiltonian ? (in terms of singular values/truncation, for example)
3) Is there a way to set a precision to this compression ?
4) Why is the "exact" case not working on the AKLT Hamiltonian, but works fine for the Haldane chain ? Is it due to the additional biquadratic terms which make it hard to have an exact representation ? (the W-operator valued matrix (Schollwöck's notation) grows fast in this case, is that the reason ?)
5) Finally, why does this behavior occur only when using the QN-conserving code ? (running DMRG without symmetry works fine with the "exact" conversion to MPO, using MPO H = toMPO<ITensor>(ampo,argsH)
).
Thanks a lot, and have a nice Easter holiday !
Samuel