Hello,

I am trying to construct a finite temperature 1/beta MPS state using the ancilla/purification method, namely in a chain of 2 N spin half, then build the initial state as the identity matrix

auto psi = MPS(sites);

for(int n = 1; n <= 2*N; n += 2)

{

auto s1 = sites(n);

auto s2 = sites(n+1);

auto wf = ITensor(s1,s2);

wf.set(s1(1),s2(2), ISqrt2);

wf.set(s1(2),s2(1), -ISqrt2);

ITensor D;

psi.Aref(n) = ITensor(s1);

psi.Aref(n+1) = ITensor(s2);

svd(wf,psi.Aref(n),D,psi.Aref(n+1));

psi.Aref(n) *= D;

}

and now apply exp[- beta/2 H] X 1 on psi. I want to time evolve with Trotter gates that only apply on the physical legs of the MPS. So I have built the gates

for(int b = 1; b <= N-1; ++b)

{

auto s1 = 2*b+1,
s2 = 2*b-1;

```
auto hterm = sites.op("Sz",s1)*sites.op("Sz",s2);
hterm += 0.5*sites.op("S+",s1)*sites.op("S-",s2);
hterm += 0.5*sites.op("S-",s1)*sites.op("S+",s2);
auto g = Gate(sites,s1,s2,Gate::tImag,tau/2.,hterm);
gatesPhys.push_back(g);
}
```

and with the reverse direction, but when I run

gateTEvol(gatesPhys,ttotal,tau,psi,{"Cutoff=",cutoff,"Verbose=",true});

I obtain the error

From line 84, file itdata/combiner.cc

No contracted indices in combiner-tensor product

No contracted indices in combiner-tensor product

Abort trap: 6

What am I doing wrong?

Thanks so much!

Jacopo.