I want to obtain the symmetry-broken ground state of the Ising chain.
Interestingly, it seems that it makes a difference for ITensor whether I use
for (int i = 1; i < N; i++)
{
ampo += -1, "Sx", i, "Sx", i+1;
}
or
for (int i = 1; i < N; i++)
{
ampo += -0.5, "S+", i, "S+", i+1;
ampo += -0.5, "S-", i, "S-", i+1;
ampo += -0.5, "S+", i, "S-", i+1;
ampo += -0.5, "S-", i, "S+", i+1;
}
to construct the MPO.
The upper version delivers a wrong result whereas the version below delivers the correct ground state after applying DMRG several times with decreasing field in x-direction to finally end up in the symmetry-broken ground state. Shouldn't the two versions be equivalent and therefore deliver the same results? You can find a working example here:
https://pastebin.com/WtZPMQhH
All the best,
Matthias