27 #ifndef MAQUIS_DMRG_MODELS_MODELS_H
28 #define MAQUIS_DMRG_MODELS_MODELS_H
40 #include <boost/shared_ptr.hpp>
46 template <
class Matrix,
class SymmGroup>
56 typedef typename std::vector<term_descriptor>
terms_type;
89 template <
class Matrix,
class SymmGroup>
90 boost::shared_ptr<model_impl<Matrix, SymmGroup> >
95 template <
class Matrix,
class SymmGroup>
98 typedef boost::shared_ptr<impl_type> impl_ptr;
119 Model(impl_ptr impl) : impl_(impl) { }
134 op_t const&
get_operator(std::string
const & name,
size_t type=0)
const {
return impl_->get_operator(name, type); }
virtual op_t const & get_operator(std::string const &name, size_t type) const
op_t const & filling_matrix(size_t type=0) const
definition of Lattice base class
virtual SymmGroup::charge total_quantum_numbers(BaseParameters &parms) const =0
boost::ptr_vector< measurement< Matrix, SymmGroup > > measurements_type
tag_type get_operator_tag(std::string const &name, size_t type=0) const
block_matrix< Matrix, SymmGroup > op_t
terms_type const & hamiltonian_terms() const
impl_type::table_ptr table_ptr
Model(Lattice const &lattice, BaseParameters &parms)
measurements_type measurements() const
virtual tag_type get_operator_tag(std::string const &name, size_t type) const =0
op_t const & identity_matrix(size_t type=0) const
virtual table_ptr operators_table() const =0
declaration of block_matrix class
boost::shared_ptr< table_type > table_ptr
table_type::tag_type tag_type
std::vector< term_descriptor > terms_type
virtual op_t const & identity_matrix(size_t type) const
tag_type filling_matrix_tag(size_t type=0) const
initializer_ptr initializer(Lattice const &lat, BaseParameters &parms) const
virtual tag_type filling_matrix_tag(size_t type) const =0
definition of Measurement base class
SymmGroup::charge total_quantum_numbers(BaseParameters &parms) const
impl_type::tag_type tag_type
virtual initializer_ptr initializer(Lattice const &lat, BaseParameters &parms) const
impl_type::initializer_ptr initializer_ptr
boost::shared_ptr< model_impl< Matrix, SymmGroup > > model_factory(Lattice const &lattice, BaseParameters &parms)
model factory
virtual void update(BaseParameters const &p)=0
::term_descriptor< typename Matrix::value_type > term_descriptor
impl_type::term_descriptor term_descriptor
virtual terms_type const & hamiltonian_terms() const
impl_type::measurements_type measurements_type
OPTable< Matrix, SymmGroup >::tag_type tag_type
table_ptr operators_table() const
void update(BaseParameters const &p)
virtual Index< SymmGroup > const & phys_dim(size_t type) const =0
definition term_descriptor, the description of terms in the Hamiltonian
tag_type identity_matrix_tag(size_t type=0) const
Index< SymmGroup > const & phys_dim(size_t type=0) const
functions to initialize the MPS
virtual measurements_type measurements() const =0
boost::shared_ptr< mps_initializer< Matrix, SymmGroup > > initializer_ptr
TagHandler< Matrix, SymmGroup > table_type
op_t const & get_operator(std::string const &name, size_t type=0) const
virtual tag_type identity_matrix_tag(size_t type) const =0
virtual op_t const & filling_matrix(size_t type) const
declaration of OPTable, TagHandler and KronHandler
impl_type::table_type table_type
impl_type::terms_type terms_type