VMPS++
Loading...
Searching...
No Matches
VMPS::KondoU1xSU2 Class Reference

Detailed Description

Definition at line 17 of file KondoU1xSU2.h.

#include <KondoU1xSU2.h>

Inheritance diagram for VMPS::KondoU1xSU2:

Public Types

typedef Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > Symmetry
 
typedef SiteOperatorQ< Symmetry, MatrixTypeOperatorType
 
typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixType
 
- Public Types inherited from Mpo< Symmetry, Scalar >
typedef SparseMatrixXd SparseMatrixType
 
typedef SiteOperator< Symmetry, Scalar > OperatorType
 
typedef Symmetry::qType qType
 
typedef Matrix< Scalar, Dynamic, Dynamic > MatrixType
 
typedef Scalar Scalar_
 
typedef Mps< Symmetry, double > StateXd
 
typedef Umps< Symmetry, double > StateUd
 
typedef Mps< Symmetry, std::complex< double > > StateXcd
 
typedef Umps< Symmetry, std::complex< double > > StateUcd
 
typedef MpsCompressor< Symmetry, double, double > CompressorXd
 
typedef MpsCompressor< Symmetry, std::complex< double >, double > CompressorXcd
 
typedef Mpo< Symmetry > Operator
 
- Public Types inherited from MpoTerms< Symmetry, Scalar >
typedef SiteOperator< Symmetry, Scalar > OperatorType
 
typedef Symmetry::qType qType
 
typedef Eigen::SparseMatrix< Scalar, Eigen::ColMajor, EIGEN_DEFAULT_SPARSE_INDEX_TYPEMatrixType
 

Public Member Functions

 KondoU1xSU2 ()
 
 KondoU1xSU2 (const size_t &L, const vector< Param > &params, const BC &boundary=BC::OPEN, const DMRG::VERBOSITY::OPTION &VERB=DMRG::VERBOSITY::OPTION::ON_EXIT)
 
- Public Member Functions inherited from Mpo< Symmetry, Scalar >
 Mpo ()
 
 Mpo (MpoTerms< Symmetry, Scalar > &Terms)
 
 Mpo (size_t L_input)
 
 Mpo (std::size_t L_input, qType Qtot_input, std::string label_input="Mpo", bool HERMITIAN_input=false, bool UNITARY_input=false, BC BC_input=BC::OPEN, DMRG::VERBOSITY::OPTION VERB_input=DMRG::VERBOSITY::OPTION::SILENT)
 
template<typename CouplScalar >
void construct_from_pushlist (const PushType< OperatorType, CouplScalar > &pushlist, const std::vector< std::vector< std::string > > &labellist, size_t Lcell)
 
template<typename CouplScalar >
void calc_reversedData_from_pushlist (const PushType< OperatorType, CouplScalar > &pushlist, double tolerance=::mynumeric_limits< double >::epsilon())
 
void push_qpath (const std::size_t loc, const std::vector< OperatorType > &opList, const std::vector< qType > &qList, const Scalar lambda=1.0)
 
void setLocal (std::size_t loc, const OperatorType &op)
 
void setLocal (std::size_t loc, const OperatorType &op, const OperatorType &signOp)
 
void setLocal (std::size_t loc, const OperatorType &op, const std::vector< OperatorType > &signOp)
 
void setLocal (const std::vector< std::size_t > &locs, const std::vector< OperatorType > &ops)
 
void setLocal (const std::vector< std::size_t > &locs, const std::vector< OperatorType > &ops, const OperatorType &signOp)
 
void setLocal (const std::vector< std::size_t > &locs, const std::vector< OperatorType > &ops, const std::vector< OperatorType > &signOps)
 
void setLocalStag (std::size_t loc, const OperatorType &op, const std::vector< OperatorType > &stagSignOps)
 
void setLocalSum (const OperatorType &op, Scalar(*f)(int)=localSumTrivial)
 
void setLocalSum (const std::vector< OperatorType > &op, std::vector< Scalar > coeffs)
 
void setProductSum (const OperatorType &op1, const OperatorType &op2)
 
void precalc_TwoSiteData (bool FORCE=false)
 
std::string info (bool REDUCED=false) const
 
int get_dAux_max (int power=1) const
 
std::size_t length () const
 
std::size_t volume () const
 
int locality () const
 
void set_locality (std::size_t LocalSite_input)
 
OperatorType localOperator () const
 
void set_localOperator (OperatorType LocalOp_input)
 
Mpo< Symmetry, Scalar > Identity () const
 
Mpo< Symmetry, Scalar > Zero () const
 
bool IS_UNITARY () const
 
bool IS_HERMITIAN () const
 
bool IS_HAMILTONIAN () const
 
bool HAS_TWO_SITE_DATA () const
 
bool HAS_W () const
 
boost::multi_array< Scalar, 4 > H2site (std::size_t loc, bool HALF_THE_LOCAL_TERM=false) const
 
void generate_label (std::size_t Lcell)
 
void push_width (const std::size_t n, const std::size_t loc, const Scalar lambda, const OperatorType &outOp, const std::vector< OperatorType > &trans, const OperatorType &inOp)
 
void push_local (const std::size_t loc, const Scalar lambda, const OperatorType &op)
 
void push_tight (const std::size_t loc, const Scalar lambda, const OperatorType &op1, const OperatorType &op2)
 
void push_nextn (const std::size_t loc, const Scalar lambda, const OperatorType &op1, const OperatorType &trans, const OperatorType &op2)
 
- Public Member Functions inherited from MpoTerms< Symmetry, Scalar >
void reconstruct (const std::vector< std::map< std::array< qType, 2 >, std::vector< std::vector< std::map< qType, OperatorType > > > > > &O_in, const std::vector< Qbasis< Symmetry > > &qAux_in, const std::vector< std::vector< qType > > &qPhys_in, const bool FINALIZED_IN, const BC boundary_condition_in, const qType &qTot_in=Symmetry::qvacuum())
 
 MpoTerms (const std::size_t L=0, const BC boundary_condition_in=BC::OPEN, const qType &qTot_in=Symmetry::qvacuum(), const DMRG::VERBOSITY::OPTION &VERB_in=DMRG::VERBOSITY::OPTION::SILENT)
 
void initialize (const std::size_t L, const BC boundary_condition_in, const qType &qTot_in)
 
virtual void push (const std::size_t loc, const std::vector< OperatorType > &opList, const std::vector< qType > &qList, const Scalar lambda=1.0)
 
void push (const std::size_t loc, const std::vector< OperatorType > &opList, const Scalar lambda=1.0)
 
void show () const
 
void save_label (const std::size_t loc, const std::string &info_label)
 
void set_name (const std::string &label_in)
 
const std::string get_name () const
 
std::vector< std::string > get_info () const
 
void scale (const Scalar factor, const Scalar offset=0., const std::size_t power=0ul, const double tolerance=1.e-14)
 
template<typename OtherScalar >
MpoTerms< Symmetry, OtherScalar > cast ()
 
void set_qPhys (const std::size_t loc, const std::vector< qType > &qPhys_in)
 
void finalize (const bool COMPRESS=true, const std::size_t power=1, const double tolerance=::mynumeric_limits< double >::epsilon())
 
void calc (const std::size_t power)
 
bool is_finalized () const
 
const std::vector< std::map< std::array< qType, 2 >, std::vector< std::vector< std::map< qType, OperatorType > > > > > & get_O () const
 
const std::vector< std::vector< std::vector< std::vector< Biped< Symmetry, MatrixType > > > > > & get_W () const
 
const std::vector< Qbasis< Symmetry > > & get_qAux () const
 
const std::vector< std::vector< qType > > & get_qOp () const
 
const std::vector< std::vector< qType > > & get_qPhys () const
 
const std::vector< std::vector< std::vector< std::vector< Biped< Symmetry, MatrixType > > > > > & get_W_power (std::size_t power) const
 
const std::vector< Qbasis< Symmetry > > & get_qAux_power (std::size_t power) const
 
const std::vector< std::vector< qType > > & get_qOp_power (std::size_t power) const
 
std::size_t get_hilbert_dimension (const std::size_t loc) const
 
BC get_boundary_condition () const
 
const qTypeget_qVac () const
 
const qTypeget_qTot () const
 
const std::size_t get_pos_qTot () const
 
bool check_qPhys () const
 
bool check_power (std::size_t power) const
 
std::size_t maxPower () const
 
std::size_t size () const
 
void transform_base (const qType &qShift, const bool PRINT=false, const int factor=-1, const std::size_t powre=0ul)
 
std::vector< std::vector< TwoSiteData< Symmetry, Scalar > > > calc_TwoSiteData () const
 
std::vector< std::pair< qType, std::size_t > > base_order_IBC (const std::size_t power=1) const
 
double memory (MEMUNIT memunit=kB) const
 
double sparsity (const std::size_t power=1, const bool PER_MATRIX=false) const
 
void set_Identity (const typename Symmetry::qType &Q=Symmetry::qvacuum())
 
void set_Zero ()
 
void set_verbosity (const DMRG::VERBOSITY::OPTION VERB_in)
 
DMRG::VERBOSITY::OPTION get_verbosity () const
 
void save (std::string filename)
 
void load (std::string filename)
 
const std::vector< std::vector< std::vector< Biped< Symmetry, MatrixType > > > > & W_at (const std::size_t loc) const
 
const std::vector< std::vector< std::vector< std::vector< Biped< Symmetry, MatrixType > > > > > & W_full () const
 
const std::vector< std::vector< qType > > & locBasis () const
 
const std::vector< qType > & locBasis (const std::size_t loc) const
 
const std::vector< Qbasis< Symmetry > > & auxBasis () const
 
const Qbasis< Symmetry > & auxBasis (const std::size_t loc) const
 
const Qbasis< Symmetry > & inBasis (const std::size_t loc) const
 
const Qbasis< Symmetry > & outBasis (const std::size_t loc) const
 
const std::vector< std::vector< qType > > & opBasis () const
 
const std::vector< qType > & opBasis (const std::size_t loc) const
 
const qTypeQtarget () const
 
void setLocBasis (const std::vector< std::vector< qType > > &q)
 
void setLocBasis (const std::vector< qType > &q, std::size_t loc)
 
const std::vector< std::vector< std::vector< Biped< Symmetry, MatrixType > > > > & Wsq_at (const std::size_t loc) const
 
const std::vector< qType > & opBasisSq (const std::size_t loc) const
 
const std::vector< std::vector< qType > > & opBasisSq () const
 
const bool check_SQUARE () const
 
double sparsity (bool USE_SQUARE, bool PER_MATRIX) const
 
void setQtarget (const qType &q)
 
- Public Member Functions inherited from KondoObservables< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >
std::enable_if< Dummy::ABELIAN, Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type cc (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if< Dummy::ABELIAN, Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type cdagcdag (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type cc3 (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type cdagcdag3 (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Stringz (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type StringzDimer (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > >, complex< double > > >::type Simp_ky (vector< complex< double > > phases) const
 
std::enable_if< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > >, complex< double > > >::type Simpdag_ky (vector< complex< double > > phases, double factor=sqrt(3.)) const
 
std::enable_if< Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > >, complex< double > > >::type T_ky (vector< complex< double > > phases) const
 
std::enable_if< Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > >, complex< double > > >::type Tdag_ky (vector< complex< double > > phases, double factor=sqrt(3.)) const
 
std::enable_if< Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > >, complex< double > > >::type c_ky (vector< complex< double > > phases, double factor=1.) const
 
std::enable_if< Dummy::IS_SPIN_SU2() and!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > >, complex< double > > >::type cdag_ky (vector< complex< double > > phases, double factor=sqrt(2.)) const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > JordanWignerString () const
 
 KondoObservables ()
 
 KondoObservables (const size_t &L)
 
 KondoObservables (const size_t &L, const vector< Param > &params, const map< string, any > &defaults)
 
std::enable_if< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type c (size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type c (size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type cdag (size_t locx, size_t locy=0, double factor=std::sqrt(2.)) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type cdag (size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type cc (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type cdagcdag (size_t locx, size_t locy=0) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type cdagc (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type cdagc (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type d (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type dtot () const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > ns (size_t locx, size_t locy=0) const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > nh (size_t locx, size_t locy=0) const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > nssq (size_t locx, size_t locy=0) const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > nhsq (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type s (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type n (size_t locx, size_t locy=0) const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > n (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type nn (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > nn (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type hh (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if< Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type T (size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if< Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Tdag (size_t locx, size_t locy=0, double factor=std::sqrt(3.)) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Tp (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Tm (size_t locx, size_t locy=0) const
 
std::enable_if< Dummy::NO_CHARGE_SYM(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Tx (size_t locx, size_t locy=0) const
 
std::enable_if< Dummy::NO_CHARGE_SYM(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type iTy (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Tz (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type TpTm (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0, double fac=1.) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type TmTp (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0, double fac=1.) const
 
std::enable_if<!Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type TzTz (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::conditional< Dummy::IS_CHARGE_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type TdagT (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Simp (size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Simp (SPINOP_LABEL Sa, size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Ssub (size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Ssub (SPINOP_LABEL Sa, size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Simpdag (size_t locx, size_t locy=0, double factor=std::sqrt(3.)) const
 
std::enable_if< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type S (size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Scomp (SPINOP_LABEL Sa, size_t locx, size_t locy=0, double factor=1.) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type Sz (size_t locx, size_t locy=0) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type SimpSimp (SPINOP_LABEL Sa1, SPINOP_LABEL Sa2, size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0, double fac=1.) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type SimpSimp (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type SsubSsub (SPINOP_LABEL Sa1, SPINOP_LABEL Sa2, size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0, double fac=1.) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type SsubSsub (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::enable_if<!Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > >::type SimpSsub (SPINOP_LABEL Sa1, SPINOP_LABEL Sa2, size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0, double fac=1.) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type SimpSsub (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type SdagS (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type SimpdagSimp (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type SsubdagSsub (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
std::conditional< Dummy::IS_SPIN_SU2(), Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >, vector< Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > >::type SimpdagSsub (size_t locx1, size_t locx2, size_t locy1=0, size_t locy2=0) const
 
- Public Member Functions inherited from ParamReturner
 ParamReturner ()
 
 ParamReturner (const std::map< string, std::any > &defaults_input)
 
DMRG::CONTROL::DYN get_DmrgDynParam (const vector< Param > &params={}) const
 
DMRG::CONTROL::GLOB get_DmrgGlobParam (const vector< Param > &params={}) const
 
VUMPS::CONTROL::DYN get_VumpsDynParam (const vector< Param > &params={}) const
 
VUMPS::CONTROL::GLOB get_VumpsGlobParam (const vector< Param > &params={}) const
 

Static Public Member Functions

static qarray< 2 > singlet (int N=0, int L=0)
 
template<typename Symmetry_ >
static void set_operators (const std::vector< SpinBase< Symmetry_ > > &B, const std::vector< FermionBase< Symmetry_ > > &F, const vector< SUB_LATTICE > &G, const ParamHandler &P, PushType< SiteOperator< Symmetry_, double >, double > &pushlist, std::vector< std::vector< std::string > > &labellist, const BC boundary=BC::OPEN)
 
- Static Public Member Functions inherited from Mpo< Symmetry, Scalar >
template<typename T , typename ... Operator>
static std::vector< T > get_N_site_interaction (T const &Op0, Operator const &... Ops)
 
static Mpo< Symmetry, Scalar > Identity (const std::vector< std::vector< qType > > &qPhys, const qType &Q=Symmetry::qvacuum())
 
static Mpo< Symmetry, Scalar > Zero (const std::vector< std::vector< qType > > &qPhys)
 
static Mpo< Symmetry, Scalar > cast_Terms_to_Mpo (const MpoTerms< Symmetry, Scalar > &input)
 
- Static Public Member Functions inherited from MpoTerms< Symmetry, Scalar >
static MpoTerms< Symmetry, Scalar > prod (const MpoTerms< Symmetry, Scalar > &top, const MpoTerms< Symmetry, Scalar > &bottom, const qType &qTot, const double tolerance=::mynumeric_limits< double >::epsilon())
 
static MpoTerms< Symmetry, Scalar > sum (const MpoTerms< Symmetry, Scalar > &top, const MpoTerms< Symmetry, Scalar > &bottom, const double tolerance=::mynumeric_limits< double >::epsilon())
 

Static Public Attributes

static constexpr MODEL_FAMILY FAMILY = MODEL_FAMILY::KONDO
 
static const std::map< string, std::any > defaults
 
static const map< string, any > sweep_defaults
 
- Static Public Attributes inherited from Mpo< Symmetry, Scalar >
static constexpr size_t Nq = Symmetry::Nq
 

Private Types

typedef Eigen::Index Index
 
typedef Symmetry::qType qType
 

Additional Inherited Members

- Public Attributes inherited from Mpo< Symmetry, Scalar >
Symmetry::qType qVac = Symmetry::qvacuum()
 
bool GOT_TWO_SITE_DATA = false
 
std::vector< std::vector< TwoSiteData< Symmetry, Scalar > > > TSD
 
bool UNITARY = false
 
bool HERMITIAN = false
 
bool HAMILTONIAN = false
 
bool GOT_SEMIOPEN_LEFT = false
 
bool GOT_SEMIOPEN_RIGHT = false
 
OperatorType LocalOp
 
int LocalSite = -1
 
- Public Attributes inherited from MpoTerms< Symmetry, Scalar >
std::vector< std::vector< qType > > qOp
 
std::vector< Qbasis< Symmetry > > qAux
 
std::vector< std::vector< qType > > qPhys
 
std::vector< std::vector< std::vector< std::vector< Biped< Symmetry, MatrixType > > > > > W
 
std::vector< std::vector< std::vector< qType > > > qOp_powers
 
std::vector< std::vector< Qbasis< Symmetry > > > qAux_powers
 
std::vector< std::vector< std::vector< std::vector< std::vector< Biped< Symmetry, MatrixType > > > > > > W_powers
 
std::size_t N_sites
 
std::size_t N_phys = 0ul
 
reversedData reversed
 
std::string label = "MPO"
 
- Protected Member Functions inherited from MpoTerms< Symmetry, Scalar >
void increment_auxdim (const std::size_t loc, const qType &q)
 
void increment_first_auxdim_OBC (const qType &qIn)
 
void increment_last_auxdim_OBC (const qType &qOut)
 
void decrement_auxdim (const std::size_t loc, const qType &q)
 
void decrement_first_auxdim_OBC (const qType &qIn)
 
void decrement_last_auxdim_OBC (const qType &qOut)
 
void add (const std::size_t loc, const OperatorType &op, const qType &qIn, const qType &qOut, const std::size_t IndexIn, const std::size_t IndexOut)
 
std::size_t get_auxdim (const std::size_t loc, const qType &q) const
 
void assert_hilbert (const std::size_t loc, const std::size_t dim)
 
bool eliminate_linearlyDependent_rows (const std::size_t loc, const qType &qIn, const double tolerance)
 
bool eliminate_linearlyDependent_cols (const std::size_t loc, const qType &qOut, const double tolerance)
 
std::map< qType, std::vector< std::map< qType, OperatorType > > > delete_row (const std::size_t loc, const qType &qIn, const std::size_t row_to_delete, const bool SAMESITE)
 
std::map< qType, std::vector< std::map< qType, OperatorType > > > delete_col (const std::size_t loc, const qType &qOut, const std::size_t col_to_delete, const bool SAMESITE)
 
void add_to_row (const std::size_t loc, const qType &qIn, const std::size_t row, const std::map< qType, std::vector< std::map< qType, OperatorType > > > &ops, const Scalar factor)
 
void add_to_col (const std::size_t loc, const qType &qOut, const std::size_t col, const std::map< qType, std::vector< std::map< qType, OperatorType > > > &ops, const Scalar factor)
 
void calc_qOp ()
 
void calc_qAux ()
 
void calc_W ()
 
void got_update ()
 
void initialize ()
 
void compress (const double tolerance)
 
void renormalize ()
 
void clear_opLabels ()
 
std::tuple< std::size_t, std::size_t, std::size_t, std::size_t > auxdim_infos () const
 
std::vector< qTypecalc_qList (const std::vector< OperatorType > &opList)
 
void fill_O_from_W ()
 
- Protected Member Functions inherited from KondoObservables< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > make_local (KONDO_SUBSYSTEM SUBSYS, size_t locx, size_t locy, const OperatorType &Op, double factor=1., bool FERMIONIC=false, bool HERMITIAN=false) const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > make_corr (KONDO_SUBSYSTEM SUBSYS, size_t locx1, size_t locx2, size_t locy1, size_t locy2, const OperatorType &Op1, const OperatorType &Op2, qarray< Symmetry::Nq > Qtot, double factor, bool FERMIONIC, bool HERMITIAN) const
 
Mpo< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > >, complex< double > > make_FourierYSum (KONDO_SUBSYSTEM SUBSYS, string name, const vector< OperatorType > &Ops, double factor, bool HERMITIAN, const vector< complex< double > > &phases) const
 
Symmetry::qType getQ_ScompScomp (SPINOP_LABEL Sa1, SPINOP_LABEL Sa2) const
 
- Static Protected Member Functions inherited from MpoTerms< Symmetry, Scalar >
static void prod_swap_IBC (std::vector< std::map< std::array< qType, 2 >, std::vector< std::vector< std::map< qType, OperatorType > > > > > &O_out, std::vector< std::size_t > &row_qVac, std::vector< std::size_t > &col_qVac, std::vector< std::size_t > &row_qTot, std::vector< std::size_t > &col_qTot)
 
static void prod_delZeroCols_OBC (std::map< std::array< qType, 2 >, std::vector< std::vector< std::map< qType, OperatorType > > > > &O_last, Qbasis< Symmetry > &qAux_last, Qbasis< Symmetry > &qAux_prev, const qType &qTot, const std::size_t col_qTot)
 
static std::string power_to_string (std::size_t power)
 
static std::pair< std::string, std::size_t > detect_and_remove_power (const std::string &name_w_power)
 
- Protected Attributes inherited from MpoTerms< Symmetry, Scalar >
std::vector< std::map< std::array< qType, 2 >, std::vector< std::vector< std::map< qType, OperatorType > > > > > O
 
std::vector< std::map< qType, std::size_t > > auxdim
 
qType qTot
 
qType qVac = Symmetry::qvacuum()
 
std::size_t pos_qTot
 
std::size_t pos_qVac
 
BC boundary_condition
 
std::vector< std::vector< std::string > > info
 
std::vector< int > hilbert_dimension
 
MPO_STATUS::OPTION status = MPO_STATUS::ALTERABLE
 
DMRG::VERBOSITY::OPTION VERB = DMRG::VERBOSITY::OPTION::SILENT
 
std::string before_verb_set
 
std::size_t current_power = 1
 
bool GOT_QOP = false
 
bool GOT_QAUX = false
 
bool GOT_W = false
 
std::vector< bool > GOT_QPHYS
 
- Protected Attributes inherited from KondoObservables< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > >
vector< SpinBase< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > B
 
vector< FermionBase< Sym::S1xS2< Sym::U1< Sym::SpinU1 >, Sym::SU2< Sym::ChargeSU2 > > > > F
 
vector< SUB_LATTICEG
 

Member Typedef Documentation

◆ Index

typedef Eigen::Index VMPS::KondoU1xSU2::Index
private

Definition at line 29 of file KondoU1xSU2.h.

◆ MatrixType

typedef Eigen::Matrix<double,Eigen::Dynamic,Eigen::Dynamic> VMPS::KondoU1xSU2::MatrixType

Definition at line 24 of file KondoU1xSU2.h.

◆ OperatorType

◆ qType

Definition at line 30 of file KondoU1xSU2.h.

◆ Symmetry

Constructor & Destructor Documentation

◆ KondoU1xSU2() [1/2]

VMPS::KondoU1xSU2::KondoU1xSU2 ( )
inline

Definition at line 35 of file KondoU1xSU2.h.

◆ KondoU1xSU2() [2/2]

VMPS::KondoU1xSU2::KondoU1xSU2 ( const size_t &  L,
const vector< Param > &  params,
const BC boundary = BC::OPEN,
const DMRG::VERBOSITY::OPTION VERB = DMRG::VERBOSITY::OPTION::ON_EXIT 
)

Definition at line 77 of file KondoU1xSU2.h.

Member Function Documentation

◆ set_operators()

template<typename Symmetry_ >
void VMPS::KondoU1xSU2::set_operators ( const std::vector< SpinBase< Symmetry_ > > &  B,
const std::vector< FermionBase< Symmetry_ > > &  F,
const vector< SUB_LATTICE > &  G,
const ParamHandler &  P,
PushType< SiteOperator< Symmetry_, double >, double > &  pushlist,
std::vector< std::vector< std::string > > &  labellist,
const BC  boundary = BC::OPEN 
)
static

Definition at line 105 of file KondoU1xSU2.h.

◆ singlet()

static qarray< 2 > VMPS::KondoU1xSU2::singlet ( int  N = 0,
int  L = 0 
)
inlinestatic

Definition at line 39 of file KondoU1xSU2.h.

Member Data Documentation

◆ defaults

const std::map< string, std::any > VMPS::KondoU1xSU2::defaults
static
Initial value:
=
{
{"t",1.}, {"tRung",0.}, {"tPrime",0.}, {"tPrimePrime",0.},
{"J",1.}, {"Jz",0.}, {"U",0.},
{"V",0.}, {"Vrung",0.},
{"Bz",0.}, {"Bzsub",0.}, {"Kz",0.},
{"Inext",0.}, {"Iprev",0.}, {"I3next",0.}, {"I3prev",0.}, {"I3loc",0.},
{"D",2ul}, {"maxPower",1ul}, {"CYLINDER",false}, {"Ly",1ul}, {"LyF",1ul},
{"REMOVE_DOUBLE",false}, {"REMOVE_EMPTY",false}, {"REMOVE_UP",false}, {"REMOVE_DN",false}, {"mfactor",1}, {"k",1},
}

Definition at line 51 of file KondoU1xSU2.h.

◆ FAMILY

constexpr MODEL_FAMILY VMPS::KondoU1xSU2::FAMILY = MODEL_FAMILY::KONDO
staticconstexpr

Definition at line 26 of file KondoU1xSU2.h.

◆ sweep_defaults

const map< string, any > VMPS::KondoU1xSU2::sweep_defaults
static
Initial value:
=
{
{"max_alpha",100.}, {"min_alpha",1.}, {"lim_alpha",16ul}, {"eps_svd",1e-7},
{"Dincr_abs",5ul}, {"Dincr_per",2ul}, {"Dincr_rel",1.1},
{"min_Nsv",0ul}, {"max_Nrich",-1},
{"max_halfsweeps",30ul}, {"min_halfsweeps",10ul},
{"Dinit",5ul}, {"Qinit",6ul}, {"Dlimit",200ul},
{"tol_eigval",1e-6}, {"tol_state",1e-5},
{"savePeriod",0ul}, {"CALC_S_ON_EXIT", true}, {"CONVTEST",DMRG::CONVTEST::VAR_2SITE}
}

Definition at line 52 of file KondoU1xSU2.h.


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