(I'll use the language of ITensorV2 for this question, but I don't believe my question is version specific.)

As discussed by Schollwock (pg 58 and 42), if I wish to add two MPO's, say

Ha = A1 * A2 * ... *AN

and

Hb = B1 * B2 * ... *BN

for some N-site system; then I'll need to form the direct product out of all the local tensors Ai and Bi. In other words, form a larger tensor with Ai and Bi on the diagonal: Mi = diagonal(Ai,Bi), where Ha+Hb = M1 * M2 * ... * MN. From which it follows the new tensor would have dimensions dim(Mi) = dim(Ai) + dim(Bi).

It's not so clear to me how one would do this if Ai and Bi are block sparse IQTensors. If LinkA and LinkB represent the sets of Link indices for A and B, then would I need to create a new set LinkM, where the dimensions of like-QN sectors are summed? What is the best way of doing this, or are there functions which already handle this?

I'm aware there is a function add(Ha,Hb), however, doing this fails with the complaint:

```
From line 271, file itensor_operators.cc
ITensorT::operator+=: different index structure
```

In this particular run, Ha and Hb are nearly identical, and have identical quantum number. (I'm happy to share my code if that will help.)