I would expect this to result in two conserved charges (Nf, NfParity), but I get only Nf.
While sensible as parity is redundant (so maybe should be left as is), it is somewhat unexpected behaviour.
Hi Matan,
Thanks for sharing this. I can see why it’s surprising. We set the behavior that way since conserving number does also implicitly conserve parity, so you get the desired behavior that way in a kind of “zoomed out” sense.
What would you suggest should be the behavior here? I could see a good argument for throwing an error.
One could also imagine having separate “Nf” and “Nfp” quantum numbers stored in the spaces for this case, but I don’t see as good of an argument for doing that, as every reason I can think of for wanting that behavior could probably be reduced to just using more generic coding practices, like e.g. if one wanted to read off the parity of a certain block of an index like this, one could always write a function that first reads off the “Nf” value then mods it by 2.