Now I have another problem... It seems that after DMRG I can't regauge the MPS by (say) psi.position(1).

Test Hamiltonian:

k = 0;

ampo += -2.*t1,"Sz",k+1;

ampo += -2.*t1,"Sz",k+2;

ampo += -2.*t1,"Sz",k+3;

ampo += -4.*t1,"Sx",k+1,"Sx",k+2;

ampo += -4.*t1,"Sx",k+2,"Sx",k+3;

ampo += -2.*h,"Sx",k+4;

ampo += -2.*h,"Sx",k+5;

ampo += -2.*h,"Sx",k+6;

ampo += -2.*h,"Sx",k+7;

ampo += -2.*h,"Sx",k+8;

ampo += -2.*h,"Sx",k+9;

initial state:

auto state = InitState(sites);

for (j = 1; j <= N; ++j)

{

if (j % 2 == 1)

state.set(j,"Up");

else

state.set(j,"Dn");

}

with head file:

SpinHalfSite(int n, Args const& args = Args::global())

{

if ((n % 9 >= 1) && (n % 9 <= 3))

s = IQIndex{nameint("S=1/2 ",n),

Index(nameint("Up ",n),1,Site),QN({1,2}),

Index(nameint("Dn ",n),1,Site),QN({-1,2})};

else

s = IQIndex{nameint("site ",n), Index("0",2,Site),QN({0,2})};

}

I think the problem might have something to do with the site setup, but can't find a way out. What do you think? Thanks!