ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | Functions
model_factory_symm.h File Reference
#include "matrices.h"
#include "dmrg/models/coded/factory.h"
#include "dmrg/models/factory/initializer_factory.h"
#include "dmrg/models/alps/model.hpp"

Go to the source code of this file.

Macros

#define impl_model_factory(MATRIX, SYMMGROUP)
 

Functions

template<class Matrix , class SymmGroup >
boost::shared_ptr< model_impl
< Matrix, SymmGroup > > 
model_factory (Lattice const &lattice, BaseParameters &parms)
 

Macro Definition Documentation

#define impl_model_factory (   MATRIX,
  SYMMGROUP 
)
Value:
template boost::shared_ptr<model_impl<MATRIX, SYMMGROUP> > \
model_factory<MATRIX,SYMMGROUP>(Lattice const&, BaseParameters &);
pimpl resolved Lattice
Definition: lattice.h:84

Definition at line 36 of file model_factory_symm.h.

Function Documentation

template<class Matrix , class SymmGroup >
boost::shared_ptr<model_impl<Matrix, SymmGroup> > model_factory ( Lattice const &  lattice,
BaseParameters parms 
)

model factory

Definition at line 43 of file model_factory_symm.h.

44 {
45  typedef boost::shared_ptr<model_impl<Matrix, SymmGroup> > impl_ptr;
46  if (parms["model_library"] == "alps") {
47  if (parms["lattice_library"] != "alps")
48  throw std::runtime_error("ALPS models require ALPS lattice.");
49  return impl_ptr( new ALPSModel<Matrix, SymmGroup>(lattice, parms) );
50  } else if (parms["model_library"] == "coded") {
51  return coded_model_factory<Matrix, SymmGroup>::parse(lattice, parms);
52  } else {
53  throw std::runtime_error("Don't know this model_library!");
54  }
55 
56 }
static boost::shared_ptr< model_impl< Matrix, SymmGroup > > parse(Lattice const &, BaseParameters &)