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 totalS^z
conserve_sz
(default: conserve_qns): conserve totalS^z
conserve_szparity
(default: false): conserve totalS^z
modulo twoqnname_sz
(default: "Sz"): name of totalS^z
QNqnname_szparity
(default: "SzParity"): name of totalS^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.
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)
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$ )
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"
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 totalS^z
conserve_sz
(default: conserve_qns): conserve totalS^z
qnname_sz
(default: "Sz"): name of totalS^z
QN For example:
sites = siteinds("S=1",N; conserve_sz=true, qnname_sz="TotalSz")
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
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²"`)
The "Boson" site type is an alias for the "Qudit" site type. Please see more information about "Qudit" below:
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)
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†"
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)
The available state names for "Fermion" sites are:
"0"
(aliases:"Emp"
) unoccupied fermion site"1"
(aliases:"Occ"
) occupied fermion site
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
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 totalS^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 totalS^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)
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)
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" 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)
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
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