TJ operators

TensorKitTensors.TJOperators.S_exchangeFunction
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.

source
TensorKitTensors.TJOperators.S_minFunction
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 (only defined for Trivial spin symmetry). Use slave_fermion = true to switch to the slave-fermion basis.

source
TensorKitTensors.TJOperators.S_min_S_plusFunction
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.

source
TensorKitTensors.TJOperators.S_plusFunction
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 defined for Trivial spin symmetry). Use slave_fermion = true to switch to the slave-fermion basis.

source
TensorKitTensors.TJOperators.S_plus_S_minFunction
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.

source
TensorKitTensors.TJOperators.S_xFunction
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 defined for Trivial symmetry). Use slave_fermion = true to switch to the slave-fermion basis.

source
TensorKitTensors.TJOperators.S_yFunction
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 defined for Trivial symmetry). Use slave_fermion = true to switch to the slave-fermion basis.

source
TensorKitTensors.TJOperators.S_zFunction
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.

source
TensorKitTensors.TJOperators.d_min_d_minFunction
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.

source
TensorKitTensors.TJOperators.d_min_d_plusFunction
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.

source
TensorKitTensors.TJOperators.d_min_u_minFunction
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.

source
TensorKitTensors.TJOperators.d_numFunction
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.

source
TensorKitTensors.TJOperators.d_plus_d_minFunction
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.

source
TensorKitTensors.TJOperators.d_plus_d_plusFunction
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. The nonzero matrix elements are Use slave_fermion = true to switch to the slave-fermion basis.

source
TensorKitTensors.TJOperators.d_plus_u_plusFunction
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.

source
TensorKitTensors.TJOperators.e_hoppingFunction
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. Use slave_fermion = true to switch to the slave-fermion basis.

source
TensorKitTensors.TJOperators.e_min_e_plusFunction
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.

source
TensorKitTensors.TJOperators.e_numFunction
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.

source
TensorKitTensors.TJOperators.e_plus_e_minFunction
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.

source
TensorKitTensors.TJOperators.h_numFunction
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.

source
TensorKitTensors.TJOperators.singlet_minFunction
singlet_min(elt, particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}; slave_fermion::Bool = false)
singlet⁻(elt, 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.

source
TensorKitTensors.TJOperators.singlet_plusFunction
singlet_plus(elt, particle_symmetry::Type{<:Sector}, spin_symmetry::Type{<:Sector}; slave_fermion::Bool = false)
singlet⁺(elt, 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.

source
TensorKitTensors.TJOperators.tj_projectorMethod
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.

source
TensorKitTensors.TJOperators.tj_spaceFunction
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;
  • u and d denote 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.
source
TensorKitTensors.TJOperators.transform_slave_fermionFunction
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.

source
TensorKitTensors.TJOperators.u_min_d_minFunction
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.

source
TensorKitTensors.TJOperators.u_min_u_minFunction
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.

source
TensorKitTensors.TJOperators.u_min_u_plusFunction
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.

source
TensorKitTensors.TJOperators.u_numFunction
u_num([particle_symmetry::Type{<:Sector}], [spin_symmetry::Type{<:Sector}]; slave_fermion::Bool = false)
nꜛ([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.

source
TensorKitTensors.TJOperators.u_plus_d_plusFunction
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 annihilates 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.

source
TensorKitTensors.TJOperators.u_plus_u_minFunction
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.

source
TensorKitTensors.TJOperators.u_plus_u_plusFunction
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.

source