Page 1 of 1

How do I calculate an MPO using an iMPS

Posted: 15 Dec 2023, 22:37
by squareroottwo
Given an iMPS \(|s \rangle \), is it possible to construct an MPO corresponding to \(\hat{O} = | s \rangle \langle s |\)?

Ultimately, what I would like to do is given two iMPS objects \(|s \rangle\), and \(|t \rangle\), evaluate the Grover operator
\(\hat{U}_s|t \rangle = 2 \langle s | t \rangle \ |s \rangle - | t \rangle\). Since the add method of tenpy.networks.mps.MPS does not work for iMPS, I am attempting to construct the Grover operator as an MPO.

Re: How do I calculate an MPO using an iMPS

Posted: 12 Jan 2024, 10:34
by Johannes
This is ill-defined for infinite systems: The overlap \(\braket{s | t}\) for any two iMPS which do not represent exactly the same state goes to 0 in the the thermodynamic limit (or to infinity, if you don't have normalized MPS.).

Also, you generally don't want to write down "cat state" superpositions \(\alpha \ket{s} + \beta \ket{t}\) with infinite MPS: the transfer matrix of that iMPS would have two independent eigenvectors with eigenvalue 1, so the boundary conditions infinitely far away do matter to determine which (superposition of those two) states you actually have and affect local expectation values. In our numerics, we don't want to have this ambiguity.