Xped
Loading...
Searching...
No Matches
Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts > Class Template Reference

#include <CTM.hpp>

Public Types

typedef Symmetry_ Symmetry
 
typedef Scalar_ Scalar
 
template<std::size_t N>
using cdims = std::array< int, N >
 

Public Member Functions

 CTM ()=default
 
 CTM (std::size_t chi, Opts::CTM_INIT init=Opts::CTM_INIT::FROM_A)
 
 CTM (std::size_t chi, const UnitCell &cell, Opts::CTM_INIT init=Opts::CTM_INIT::FROM_A)
 
 CTM (std::shared_ptr< iPEPS< Scalar, Symmetry, ENABLE_AD > > A, std::size_t chi, const Opts::CTM_INIT init=Opts::CTM_INIT::FROM_A)
 
 CTM (const CTM< Scalar, Symmetry, TRank, false > &other)
 
void set_A (std::shared_ptr< iPEPS< Scalar, Symmetry, ENABLE_AD > > A_in)
 
std::size_t fullChi () const
 
template<bool TRACK = ENABLE_AD>
void solve (std::size_t max_steps)
 
template<bool TRACK = ENABLE_AD, bool CP = CPOpts.GROW_ALL>
void grow_all ()
 
void init ()
 
void loadFromMatlab (const std::filesystem::path &p, const std::string &root_name, int qn_scale=1)
 
template<bool TRACK = ENABLE_AD, bool CP = CPOpts.MOVE>
void left_move ()
 
template<bool TRACK = ENABLE_AD, bool CP = CPOpts.MOVE>
void right_move ()
 
template<bool TRACK = ENABLE_AD, bool CP = CPOpts.MOVE>
void top_move ()
 
template<bool TRACK = ENABLE_AD, bool CP = CPOpts.MOVE>
void bottom_move ()
 
template<bool TRACK = ENABLE_AD, bool CP = CPOpts.MOVE>
void symmetric_move ()
 
template<bool TRACK = ENABLE_AD>
void computeRDM ()
 
bool RDM_COMPUTED () const
 
void checkHermiticity () const
 
auto info () const
 
const UnitCellcell () const
 
const std::shared_ptr< iPEPS< Scalar, Symmetry, ENABLE_AD > > & Psi () const
 
template<typename Ar >
void serialize (Ar &ar)
 
std::size_t chi () const
 
Opts::CTM_INIT const init_mode ()
 

Friends

template<typename , typename , std::size_t , bool , Opts::CTMCheckpoint >
class CTM
 
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_, std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
class Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >

C1 – T1 – C2 | || | T4 == A == T2 | || | C4 – T3 – C3

C1 --> 1 | â–¼ 0

0 --> C2 | â–½ 1

0 | â–½ 1 --> C3

0 | â–½ C4 --> 1 Checkpoint move (l,r,t,b). Checkpoint computeRDM_h/v. Checkpoint contractCorner. Checkpoint get_projectors. Checkpoint renormalize (l,r,t,b)

Member Typedef Documentation

◆ cdims

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
template<std::size_t N>
using Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::cdims = std::array<int, N>

◆ Scalar

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
typedef Scalar_ Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::Scalar

◆ Symmetry

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
typedef Symmetry_ Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::Symmetry

Constructor & Destructor Documentation

◆ CTM() [1/5]

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::CTM ( )
default

◆ CTM() [2/5]

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::CTM ( std::size_t  chi,
Opts::CTM_INIT  init = Opts::CTM_INIT::FROM_A 
)
inlineexplicit

◆ CTM() [3/5]

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::CTM ( std::size_t  chi,
const UnitCell cell,
Opts::CTM_INIT  init = Opts::CTM_INIT::FROM_A 
)
inline

◆ CTM() [4/5]

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::CTM ( std::shared_ptr< iPEPS< Scalar, Symmetry, ENABLE_AD > >  A,
std::size_t  chi,
const Opts::CTM_INIT  init = Opts::CTM_INIT::FROM_A 
)
inline

◆ CTM() [5/5]

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::CTM ( const CTM< Scalar, Symmetry, TRank, false > &  other)
Here is the call graph for this function:

Member Function Documentation

◆ bottom_move()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
template<bool TRACK, bool CP>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::bottom_move
Here is the call graph for this function:

◆ cell()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
const UnitCell & Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::cell ( ) const
inline
Here is the caller graph for this function:

◆ checkHermiticity()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::checkHermiticity
Here is the call graph for this function:

◆ chi()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
std::size_t Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::chi ( ) const
inline

◆ computeRDM()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
template<bool TRACK>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::computeRDM

◆ fullChi()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
std::size_t Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::fullChi ( ) const
inline

◆ grow_all()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
template<bool TRACK, bool CP>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::grow_all
Here is the call graph for this function:

◆ info()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
auto Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::info

◆ init()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::init
Here is the call graph for this function:

◆ init_mode()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
Opts::CTM_INIT const Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::init_mode ( )
inline

◆ left_move()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
template<bool TRACK, bool CP>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::left_move
Here is the call graph for this function:

◆ loadFromMatlab()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::loadFromMatlab ( const std::filesystem::path &  p,
const std::string &  root_name,
int  qn_scale = 1 
)
Here is the caller graph for this function:

◆ Psi()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
const std::shared_ptr< iPEPS< Scalar, Symmetry, ENABLE_AD > > & Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::Psi ( ) const
inline

◆ RDM_COMPUTED()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
bool Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::RDM_COMPUTED ( ) const
inline

◆ right_move()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
template<bool TRACK, bool CP>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::right_move
Here is the call graph for this function:

◆ serialize()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
template<typename Ar >
void Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::serialize ( Ar &  ar)
inline

◆ set_A()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
void Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::set_A ( std::shared_ptr< iPEPS< Scalar, Symmetry, ENABLE_AD > >  A_in)
inline

◆ solve()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
template<bool TRACK>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::solve ( std::size_t  max_steps)

◆ symmetric_move()

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
template<bool TRACK = ENABLE_AD, bool CP = CPOpts.MOVE>
void Xped::CTM< Scalar_, Symmetry_, TRank, ENABLE_AD, CPOpts >::symmetric_move ( )

◆ top_move()

template<typename Scalar , typename Symmetry , std::size_t TRank, bool ENABLE_AD, Opts::CTMCheckpoint CPOpts>
template<bool TRACK, bool CP>
void Xped::CTM< Scalar, Symmetry, TRank, ENABLE_AD, CPOpts >::top_move
Here is the call graph for this function:

Friends And Related Function Documentation

◆ avg [1/2]

template<typename Scalar_ , typename Symmetry_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
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_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
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_ , std::size_t TRank = 2, bool ENABLE_AD = false, Opts::CTMCheckpoint CPOpts = Opts::CTMCheckpoint{}>
template<typename , typename , std::size_t , bool , Opts::CTMCheckpoint >
friend class CTM
friend

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