This is a relevant question of a former one : http://itensor.org/support/357/problems-about-1-d-bose-fermi-mixture-when-using-dmrg and now it is fixed by miles (thanks). But I still have some questions about the definition of IQIndex and QN in this siteset file. I shall describe it in details in the following :
The correct definition of IQIndex (without "Mismatched mod factors" error and dmrg works) given by miles is
BoseFermiSite(int n, Args const& args = Args::global())
{
if(n%2==1) //spinless fermion
{
is_fermi = true;
s = IQIndex(nameint("site=",n),
Index(nameint("Em",n),1,Site),QN({0,-1},{0,1}),
Index(nameint("f1",n),1,Site),QN({1,-1},{0,1}));
}
else //spinless boson
{
is_fermi = false;
s = IQIndex(nameint("site=",n),
Index(nameint("Em",n),1,Site),QN({0,-1},{0,1}),
Index(nameint("b1",n),1,Site),QN({0,-1},{1,1}),
Index(nameint("b2",n),1,Site),QN({0,-1},{2,1}),
Index(nameint("b3",n),1,Site),QN({0,-1},{3,1}));
}
}
while my original setsite file defines the IQIndex and QN as follows (have "Mismatched mod factors" in debug mode, but dmrg still works)
BoseFermiSite(int n, Args const& args = Args::global())
{
if(n%2==1) //spinless fermion
{
s = IQIndex(nameint("site=",n),
Index(nameint("Em",n),1,Site),QN("Sz=",0,"Nf=",0),
Index(nameint("f1",n),1,Site),QN("Sz=",0,"Nf=",1)
);
}
else //spinless boson
{
is_fermi = false;
s = IQIndex(nameint("site=",n),
Index(nameint("Em",n),1,Site),QN("Sz=",0,"Nb=",0),
Index(nameint("b1",n),1,Site),QN("Sz=",0,"Nb=",1),
Index(nameint("b2",n),1,Site),QN("Sz=",0,"Nb=",2),
Index(nameint("b3",n),1,Site),QN("Sz=",0,"Nb=",3)
);
}
}
the difference is that I use explicit expression "Sz=", "Nb=","Nf=" to define QN. But it incurs "Mismatched mod factors" error. I once thought that ("Sz=",0,"Nf=",1) is equivalent to initializer list ({0,1},{1,-1}) where -1 indicates fermion flag, and ("Sz=",0,"Nb=",1) is equivalent to ({0,1},{1,1}) for boson. So why the correct initializer list is not as what I once thought ? For example, minus sign of mod factor appears in boson QN object. I think I may misunderstand QN and it seems that some non-trivial modification is needed for Bose-Fermi mixture.
Thanks.