Stores a physical lattice and associated operators and bases. More...
#include <lattice.h>
Collaboration diagram for syten::MPS::Lattice:Classes | |
| struct | SSO |
| The representation of a single-site operator. More... | |
| class | UndefinedOperator |
Thrown when an undefined operator is requested via MPS::Operator::get(). More... | |
Public Types | |
| typedef std::tuple< std::vector< std::vector< Tensor< 4 > > >, std::vector< Tensor< 4 > >, std::vector< std::vector< Tensor< 4 > > > > | SSORep |
| Returned by getSSO, representing a single-site operator. More... | |
Public Member Functions | |
| Lattice ()=default | |
| Default ctor for boost archiving. More... | |
| Lattice (Index length_, std::string const &description_, Basis const &site_, Basis const &vac_) | |
| Standard constructor for uniform lattices. More... | |
| Lattice (std::string const &description_, std::vector< Index > const &siteType_, std::vector< Basis > const &typeBasis_, Basis const &vac_) | |
| Standard constructor for nonuniform lattices. More... | |
| Index | size () const |
| Returns the number of sites of the lattice. More... | |
Basis and type information | |
| template<typename IndexType > | |
| Index | siteType (IndexType i) const |
| Returns the type of a specific site. More... | |
| std::vector< Index > const & | siteTypes () const |
| Returns the types for all sites. More... | |
| Basis | typeBasis (Index i) const |
| Returns the basis of the i-th type. More... | |
| template<typename IndexType > | |
| Basis | siteBasis (IndexType i) const |
| Returns the basis on the specified site. More... | |
| std::vector< Basis > const & | siteBases () const |
| Returns the bases for all types. More... | |
| bool | isUniform () const |
| Returns true if the basis is uniform throughout the lattice. More... | |
| Index | numTypes () const |
| Returns the number of different basis types existing. More... | |
| std::vector< std::pair< Index, char > > | pairedSiteTypes () const |
| Returns a vector of pairs <site index, type index> More... | |
| void | swap_types (Index const first, Index const second) |
| Swaps the types of the two specified sites. More... | |
Operator saving to the lattice | |
| void | add (std::string const &id, std::string const &desc, Operator const &op, bool const overwrite=false) |
| Add a global operator. More... | |
| void | add (std::string const &id, std::string const &desc, Tensor< 4 > const &leftI, Tensor< 4 > const &op, Tensor< 4 > const &rightI, bool const overwrite=false) |
| Add a single-site operator, valid only for uniform lattices. More... | |
| void | add (std::string const &id, std::string const &desc, std::vector< std::vector< Tensor< 4 > > > const &lI, std::vector< Tensor< 4 > > const &op, std::vector< std::vector< Tensor< 4 > > > const &rI, bool const overwrite=false) |
| Add a single-site operator to any lattice. More... | |
Operator retrieval from the lattice | |
| Operator const & | get (std::string const &id) const |
| Returns a global operator. More... | |
| Operator & | get (std::string const &id) |
| Returns a global operator. More... | |
| Operator const & | get (std::string const &id, Index where) const |
| Constructs and returns a single-site operator. More... | |
| Operator const & | get (std::string const &id, int where) const |
| Constructs and returns a single-site operator. More... | |
| template<typename IndexTypeA , typename IndexTypeB > | |
| Tensor< 4 > const & | getIdLeft (std::string const &id, IndexTypeA const active, IndexTypeB const current) const |
| Returns the identity matrix to be used to the left of a local operator on the specified site. More... | |
| template<typename IndexTypeA , typename IndexTypeB > | |
| Tensor< 4 > const & | getIdRight (std::string const &id, IndexTypeA const active, IndexTypeB const current) const |
| Returns the identity matrix to be used to the right of a local operator on the specified site. More... | |
| template<typename IndexType > | |
| Tensor< 4 > const & | getLocal (std::string const &id, IndexType const active) const |
| Returns the local operator to be used on the specified site. More... | |
| std::vector< Tensor< 4 > > const & | getLocal (std::string const &id) const |
| Returns a vector of local site operators for the specified single-site operator. More... | |
| SSORep | getSSO (std::string const &id) const |
| Returns a tuple <left, op, right> defining a single-site operator. More... | |
| std::vector< std::tuple< std::string, bool, std::string > > | listOps () const |
| Returns a vector describing all operators existing on the lattice. More... | |
| std::vector< std::pair< std::string, std::string > > | listLocals () const |
| Returns a list of all local operators and their descriptions. More... | |
| MemoryUsage::MemorySize | allocSize () const |
| allocSize()/memory_size.h support. More... | |
Boost serialisation | |
| template<class Archive > | |
| void | serialize (Archive &ar, const unsigned int in_version) |
| Boost archiving. More... | |
Public Attributes | |
| std::string | description |
| a free-form description of this lattice More... | |
| Basis | vac |
| the vacuum bases for the symmetries used in this lattice More... | |
| Sector | vacSector |
| the vacuum quantum number sector on this lattice More... | |
Static Public Attributes | |
| static const std::string | uuid = "f1944de9-9b47-4a3d-8366-6ccb090ea2af" |
| UUID of lattice files to differentiate them from state files. More... | |
| static constexpr unsigned int | version = 2 |
| current version, bump if you change one of the data structures here More... | |
Private Member Functions | |
| Index | restrict (Index where) const |
| Maps an index into the range [0, length) by subtracting length repeatedly. More... | |
| Index | restrict (int where) const |
| Maps an integer into the range [0, length) by subtracting/adding length repeatedly. More... | |
Private Attributes | |
| std::map< std::string, std::pair< std::string, Operator > > | globalOperators |
the set of global operators in the format map<key, pair<description, MPO>> More... | |
| Index | length |
| number of sites on the lattice More... | |
| std::vector< Index > | m_siteType |
| For each site, contains the type of that site. More... | |
| std::vector< Basis > | m_typeBasis |
| For each type of site, contains the associated basis. More... | |
| std::map< std::string, std::pair< std::string, SSO > > | siteOperators |
the set of single-site operators in the format map<key, pair<description, SSO> > More... | |
| std::unordered_map< std::pair< std::string, Index >, Operator, boost::hash< std::pair< std::string, Index > > > | sso_cache |
| Cache of previously-requested SSOs. More... | |
Stores a physical lattice and associated operators and bases.