TJ operators
TensorKitTensors.TJOperators.S_exchange — Function
S_exchange([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the spin exchange operator S⋅S. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.S_min — Function
S_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
S⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the spin-minus operator S⁻ = e†_↓ e_↑ (only compatible with Trivial spin symmetry). Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.S_min_S_plus — Function
S_min_S_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
S⁻S⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator S⁻S⁺. The only nonzero matrix element corresponds to |↓,↑⟩ <-- |↑,↓⟩. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.S_plus — Function
S_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
S⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the spin-plus operator S⁺ = e†_↑ e_↓ (only compatible with Trivial spin symmetry). Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.S_plus_S_min — Function
S_plus_S_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
S⁺S⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator S⁺S⁻. The only nonzero matrix element corresponds to |↑,↓⟩ <-- |↓,↑⟩. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.S_x — Function
S_x([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
Sˣ([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the one-body spin-1/2 x-operator on the electrons (only compatible with Trivial spin symmetry). Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.S_y — Function
S_y([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
Sʸ([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the one-body spin-1/2 y-operator on the electrons (only compatible with Trivial spin symmetry). Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.S_z — Function
S_z([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
Sᶻ([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the one-body spin-1/2 z-operator on the electrons. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.d_min_d_min — Function
d_min_d_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
d⁻d⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e_{1,↓} e_{2,↓}$ that annihilates a spin-down particle at both sites. The nonzero matrix elements are
-|0,0⟩ ↤ |↓,↓⟩, +|0,↑⟩ ↤ |↓,↑↓⟩
-|↑,0⟩ ↤ |↑↓,↓⟩, +|↑,↑⟩ ↤ |↑↓,↑↓⟩Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.d_min_d_plus — Function
d_min_d_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
d⁻d⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e_{1,↓}, e†_{2,↓}$ that annihilates a spin-down particle at the first site and creates a spin-down particle at the second. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.d_min_u_min — Function
d_min_u_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
d⁻u⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e_{1,↓} e_{2,↑}$ that annihilates a spin-down particle at the first site and a spin-up particle at the second site. The nonzero matrix elements are
-|0,0⟩ ↤ |↓,↑⟩, -|0,↓⟩ ↤ |↓,↑↓⟩
-|↑,0⟩ ↤ |↑↓,↑⟩, -|↑,↓⟩ ↤ |↑↓,↑↓⟩Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.d_num — Function
d_num([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
nꜜ([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the one-body operator that counts the number of spin-down particles. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.d_plus_d_min — Function
d_plus_d_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
d⁺d⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e†_{1,↓}, e_{2,↓}$ that creates a spin-down particle at the first site and annihilates a spin-down particle at the second. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.d_plus_d_plus — Function
d_plus_d_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
d⁺d⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e†_{1,↓} e†_{2,↓}$ that creates a spin-down particle at both sites. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.d_plus_u_plus — Function
d_plus_u_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
d⁺u⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e†_{1,↓} e†_{2,↑}$ that creates a spin-down particle at the first site and a spin-up particle at the second site. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.e_hopping — Function
e_hopping([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
e_hop([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator that describes a particle that hops between the first and the second site.
For SU2Irrep particle symmetry, the hopping operator is expressed in the staggered gauge $c_{j,σ} → i^j c_{j,σ}$ and requires a complex scalar type; see basis_transform for details. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.e_min_e_plus — Function
e_min_e_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
e⁻e⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator that annihilates a particle at the first site and creates a particle at the second. This is the sum of u_min_u_plus and d_min_d_plus. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.e_num — Function
e_num([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
n([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the one-body operator that counts the number of particles. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.e_plus_e_min — Function
e_plus_e_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
e⁺e⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator that creates a particle at the first site and annihilates a particle at the second. This is the sum of u_plus_u_min and d_plus_d_min. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.h_num — Function
h_num([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
nʰ([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the one-body operator that counts the number of holes, i.e. the number of non-occupied sites. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.singlet_min — Function
singlet_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
singlet⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the adjoint of singlet_plus operator, which is $(-e_{1,↑} e_{2,↓} + e_{1,↓} e_{2,↑}) / \sqrt{2}$. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.singlet_plus — Function
singlet_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
singlet⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body singlet operator $(e^†_{1,↑} e^†_{2,↓} - e^†_{1,↓} e^†_{2,↑}) / \sqrt{2}$, which creates the singlet state when acting on vaccum. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.singlet_plus_singlet_min_3site — Function
singlet_plus_singlet_min_3site([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
Δ⁺ij_Δjk([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Returns the 3-site term $O_{ijk} = Δ^†_{ij} Δ_{jk}$, where $Δ^†_{ij} = (e^†_{1,↑} e^†_{2,↓} - e^†_{1,↓} e^†_{2,↑}) / \sqrt{2}$. It describes the hopping of a singlet pair from bond (j,k) to a nearest neighbor bond (i,j) sharing site j. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.singlet_plus_singlet_min_4site — Function
singlet_plus_singlet_min_4site([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
Δ⁺ij_Δkl([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Returns the 4-site term $O_{ijkl} = Δ^†_{ij} Δ_{kl}$, where $Δ^†_{ij} = (e^†_{1,↑} e^†_{2,↓} - e^†_{1,↓} e^†_{2,↑}) / \sqrt{2}$. It measures the singlet pair correlation between two bonds (i,j) and (k,l). Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.tj_projector — Method
tj_projector(particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector})Projection operator from Hubbard space to t-J space. The scalartype is Int to avoid floating point errors.
TensorKitTensors.TJOperators.tj_space — Function
tj_space(particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}; slave_fermion::Bool = false)Return the local hilbert space for a t-J-type model with the given particle and spin symmetries. The basis consists of the following states:
| label | tJ basis | slave-fermion |
| ----- | -------- | ------------- |
| |0⟩ | |∅⟩ | h⁺|∅⟩ |
| |↑⟩ | u⁺|∅⟩ | bꜛ⁺|∅⟩ |
| |↓⟩ | d⁺|∅⟩ | bꜜ⁺|∅⟩ ||∅⟩is the vacuum state;uandddenote fermionic spin-up and spin-down operators;- in the slave-fermion representation, $h$ is the fermionic holon operator, and $bꜛ$, $bꜜ$ are bosonic spinon operators.
The possible symmetries are:
- Particle number :
Trivial,U1Irrep - Spin :
Trivial,U1Irrep,SU2Irrep.
TensorKitTensors.TJOperators.transform_slave_fermion — Function
transform_slave_fermion(O::AbstractTensorMap)
transform_slave_fermion(V::ElementarySpace)Transform the given operator to the slave-fermion basis, which is related to the usual t-J basis by
| label | tJ basis | slave-fermion |
| ----- | -------- | ------------- |
| |0⟩ | |∅⟩ | h⁺|∅⟩ |
| |↑⟩ | u⁺|∅⟩ | bꜛ⁺|∅⟩ |
| |↓⟩ | d⁺|∅⟩ | bꜜ⁺|∅⟩ |where $h$ is the fermionic holon operator, and $bꜛ$, $bꜜ$ are bosonic spinon operators.
TensorKitTensors.TJOperators.u_min_d_min — Function
u_min_d_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
u⁻d⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e_{1,↑} e_{2,↓}$ that annihilates a spin-up particle at the first site and a spin-down particle at the second site. The nonzero matrix elements are
-|0,0⟩ ↤ |↑,↓⟩, +|0,↑⟩ ↤ |↑,↑↓⟩,
+|↓,0⟩ ↤ |↑↓,↓⟩, -|↓,↑⟩ ↤ |↑↓,↑↓⟩Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.u_min_u_min — Function
u_min_u_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
u⁻u⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e_{1,↑} e_{2,↑}$ that annihilates a spin-up particle at both sites. The nonzero matrix elements are
-|0,0⟩ ↤ |↑,↑⟩, -|0,↓⟩ ↤ |↑,↑↓⟩
+|↓,0⟩ ↤ |↑↓,↑⟩, +|↓,↓⟩ ↤ |↑↓,↑↓⟩Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.u_min_u_plus — Function
u_min_u_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
u⁻u⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e_{1,↑}, e†_{2,↑}$ that annihilates a spin-up particle at the first site and creates a spin-up particle at the second. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.u_num — Function
u_num([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
nꜛ([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the one-body operator that counts the number of spin-up particles. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.u_plus_d_plus — Function
u_plus_d_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
u⁺d⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e†_{1,↑} e†_{2,↓}$ that creates a spin-up particle at the first site and a spin-down particle at the second site. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.u_plus_u_min — Function
u_plus_u_min([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
u⁺u⁻([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e†_{1,↑}, e_{2,↑}$ that creates a spin-up particle at the first site and annihilates a spin-up particle at the second. Use slave_fermion = true to switch to the slave-fermion basis.
TensorKitTensors.TJOperators.u_plus_u_plus — Function
u_plus_u_plus([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
u⁺u⁺([elt::Type{<:Number}], [particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)Return the two-body operator $e†_{1,↑} e†_{2,↑}$ that creates a spin-up particle at both sites. Use slave_fermion = true to switch to the slave-fermion basis.