SyTen
syten::IPEPS::State Class Reference

Represents an IPEPS state on a square lattice. More...

#include <state.h>

+ Collaboration diagram for syten::IPEPS::State:

Classes

struct  DLEntry
 An element of the double layer, containing one splitting and one fusing tensor. More...
 

Public Member Functions

MemoryUsage::MemorySize allocSize () const
 memory tracking support More...
 
Index c2i (Coord const coord) const
 returns the linear coordinate of the specified unit cell site. More...
 
Tensor< 3 > const & crmv () const
 Returns a constant reference to the remover tensor. More...
 
void crude_truncate (Truncation trunc)
 Crudely truncates every bond of the state down to the specified maximal blocksize/maximal number of states. More...
 
void drop_unmatched ()
 Removes all unmatched blocks from all tensors. More...
 
void focus (Coord const coord)
 Does a non-truncating QR-decomposition on all neighbouring sites towards the specified site. More...
 
char getClass (Coord const coord) const
 returns the class of the specified site. More...
 
int getDepth () const
 returns the depth of the unit cell. More...
 
Index getMaxBlocksize () const
 Returns the maximal block size of the state. More...
 
Index getMaxStates () const
 Returns the maximal reduced bond dimension of the state. More...
 
Index getMaxTotalStates () const
 Returns the maximal total bond dimension of the state. More...
 
int getWidth () const
 returns the width of the unit cell. More...
 
void init_ctm ()
 initialises the double layer and the ctm (by contraction with itself) More...
 
void init_ctm_vac ()
 initialises the double layer and the ctm (via vacuum) More...
 
bool is_00_coord (Coord const coord) const
 Returns true if coord corresponds to the [0,0] node. More...
 
Tensor< 5 > const & operator() (char const cl) const
 Returns a constant reference to the tensor of the specified site class. More...
 
Tensor< 5 > const & operator() (Coord const coord) const
 Returns a constant reference to the tensor placed on the specified site. More...
 
Tensor< 5 > const & operator() (Index const i) const
 Returns a constant reference to the tensor at the site with the specified linear offset. More...
 
Stateoperator= (State &&other)
 Move assignment operator. More...
 
Stateoperator= (State const &other)
 Copy assignment operator. More...
 
Tensor< 5 > & operator[] (char const cl)
 Returns a writeable reference to the tensor of the specified site class. More...
 
Tensor< 5 > const & operator[] (char const cl) const
 Returns a constant reference to the tensor of the specified site class. More...
 
Tensor< 5 > & operator[] (Coord const coord)
 Returns a writeable reference to the tensor placed on the specified site. More...
 
Tensor< 5 > const & operator[] (Coord const coord) const
 Returns a constant reference to the tensor placed on the specified site. More...
 
Tensor< 5 > & operator[] (Index const i)
 Returns a writeable reference to the tensor at the site with the specified linear offset. More...
 
Tensor< 5 > const & operator[] (Index const i) const
 Returns a constant reference to the tensor at the site with the specified linear offset. More...
 
Tensor< 3 > & rmv ()
 Returns a writeable reference to the remover tensor. More...
 
Tensor< 3 > const & rmv () const
 Returns a constant reference to the remover tensor. More...
 
template<typename Archive >
void serialize (Archive &ar, const unsigned int in_version)
 Boost archiving. More...
 
 State ()=default
 Default ctor. More...
 
 State (int width_, int depth_, std::vector< char > site_class_)
 Standard ctor initialising the lattice and site classes as well as placing empty tensors on all sites. More...
 
 State (State &&other)
 Move ctor. More...
 
 State (State const &other)
 Copy ctor. More...
 
 State (State const &other, bool)
 Copy ctor which does not copy the CTM. More...
 
void validate ()
 validates the state for matching bond dimensions. More...
 
double-layer handling.
Tensor< 3 > const & getDLS (Coord const coord) const
 returns the splitting tensor of the double layer on the specified site. More...
 
Tensor< 3 > & getDLS (Coord const coord)
 returns the splitting tensor of the double layer on the specified site. More...
 
Tensor< 3 > const & getDLF (Coord const coord) const
 returns the fusing tensor of the double layer on the specified site. More...
 
Tensor< 3 > & getDLF (Coord const coord)
 returns the fusing tensor of the double layer on the specified site. More...
 
Tensor< 4 > const & getDLM (Coord const coord) const
 returns the complete double layer on the specified site. More...
 
Tensor< 4 > & getDLM (Coord const coord)
 returns the complete double layer on the specified site. More...
 
Basis const & getDLB (Coord const coord, Index const which) const
 Returns the standard single-layer basis used to construct the DL. More...
 
BasisgetDLB (Coord const coord, Index const which)
 Returns the standard single-layer basis used to construct the DL. More...
 
Tensor< 2 > const & getRMVDL () const
 returns the double layer of the removal tensor. More...
 
Tensor< 2 > & getRMVDL ()
 returns the double layer of the removal tensor. More...
 
Basis const & getRMVDLB (Index const which) const
 returns the standard single-layer basis used to construct the DL. More...
 
BasisgetRMVDLB (Index const which)
 returns the standard single-layer basis used to construct the DL. More...
 
void buildDL (Coord const coord)
 builds the double layer on the specified site. More...
 
void buildRMVDL ()
 builds the double layer of the removal tensor. More...
 
void invalidateDL (char const cl)
 invalidates the double layer of the specified site class. More...
 
void buildDL ()
 builds the double layer on all sites. More...
 

Public Attributes

FullCTM full_ctm
 currently-known full CTM for this state. More...
 

Static Public Attributes

static constexpr Index bIdx {5}
 backwards index More...
 
static constexpr int bInt {5}
 backwards index More...
 
static const std::array< Direction, 5 > dirs
 Defines the directions of the bulk unit cell tensor legs. More...
 
static constexpr Index fIdx {3}
 forward index More...
 
static constexpr int fInt {3}
 forward index More...
 
static constexpr Index lIdx {2}
 left index More...
 
static constexpr int lInt {2}
 left index More...
 
static constexpr Index pIdx {1}
 physical index More...
 
static constexpr int pInt {1}
 physical index More...
 
static constexpr Index rbIdx {3}
 backwards index of the remover More...
 
static constexpr int rbInt {3}
 backwards index of the remover More...
 
static const std::array< Direction, 3 > rdirs
 Defines the directions of the remover tensor legs. More...
 
static constexpr Index rfIdx {2}
 forward index of the remover More...
 
static constexpr int rfInt {2}
 forward index of the remover More...
 
static constexpr Index rIdx {4}
 right index More...
 
static constexpr int rInt {4}
 right index More...
 
static constexpr Index rpIdx {1}
 physical index of the remover More...
 
static constexpr int rpInt {1}
 physical index of the remover More...
 
static const std::string uuid = "cc4c76ec-d234-4a0b-8c59-48c07847bd0b"
 uuid of the lattice class for serialisation More...
 
static constexpr int version {2}
 version for boost serialisation More...
 

Private Attributes

int depth {0}
 backwards/vertical/y extend More...
 
std::map< char, DLEntrydouble_layered
 contraction \( \bar{M}\cdot M \) for every tensor stored on the lattice. More...
 
Tensor< 3 > remover
 the unique tensor in front of the (0,0) tensor which removes the target quantum number from the unit cell. More...
 
Tensor< 2 > rmvdl
 Contraction for the remover tensor with auxiliary legs fused. More...
 
std::array< Basis, 3 > rmvdlb
 Array of single-layer bases which were merged into the remover double-layer bases. More...
 
std::vector< char > site_class
 the type of tensor situated on each site. More...
 
std::map< char, Tensor< 5 > > tensors
 the tensor associated to each site class. More...
 
int width {0}
 right/horizontal/x extend More...
 

Detailed Description

Represents an IPEPS state on a square lattice.


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