Xped
|
#include <SpinBase.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 | |
SpinBase ()=default | |
SpinBase (std::size_t L_input, std::size_t D_input) | |
std::size_t | dim () const |
std::size_t | orbitals () const |
std::size_t | get_D () const |
OperatorType | sign (std::size_t orb1=0, std::size_t orb2=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | n (std::size_t orbital=0) const |
OperatorType | Id (std::size_t orbital=0) const |
OperatorType | Zero (std::size_t orbital=0) const |
Qbasis< Symmetry, 1 > | get_basis () 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 | Q (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type | Qdag (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Qz (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Qp (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Qm (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Qpz (std::size_t orbital=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Qmz (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=0) const |
template<class Dummy = Symmetry> | |
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type | Qcomp (SPINOP_LABEL Sa, int orbital=0) const |
Public Member Functions inherited from Xped::Spin< Symmetry_, spin_index > | |
Spin () | |
Spin (std::size_t D_input) | |
OperatorType | Id_1s () const |
OperatorType | Zero_1s () const |
OperatorType | F_1s () const |
OperatorType | Sz_1s () const |
OperatorType | Sp_1s () const |
OperatorType | Sm_1s () const |
OperatorType | Qz_1s () const |
OperatorType | Qp_1s () const |
OperatorType | Qm_1s () const |
OperatorType | Qpz_1s () const |
OperatorType | Qmz_1s () const |
OperatorType | exp_i_pi_Sx () const |
OperatorType | exp_i_pi_Sy () const |
OperatorType | exp_i_pi_Sz () const |
Qbasis< Symmetry, 1 > | basis_1s () const |
Additional Inherited Members | |
Protected Member Functions inherited from Xped::Spin< Symmetry_, spin_index > | |
void | fill_basis () |
void | fill_SiteOps () |
qType | getQ (SPINOP_LABEL Sa) const |
Protected Attributes inherited from Xped::Spin< Symmetry_, spin_index > | |
std::size_t | D |
Qbasis< Symmetry, 1 > | basis_1s_ |
std::unordered_map< std::string, std::pair< qType, std::size_t > > | labels |
OperatorType | Id_1s_ |
OperatorType | Zero_1s_ |
OperatorType | F_1s_ |
OperatorType | n_1s_ |
OperatorType | Sz_1s_ |
OperatorType | Sp_1s_ |
OperatorType | Sm_1s_ |
OperatorType | Qz_1s_ |
OperatorType | Qp_1s_ |
OperatorType | Qm_1s_ |
OperatorType | Qpz_1s_ |
OperatorType | Qmz_1s_ |
OperatorType | exp_i_pi_Sx_1s_ |
OperatorType | exp_i_pi_Sy_1s_ |
OperatorType | exp_i_pi_Sz_1s_ |
This class provides the local operators for general spins with quantum number S.
using Xped::SpinBase< Symmetry_, order >::OperatorType = SiteOperator<Scalar, Symmetry> |
using Xped::SpinBase< Symmetry_, order >::OperatorTypeC = SiteOperator<std::complex<Scalar>, Symmetry> |
using Xped::SpinBase< Symmetry_, order >::qType = typename Symmetry::qType |
using Xped::SpinBase< Symmetry_, order >::Symmetry = Symmetry_ |
|
default |
Xped::SpinBase< Symmetry_, order >::SpinBase | ( | std::size_t | L_input, |
std::size_t | D_input | ||
) |
L_input | : the amount of orbitals |
D_input | : \(D = 2S+1\) |
|
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\) Creates the full Heisenberg (XXZ) Hamiltonian on the supersite. |
Jxy | : \(J^{xy}\) |
Jz | : \(J^{z}\) |
Bz | : \(B^{z}_i\) |
Bx | : \(B^{x}_i\) |
mu | : \(\mu\) (for spinless fermions, couples to n=1/2-Sz) |
Kz | : \(K^{z}_i\) |
Kx | : \(K^{x}_i\) |
Dy | : \(D^{y}\) Creates the full Heisenberg (XYZ) Hamiltonian on the supersite. |
J | : \(J^{\alpha}\), \(\alpha \in \{x,y,z\} \) |
B | : \(B^{\alpha}_i\), \(\alpha \in \{x,y,z\} \) |
K | : \(K^{\alpha}_i\), \(\alpha \in \{x,y,z\} \) |
D | : \(D^{\alpha}\), \(\alpha \in \{x,y,z\} \) Returns the basis. |
|
inline |
\(D=2S+1\)
SiteOperator< double, Symmetry_ > Xped::SpinBase< Symmetry_, order >::Id | ( | std::size_t | orbital = 0 | ) | const |
Identity
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::iSy | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::n | ( | std::size_t | orbital = 0 | ) | const |
Occupation number operator
orbital | : orbital index |
|
inline |
amount of orbitals
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Q | ( | std::size_t | orbital = 0 | ) | const |
|
inline |
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Qdag | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Qm | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Qmz | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Qp | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Qpz | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Qz | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::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::SpinBase< Symmetry_, order >::Sdag | ( | std::size_t | orbital = 0 | ) | const |
Orbital spinâ€
orbital | : orbital index |
SiteOperator< double, Symmetry_ > Xped::SpinBase< Symmetry_, order >::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 |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Sm | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Sp | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Sx | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperator< std::complex< double >, Symmetry > >::type Xped::SpinBase< Symmetry, order >::Sy | ( | std::size_t | orbital = 0 | ) | const |
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperator< double, Symmetry_ > >::type Xped::SpinBase< Symmetry_, order >::Sz | ( | std::size_t | orbital = 0 | ) | const |
SiteOperator< double, Symmetry_ > Xped::SpinBase< Symmetry_, order >::Zero | ( | std::size_t | orbital = 0 | ) | const |
Identity