dmrg only works for sites with odd number

0 votes
asked Mar 6 by JunjieChen (340 points)

I define a siteset file for a 1-D spinor Bose-Fermi mixture system, in which all fermion lies on odd site and boson lies on even site. The "dmrg" works fine for sites with odd number but when the number of site is even, some fatal error appears. There are two different cases :
(1) sweeps.noise() has been set to be non-zero : segmentation fault. In debug mode, the error information is :

 Using approx/svd conversion of AutoMPO->IQMPO
 myappname-g:/home/junjie/JunjieChen/Computer/iTensor/itensor/itensor/itdata/qutil.h:190: void itensor::loopContractedBlocks(const BlockSparseA&, const IQIndexSet&, const BlockSparseB&, const IQIndexSet&, BlockSparseC&, const IQIndexSet&, Callable&) [with BlockSparseA = itensor::QDense<double>; BlockSparseB = itensor::QDense<double>; BlockSparseC = itensor::QDense<double>; Callable = itensor::doTask(itensor::Contract<itensor::IQIndex>&, const itensor::QDense<T>&, const itensor::QDense<T>&, itensor::ManageStore&) [with VA = double; VB = double]::<lambda(itensor::DataRange<const double>, const Labels&, itensor::DataRange<const double>, const Labels&, itensor::DataRange<double>, const Labels&)>; 
 itensor::IQIndexSet = itensor::IndexSetT<itensor::IQIndex>]: 
 Assertion `cblock' failed.
 Aborted (core dumped)

it points to the head file "qutil.h" and contradicts the assertion "assert(cblock)".

(2) sweeps.noise() is set or set to zero : no segmentation fault and no error in debug mode. But the result is obviously wrong because the program runs so quickly (0.5 second) with entropy at center bond being zero.

Actually, I haven't checked my Hamiltonian completely. I just want to know in advance whether this kind of error is due to some well-known reason. Thanks.

1 Answer

0 votes
answered Mar 6 by miles (14,880 points)

Hi Junjie,
It's hard to say what's going wrong without seeing more details of what you are doing.

However, based on the error message and that you are still checking whether your Hamiltonian is correct, the most likely problem is that your current Hamiltonian is either not Hermitian or does not conserve the appropriate symmetries (the ones defined by your QNs). I bet if you check both of these issues then the errors will go away.

Best,
Miles

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.
...