0 votes
asked by (120 points)

Hi Miles&Matt,

I am encountering a problem with the nmultMPO function on the following minimal example:

  auto N=257;
  auto sites = Electron(N);

  auto ampo = AutoMPO(sites);
  ampo += 1.0, "Ntot",2;

  auto H = toMPO(ampo);
  auto H2 = nmultMPO(H,prime(H));

For me this code works for N<257, but nmultMPO fails for N>=257 with the error message:
terminate called after throwing an instance of 'std::runtime_error'
what(): Error condition in diagHermitian
Aborted (core dumped)

The same also happens for a less artificial Hamiltonian. For the Fermion SiteSet
I observe something similar. However, instead of an error message nmultMPO seems to return just a zero MPO here (again, small systems work fine).
Do you know where the problem could come from?
I would appreciate any help.

Best regards,

Please log in or register to answer this question.

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.