ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
generate_mpo::CorrMaker< Matrix, SymmGroup > Class Template Reference

#include <corr_maker.hpp>

Inheritance diagram for generate_mpo::CorrMaker< Matrix, SymmGroup >:
generate_mpo::CorrMakerBase< Matrix, SymmGroup >

Public Member Functions

 CorrMaker (Lattice const &lat_, const std::vector< op_t > &ident_, const std::vector< op_t > &fill_, std::vector< std::pair< std::vector< op_t >, bool > > const &ops, int ref=-1)
 
MPO< Matrix, SymmGroup > create_mpo ()
 
std::string description () const
 
vector< vector< size_t > > const & numeric_labels ()
 

Detailed Description

template<class Matrix, class SymmGroup>
class generate_mpo::CorrMaker< Matrix, SymmGroup >

Definition at line 56 of file corr_maker.hpp.

Constructor & Destructor Documentation

template<class Matrix , class SymmGroup >
generate_mpo::CorrMaker< Matrix, SymmGroup >::CorrMaker ( Lattice const &  lat_,
const std::vector< op_t > &  ident_,
const std::vector< op_t > &  fill_,
std::vector< std::pair< std::vector< op_t >, bool > > const &  ops,
int  ref = -1 
)
inline

Definition at line 64 of file corr_maker.hpp.

69  : lat(lat_)
70  , prempo(lat.size())
71  , tags(lat.size())
72  , used(lat.size())
73  , with_sign(lat.size()+2)
74  , identities(ident_.size())
75  , fillings(fill_.size())
76  , op_tags(ops.size())
77  {
78  /// register operators
79  for (int type=0; type<ident_.size(); ++type)
80  identities[type] = tag_handler.register_op(ident_[type], tag_detail::bosonic);
81  for (int type=0; type<fill_.size(); ++type)
82  fillings[type] = tag_handler.register_op(fill_[type], tag_detail::bosonic);
83 
84  for (size_t n=0; n<ops.size(); ++n) {
85  op_tags[n].first.resize(ops[n].first.size());
86  op_tags[n].second = ops[n].second;
87  std::vector<tag_type> & tops = op_tags[n].first;
88  for (int type=0; type<tops.size(); ++type)
89  tops[type] = tag_handler.register_op(ops[n].first[type], ops[n].second ? tag_detail::fermionic : tag_detail::bosonic);
90  }
91 
92  with_sign[0][0] = false;
93  recurse(0, 0, 0, std::vector<size_t>(), ref);
94  }
pos_t size() const
Definition: lattice.h:115

Member Function Documentation

template<class Matrix , class SymmGroup >
MPO<Matrix, SymmGroup> generate_mpo::CorrMaker< Matrix, SymmGroup >::create_mpo ( )
inlinevirtual

Implements generate_mpo::CorrMakerBase< Matrix, SymmGroup >.

Definition at line 96 of file corr_maker.hpp.

97  {
98  MPO<Matrix, SymmGroup> r(prempo.size());
99  for (size_t p = 1; p < prempo.size()-1; ++p)
100  r[p] = as_bulk(prempo[p]);
101  r[0] = as_left(prempo[0]);
102  r[prempo.size()-1] = as_right(*prempo.rbegin());
103 
104  return r;
105  }
Definition: mpo.h:36
template<class Matrix , class SymmGroup >
std::string generate_mpo::CorrMaker< Matrix, SymmGroup >::description ( ) const
inlinevirtual

Implements generate_mpo::CorrMakerBase< Matrix, SymmGroup >.

Definition at line 107 of file corr_maker.hpp.

108  {
109  std::ostringstream ss;
110  for (size_t p = 0; p < prempo.size(); ++p)
111  {
112  ss << "Site: " << p << std::endl;
113  for (typename vector<tag>::const_iterator it = tags[p].begin(); it != tags[p].end(); ++it)
114  ss << " " << get<0>(*it) << " " << get<1>(*it) << " " << get<2>(*it) << std::endl;
115  }
116  return ss.str();
117  }
template<class Matrix , class SymmGroup >
vector<vector<size_t> > const& generate_mpo::CorrMaker< Matrix, SymmGroup >::numeric_labels ( )
inlinevirtual

Implements generate_mpo::CorrMakerBase< Matrix, SymmGroup >.

Definition at line 119 of file corr_maker.hpp.

119 { return labels; }

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