+1 vote
asked by (160 points)

When I am running this code for psi0 being the ground state of 64-site heisenberg model,

auto tau = 0.0001;
auto expH = toExpH(ampo,tau*Cplx_i);
printfln("%.16c", innerC(psi0, expH, psi0));

I'm expecting the imaginary part of the answer to be around the value of tau*E0, which is estimated by the taylor expansion. However it's half the value.

(0.9999990471106844,0.001408770830011393)

ground state:

vN Entropy at center bond b=32 = 0.845274370251
Eigs at center bond b=32: 0.7615 0.0773 0.0773 0.0773 0.0018 0.0018 0.0018 
Largest link dim during sweep 100/100 was 82
Largest truncation error: 8.2362e-11
Energy after sweep 100/100 is -28.175424840952
Sweep 100/100 CPU time = 0.433s (Wall time = 0.478s)

Ground State Energy = -28.1754248410

I don't know what's the wrong in this difference between my expectation and result.

hope for your best help.

commented by (14.1k points)
The approximation is not just a simple Taylor series, but a more complicated MPO construction as described here: https://tensornetwork.org/mps/algorithms/timeevo/mpo.html

So it may not be so simple to compute the exact error you expect. Miles is the expert on this so I'm sure he can say more about it.

1 Answer

0 votes
answered by (70.1k points)

Hi LZ,
Sorry for the slow reply on this. Hope the answer is still useful, or feel free to ask an updated question on the forum.

As Matt correctly said above, the MPO returned by toExpH is not very close to 1-tauH but of a more complicated form with significant higher-order terms. So the imaginary part probably receives a large correction from these terms compared to what you'd expect from 1-tauH.

What was your goal in trying to compute this? Were you just wanting to learn about how toExpH works? If so, I can point you to a very helpful paper which it is based on. If something else, please let us know.

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

Categories

...