Understanding conserved QNs

Hi all,

I’m trying to study a multi-component Hubbard model, similar to what was asked before here. However, instead of splitting up the sites into a mixed “Electron” space, I’m trying to define a single custom SiteType. Essentially, I’d like to generalise the “Electron” SiteType for additional internal states.

Defining the new SiteType with no QNs and the operators is fairly straightforward. However, I’m struggling to understand how to implement the conservation laws, for example, to conserve the number of fermions of each spin. In particular, in the predefined “Electron” type, I don’t fully understand the following lines:

if conserve_sz && conserve_nf
    return [
      QN((qnname_nf, 0, -1), (qnname_sz, 0)) => 1
      QN((qnname_nf, 1, -1), (qnname_sz, +1)) => 1
      QN((qnname_nf, 1, -1), (qnname_sz, -1)) => 1
      QN((qnname_nf, 2, -1), (qnname_sz, 0)) => 1
    ]
  elseif conserve_nf
    return [
      QN(qnname_nf, 0, -1) => 1
      QN(qnname_nf, 1, -1) => 2
      QN(qnname_nf, 2, -1) => 1
    ]
  elseif conserve_sz
    return [
      QN((qnname_sz, 0), (qnname_nfparity, 0, -2)) => 1
      QN((qnname_sz, +1), (qnname_nfparity, 1, -2)) => 1
      QN((qnname_sz, -1), (qnname_nfparity, 1, -2)) => 1
      QN((qnname_sz, 0), (qnname_nfparity, 0, -2)) => 1
    ]
  elseif conserve_nfparity
    return [
      QN(qnname_nfparity, 0, -2) => 1
      QN(qnname_nfparity, 1, -2) => 2
      QN(qnname_nfparity, 0, -2) => 1
    ]
  end

I think I understand how the conservation of the total number of fermions is implemented, but not the conservation of Sz.

Aren’t the qnname’s just labels? In this sense, why if Sz is conserved QN needs two tuples? And also, what’s the difference between the QNs inside
conserve_sz && conserve_nf and conserve_sz, and between
conserve_nf and conserve_nfparity?

Also, what does the third input in (qnname_nf, _ , -1) and (qnname_nfparity, _, -2) mean [the -1 and -2]?

Thanks!

The third input is the group “modulus”, see Miles’ comment here: Why nf is defined modulus -1 in sitetype "fermion" "electron" - #2 by miles

qnnames are just labels but they are rigorously related to conserved global abelian symmetries of the states/operators. Those lines describe how the space is split up, so that all operations are block diagonal within that space. If total Sz is conserved and total fermion number is not conserved then fermion parity is conserved.

Perhaps check out the ITensor paper section 8:
https://scipost.org/SciPostPhysCodeb.4/pdf
and the references in that section

Thanks! That makes sense. Apologies for not finding that previous post.

1 Like