Learn to Use ITensor

main / classes / hubbard C++v3 | C++v2

Hubbard and HubbardSite

The Hubbard class is a specialization of SiteSet which initializes its sites to be of type HubbardSite, representing a particle with spin 1/2 (either a fermion or a spinful boson) occupying a single local orbital (meaning that the maximum occupancy of the site is two particles: one with spin up and one with spin down).

The HubbardSite class can also be used to create custom SiteSets which mix HubbardSites with other types of sites.

A Hubbard site set (and HubbardSite) accepts the following optional named arguments:

Hubbard and HubbardSite are defined in the file "itensor/mps/sites/hubbard.h"


auto sites = Hubbard(100);

auto Ntot_3 = sites.op("Ntot",3);

auto Cup_4 = sites.op("Cup",4);

//Make a Hubbard site set which only conserves parity
auto psites = Hubbard(100,{"ConserveNf",false});

States of a HubbardSite

Operators Provided by HubbardSite

For the following fermionic operators, it is crucial to note that when obtaining them as individual tensors from a site set, they do not anti-commute with each other on different sites, only on the same site (for more details on how these operators act on a single site read more at this tutorial). In contrast, when used as operator names in the construction of an AutoMPO, they do anti-commute but only in that context.

Back to Classes
Back to Main