Hi Miles,
It was indeed great to meet you in person. Thank you for all the valuable inputs. I'll leave a small function here to get a sub-tensor with a subset of indices fixed. The function assumes that the indices and values are ordered (this is the responsibility of the user).
ITensor
GetSubTensor(ITensor T,std::vector<Index> const &indices,std::vector<int> values )
{
ITensor retT;
for(unsigned int l=0;l<indices.size();l++)
{
if(l==0)
retT = T*setElt(indices[l]=values[l]);
else
retT*=setElt(indices[l]=values[l]);
}
return retT;
}
Thanks
Aditya