1#ifndef VANILLA_HEISENBERGXXZ
2#define VANILLA_HEISENBERGXXZ
4#include "models/HeisenbergU1XXZ.h"
30 static const std::map<string,std::any>
defaults;
35 {
"Jxy",1.}, {
"Jxyprime",0.}, {
"Jxyrung",1.},
36 {
"Jz",0.}, {
"Jzprime",0.}, {
"Jzrung",0.},
40 {
"Dy",0.}, {
"Dyprime",0.}, {
"Dyrung",0.},
41 {
"D",2ul}, {
"maxPower",2ul}, {
"CYLINDER",
false}, {
"Ly",1ul},
44 {
"J",0.}, {
"Jprime",0.}
54 size_t Lcell = P.size();
56 for (
size_t l=0; l<N_sites; ++l)
58 N_phys += P.get<
size_t>(
"Ly",l%Lcell);
59 setLocBasis(
B[l].get_basis().qloc(),l);
62 if (P.HAS_ANY_OF({
"Jxy",
"Jxypara",
"Jxyperp",
"Jxyfull"}))
64 this->set_name(
"XXZ");
68 this->set_name(
"Ising");
72 std::vector<std::vector<std::string>> labellist;
78 this->construct_from_pushlist(pushlist, labellist, Lcell);
81 this->precalc_TwoSiteData();
DMRG::VERBOSITY::OPTION VERB
static void add_operators(const std::vector< SpinBase< Symmetry_ > > &B, const ParamHandler &P, PushType< SiteOperator< Symmetry_, double >, double > &pushlist, std::vector< std::vector< std::string > > &labellist, const BC boundary=BC::OPEN)
static void set_operators(const std::vector< SpinBase< Symmetry_ > > &B, const ParamHandler &P, PushType< SiteOperator< Symmetry_, double >, double > &pushlist, std::vector< std::vector< std::string > > &labellist, const BC boundary=BC::OPEN)
static constexpr MODEL_FAMILY FAMILY
static const std::map< string, std::any > defaults
static qarray< 0 > singlet(int N=0)
static const std::map< string, std::any > sweep_defaults
static void add_operators(const std::vector< SpinBase< Symmetry > > &B, 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)
void finalize(bool PRINT_STATS=false)