template<typename Symmetry>
class Qbasis< Symmetry >
- Template Parameters
-
Symmetry | : A class providing all relevant functions and infos that are determined by the Symmetry. Click here for more information. |
This class is a container like class for a basis of a Hilbert space in which global symmetries are present. For each irreducible representation irrep of the global symmetry (for each quantum number), the states of the Hilbert states that transforms under that irrep are collected together in a plain Basis object.
One central function is the combine() method, which combine two instances of Qbasis to the tensor product basis, already proper sorted into irreps.
- Note
- Optionally an ident string can be added to each basis state, which give a convinient access for SiteOperatorQ instances.
Definition at line 38 of file Qbasis.h.
|
| Qbasis () |
|
template<typename Container > |
| Qbasis (const Container &qins, const Eigen::Index &dim) |
|
| Qbasis (const vector< qarray< Symmetry::Nq > > &base_input) |
|
qType | find (const std::string &ident) const |
|
qType | find (const Eigen::Index &num) const |
|
bool | find (const qType &q) const |
|
Eigen::Index | inner_num (const Eigen::Index &outer_num) const |
|
Eigen::Index | location (const std::string &ident) const |
|
Eigen::Index | inner_dim (const Eigen::Index &num_in) const |
|
Eigen::Index | inner_dim (const qType &q) const |
|
Eigen::Index | outer_num (const qType &q) const |
|
Eigen::Index | leftAmount (const qType &qnew, const std::array< qType, 2 > &qold) const |
|
Eigen::Index | leftOffset (const qType &qnew, const std::array< qType, 2 > &qold, const std::array< Eigen::Index, 2 > &plain_old) const |
|
Eigen::Index | rightAmount (const qType &qnew, const std::array< qType, 2 > &qold) const |
|
void | clear () |
|
template<typename MatrixType > |
void | pullData (const vector< Biped< Symmetry, MatrixType > > &A, const Eigen::Index &leg) |
|
template<typename MatrixType > |
void | pullData (const vector< vector< vector< Biped< Symmetry, MatrixType > > > > &W, const Eigen::Index &leg) |
|
void | pullData (const std::vector< std::array< qType, 3 > > &qvec, const std::size_t &leg, const Eigen::Index &inner_dim_in) |
|
void | pullData (const std::vector< qarray< Symmetry::Nq > > &qs) |
|
Qbasis< Symmetry > | combine (const Qbasis< Symmetry > &other, bool FLIP=false) const |
|
void | setHistoryEntry (const qType &Qval, const qType &Q1, const qType &Q2, Eigen::Index dim) |
|
Qbasis< Symmetry > | add (const Qbasis< Symmetry > &other) const |
|
std::string | print () const |
|
std::string | printHistory () const |
|
bool | operator== (const Qbasis< Symmetry > &other) const |
|
std::vector< std::tuple< qType, Eigen::Index, Basis > >::iterator | begin () |
|
std::vector< std::tuple< qType, Eigen::Index, Basis > >::iterator | end () |
|
std::vector< std::tuple< qType, Eigen::Index, Basis > >::const_iterator | cbegin () const |
|
std::vector< std::tuple< qType, Eigen::Index, Basis > >::const_iterator | cend () const |
|
void | swap (Qbasis< Symmetry > &other) |
|
void | sort () |
|
|
std::size_t | size () const |
|
std::size_t | M () const |
|
std::size_t | fullM () const |
|
std::size_t | Dmax () const |
|
std::size_t | Nq () const |
|
|
const std::vector< qType > | qloc () const |
|
const std::vector< qType > | qs () const |
|
const std::unordered_set< qType > | unordered_qs () const |
|
|
qType | operator[] (const std::size_t index) const |
|
qType & | operator[] (const std::size_t index) |
|
|
void | push_back (const std::tuple< qType, Eigen::Index, std::vector< std::string > > &state) |
|
void | push_back (const qType &q_number, const Eigen::Index &inner_dim) |
|
void | push_back (const qType &q_number, const Eigen::Index &inner_dim, const std::vector< std::string > &idents) |
|