Xped
|
#include <FermionBase.hpp>
Public Types | |
using | Symmetry = Symmetry_ |
using | OperatorType = SiteOperator< Scalar, Symmetry > |
using | OperatorTypeC = SiteOperator< std::complex< Scalar >, Symmetry > |
using | qType = typename Symmetry::qType |
Public Member Functions | |
FermionBase ()=default | |
FermionBase (std::size_t L_input, bool REMOVE_DOUBLE=false, bool REMVOVE_EMPTY=false, bool REMOVE_SINGLE=false) | |
std::size_t | dim () const |
std::size_t | orbitals () const |
OperatorType | Id (std::size_t orbital=0) const |
Qbasis< Symmetry, 1 > | get_basis () const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), OperatorType >::type | c (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), OperatorType >::type | c (SPIN_INDEX sigma, std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_CHARGE_SU2() and!Dummy::IS_SPIN_SU2(), OperatorType >::type | c (SPIN_INDEX sigma, SUB_LATTICE G, std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_CHARGE_SU2() andDummy::IS_SPIN_SU2(), OperatorType >::type | c (SUB_LATTICE G, std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), OperatorType >::type | cdag (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), OperatorType >::type | cdag (SPIN_INDEX sigma, std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_CHARGE_SU2() and!Dummy::IS_SPIN_SU2(), OperatorType >::type | cdag (SPIN_INDEX sigma, SUB_LATTICE G, std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_CHARGE_SU2() andDummy::IS_SPIN_SU2(), OperatorType >::type | cdag (SUB_LATTICE G, std::size_t orbital=0) const |
OperatorType | sign (std::size_t orb1=0, std::size_t orb2=0) const |
OperatorType | sign_local (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< true, OperatorType >::type | n (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | n (SPIN_INDEX sigma, std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_CHARGE_SU2(), OperatorType >::type | d (std::size_t orbital=0) const |
OperatorType | ns (std::size_t orbital=0) const |
OperatorType | nh (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type | S (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type | Sdag (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Sz (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Sp (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Sm (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::NO_SPIN_SYM(), OperatorType >::type | Sx (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::NO_SPIN_SYM(), OperatorTypeC >::type | Sy (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::NO_SPIN_SYM(), OperatorType >::type | iSy (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Scomp (SPINOP_LABEL Sa, int orbital) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_CHARGE_SU2(), OperatorType >::type | T (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_CHARGE_SU2(), OperatorType >::type | Tdag (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_CHARGE_SU2(), OperatorType >::type | Tz (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::NO_CHARGE_SYM(), OperatorType >::type | Tx (std::size_t orbital=0, SUB_LATTICE G=A) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::NO_CHARGE_SYM(), OperatorType >::type | iTy (std::size_t orbital=0, SUB_LATTICE G=A) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_CHARGE_SU2(), OperatorType >::type | Tp (std::size_t orbital=0, SUB_LATTICE G=A) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_CHARGE_SU2(), OperatorType >::type | Tm (std::size_t orbital=0, SUB_LATTICE G=A) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_CHARGE_SU2(), OperatorType >::type | cc (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_CHARGE_SU2(), OperatorType >::type | cdagcdag (std::size_t orbital=0) const |
![]() | |
Fermion () | |
Fermion (bool REMOVE_DOUBLE, bool REMOVE_EMPTY, bool REMOVE_SINGLE, bool CONSIDER_SPIN=true, bool CONSIDER_CHARGE=true) | |
OperatorType | Id_1s () const |
OperatorType | F_1s () const |
OperatorType | c_1s (SPIN_INDEX sigma) const |
OperatorType | cdag_1s (SPIN_INDEX sigma) const |
OperatorType | n_1s () const |
OperatorType | n_1s (SPIN_INDEX sigma) const |
OperatorType | ns_1s () const |
OperatorType | nh_1s () const |
OperatorType | d_1s () const |
OperatorType | Sz_1s () const |
OperatorType | Sp_1s () const |
OperatorType | Sm_1s () const |
OperatorType | Tz_1s () const |
OperatorType | cc_1s () const |
OperatorType | cdagcdag_1s () const |
Qbasis< Symmetry, 1 > | basis_1s () const |
Additional Inherited Members | |
![]() | |
void | fill_basis (bool REMOVE_DOUBLE, bool REMOVE_EMPTY, bool REMOVE_SINGLE) |
void | fill_SiteOps (bool REMOVE_DOUBLE, bool REMOVE_EMPTY, bool REMOVE_SINGLE) |
qType | getQ (SPIN_INDEX sigma, int Delta) const |
qType | getQ (SPINOP_LABEL Sa) const |
![]() | |
Qbasis< Symmetry, 1 > | basis_1s_ |
std::unordered_map< std::string, std::pair< qType, std::size_t > > | labels |
std::size_t | sp_index = 0 |
std::size_t | ch_index = 0 |
bool | HAS_SPIN |
bool | HAS_CHARGE |
OperatorType | Id_1s_ |
OperatorType | F_1s_ |
OperatorType | cup_1s_ |
OperatorType | cdn_1s_ |
OperatorType | cdagup_1s_ |
OperatorType | cdagdn_1s_ |
OperatorType | n_1s_ |
OperatorType | nup_1s_ |
OperatorType | ndn_1s_ |
OperatorType | d_1s_ |
OperatorType | Sz_1s_ |
OperatorType | Sp_1s_ |
OperatorType | Sm_1s_ |
OperatorType | Tz_1s_ |
OperatorType | cc_1s_ |
OperatorType | cdagcdag_1s_ |
This class provides the local operators for fermions.
using Xped::FermionBase< Symmetry_ >::OperatorType = SiteOperator<Scalar, Symmetry> |
using Xped::FermionBase< Symmetry_ >::OperatorTypeC = SiteOperator<std::complex<Scalar>, Symmetry> |
using Xped::FermionBase< Symmetry_ >::qType = typename Symmetry::qType |
using Xped::FermionBase< Symmetry_ >::Symmetry = Symmetry_ |
|
default |
Xped::FermionBase< Symmetry >::FermionBase | ( | std::size_t | L_input, |
bool | REMOVE_DOUBLE = false , |
||
bool | REMVOVE_EMPTY = false , |
||
bool | REMOVE_SINGLE = false |
||
) |
L_input | : the amount of orbitals |
std::enable_if<!Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::c | ( | SPIN_INDEX | sigma, |
std::size_t | orbital = 0 |
||
) | const |
std::enable_if< Dummy::IS_CHARGE_SU2() and!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::c | ( | SPIN_INDEX | sigma, |
SUB_LATTICE | G, | ||
std::size_t | orbital = 0 |
||
) | const |
std::enable_if< Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::c | ( | std::size_t | orbital = 0 | ) | const |
Annihilation operator
orbital | : orbital index |
std::enable_if< Dummy::IS_CHARGE_SU2() andDummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::c | ( | SUB_LATTICE | G, |
std::size_t | orbital = 0 |
||
) | const |
std::enable_if<!Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::cc | ( | std::size_t | orbital = 0 | ) | const |
Orbital pairing η
orbital | : orbital index |
std::enable_if<!Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::cdag | ( | SPIN_INDEX | sigma, |
std::size_t | orbital = 0 |
||
) | const |
std::enable_if< Dummy::IS_CHARGE_SU2() and!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::cdag | ( | SPIN_INDEX | sigma, |
SUB_LATTICE | G, | ||
std::size_t | orbital = 0 |
||
) | const |
std::enable_if< Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::cdag | ( | std::size_t | orbital = 0 | ) | const |
Creation operator.
orbital | : orbital index |
std::enable_if< Dummy::IS_CHARGE_SU2() andDummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::cdag | ( | SUB_LATTICE | G, |
std::size_t | orbital = 0 |
||
) | const |
std::enable_if<!Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::cdagcdag | ( | std::size_t | orbital = 0 | ) | const |
Orbital paring ηâ€
orbital | : orbital index |
std::enable_if<!Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::d | ( | std::size_t | orbital = 0 | ) | const |
Double occupation
orbital | : orbital index |
|
inline |
amount of states
|
inline |
Creates the full Hubbard Hamiltonian on the supersite with orbital-dependent U.
U | : \(U\) for each orbital |
Uph | : particle-hole symmetric \(U\) for each orbital (times \((n_{\uparrow}-1/2)(n_{\downarrow}-1/2)+1/4\)) |
Eorb | : \(\varepsilon\) onsite energy for each orbital |
t | : \(t\) |
V | : \(V\) |
Vz | : \(V_z\) |
Vxy | : \(V_{xy}\) |
J | : \(J\) Returns the basis. |
SiteOperator< double, Symmetry > Xped::FermionBase< Symmetry >::Id | ( | std::size_t | orbital = 0 | ) | const |
Identity
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::iSy | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if< Dummy::NO_CHARGE_SYM(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::iTy | ( | std::size_t | orbital = 0 , |
SUB_LATTICE | G = A |
||
) | const |
Isospin y-component
orbital | : orbital index |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::n | ( | SPIN_INDEX | sigma, |
std::size_t | orbital = 0 |
||
) | const |
std::enable_if< true, SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::n | ( | std::size_t | orbital = 0 | ) | const |
Occupation number operator
orbital | : orbital index |
SiteOperator< double, Symmetry > Xped::FermionBase< Symmetry >::nh | ( | std::size_t | orbital = 0 | ) | const |
Holon density \(n_h=2d-n-1=1-n_s\)
orbital | : orbital index |
SiteOperator< double, Symmetry > Xped::FermionBase< Symmetry >::ns | ( | std::size_t | orbital = 0 | ) | const |
Spinon density \(n_s=n-2d\)
orbital | : orbital index |
|
inline |
amount of orbitals
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::S | ( | std::size_t | orbital = 0 | ) | const |
Orbital spin
orbital | : orbital index |
|
inline |
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::Sdag | ( | std::size_t | orbital = 0 | ) | const |
Orbital spinâ€
orbital | : orbital index |
SiteOperator< double, Symmetry > Xped::FermionBase< Symmetry >::sign | ( | std::size_t | orb1 = 0 , |
std::size_t | orb2 = 0 |
||
) | const |
Fermionic sign for the hopping between two orbitals of nearest-neighbour supersites of a ladder.
orb1 | : orbital on supersite i |
orb2 | : orbital on supersite i+1 |
SiteOperator< double, Symmetry > Xped::FermionBase< Symmetry >::sign_local | ( | std::size_t | orbital = 0 | ) | const |
Fermionic sign for one orbital of a supersite.
orbital | : orbital index |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::Sm | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::Sp | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::Sx | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperator< std::complex< double >, Symmetry > >::type Xped::FermionBase< Symmetry >::Sy | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::Sz | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if< Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::T | ( | std::size_t | orbital = 0 | ) | const |
Orbital Isospin
orbital | : orbital index |
std::enable_if< Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::Tdag | ( | std::size_t | orbital = 0 | ) | const |
Orbital Isospinâ€
orbital | : orbital index |
|
inline |
|
inline |
std::enable_if< Dummy::NO_CHARGE_SYM(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::Tx | ( | std::size_t | orbital = 0 , |
SUB_LATTICE | G = A |
||
) | const |
Isospin x-component
orbital | : orbital index |
std::enable_if<!Dummy::IS_CHARGE_SU2(), SiteOperator< double, Symmetry > >::type Xped::FermionBase< Symmetry >::Tz | ( | std::size_t | orbital = 0 | ) | const |
Isospin z-component
orbital | : orbital index |