SpinHalf and SpinHalfSite

The SpinHalf class is a specialization of SiteSet which initializes its sites to be of type SpinHalfSite, representing a S=1/2 spin.

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

SpinHalf and SpinHalfSite are defined in the file "itensor/mps/sites/spinhalf.h"

Synopsis

//Make a spinhalf site with no QNs
auto s = SpinHalfSite({"ConserveQNs=",false});

//Make an Sz operator
auto Sz = op(s,"Sz");

//Get the Index of the site
auto i = index(s);

Print(hasInds(Sz,{i,prime(i)}));

//Make a set of SpinHalfSites
auto sites = SpinHalf(100);

auto Sz3 = op(sites,"Sz",3);

auto Sp4 = op(sites,"S+",4);

//Use IndexVals to get the +,+ element of the Sz operator
auto Szpp = elt(Sz3,sites(3,"Up"),prime(sites(3,"Up")));

Args of a SpinHalfSite

  • "ConserveQNs" — sets if the site has QN information or not. Defaults to true.

  • "ConserveSz" — sets if the site has QN information or not. Defaults to true.

  • "SiteNumber" — integer n. If specified, add a tag "n="+str(n) to the Index of the SpinHalfSite.

States of a SpinHalfSite

  • "Up" — the @@m_z=+1/2@@ spin state

  • "Dn" — the @@m_z=-1/2@@ spin state

Operators Provided by SpinHalfSite

  • "Sz" — the @@S^z = \frac{1}{2}\sigma^z@@ spin operator

  • "S+" — the @@S^+ = \sigma^+@@ operator (alternate name is "Sp")

  • "S-" — the @@S^- = \sigma^-@@ operator (alternate name is "Sm")

  • "Sx" — the @@S^x = \frac{1}{2}\sigma^x@@ operator (must be converted to an ITensor prior to usage)

  • "Sy" — the @@S^y = \frac{1}{2}\sigma^y@@ operator (must be converted to an ITensor prior to usage)

  • "ISy" — defined as @@i\,S^y = \frac{i}{2}\sigma^y@@ (must be converted to an ITensor prior to usage)


Back to Classes
Back to Main