+1 vote
asked by (650 points)
edited by

consider a simple interaction Hamiltonian of spin-1 boson. Each boson has 3 spin states : @@mF=1,0,-1@@. We now use @@a{mF}@@ (@@a{mF}^{\dagger}@@) as the annihilation (creation) operator for different @@mF@@ states.


Obviously, this Hamiltonian does not conserve @@a{mF}^{\dagger}a{mF}@@ separately, but instead it conserves total @@Sz=a1^{\dagger}a1-a{-1}^{\dagger}a_{-1}@@.

Now I have a problem. When I define a site set file for spin-1 Bose-Hubbard model, I need to define a IQIndex object with (Index, QN) pair. Can I use @@a{mF}^{\dagger}a{mF}@@ as a quantum number for QN objects ? That is, I may define them to be

  Index(nameint("state name",n),1,Site),QN({Np1,1},{Nz0,1},{Nm1,1}));

where Np1=@@a{1}^{\dagger}a1@@, Nz0=@@=a0^{\dagger}a0@@ and Nm1=@@a{-1}^{\dagger}a{-1}@@.

Thank you.

commented by (650 points)
I think I have known the answer so I try to give it here. The answer is NO if we want to use non-conserving quantum number to define a index-QN pair in IQTensor. IQTensor is designed for sparse tensor with block-structure, which corresponds to specific conserved quantum number of the system. IQTensor makes the calculation, such as contraction of tensor, much faster than general ITensor (dense tensor) because the latter one doesn't consider the symmetry of physical system.

1 Answer

0 votes
answered by (70.1k points)

Hi Junjie,
Sorry about the slow reply. It seems you have arrived at the correct answer, which is no you may not use the QN/IQTensor system (such as creating multiple IQIndex sectors with various QN values) to denote quantum numbers which won't be conserved.

However, what you can do, and what I frequently do, is to define a Hilbert space via a site set that is organized into different QN sectors, but then use this site set within the ITensor/Index system (as opposed to the IQTensor/IQIndex system) since I plan to study a Hamiltonian which doesn't conserve any quantum numbers (or which does but I don't want them to conserved for some reason).

On the code side, this takes advantage of the fact that IQIndex objects may be automatically converted to Index objects, and IQTensors automatically converted to ITensors. (The conversion merely erases the information about the QN sectors.)

In a future design of the ITensor library, I plan to go back to having separate site sets for defining Hilbert spaces in cases where one wants to define QN conserving or non-conserving simulations. I think using an IQIndex based site set and letting things be converted is causing too much confusion and inconveniences for people including myself.

Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.