VMPS++
Loading...
Searching...
No Matches
SpinBase< Symmetry_, order > Class Template Reference

Detailed Description

template<typename Symmetry_, size_t order = 0>
class SpinBase< Symmetry_, order >

This class provides the local operators for fermions in a SU(2)⊗U(1) block representation.

Definition at line 25 of file SpinBase.h.

#include <SpinBase.h>

Inheritance diagram for SpinBase< Symmetry_, order >:

Public Types

typedef Symmetry_ Symmetry
 
typedef SiteOperatorQ< Symmetry, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > > OperatorType
 
typedef SiteOperatorQ< Symmetry, Eigen::Matrix< complex< Scalar >, Eigen::Dynamic, Eigen::Dynamic > > ComplexOperatorType
 
typedef Symmetry::qType qType
 

Public Member Functions

 SpinBase ()
 
 SpinBase (std::size_t L_input, std::size_t D_input, int mfactor=1)
 
Index dim () const
 
std::size_t orbitals () const
 
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
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry, Eigen::MatrixXcd > >::type Rcomp (SPINOP_LABEL Sa, int orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type bead (STRING STR, size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type bead (STRING STR, size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), ComplexOperatorType >::type exp_ipiSz (size_t orbital=0) const
 
OperatorType Id (std::size_t orbital=0) const
 
OperatorType Zero (std::size_t orbital=0) const
 
ArrayXd ZeroField () const
 
ArrayXXd ZeroHopping () const
 
template<typename Scalar_ >
SiteOperatorQ< Symmetry_, Eigen::Matrix< Scalar_,-1,-1 > > HeisenbergHamiltonian (const Array< Scalar_, Dynamic, Dynamic > &J, const ArrayXd &Offset) const
 
template<typename Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type HeisenbergHamiltonian (const ArrayXXd &Jxy, const ArrayXXd &Jz, const ArrayXd &Bz, const ArrayXd &mu, const ArrayXd &nu, const ArrayXd &Kz) const
 
template<typename Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type HeisenbergHamiltonian (const ArrayXXcd &Jxy, const ArrayXXcd &Jz) const
 
template<typename Dummy = Symmetry>
std::enable_if< Dummy::NO_SPIN_SYM(), OperatorType >::type HeisenbergHamiltonian (const ArrayXXd &Jxy, const ArrayXXd &Jz, const ArrayXd &Bz, const ArrayXd &Bx, const ArrayXd &mu, const ArrayXd &nu, const ArrayXd &Kz, const ArrayXd &Kx, const ArrayXXd &Dy) const
 
template<typename Dummy = Symmetry>
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< complex< double >,-1,-1 > > >::type HeisenbergHamiltonian (const std::array< ArrayXXd, 3 > &J, const std::array< ArrayXd, 3 > &B, const std::array< ArrayXd, 3 > &K, const std::array< ArrayXXd, 3 > &D) const
 
template<typename Scalar_ , typename Dummy = Symmetry>
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< Scalar_,-1,-1 > > >::type coupling_Bx (const Array< double, Dynamic, 1 > &Bx) const
 
template<typename Dummy = Symmetry>
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< complex< double >,-1,-1 > > >::type coupling_By (const Array< double, Dynamic, 1 > &By) const
 
Qbasis< Symmetryget_basis () const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< complex< double >, Eigen::Dynamic, Eigen::Dynamic > > >::type exp_ipiSz (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type S (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Sdag (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Q (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Qdag (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Qz (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Qp (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Qm (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Qpz (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Qmz (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Sz (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Sp (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Sm (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type Sx (std::size_t orbital) const
 
template<typename Dummy >
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type iSy (std::size_t orbital) const
 
template<typename Scalar_ >
SiteOperatorQ< Symmetry_, Eigen::Matrix< Scalar_, Eigen::Dynamic, Eigen::Dynamic > > HeisenbergHamiltonian (const Array< Scalar_, Dynamic, Dynamic > &J, const ArrayXd &Offset) const
 
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type S (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type Sdag (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type Q (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type Qdag (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type Qz (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type Qp (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type Qm (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type Qpz (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type Qmz (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type Sz (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type Sp (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type Sm (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if< Dummy::NO_SPIN_SYM(), OperatorType >::type Sx (size_t orbital=0) const
 
template<class Dummy = Symmetry>
std::enable_if< Dummy::NO_SPIN_SYM(), OperatorType >::type iSy (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 SpinSite< Symmetry_, order >
 SpinSite ()
 
 SpinSite (std::size_t D_input, int mfactor_input=1)
 
OperatorType Id_1s () const
 
OperatorType Zero_1s () const
 
OperatorType F_1s () const
 
OperatorType n_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
 
ComplexOperatorType exp_i_pi_Sz () const
 
Qbasis< Symmetrybasis_1s () const
 

Private Types

typedef Eigen::Index Index
 
typedef double Scalar
 

Private Member Functions

OperatorType make_operator (const OperatorType &Op_1s, size_t orbital=0, string label="") const
 

Private Attributes

std::size_t N_orbitals
 
std::size_t N_states
 
Qbasis< SymmetryTensorBasis
 

Additional Inherited Members

- Protected Member Functions inherited from SpinSite< Symmetry_, order >
void fill_basis ()
 
void fill_SiteOps ()
 
Symmetry_::qType getQ (SPINOP_LABEL Sa) const
 
- Protected Attributes inherited from SpinSite< Symmetry_, order >
std::size_t D
 
int mfactor = 1
 
Qbasis< Symmetrybasis_1s_
 
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_
 
ComplexOperatorType exp_i_pi_Sz_1s_
 

Member Typedef Documentation

◆ ComplexOperatorType

template<typename Symmetry_ , size_t order = 0>
typedef SiteOperatorQ<Symmetry,Eigen::Matrix<complex<Scalar>,Eigen::Dynamic,Eigen::Dynamic> > SpinBase< Symmetry_, order >::ComplexOperatorType

Definition at line 34 of file SpinBase.h.

◆ Index

template<typename Symmetry_ , size_t order = 0>
typedef Eigen::Index SpinBase< Symmetry_, order >::Index
private

Definition at line 27 of file SpinBase.h.

◆ OperatorType

template<typename Symmetry_ , size_t order = 0>
typedef SiteOperatorQ<Symmetry,Eigen::Matrix<Scalar,Eigen::Dynamic,Eigen::Dynamic> > SpinBase< Symmetry_, order >::OperatorType

Definition at line 33 of file SpinBase.h.

◆ qType

template<typename Symmetry_ , size_t order = 0>
typedef Symmetry::qType SpinBase< Symmetry_, order >::qType

Definition at line 35 of file SpinBase.h.

◆ Scalar

template<typename Symmetry_ , size_t order = 0>
typedef double SpinBase< Symmetry_, order >::Scalar
private

Definition at line 28 of file SpinBase.h.

◆ Symmetry

template<typename Symmetry_ , size_t order = 0>
typedef Symmetry_ SpinBase< Symmetry_, order >::Symmetry

Definition at line 32 of file SpinBase.h.

Constructor & Destructor Documentation

◆ SpinBase() [1/2]

template<typename Symmetry_ , size_t order = 0>
SpinBase< Symmetry_, order >::SpinBase ( )
inline

Definition at line 37 of file SpinBase.h.

◆ SpinBase() [2/2]

template<typename Symmetry_ , size_t order>
SpinBase< Symmetry_, order >::SpinBase ( std::size_t  L_input,
std::size_t  D_input,
int  mfactor = 1 
)
Parameters
L_input: the amount of orbitals
U_IS_INFINITE: if true, eliminates doubly-occupied sites from the basis

Definition at line 248 of file SpinBase.h.

Member Function Documentation

◆ bead() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::bead ( STRING  STR,
size_t  orbital = 0 
) const

◆ bead() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::bead ( STRING  STR,
size_t  orbital = 0 
) const

◆ coupling_Bx()

template<typename Symmetry_ , size_t order>
template<typename Scalar_ , typename Dummy >
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< Scalar_,-1,-1 > > >::type SpinBase< Symmetry_, order >::coupling_Bx ( const Array< double, Dynamic, 1 > &  Bx) const

Definition at line 656 of file SpinBase.h.

◆ coupling_By()

template<typename Symmetry_ , size_t order>
template<typename Dummy >
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< complex< double >,-1,-1 > > >::type SpinBase< Symmetry_, order >::coupling_By ( const Array< double, Dynamic, 1 > &  By) const

Definition at line 672 of file SpinBase.h.

◆ dim()

template<typename Symmetry_ , size_t order = 0>
Index SpinBase< Symmetry_, order >::dim ( ) const
inline

amount of states

Definition at line 46 of file SpinBase.h.

◆ exp_ipiSz() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), ComplexOperatorType >::type SpinBase< Symmetry_, order >::exp_ipiSz ( size_t  orbital = 0) const

◆ exp_ipiSz() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< complex< double >, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::exp_ipiSz ( std::size_t  orbital) const

Definition at line 380 of file SpinBase.h.

◆ get_basis()

template<typename Symmetry_ , size_t order = 0>
Qbasis< Symmetry > SpinBase< Symmetry_, order >::get_basis ( ) const
inline

Returns the basis.

Definition at line 237 of file SpinBase.h.

◆ get_D()

template<typename Symmetry_ , size_t order = 0>
size_t SpinBase< Symmetry_, order >::get_D ( ) const
inline

$D=2S+1$

Definition at line 52 of file SpinBase.h.

◆ HeisenbergHamiltonian() [1/6]

template<typename Symmetry_ , size_t order = 0>
template<typename Scalar_ >
SiteOperatorQ< Symmetry_, Eigen::Matrix< Scalar_,-1,-1 > > SpinBase< Symmetry_, order >::HeisenbergHamiltonian ( const Array< Scalar_, Dynamic, Dynamic > &  J,
const ArrayXd &  Offset 
) const

Creates the full Hubbard Hamiltonian on the supersite with orbital-dependent U.

Parameters
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$

◆ HeisenbergHamiltonian() [2/6]

template<typename Symmetry_ , size_t order = 0>
template<typename Scalar_ >
SiteOperatorQ< Symmetry_, Eigen::Matrix< Scalar_, Eigen::Dynamic, Eigen::Dynamic > > SpinBase< Symmetry_, order >::HeisenbergHamiltonian ( const Array< Scalar_, Dynamic, Dynamic > &  J,
const ArrayXd &  Offset 
) const

Definition at line 528 of file SpinBase.h.

◆ HeisenbergHamiltonian() [3/6]

template<typename Symmetry_ , size_t order>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double,-1,-1 > > >::type SpinBase< Symmetry_, order >::HeisenbergHamiltonian ( const ArrayXXcd &  Jxy,
const ArrayXXcd &  Jz 
) const

Definition at line 603 of file SpinBase.h.

◆ HeisenbergHamiltonian() [4/6]

template<typename Symmetry_ , size_t order>
template<typename Dummy >
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double,-1,-1 > > >::type SpinBase< Symmetry_, order >::HeisenbergHamiltonian ( const ArrayXXd &  Jxy,
const ArrayXXd &  Jz,
const ArrayXd &  Bz,
const ArrayXd &  Bx,
const ArrayXd &  mu,
const ArrayXd &  nu,
const ArrayXd &  Kz,
const ArrayXd &  Kx,
const ArrayXXd &  Dy 
) const

Creates the full Heisenberg (XXZ) Hamiltonian on the supersite.

Parameters
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}$

Definition at line 626 of file SpinBase.h.

◆ HeisenbergHamiltonian() [5/6]

template<typename Symmetry_ , size_t order>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double,-1,-1 > > >::type SpinBase< Symmetry_, order >::HeisenbergHamiltonian ( const ArrayXXd &  Jxy,
const ArrayXXd &  Jz,
const ArrayXd &  Bz,
const ArrayXd &  mu,
const ArrayXd &  nu,
const ArrayXd &  Kz 
) const

Definition at line 561 of file SpinBase.h.

◆ HeisenbergHamiltonian() [6/6]

template<typename Symmetry_ , size_t order>
template<typename Dummy >
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< complex< double >,-1,-1 > > >::type SpinBase< Symmetry_, order >::HeisenbergHamiltonian ( const std::array< ArrayXXd, 3 > &  J,
const std::array< ArrayXd, 3 > &  B,
const std::array< ArrayXd, 3 > &  K,
const std::array< ArrayXXd, 3 > &  D 
) const

Creates the full Heisenberg (XYZ) Hamiltonian on the supersite.

Parameters
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\} $

Definition at line 688 of file SpinBase.h.

◆ Id()

template<typename Symmetry_ , size_t order>
SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > SpinBase< Symmetry_, order >::Id ( std::size_t  orbital = 0) const

Identity

Definition at line 513 of file SpinBase.h.

◆ iSy() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if< Dummy::NO_SPIN_SYM(), OperatorType >::type SpinBase< Symmetry_, order >::iSy ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ iSy() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::iSy ( std::size_t  orbital) const

Definition at line 504 of file SpinBase.h.

◆ make_operator()

template<typename Symmetry_ , size_t order>
SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > SpinBase< Symmetry_, order >::make_operator ( const OperatorType Op_1s,
size_t  orbital = 0,
string  label = "" 
) const
private

Definition at line 280 of file SpinBase.h.

◆ n()

template<typename Symmetry_ , size_t order>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::n ( std::size_t  orbital = 0) const

Occupation number operator

Parameters
orbital: orbital index

Definition at line 330 of file SpinBase.h.

◆ orbitals()

template<typename Symmetry_ , size_t order = 0>
std::size_t SpinBase< Symmetry_, order >::orbitals ( ) const
inline

amount of orbitals

Definition at line 49 of file SpinBase.h.

◆ Q() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Q ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Q() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Q ( std::size_t  orbital) const

Definition at line 414 of file SpinBase.h.

◆ Qcomp()

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Qcomp ( SPINOP_LABEL  Sa,
int  orbital = 0 
) const
inline

Orbital spin

Parameters
orbital: orbital index

Definition at line 143 of file SpinBase.h.

◆ Qdag() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Qdag ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Qdag() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Qdag ( std::size_t  orbital) const

Definition at line 422 of file SpinBase.h.

◆ Qm() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Qm ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Qm() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Qm ( std::size_t  orbital) const

Definition at line 446 of file SpinBase.h.

◆ Qmz() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Qmz ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Qmz() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Qmz ( std::size_t  orbital) const

Definition at line 462 of file SpinBase.h.

◆ Qp() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Qp ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Qp() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Qp ( std::size_t  orbital) const

Definition at line 438 of file SpinBase.h.

◆ Qpz() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Qpz ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Qpz() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Qpz ( std::size_t  orbital) const

Definition at line 454 of file SpinBase.h.

◆ Qz() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Qz ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Qz() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Qz ( std::size_t  orbital) const

Definition at line 430 of file SpinBase.h.

◆ Rcomp()

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry, Eigen::MatrixXcd > >::type SpinBase< Symmetry_, order >::Rcomp ( SPINOP_LABEL  Sa,
int  orbital = 0 
) const

◆ S() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::S ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ S() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::S ( std::size_t  orbital) const

Definition at line 398 of file SpinBase.h.

◆ Scomp()

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Scomp ( SPINOP_LABEL  Sa,
int  orbital = 0 
) const
inline

Orbital spin

Parameters
orbital: orbital index

Definition at line 120 of file SpinBase.h.

◆ Sdag() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if< Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Sdag ( size_t  orbital = 0) const

Orbital spin†

Parameters
orbital: orbital index

◆ Sdag() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if< Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Sdag ( std::size_t  orbital) const

Definition at line 406 of file SpinBase.h.

◆ sign()

template<typename Symmetry_ , size_t order>
SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > 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.

Parameters
orb1: orbital on supersite i
orb2: orbital on supersite i+1

Definition at line 307 of file SpinBase.h.

◆ Sm() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Sm ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Sm() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Sm ( std::size_t  orbital) const

Definition at line 486 of file SpinBase.h.

◆ Sp() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Sp ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Sp() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Sp ( std::size_t  orbital) const

Definition at line 478 of file SpinBase.h.

◆ Sx() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if< Dummy::NO_SPIN_SYM(), OperatorType >::type SpinBase< Symmetry_, order >::Sx ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Sx() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if< Dummy::NO_SPIN_SYM(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Sx ( std::size_t  orbital) const

Definition at line 494 of file SpinBase.h.

◆ Sz() [1/2]

template<typename Symmetry_ , size_t order = 0>
template<class Dummy = Symmetry>
std::enable_if<!Dummy::IS_SPIN_SU2(), OperatorType >::type SpinBase< Symmetry_, order >::Sz ( size_t  orbital = 0) const

Orbital spin

Parameters
orbital: orbital index

◆ Sz() [2/2]

template<typename Symmetry_ , size_t order = 0>
template<typename Dummy >
std::enable_if<!Dummy::IS_SPIN_SU2(), SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > >::type SpinBase< Symmetry_, order >::Sz ( std::size_t  orbital) const

Definition at line 470 of file SpinBase.h.

◆ Zero()

template<typename Symmetry_ , size_t order>
SiteOperatorQ< Symmetry_, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > > SpinBase< Symmetry_, order >::Zero ( std::size_t  orbital = 0) const

Identity

Definition at line 520 of file SpinBase.h.

◆ ZeroField()

template<typename Symmetry_ , size_t order = 0>
ArrayXd SpinBase< Symmetry_, order >::ZeroField ( ) const
inline

Returns an array of size dim() with zeros.

Definition at line 175 of file SpinBase.h.

◆ ZeroHopping()

template<typename Symmetry_ , size_t order = 0>
ArrayXXd SpinBase< Symmetry_, order >::ZeroHopping ( ) const
inline

Returns an array of size dim()xdim() with zeros.

Definition at line 178 of file SpinBase.h.

Member Data Documentation

◆ N_orbitals

template<typename Symmetry_ , size_t order = 0>
std::size_t SpinBase< Symmetry_, order >::N_orbitals
private

Definition at line 241 of file SpinBase.h.

◆ N_states

template<typename Symmetry_ , size_t order = 0>
std::size_t SpinBase< Symmetry_, order >::N_states
private

Definition at line 242 of file SpinBase.h.

◆ TensorBasis

template<typename Symmetry_ , size_t order = 0>
Qbasis<Symmetry> SpinBase< Symmetry_, order >::TensorBasis
private

Definition at line 244 of file SpinBase.h.


The documentation for this class was generated from the following file: