1#ifndef STRAWBERRY_HUBBARDMODEL_U1CHARGEONLY
2#define STRAWBERRY_HUBBARDMODEL_U1CHARGEONLY
30 size_t Lcell =
P.size();
32 for (
size_t l=0; l<
N_sites; ++l)
N_phys +=
P.get<
size_t>(
"Ly",l%Lcell);
46 static const std::map<string,std::any>
defaults;
51 {
"t",1.}, {
"tPrime",0.}, {
"tRung",1.},
54 {
"V",0.}, {
"Vrung",0.},
55 {
"Vxy",0.}, {
"Vz",0.},
57 {
"J",0.}, {
"Jperp",0.}, {
"J3site",0.},
58 {
"X",0.}, {
"Xperp",0.},
59 {
"REMOVE_DOUBLE",
false}, {
"REMOVE_EMPTY",
false}, {
"REMOVE_UP",
false}, {
"REMOVE_DN",
false}, {
"mfactor",1}, {
"k",0},
60 {
"maxPower",2ul}, {
"CYLINDER",
false}, {
"Ly",1ul}
70 size_t Lcell =
P.size();
72 for (
size_t l=0; l<
N_sites; ++l)
74 N_phys +=
P.get<
size_t>(
"Ly",l%Lcell);
78 param1d U =
P.fill_array1d<
double>(
"U",
"Uorb",
F[0].orbitals(), 0);
79 if (isfinite(U.a.sum()))
83 else if (P.HAS_ANY_OF({
"J",
"J3site"}))
93 std::vector<std::vector<std::string>> labellist;
std::enable_if< Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), Mpo< Sym::U1< Sym::ChargeU1 >, double > >::type P(size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
vector< FermionBase< Sym::U1< Sym::ChargeU1 > > > F
void finalize(const bool COMPRESS=true, const std::size_t power=1, const double tolerance=::mynumeric_limits< double >::epsilon())
void setLocBasis(const std::vector< std::vector< qType > > &q)
DMRG::VERBOSITY::OPTION VERB
void set_name(const std::string &label_in)
void precalc_TwoSiteData(bool FORCE=false)
void construct_from_pushlist(const PushType< OperatorType, CouplScalar > &pushlist, const std::vector< std::vector< std::string > > &labellist, size_t Lcell)
static constexpr MODEL_FAMILY FAMILY
static constexpr int spinfac
static qarray< 1 > singlet(int N)
HubbardU1(Mpo< Symmetry > &Mpo_input, const vector< Param > ¶ms)
Sym::U1< Sym::ChargeU1 > Symmetry
static const std::map< string, std::any > defaults
static void set_operators(const std::vector< FermionBase< Symmetry_ > > &F, const ParamHandler &P, PushType< SiteOperator< Symmetry_, double >, double > &pushlist, std::vector< std::vector< std::string > > &labellist, const BC boundary=BC::OPEN)
#define MAKE_TYPEDEFS(MODEL)