How do I calculate an MPO using an iMPS

How do I use this algorithm? What does that parameter do?
Post Reply
squareroottwo
Posts: 2
Joined: 13 Dec 2023, 12:18

How do I calculate an MPO using an iMPS

Post 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.
User avatar
Johannes
Site Admin
Posts: 428
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: How do I calculate an MPO using an iMPS

Post 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.
Post Reply