Hi Giuseppe,
I had drafted a similar answer to Matt's – including it in case the extra details are helpful. We are discussing whether it's a good idea to make the amount of QNs changeable in a simpler way, though it could lead to some errors if not done at the very beginning of a program.
Here's my answer:
If you change the variable "maxQNs" to be greater than 4, then you will be able to use any amount of QNs you want that way, and the rest of the code should continue to work. To make this change, you will need to do the following steps:
change the ITensors package to be in "dev" mode if you haven't already: in the package manager (type ] to enter package mode) run the command "dev ITensors"
navigate in your shell to the folder ~/.julia/dev/ITensors/src/qn/
edit the file qn.jl by changing the maxQNs variable on line 62
https://github.com/ITensor/ITensors.jl/blob/1e44c0c874f531ac6ba767fb67551ba6fac11e18/src/qn/qn.jl#L62
Now if you restart any running Julia session or run a new one, you should be able to use more QNs.
Finally, note that after switching to dev mode, you will not get updates of version of ITensors.jl in the usual way (i.e. your version will be pinned to the current one unless you manually pull the code from Github). So to update your ITensor library code you'll need to revert any code edits you made, then do "free ITensors" in the Julia package manager.