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

#include <mps_initializers.h>

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

Public Member Functions

 default_mps_init (BaseParameters &parms, std::vector< Index< SymmGroup > > const &phys_dims_, typename SymmGroup::charge right_end_, std::vector< int > const &site_type_)
 
void operator() (MPS< Matrix, SymmGroup > &mps)
 
void init_sectors (MPS< Matrix, SymmGroup > &mps, size_t Mmax, bool fillrand=true, typename Matrix::value_type val=0)
 

Public Attributes

std::size_t init_bond_dimension
 
std::vector< Index< SymmGroup > > phys_dims
 
SymmGroup::charge right_end
 
std::vector< int > site_type
 

Detailed Description

template<class Matrix, class SymmGroup>
struct default_mps_init< Matrix, SymmGroup >

Definition at line 46 of file mps_initializers.h.

Constructor & Destructor Documentation

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

Definition at line 48 of file mps_initializers.h.

52  : init_bond_dimension(parms["init_bond_dimension"])
53  , phys_dims(phys_dims_)
54  , right_end(right_end_)
55  , site_type(site_type_)
56  { }
SymmGroup::charge right_end
std::vector< Index< SymmGroup > > phys_dims
std::size_t init_bond_dimension
std::vector< int > site_type

Member Function Documentation

template<class Matrix , class SymmGroup >
void default_mps_init< Matrix, SymmGroup >::init_sectors ( MPS< Matrix, SymmGroup > &  mps,
size_t  Mmax,
bool  fillrand = true,
typename Matrix::value_type  val = 0 
)
inline

Definition at line 63 of file mps_initializers.h.

64  {
65  std::size_t L = mps.length();
66 
67  maquis::cout << "Right end: " << right_end << std::endl;
68 
69  std::vector<Index<SymmGroup> > allowed = allowed_sectors(site_type, phys_dims, right_end, Mmax);
70 
71  parallel_for(/*removed...*/, std::size_t i = 0; i < L; ++i) {
72  mps[i] = MPSTensor<Matrix, SymmGroup>(phys_dims[site_type[i]], allowed[i], allowed[i+1], fillrand, val);
73  mps[i].divide_by_scalar(mps[i].scalar_norm());
74  }
75 
76 #ifndef NDEBUG
77  maquis::cout << "init norm: " << norm(mps) << std::endl;
78  maquis::cout << mps.description() << std::endl;
79 #endif
80  }
SymmGroup::charge right_end
std::vector< Index< SymmGroup > > phys_dims
std::vector< Index< SymmGroup > > allowed_sectors(std::vector< int > const &site_type, std::vector< Index< SymmGroup > > const &phys_dims, typename SymmGroup::charge right_end, std::size_t Mmax)
Definition: mps_sectors.h:42
#define parallel_for(constraint,...)
MPS< Matrix, SymmGroup >::scalar_type norm(MPS< Matrix, SymmGroup > const &mps)
Definition: mps_mpo_ops.h:120
size_t length() const
Definition: mps.h:58
std::string description() const
Definition: mps.hpp:35
std::vector< int > site_type
template<class Matrix , class SymmGroup >
void default_mps_init< Matrix, SymmGroup >::operator() ( MPS< Matrix, SymmGroup > &  mps)
inlinevirtual

Implements mps_initializer< Matrix, SymmGroup >.

Definition at line 58 of file mps_initializers.h.

59  {
60  init_sectors(mps, this->init_bond_dimension, true);
61  }
void init_sectors(MPS< Matrix, SymmGroup > &mps, size_t Mmax, bool fillrand=true, typename Matrix::value_type val=0)
std::size_t init_bond_dimension

Member Data Documentation

template<class Matrix , class SymmGroup >
std::size_t default_mps_init< Matrix, SymmGroup >::init_bond_dimension

Definition at line 82 of file mps_initializers.h.

template<class Matrix , class SymmGroup >
std::vector<Index<SymmGroup> > default_mps_init< Matrix, SymmGroup >::phys_dims

Definition at line 83 of file mps_initializers.h.

template<class Matrix , class SymmGroup >
SymmGroup::charge default_mps_init< Matrix, SymmGroup >::right_end

Definition at line 84 of file mps_initializers.h.

template<class Matrix , class SymmGroup >
std::vector<int> default_mps_init< Matrix, SymmGroup >::site_type

Definition at line 85 of file mps_initializers.h.


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