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

#include <mps_initializers.h>

Inheritance diagram for basis_mps_init_generic< Matrix, SymmGroup >:
mps_initializer< Matrix, SymmGroup >

Public Types

typedef std::vector
< boost::tuple< typename
SymmGroup::charge, size_t > > 
state_type
 

Public Member Functions

 basis_mps_init_generic (BaseParameters &params, std::vector< Index< SymmGroup > > const &phys_dims_, typename SymmGroup::charge right_end_, std::vector< int > const &site_type_)
 
 basis_mps_init_generic (state_type const &state_, std::vector< Index< SymmGroup > > const &phys_dims_, typename SymmGroup::charge right_end_, std::vector< int > const &site_type_)
 
void operator() (MPS< Matrix, SymmGroup > &mps)
 

Detailed Description

template<class Matrix, class SymmGroup>
class basis_mps_init_generic< Matrix, SymmGroup >

Definition at line 447 of file mps_initializers.h.

Member Typedef Documentation

template<class Matrix , class SymmGroup >
typedef std::vector<boost::tuple<typename SymmGroup::charge, size_t> > basis_mps_init_generic< Matrix, SymmGroup >::state_type

Definition at line 450 of file mps_initializers.h.

Constructor & Destructor Documentation

template<class Matrix , class SymmGroup >
basis_mps_init_generic< Matrix, SymmGroup >::basis_mps_init_generic ( BaseParameters params,
std::vector< Index< SymmGroup > > const &  phys_dims_,
typename SymmGroup::charge  right_end_,
std::vector< int > const &  site_type_ 
)
inline

Definition at line 451 of file mps_initializers.h.

455  : basis_index(params["init_basis_state"].as<std::vector<int> >())
456  , phys_dims(phys_dims_)
457  , right_end(right_end_)
458  , site_type(site_type_)
459  { }
template<class Matrix , class SymmGroup >
basis_mps_init_generic< Matrix, SymmGroup >::basis_mps_init_generic ( state_type const &  state_,
std::vector< Index< SymmGroup > > const &  phys_dims_,
typename SymmGroup::charge  right_end_,
std::vector< int > const &  site_type_ 
)
inline

Definition at line 461 of file mps_initializers.h.

465  : phys_dims(phys_dims_)
466  , right_end(right_end_)
467  , site_type(site_type_)
468  , state(state_)
469  { }

Member Function Documentation

template<class Matrix , class SymmGroup >
void basis_mps_init_generic< Matrix, SymmGroup >::operator() ( MPS< Matrix, SymmGroup > &  mps)
inlinevirtual

Implements mps_initializer< Matrix, SymmGroup >.

Definition at line 471 of file mps_initializers.h.

472  {
473  if (state.size() == 0) {
474  assert(basis_index.size() == mps.length());
475  state.resize(mps.length());
476  maquis::cout << "state: ";
477  for (int i=0; i<mps.length(); ++i) {
478  state[i] = phys_dims[site_type[i]].element(basis_index[i]);
479  maquis::cout << boost::get<0>(state[i]) << ":" << boost::get<1>(state[i])<< " ";
480  }
481  maquis::cout << "\n";
482  }
483 
484  mps = state_mps<Matrix>(state, phys_dims, site_type);
485  if (mps[mps.length()-1].col_dim()[0].first != right_end)
486  throw std::runtime_error("Initial state does not satisfy total quantum numbers.");
487  }
Index< SymmGroup > const & col_dim(size_t i) const
Definition: mps.h:61
size_t length() const
Definition: mps.h:58

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