Hello, I am a student new to MPO/MPS and iTensor.
When I am learning how to generate MPO via autoMPO, I tried to get the MPO expression for a single-site Sz operator by the following code:
int N = 8; // create an 8-site spin-half chain
auto sites = SpinHalf(N);
auto ampo_Ham = AutoMPO(sites);
// the operator is Sz at site 4
ampo_Ham += "Sz",4;
// convert AutoMPO to MPO
auto Ham = toMPO<ITensor>(ampo_Ham);
When I print the Ham to examine its properties, the physical legs (site index) have dimension 2, as expected for spin-half systems. However, I discover that all the virtual links are of dimension 2. The information for tensor at site 4 is as below:
ITensor r=4: ("Hl3",2,Link|559) ("Hl4",2,Link|993) ("S=1/2 4",2,Site|270) ("S=1/2 4",2,Site|270)'
{norm=2.12 (Dense Real)}
for other sites (site 6 for example)
ITensor r=4: ("Hl5",2,Link|248) ("Hl6",2,Link|379) ("S=1/2 6",2,Site|827) ("S=1/2 6",2,Site|827)'
{norm=2.00 (Dense Real)}
But according to the Appendix of the article New. J. Phys. 12, 055026 (2010), for MPOs describing products of local operators, the tensors at each site should have dimension-1 virtual links, and the tensor elements at site i are simply @@W^{ti, si} =⟨ti|O^i|si⟩@@.
So I want to know why and how iTensor produces this 2-dimensional virtual link. Thank you in advance !