Xped
Loading...
Searching...
No Matches
Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ > Class Template Reference

#include <iPEPS.hpp>

Collaboration diagram for Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >:

Public Types

typedef Symmetry_ Symmetry
 
typedef Scalar_ Scalar
 
typedef ScalarTraits< Scalar >::Real RealScalar
 
typedef Symmetry::qType qType
 

Public Member Functions

 iPEPS ()=default
 
 iPEPS (const UnitCell &cell, std::size_t D, const Qbasis< Symmetry, 1 > &auxBasis, const Qbasis< Symmetry, 1 > &physBasis)
 
 iPEPS (const UnitCell &cell, std::size_t D, const TMatrix< Qbasis< Symmetry, 1 > > &leftBasis, const TMatrix< Qbasis< Symmetry, 1 > > &topBasis, const TMatrix< Qbasis< Symmetry, 1 > > &physBasis)
 
 iPEPS (const UnitCell &cell, std::size_t D, const TMatrix< Qbasis< Symmetry, 1 > > &leftBasis, const TMatrix< Qbasis< Symmetry, 1 > > &topBasis, const TMatrix< Qbasis< Symmetry, 1 > > &physBasis, const TMatrix< qType > &charges)
 
 iPEPS (const iPEPS< Scalar, Symmetry, false > &other)
 
void setRandom (std::size_t seed=0ul)
 
void setZero ()
 
void set_As (const std::vector< Tensor< Scalar, 2, 3, Symmetry, ENABLE_AD > > &As_in)
 
Qbasis< Symmetry, 1 > ketBasis (const int x, const int y, const Opts::LEG leg) const
 
Qbasis< Symmetry, 1 > braBasis (const int x, const int y, const Opts::LEG leg) const
 
std::string info () const
 
void debug_info () const
 
std::vector< Scalardata ()
 
void set_data (const Scalar *data, bool NORMALIZE=true)
 
std::size_t plainSize () const
 
iPEPSIterator< Scalar, Symmetry, ENABLE_ADbegin ()
 
iPEPSIterator< Scalar, Symmetry, ENABLE_ADend ()
 
iPEPSIterator< Scalar, Symmetry, ENABLE_ADgradbegin ()
 
iPEPSIterator< Scalar, Symmetry, ENABLE_ADgradend ()
 
const UnitCellcell () const
 
const TMatrix< qType > & charges () const
 
template<typename Ar >
void serialize (Ar &ar)
 
void loadFromMatlab (const std::filesystem::path &p, const std::string &root_name, int qn_scale=1)
 
bool checkConsistency () const
 
void initWeightTensors ()
 
void updateAtensors ()
 
Tensor< Scalar, 1, 1, SymmetryId_weight_h (int x, int y) const
 
Tensor< Scalar, 1, 1, SymmetryId_weight_v (int x, int y) const
 
std::tuple< std::size_t, std::size_t, double, double > calc_Ds () const
 

Public Attributes

std::size_t D
 

Static Public Attributes

static constexpr bool ENABLE_AD = ENABLE_AD_
 

Friends

template<typename , typename , std::size_t , bool , Opts::CTMCheckpoint >
class CTM
 
template<typename , typename , typename >
class TimePropagator
 
class iPEPS< Scalar_, Symmetry_, true >
 
template<typename Scalar__ , typename Symmetry__ , std::size_t TRank__, bool ENABLE_AD__, Opts::CTMCheckpoint CPOpts__, typename OpScalar__ , bool HERMITIAN__>
TMatrix< std::conditional_t< ENABLE_AD__, stan::math::var, typename OneSiteObservable< OpScalar__, Symmetry__, HERMITIAN__ >::ObsScalar > > avg (XPED_CONST CTM< Scalar__, Symmetry__, TRank__, ENABLE_AD__, CPOpts__ > &env, OneSiteObservable< OpScalar__, Symmetry__, HERMITIAN__ > &op)
 
template<typename Scalar__ , typename Symmetry__ , std::size_t TRank__, bool ENABLE_AD__, Opts::CTMCheckpoint CPOpts__, typename OpScalar__ , bool HERMITIAN__>
std::array< TMatrix< std::conditional_t< ENABLE_AD__, stan::math::var, typename TwoSiteObservable< OpScalar__, Symmetry__, HERMITIAN__ >::ObsScalar > >, 4 > avg (XPED_CONST CTM< Scalar__, Symmetry__, TRank__, ENABLE_AD__, CPOpts__ > &env, TwoSiteObservable< OpScalar__, Symmetry__, HERMITIAN__ > &op)
 

Detailed Description

template<typename Scalar_, typename Symmetry_, bool ENABLE_AD_ = false>
class Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >

p(4) u(1) / | / | ^ v / â–¡â–¡â–¡â–¡â–¡/â–¡ l(0) —> â–¡ / â–¡ -->- r(2) â–¡â–¡â–¡â–¡â–¡â–¡â–¡ | | v d(3)

Member Typedef Documentation

◆ qType

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
typedef Symmetry::qType Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::qType

◆ RealScalar

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
typedef ScalarTraits<Scalar>::Real Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::RealScalar

◆ Scalar

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
typedef Scalar_ Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::Scalar

◆ Symmetry

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
typedef Symmetry_ Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::Symmetry

Constructor & Destructor Documentation

◆ iPEPS() [1/5]

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::iPEPS ( )
default

◆ iPEPS() [2/5]

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::iPEPS ( const UnitCell cell,
std::size_t  D,
const Qbasis< Symmetry, 1 > &  auxBasis,
const Qbasis< Symmetry, 1 > &  physBasis 
)
Here is the call graph for this function:

◆ iPEPS() [3/5]

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::iPEPS ( const UnitCell cell,
std::size_t  D,
const TMatrix< Qbasis< Symmetry, 1 > > &  leftBasis,
const TMatrix< Qbasis< Symmetry, 1 > > &  topBasis,
const TMatrix< Qbasis< Symmetry, 1 > > &  physBasis 
)
Here is the call graph for this function:

◆ iPEPS() [4/5]

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::iPEPS ( const UnitCell cell,
std::size_t  D,
const TMatrix< Qbasis< Symmetry, 1 > > &  leftBasis,
const TMatrix< Qbasis< Symmetry, 1 > > &  topBasis,
const TMatrix< Qbasis< Symmetry, 1 > > &  physBasis,
const TMatrix< qType > &  charges 
)

◆ iPEPS() [5/5]

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::iPEPS ( const iPEPS< Scalar, Symmetry, false > &  other)
Here is the call graph for this function:

Member Function Documentation

◆ begin()

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
iPEPSIterator< Scalar, Symmetry, ENABLE_AD > Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::begin ( )
inline

◆ braBasis()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
Qbasis< Symmetry, 1 > Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::braBasis ( const int  x,
const int  y,
const Opts::LEG  leg 
) const

◆ calc_Ds()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
std::tuple< std::size_t, std::size_t, double, double > Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::calc_Ds

◆ cell()

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
const UnitCell & Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::cell ( ) const
inline
Here is the caller graph for this function:

◆ charges()

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
const TMatrix< qType > & Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::charges ( ) const
inline
Here is the caller graph for this function:

◆ checkConsistency()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
bool Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::checkConsistency

◆ data()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
std::vector< Scalar > Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::data

◆ debug_info()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
void Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::debug_info

◆ end()

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
iPEPSIterator< Scalar, Symmetry, ENABLE_AD > Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::end ( )
inline

◆ gradbegin()

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
iPEPSIterator< Scalar, Symmetry, ENABLE_AD > Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::gradbegin ( )
inline

◆ gradend()

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
iPEPSIterator< Scalar, Symmetry, ENABLE_AD > Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::gradend ( )
inline

◆ Id_weight_h()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
Tensor< Scalar, 1, 1, Symmetry > Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::Id_weight_h ( int  x,
int  y 
) const

◆ Id_weight_v()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
Tensor< Scalar, 1, 1, Symmetry > Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::Id_weight_v ( int  x,
int  y 
) const

◆ info()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
std::string Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::info

◆ initWeightTensors()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
void Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::initWeightTensors

◆ ketBasis()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
Qbasis< Symmetry, 1 > Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::ketBasis ( const int  x,
const int  y,
const Opts::LEG  leg 
) const

◆ loadFromMatlab()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
void Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::loadFromMatlab ( const std::filesystem::path &  p,
const std::string &  root_name,
int  qn_scale = 1 
)

◆ plainSize()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
std::size_t Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::plainSize

◆ serialize()

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
template<typename Ar >
void Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::serialize ( Ar &  ar)
inline

◆ set_As()

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
void Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::set_As ( const std::vector< Tensor< Scalar, 2, 3, Symmetry, ENABLE_AD > > &  As_in)
inline

◆ set_data()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
void Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::set_data ( const Scalar data,
bool  NORMALIZE = true 
)

◆ setRandom()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
void Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::setRandom ( std::size_t  seed = 0ul)

◆ setZero()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
void Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::setZero

◆ updateAtensors()

template<typename Scalar , typename Symmetry , bool ENABLE_AD>
void Xped::iPEPS< Scalar, Symmetry, ENABLE_AD >::updateAtensors
Here is the call graph for this function:

Friends And Related Function Documentation

◆ avg [1/2]

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
template<typename Scalar__ , typename Symmetry__ , std::size_t TRank__, bool ENABLE_AD__, Opts::CTMCheckpoint CPOpts__, typename OpScalar__ , bool HERMITIAN__>
TMatrix< std::conditional_t< ENABLE_AD__, stan::math::var, typename OneSiteObservable< OpScalar__, Symmetry__, HERMITIAN__ >::ObsScalar > > avg ( XPED_CONST CTM< Scalar__, Symmetry__, TRank__, ENABLE_AD__, CPOpts__ > &  env,
OneSiteObservable< OpScalar__, Symmetry__, HERMITIAN__ > &  op 
)
friend

◆ avg [2/2]

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
template<typename Scalar__ , typename Symmetry__ , std::size_t TRank__, bool ENABLE_AD__, Opts::CTMCheckpoint CPOpts__, typename OpScalar__ , bool HERMITIAN__>
std::array< TMatrix< std::conditional_t< ENABLE_AD__, stan::math::var, typename TwoSiteObservable< OpScalar__, Symmetry__, HERMITIAN__ >::ObsScalar > >, 4 > avg ( XPED_CONST CTM< Scalar__, Symmetry__, TRank__, ENABLE_AD__, CPOpts__ > &  env,
TwoSiteObservable< OpScalar__, Symmetry__, HERMITIAN__ > &  op 
)
friend

◆ CTM

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
template<typename , typename , std::size_t , bool , Opts::CTMCheckpoint >
friend class CTM
friend

◆ iPEPS< Scalar_, Symmetry_, true >

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
friend class iPEPS< Scalar_, Symmetry_, true >
friend

◆ TimePropagator

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
template<typename , typename , typename >
friend class TimePropagator
friend

Member Data Documentation

◆ D

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
std::size_t Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::D

◆ ENABLE_AD

template<typename Scalar_ , typename Symmetry_ , bool ENABLE_AD_ = false>
constexpr bool Xped::iPEPS< Scalar_, Symmetry_, ENABLE_AD_ >::ENABLE_AD = ENABLE_AD_
staticconstexpr

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