0 votes
asked by (190 points)


I was wondering if the following would be possible:

  1. add a fresh ancilla qubit (initialized at state |0>) in the middle of/at the beginning/at the end of the MPO or MPS.
  2. After adding the ancilla, run some time evolution in which the Hamiltonian couples the ancilla with the original sites.
  3. After the time evolution, trace out the ancilla.

I find that with PastaQ.jl one can use the LPDO but I don't know if there is any function that allows to add or trace out ancilla in one arbitrary location of the lattice. Any help/suggestions would be appreciated!

commented by (14.1k points)
Currently we don't have that as a feature, but it sounds like a great thing to add.

I don't have time right now to add it, but it would be pretty simple to write up a version yourself. Essentially it would just involve inserting a new tensor (corresponding to the |0> state) into the MPS/MPO and make sure it has consistent link indices with the neighboring tensors.

If you want to give it a shot, feel free to ask questions if you run into trouble.

Please log in or register to answer this question.

Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.