SyTen
syten::IPEPS::OneOp Struct Reference

A local operator acting on an undefined site. More...

#include <operators.h>

+ Inheritance diagram for syten::IPEPS::OneOp:
+ Collaboration diagram for syten::IPEPS::OneOp:

Public Member Functions

 OneOp ()
 Default ctor. More...
 
 OneOp (Tensor< 3 > t_)
 Standard ctor, only initialises the underlying tensor. More...
 
template<typename Archive >
void serialize (Archive &ar, const unsigned int in_version)
 Boost archiving. More...
 
- Public Member Functions inherited from syten::Tensor< 3 >
MemoryUsage::MemorySize allocSize () const
 allocSize()/memory_size.h support. More...
 
bool dense_is_standard () const
 Returns true if all dense blocks are in standard format. More...
 
void make_dense_cuda ()
 Brings all dense tensors into CUDA form. More...
 
void make_dense_standard ()
 Brings all dense tensors into standard form. More...
 
void maybe_make_dense_cuda ()
 Conditionally transforms all stored dense tensors into CUDA dense tensors if CUDA support is compiled in, at least one CUDA device is enabled and the individual blocks are larger than the CUDA threshold. More...
 
Tensor< rank > return_as_dense_standard () const
 Returns a copy of *this in dense standard format. More...
 
void serialize (Archive &ar, unsigned int const in_version)
 Boost serialisation. More...
 
 Tensor ()
 Default ctor, initialised with invalid leg directions. More...
 
 Tensor (std::array< Direction, rank > const &dirs_)
 Zero-tensor with the specified directions. More...
 
 Tensor (std::array< Direction, rank > const &dirs_, Index size)
 Zero-tensor with the specified directions and default-constructed blocks. More...
 
Blockoperator[] (Index i)
 Vector-like interface. More...
 
Block const & operator[] (Index i) const
 Vector-like interface. More...
 
Blockat (Index i)
 Vector-like interface. More...
 
Block const & at (Index i) const
 Vector-like interface. More...
 
std::vector< Block >::iterator begin ()
 Vector-like interface. More...
 
std::vector< Block >::const_iterator begin () const
 Vector-like interface. More...
 
std::vector< Block >::const_iterator cbegin () const
 Vector-like interface. More...
 
std::vector< Block >::iterator end ()
 Vector-like interface. More...
 
std::vector< Block >::const_iterator end () const
 Vector-like interface. More...
 
std::vector< Block >::const_iterator cend () const
 Vector-like interface. More...
 
std::vector< Block >::iterator erase (typename std::vector< Block >::const_iterator x)
 Vector-like interface. More...
 
std::vector< Block >::iterator erase (typename std::vector< Block >::const_iterator x, typename std::vector< Block >::const_iterator y)
 Vector-like interface. More...
 
Index size () const
 Vector-like interface. More...
 
bool empty () const
 Vector-like interface. More...
 
void reserve (Index i)
 Vector-like interface. More...
 
void resize (Index i)
 Vector-like interface. More...
 
void clear ()
 Vector-like interface. More...
 
void shrink_to_fit ()
 Vector-like interface. More...
 
void push_back (Block const &b)
 Vector-like interface. More...
 
void push_back (Block &&b)
 Vector-like interface. More...
 
void emplace_back (Types &&... args)
 Vector-like interface. More...
 
Basis getBasis (Index leg) const
 Constructs the basis on the specified leg. More...
 
Basis b (Index leg) const
 Shortcut for getBasis. More...
 
BasisMap getBasisMap (Index leg) const
 Constructs a basis map on the specified leg, suitable to quickly check for the existence of sectors. More...
 
Basis getAddedBasis (Index leg) const
 Constructs the maximal basis on the specified leg. More...
 
Index getReducedDim (Index leg) const
 Get the sum of all reduced tensor dimensions on the specified leg. More...
 
std::array< Index, rank > getReducedDims () const
 c.f. getReducedDim(), for all legs More...
 
Tensor const & print_bases () const
 
Index getTotalDim (Index leg) const
 Get the sum of the tensor-producted block dimensions on the specified leg. More...
 
std::array< Index, rank > getTotalDims () const
 c.f. getTotalDim(), for all legs More...
 
Index getMaxBlocksize (Index leg) const
 gets the sidelength of the largest block on the specified leg More...
 
Index getAvgBlocksize (Index leg) const
 get averaged sidelength of blocks as \( \left[\frac{1}{N} \sum_i m_i^3 \right]^{1/3} \) More...
 
std::size_t getDenseSize () const
 Returns the total number of dense tensor entries. More...
 
bool hasCGC () const
 Returns true if the tensor a symmetry which has a CGC space (typically) attached, e.g. More...
 
void reduce (EliminateZeros const ezeros=EliminateZeros::Yes, bool const add_cgc=false, bool const no_para=false, bool const no_zero_check_dense=false)
 Reduce the number of blocks in the tensor by adding parallel blocks together. More...
 
void add (TensorBlock< rank > &&t)
 Adds a block to the tensor. More...
 
void add (TensorBlock< rank > const &t)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
void add (Args &&... args)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 

Static Public Attributes

static constexpr Index aIdx {2}
 auxiliary index used to connect to second OneOp object. More...
 
static constexpr int aInt {2}
 auxiliary index used to connect to second OneOp object. More...
 
static constexpr Index dIdx {3}
 lower index, connecting to state. More...
 
static constexpr int dInt {3}
 lower index, connecting to state. More...
 
static const std::array< Direction, 3 > dirs = {Direction::Inc, Direction::Out, Direction::Out}
 defines leg directions for OneOp objects. More...
 
static constexpr Index uIdx {1}
 upper index, ‘new’ physical index. More...
 
static constexpr int uInt {1}
 upper index, ‘new’ physical index. More...
 
static constexpr unsigned int version = 1
 current version, bump if you change one of the data structures here More...
 
- Static Public Attributes inherited from syten::Tensor< 3 >
static constexpr Rank this_rank
 Helper to retrieve the tensor rank from an object of this type. More...
 
static constexpr unsigned int version
 Bump this if one of the above changes. More...
 

Additional Inherited Members

- Public Types inherited from syten::Tensor< 3 >
typedef TensorBlock< rank > Block
 Type of the underlying block, a tensor is simply a set of such blocks. More...
 
typedef Block::CGC CGC
 Type of a single CGC space. More...
 
typedef Block::CGCSet CGCSet
 Type of the set of all CGC spaces. More...
 
typedef Block::Dense Dense
 The standard dense tensor type of the reduced tensors (i.e. excluding CGC spaces) More...
 
typedef Block::DenseStorage DenseStorage
 The storage dense tensor type of the reduced tensors (i.e. excluding CGC spaces) More...
 
typedef Block::Sym Sym
 Type of the symmetry transformation description of a given block. More...
 
- Public Attributes inherited from syten::Tensor< 3 >
std::vector< Blockblocks
 Blocks composing this tensor. More...
 
std::array< Direction, rank > dirs
 Directions of the individual legs (incoming/outgoing) More...
 

Detailed Description

A local operator acting on an undefined site.

Once applied to a site, it can be multiplied with a neighbouring operator to give a two-site gate.


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