1#ifndef FERMIONSITESU2xU1xZN_H_
2#define FERMIONSITESU2xU1xZN_H_
22class FermionSite<
Sym::S1xS2<Sym::S1xS2<Sym::SU2<Sym::SpinSU2>,Sym::U1<Sym::ChargeU1> >,Sym::ZN<Sym::Momentum,YMOMENTUM>>>
31 FermionSite (
bool REMOVE_DOUBLE,
bool REMOVE_EMPTY,
bool REMOVE_UP,
bool REMOVE_DN,
int mfactor_input=1,
int k_input=0);
70FermionSite (
bool REMOVE_DOUBLE,
bool REMOVE_EMPTY,
bool REMOVE_UP,
bool REMOVE_DN,
int mfactor_input,
int k_input)
73 bool REMOVE_SINGLE = (REMOVE_UP or REMOVE_DN)?
true:
false;
76 Eigen::Index inner_dim;
77 std::vector<std::string> ident;
78 int ZN = Symmetry::mod()[2];
84 ident.push_back(
"empty");
93 ident.push_back(
"single");
102 ident.push_back(
"double");
116 if (!REMOVE_EMPTY)
Id_1s_(
"empty",
"empty") = 1.;
117 if (!REMOVE_DOUBLE)
Id_1s_(
"double",
"double") = 1.;
118 if (!REMOVE_SINGLE)
Id_1s_(
"single",
"single") = 1.;
120 if (!REMOVE_EMPTY)
F_1s_(
"empty",
"empty") = 1.;
121 if (!REMOVE_DOUBLE)
F_1s_(
"double",
"double") = 1.;
122 if (!REMOVE_SINGLE)
F_1s_(
"single",
"single") = -1.;
124 if (!REMOVE_EMPTY and !REMOVE_SINGLE) c_1s_(
"empty",
"single") = std::sqrt(2.);
125 if (!REMOVE_DOUBLE and !REMOVE_SINGLE) c_1s_(
"single",
"double") = 1.;
130 if (!REMOVE_DOUBLE)
d_1s_(
"double",
"double") = 1.;
131 if (!REMOVE_SINGLE) S_1s_(
"single",
"single") = std::sqrt(0.75);
OperatorType nh_1s() const
OperatorType ns_1s() const
OperatorType cc_1s() const
OperatorType n_1s() const
OperatorType d_1s() const
OperatorType Tz_1s() const
SiteOperatorQ< Symmetry, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > > OperatorType
Sym::S1xS2< Sym::S1xS2< Sym::SU2< Sym::SpinSU2 >, Sym::U1< Sym::ChargeU1 > >, Sym::ZN< Sym::Momentum, YMOMENTUM > > Symmetry
OperatorType S_1s() const
OperatorType F_1s() const
OperatorType Id_1s() const
OperatorType c_1s() const
Qbasis< Symmetry > basis_1s_
OperatorType cdag_1s() const
Qbasis< Symmetry > basis_1s() const
OperatorType cdagcdag_1s() const
OperatorType n_1s() const
Qbasis< Symmetry > basis_1s_
SiteOperatorQ< Symmetry, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > > OperatorType
OperatorType d_1s() const
OperatorType Id_1s() const
static SiteOperatorQ< Symmetry, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > > prod(const SiteOperatorQ< Symmetry, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > > &O1, const SiteOperatorQ< Symmetry, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > > &O2, const qType &target)
SiteOperatorQ< Symmetry, MatrixType_ > adjoint() const