Replace an Index of an ITensor with Another Index
Say we have an ITensor with indices a,b,c (objects of type Index):
auto T = ITensor(a,b,c);
and we want to replace the Index b with another Index x.
To do this we can use a
delta tensor, which models an identity
matrix or a Kronecker delta symbol. To create a delta tensor, use
T = T * delta(b,x);
Now T will have the index x instead of b, but otherwise the same data. The Index x should be chosen to have the same dimension as b.
Internally, creating a two-index delta tensor does not allocate any storage in memory and contracting it with another tensor uses an efficient algorithm that just substitutes one index for another.
Back to Formulas
Back to Main