Learn to Use ITensor

main / classes / mpo C++v3 | C++v2

MPO

MPO is a class for storing matrix product operators, which are similar to matrix product states but represent operators. Thus each MPO tensor, one for each site of the system, has two indices. The convention in ITensor is that these two site indices have prime level zero and one, respectively, similar to the ITensor convention for single-site operators.

The MPO class is actually derived from the MPS class, so MPOs have nearly the same interface for most purposes. For example, to obtain the tensor for an MPO K on site j, one calls K(j).

Beyond those inherited from MPS, MPO currently offer a few additional algorithms. Their main purpose is to serve as containers for MPO site tensors, for example, those generated by the AutoMPO helper class.

For algorithms that take MPOs as input or which manipulate MPOs, see MPS and MPO algorithms.

Below we list methods that are unique to MPOs, for other methods refer to the MPS documentations.

MPO Tag and Prime Methods

MPO have the same tag and prime methods that are defined for ITensors, MPS and IndexSets. See the Tag and Prime Methods section of the IndexSet documentation for a complete list of methods.

When applied to an MPO, the method is applied to every MPO tensor.

Index Methods

MPOs generally have the same Index functions as MPSs (see the Index Methods section of the MPS documentations for more details). Here we list Index methods that are unique to MPOs.


This page current as of version 3.0.0


Back to Classes
Back to Main