0 votes
asked by (270 points)


I am looking for an efficient way to increase bond dimension of MPS or IQMPS to a given value (added values are set to zero), which is required for 1-site algorithms.

Right now, for MPS, I am using delta() to replace the link indices with indices with higher dimensions, which may not be an efficient way to do this.

Also for IQMPS, I do not have any idea how to do this, as there exist different QN sector of the existing link iqindex, and to replace it with delta(), I have to define another iqindex with same QN structure but with an extra QN() sector whose dimension will be decided depending on the final bond dimension. I have no idea, how to achieve this in a general setting.

Thanking you,

commented by (270 points)
The method of subspace expansion described in https://arxiv.org/pdf/1501.05504.pdf will probably not work in pure 1-site TDVP algorithm, where an initial (usually) product  MPS (or MPS with lower bond dimension) is written with larger bond dimension in an ad-hoc manner by setting extra terms to zero, so that every property of the original MPS remains exactly same.
commented by (3.5k points)
It sounds like this recent review of time evolution methods of MPS says that the best strategy would be to use a 2-site TDVP until the bond dimension saturates at your desired bond dimension, then switch to a 1-site TDVP:

In that case, the 2-site TDVP would perform the subspace expansion automatically, without having to do it manually.
commented by (270 points)
Yes. Right now I am doing the same for both DMRG and TDVP. However, I wanted a pure 1-site TDVP for comparison. In case of generic ITensor and MPS, pure 1-site TDVP is working with padding by zero valued ITensors that I mentioned earlier.

Interestingly, this hybrid scheme (2-site version upto a certain bond dimension and then 1-site version without subspace expansion or density matrix perturbation) also works better for DMRG, especially for finding excited states (atleast for the systems that I am studying). The Hybrid scheme converges faster and more accurately at lower bond dimension, than pure 2-site DMRG. May be this is already known to the community, but is very new to me.
commented by (3.5k points)
Conceptually, without any other input about the physics of the problem, the only way I can think to pick the QNs of the expanded subspace is to pick them randomly (perhaps some gaussian distribution of QNs). An alternative way could be the following, since you are doing a comparison calculation anyway:

1. Do a hybrid 2-site and 1-site TDVP calculation.
2. Then do a purely 1-site TDVP, but get the QNs for the subspace expansion from the hybrid calculation done in 1. that you will compare to.

Then, the calculations are being performed in the same MPS manifold, so it seems like the most fair comparison.

I have indeed heard that about DMRG, but had not tried it myself. It would be good for ITensor to support both 1-site and 2-site DMRG calculations, and we are also interested in supporting TDVP as soon as possible.

commented by (270 points)
Yes. Your idea about getting QNs from the hybrid scheme is very promising. I should try that.

Thanks again,

1 Answer

+1 vote
answered by (3.5k points)
selected by
Best answer

Just to give an official answer to summarize the comments above:

  1. As a technical problem of expanding the subspace of an IQMPS, it is not directly built into ITensor right now, though with some modification of existing code in itensor/mps/mpsalgs.cc it is not hard to do. For example, take a look at: https://gist.github.com/mtfishman/1804a3a473112cb7cb80722eeac47a8b which shows an implementation of a "partial direct sum" operation of two IQTensors, which should be sufficient for doing a subspace expansion of an IQMPS. This is something that we will try to support officially in ITensor as soon as possible.

  2. A general question which is application dependent is how to choose the QNs of an expanded IQMPS subspace. The answer is that, when possible, it is best to determine the expanded subspace using the physics of your problem. For a single site DMRG calculation, a popular method seems to be ( https://arxiv.org/pdf/1501.05504.pdf ), but various methods have been proposed. Alternatively, a method that would work fairly generically would be to first perform a 2-site version of the MPS algorithm you are interested in (for example, 2-site DMRG or 2-site TDVP), which will automatically expand the subspace. Then, you can switch to a 1-site version once the desired bond dimension is reached.

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.