SiteTypes Included with ITensor
"S=1/2" SiteType
Site indices with the "S=1/2" site type represent $S=1/2$ spins with the states $|\!\uparrow\rangle$, $|\!\downarrow\rangle$.
Making a single "S=1/2" site or collection of N "S=1/2" sites
s = siteind("S=1/2")
sites = siteinds("S=1/2",N)
Available keyword arguments for enabling and customizing quantum numbers (QN) subspaces:
conserve_qns
(default: false): conserve total $S^z$conserve_sz
(default: conserve_qns): conserve total $S^z$conserve_szparity
(default: false): conserve total $S^z$ modulo twoqnname_sz
(default: "Sz"): name of total $S^z$ QNqnname_szparity
(default: "SzParity"): name of total $S^z$ modulo two QN
For example:
sites = siteinds("S=1/2",N; conserve_szparity=true, qnname_szparity="SzP")
Operators associated with "S=1/2" sites can be made using the op
function, for example
Sz = op("Sz",s)
Sz4 = op("Sz",sites[4])
Available operators are exactly the same as those for the "Qubit" site type. Please see the list of "Qubit" operators below.
"Qubit" SiteType
Site indices with the "Qubit" site type represent qubits with the states $|0\rangle$, $|1\rangle$.
Making a single "Qubit" site or collection of N "Qubit" sites
s = siteind("Qubit")
sites = siteinds("Qubit",N)
Available keyword arguments for enabling and customizing quantum numbers (QN) subspaces:
conserve_qns
(default: false): conserve total qubit parityconserve_parity
(default: conserve_qns): conserve total qubit parityconserve_number
(default: false): conserve total qubit numberqnname_parity
(default: "Parity"): name of total qubit parity QNqnname_number
(default: "Number"): name of total qubit number QN
For example:
sites = siteinds("Qubit",N; conserve_parity=true)
"Qubit" and "S=1/2" States
The available state names for "Qubit" sites are:
"0"
(aliases:"Z+"
,"Zp"
,"Up"
,"↑"
) Qubit in the 0 state"1"
(aliases:"Z-"
,"Zm"
,"Dn"
,"↓"
) Qubit in the 1 state"+"
(aliases:"X+"
,"Xp"
) Qubit in the $|+\rangle$ state (+1 eigenvector of $\sigma_x$)"+"
(aliases:"X-"
,"Xm"
) Qubit in the $|-\rangle$ state (-1 eigenvector of $\sigma_x$)"i"
(aliases:"Y+"
,"Yp"
) Qubit in the $|i\rangle$ state (+1 eigenvector of $\sigma_y$)"-i"
(aliases:"Y-"
,"Ym"
) Qubit in the $|-i\rangle$ state (+1 eigenvector of $\sigma_y$)
"Qubit" and "S=1/2" Operators
Operators or gates associated with "Qubit" sites can be made using the op
function, for example
H = op("H",s)
H3 = op("H",sites[3])
Single-qubit operators:
"X"
(aliases:"σx"
,"σ1"
) Pauli X operator"Y"
(aliases:"σy"
,"σ2"
) Pauli Y operator"iY"
(aliases:"iσy"
,"iσ2"
) Pauli Y operator times i"Z"
(aliases:"σz"
,"σ3"
) Pauli Z operator"√NOT"
(aliases:"X"
)"H"
Hadamard gate"Phase"
(takes optional argument: ϕ=π/2) (aliases:"P"
,"S"
)"π/8"
(aliases:"T"
)"Rx"
(takes argument: θ) Rotation around x axis"Ry"
(takes argument: θ) Rotation around y axis"Rz"
(takes argument: θ) Rotation around z axis"Rn"
(takes arguments: θ, ϕ, λ) (aliases:"Rn̂"
) Rotation about axis n=(θ, ϕ, λ)"Proj0"
(aliases:"ProjUp"
,"projUp"
) Operator $|0\rangle\langle 0|$"Proj1"
(aliases:"ProjDn"
,"projDn"
) Operator $|1\rangle\langle 1|$
Spin operators:
"Sz"
(aliases:"Sᶻ"
) Spin z operator $S^z = \frac{1}{2} \sigma_z$"S+"
(alises:"S⁺"
,"Splus"
) Raising operator $S^+ = S^x + iS^y$"S-"
(aliases:"S⁻"
,"Sminus"
) Lowering operator $S^- = S^x - iS^y$"Sx"
(alises:"Sˣ"
) Spin x operator $S^x = \frac{1}{2} \sigma_x$"iSy"
(aliases:"iSʸ"
) i times spin y operator $iS^y = \frac{i}{2} \sigma_y$"Sy"
(aliases:"Sʸ"
) Spin y operator $S^y = \frac{1}{2} \sigma_y$"S2"
(aliases: "S²"`) Square of spin vector operator $S^2=\vec{S}\cdot\vec{S}=\frac{3}{4} I$"ProjUp"
(aliases:"projUp"
,"Proj0"
) Operator $|\!↑\rangle\langle ↑\!|$"ProjDn"
(aliases:"projDn"
,"Proj1"
) Operator $|\!↓\rangle\langle ↓\!|$
Two-qubit gates:
"CNOT"
(aliases:"CX"
) Controlled NOT gate"CY"
Controlled Y gate"CZ"
Controlled Z gate"CPHASE"
(aliases:"Cphase"
) Controlled Phase gate"CRx"
(aliases:"CRX"
) (takes arguments: θ)"CRy"
(aliases:"CRY"
) (takes arguments: θ)"CRz"
(aliases:"CRZ"
) (takes arguments: θ)"CRn"
(aliases:"CRn̂"
) (takes arguments: θ, ϕ, λ)"SWAP"
(aliases:"Swap"
)"√SWAP"
(aliases:"√Swap"
)"iSWAP"
(aliases:"iSwap"
)"√iSWAP"
(aliases:"√iSwap"
)"Rxx"
(aliases:"RXX"
) (takes arguments: ϕ) Ising (XX) coupling gate"Ryy"
(aliases:"RYY"
) (takes arguments: ϕ) Ising (YY) coupling gate"Rzz"
(aliases:"RZZ"
) (takes arguments: ϕ) Ising (ZZ) coupling gate
Three-qubit gates:
"Toffoli"
(aliases"CCNOT"
,"CCX"
,"TOFF"
)"Fredkin"
(aliases"CSWAP"
,"CSwap"
,"CS"
)
Four-qubit gates:
"CCCNOT"
"S=1" SiteType
Site indices with the "S=1" site type represent $S=1$ spins with the states $|\!\uparrow\rangle$, $|0\rangle$, $|\!\downarrow\rangle$.
Making a single "S=1" site or collection of N "S=1" sites
s = siteind("S=1")
sites = siteinds("S=1",N)
Available keyword arguments for enabling and customizing quantum numbers (QN) subspaces:
conserve_qns
(default: false): conserve total $S^z$conserve_sz
(default: conserve_qns): conserve total $S^z$qnname_sz
(default: "Sz"): name of total $S^z$ QN
For example:
sites = siteinds("S=1",N; conserve_sz=true, qnname_sz="TotalSz")
"S=1" States
The available state names for "S=1" sites are:
"Up"
(aliases:"Z+"
,"↑"
) spin in the up state"Z0"
(aliases:"0"
) spin in the Sz=0 state"Dn"
(aliases:"Z-"
,"↓"
) spin in the Sz=0 state
"S=1" Operators
Operators associated with "S=1" sites can be made using the op
function, for example
Sz = op("Sz",s)
Sz4 = op("Sz",sites[4])
Spin operators:
"Sz"
(aliases:"Sᶻ"
)"Sz2"
Square ofS^z
operator"S+"
(alises:"S⁺"
,"Splus"
)"S-"
(aliases:"S⁻"
,"Sminus"
)"Sx"
(alises:"Sˣ"
)"Sx2"
Square ofS^x
operator"iSy"
(aliases:"iSʸ"
)"Sy"
(aliases:"Sʸ"
)"Sy2"
Square ofS^y
operator"S2"
(aliases: "S²"`)
"Boson" SiteType
The "Boson" site type is an alias for the "Qudit" site type. Please see more information about "Qudit" below:
"Qudit" SiteType
Making a single "Qudit" site or collection of N "Qudit" sites
s = siteind("Qudit")
sites = siteinds("Qudit",N)
Available keyword arguments for enabling and customizing quantum numbers (QN) subspaces:
dim
(default: 2): dimension of the index (number of qudit or boson values)conserve_qns
(default: false): conserve total qudit or boson numberconserve_number
(default: conserve_qns): conserve total qudit or boson numberqnname_number
(default: "Number"): name of total qudit or boson number QN
For example:
sites = siteinds("Qudit",N; conserve_number=true)
"Qudit" and "Boson" Operators
Operators associated with "Qudit" sites can be made using the op
function, for example
A = op("A",s)
A4 = op("A",sites[4])
Single-qudit operators:
"A"
(aliases:"a"
)"Adag"
(aliases:"adag"
,"a†"
)"N"
(aliases:"n"
)
Two-qudit operators:
"ab"
"a†b"
"ab†"
"a†b†"
"Fermion" SiteType
Site indices with the "Fermion" SiteType represent spinless fermion sites with the states $|0\rangle$, $|1\rangle$, corresponding to zero fermions or one fermion.
Making a single "Fermion" site or collection of N "Fermion" sites
s = siteind("Fermion")
sites = siteinds("Fermion",N)
Available keyword arguments for enabling and customizing quantum numbers (QN) subspaces:
conserve_qns
(default: false): conserve total number of fermionsconserve_nf
(default: conserve_qns): conserve total number of fermionsconserve_nfparity
(default: conserve_qns): conserve total fermion number parityqnname_nf
(default: "Nf"): name of total fermion number QNqnname_nfparity
(default: "NfParity"): name of total fermion number parity QN
For example:
sites = siteinds("Fermion",N; conserve_nfparity=true)
"Fermion" States
The available state names for "Fermion" sites are:
"0"
(aliases:"Emp"
) unoccupied fermion site"1"
(aliases:"Occ"
) occupied fermion site
"Fermion" Operators
Operators associated with "Fermion" sites can be made using the op
function, for example
C = op("C",s)
C4 = op("C",sites[4])
Single-fermion operators:
"N"
(aliases:"n"
) Density operator"C"
(aliases:"c"
) Fermion annihilation operator"Cdag"
(aliases:"cdag"
,"c†"
) Fermion creation operator"F"
Jordan-Wigner string operator
"Electron" SiteType
The states of site indices with the "Electron" SiteType correspond to $|0\rangle$, $|\!\uparrow\rangle$, $|\!\downarrow\rangle$, $|\!\uparrow\downarrow\rangle$.
Making a single "Electron" site or collection of N "Electron" sites
s = siteind("Electron")
sites = siteinds("Electron",N)
Available keyword arguments for enabling and customizing quantum numbers (QN) subspaces:
conserve_qns
(default: false): conserve total number of electronsconserve_sz
(default: conserve_qns): conserve total $S^z$conserve_nf
(default: conserve_qns): conserve total number of electronsconserve_nfparity
(default: conserve_qns): conserve total electron number parityqnname_sz
(default: "Sz"): name of total $S^z$ QNqnname_nf
(default: "Nf"): name of total electron number QNqnname_nfparity
(default: "NfParity"): name of total electron number parity QN
For example:
sites = siteinds("Electron",N; conserve_nfparity=true)
"Electron" States
The available state names for "Electron" sites are:
"Emp"
(aliases:"0"
) unoccupied electron site"Up"
(aliases:"↑"
) electron site occupied with one up electron"Dn"
(aliases:"↓"
) electron site occupied with one down electron"UpDn"
(aliases:"↑↓"
) electron site occupied with two electrons (one up, one down)
"Electron" Operators
Operators associated with "Electron" sites can be made using the op
function, for example
Cup = op("Cup",s)
Cup4 = op("Cup",sites[4])
Single-fermion operators:
"Ntot"
(aliases:"ntot"
) Total density operator"Nup"
(aliases:"n↑"
) Up density operator"Ndn"
(aliases:"n↓"
) Down density operator"Cup"
(aliases:"c↑"
) Up-spin annihilation operator"Cdn"
(aliases:"c↓"
) Down-spin annihilation operator"Cdagup"
(aliases:"c†↑"
) Up-spin creation operator"Cdagdn"
(aliases:"c†↓"
) Down-spin creation operator"Sz"
(aliases:"Sᶻ"
)"Sx"
(aliases:"Sˣ"
)"S+"
(aliases:"Sp"
,"S⁺"
,"Splus"
)"S-"
(aliases:"Sm"
,"S⁻"
,"Sminus"
)"F"
Jordan-Wigner string operator"Fup"
(aliases:"F↑"
) Up-spin Jordan-Wigner string operator"Fdn"
(aliases:"F↓"
) Down-spin Jordan-Wigner string operator
Non-fermionic single particle operators (these do not have Jordan-Wigner string attached, so will commute within systems such as OpSum or the apply
function):
"Aup"
(aliases:"a↑"
) Up-spin annihilation operator"Adn"
(aliases:"a↓"
) Down-spin annihilation operator"Adagup"
(aliases:"a†↑"
) Up-spin creation operator"Adagdn"
(aliases:"a†↓"
) Down-spin creation operator
"tJ" SiteType
"tJ" sites are similar to electron sites, but cannot be doubly occupied The states of site indices with the "tJ" SiteType correspond to $|0\rangle$, $|\!\uparrow\rangle$, $|\!\downarrow\rangle$.
Making a single "tJ" site or collection of N "tJ" sites
s = siteind("tJ")
sites = siteinds("tJ",N)
Available keyword arguments for enabling and customizing quantum numbers (QN) subspaces:
conserve_qns
(default: false): conserve total number of fermionsconserve_nf
(default: conserve_qns): conserve total number of fermionsconserve_nfparity
(default: conserve_qns): conserve total fermion number parityqnname_nf
(default: "Nf"): name of total fermion number QNqnname_nfparity
(default: "NfParity"): name of total fermion number parity QN
For example:
sites = siteinds("tJ",N; conserve_nfparity=true)
"tJ" States
The available state names for "tJ" sites are:
"Emp"
(aliases:"0"
) unoccupied site"Up"
(aliases:"↑"
) site occupied with one up electron"Dn"
(aliases:"↓"
) site occupied with one down electron
"tJ" Operators
Operators associated with "tJ" sites can be made using the op
function, for example
Cup = op("Cup",s)
Cup4 = op("Cup",sites[4])
Single-fermion operators:
"Ntot"
(aliases:"ntot"
) Total density operator"Nup"
(aliases:"n↑"
) Up density operator"Ndn"
(aliases:"n↓"
) Down density operator"Cup"
(aliases:"c↑"
) Up-spin annihilation operator"Cdn"
(aliases:"c↓"
) Down-spin annihilation operator"Cdagup"
(aliases:"c†↑"
) Up-spin creation operator"Cdagdn"
(aliases:"c†↓"
) Down-spin creation operator"Sz"
(aliases:"Sᶻ"
)"Sx"
(aliases:"Sˣ"
)"S+"
(aliases:"Sp"
,"S⁺"
,"Splus"
)"S-"
(aliases:"Sm"
,"S⁻"
,"Sminus"
)"F"
Jordan-Wigner string operator"Fup"
(aliases:"F↑"
) Up-spin Jordan-Wigner string operator"Fdn"
(aliases:"F↓"
) Down-spin Jordan-Wigner string operator
Non-fermionic single particle operators (these do not have Jordan-Wigner string attached, so will commute within systems such as OpSum or the apply
function):
"Aup"
(aliases:"a↑"
) Up-spin annihilation operator"Adn"
(aliases:"a↓"
) Down-spin annihilation operator"Adagup"
(aliases:"a†↑"
) Up-spin creation operator"Adagdn"
(aliases:"a†↓"
) Down-spin creation operator