+1 vote
asked by (420 points)

Dear Itensor

Bellow is the list of collection of site objects (" corresponding Hilbert space and local operators"), which is included by default in the Itensor code.

SpinHalf and SpinHalfSite
SpinOne and SpinOneSite
Spinless and SpinlessSite.
Hubbard and HubbardSite
tJ and tJSite. t-J model sites. 

how can I extend it, for example the Spinless fermion one, bellow

"Emp" — the vacuum (empty) state
"Occ" — the occupied state (one particle)

into something like this :

"Emp" — the vacuum (empty) state
"Occ1" — the occupied state (one particle)
"Occ2" — the occupied state (two particles)

it means the local dimension is $3\times 3$,
and the particle operator cast as follows:

$N=F^\dagger F+F^\dagger^2+F^2$,
with commutation relations

$[N,F^\dagger]= F^\dagger$
$[N,F]= -F$

many thanks for comments and remarks


1 Answer

0 votes
answered by (70.1k points)

Hi Javad,
Thanks for the question. Indeed we had designed the site set system for custom cases like parafermions.

Though we have not advertised it very much in the documentation or website, the ITensor library code actually includes a file "mps/sites/Z3.h" which defines a site set called Z3 (made out of a site type Z3Site) which implements Z3 parafermions. You could modify that code fairly straightforwardly to do ZN parafermions.

Here is a link to that code:

One thing to note is that the definition of the Tau and Sig (tau and sigma) operators may be flipped from the one you are using, since these conventions differ from paper to paper involving parafermions.

Another very crucial thing to note is that these sites and operators are parafermionic only in a local sense. To properly implement Hamiltonian terms which involve operators acting beyond nearest-neighbor, it's crucial to include non-local strings of "Tau" or "TauDag" operators connecting the interaction operators. This is analogous to how fermions must be implemented using Jordan-Wigner string in ITensor currently.

Finally, note that this same issue about "Tau" string means that the AutoMPO system cannot currently make non-local parafermion Hamiltonians for you. You will need to make a custom Hamiltonian MPO for that. Ideally we are working on a system that will automate all this in the Julia version of ITensor, but I wouldn't expect it to handle parafermions automatically until sometime in late 2021 most likely.

Best regards,

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.