Hello,

I am trying to make use of a U1 symmetry in my model and IQTensors to speed up the calculations. I have some conserved quantity that involves different particle types.

To be concrete, imagine two sets of bosonic sites @@a@@ and @@b@@, and a Hamiltonian that conserves the difference, i.e commutes with

$$

S =\sum_x (a_x^\dagger a_x - b_x^\dagger b_x).

$$

I originally defined a generic bosonic site as follows (if there is interest I would be glad to share the siteset so that it can be included in ITensor):

```
BosonSite(int n, Args const& args = Args::global())
{
auto d = args.getInt("d",5); //max number of bosons
auto v = stdx::reserve_vector<IndexQN>(d+1);
for (int i = 0; i <= d; ++i) {
std::string temp = nameint("n",i);
temp += "_";
temp += std::to_string(n);
v.emplace_back(Index(temp,1,Site),QN({i,1}));
}
s = IQIndex(nameint("b_site=",n),std::move(v));
}
```

However, that does not seems to work if I want to conserve @@S@@. I tried to modify

the QN object for the @@b@@ species by replacing

```
QN({i,1})
```

with

```
QN({-i,1}));
```

on the sites where the @@b@@ bosons live.

However, that does not work either, I am getting an error

```
IQIndex does not contain given QN block.
Aborted (core dumped)
```

Now, I have read the iTensor book and documentation on IQTensors, but I admit that I still do not fully understand it, so I would appreciate any help with this particular example.

Also, the model I am looking at is slightly more complicated with a spin-1/2 in addition to the two different kinds of bosons, but I am hoping that by understanding this simple case I could solve the more general problem.

Thanks