ALPS MPS Codes
Reference documentation.
Main Page
Related Pages
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
framework
dmrg
models
coded
factory_lattice.hpp
Go to the documentation of this file.
1
/*****************************************************************************
2
*
3
* ALPS MPS DMRG Project
4
*
5
* Copyright (C) 2013 Institute for Theoretical Physics, ETH Zurich
6
* 2011-2011 by Michele Dolfi <dolfim@phys.ethz.ch>
7
*
8
* This software is part of the ALPS Applications, published under the ALPS
9
* Application License; you can use, redistribute it and/or modify it under
10
* the terms of the license, either version 1 or (at your option) any later
11
* version.
12
*
13
* You should have received a copy of the ALPS Application License along with
14
* the ALPS Applications; see the file LICENSE.txt. If not, the license is also
15
* available from http://alps.comp-phys.org/.
16
*
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
* FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
20
* SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
21
* FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
22
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23
* DEALINGS IN THE SOFTWARE.
24
*
25
*****************************************************************************/
26
27
#ifndef MAQUIS_DMRG_MODELS_CODED_FACTORY_LATTICE_H
28
#define MAQUIS_DMRG_MODELS_CODED_FACTORY_LATTICE_H
29
30
#include "
dmrg/models/coded/lattice.hpp
"
31
32
inline
boost::shared_ptr<lattice_impl>
33
coded_lattice_factory
(
BaseParameters
& parms)
34
{
35
typedef
boost::shared_ptr<lattice_impl> impl_ptr;
36
if
(parms[
"LATTICE"
] == std::string(
"periodic chain lattice"
))
37
return
impl_ptr(
new
ChainLattice
(parms,
true
));
38
else
if
(parms[
"LATTICE"
] == std::string(
"chain lattice"
))
39
return
impl_ptr(
new
ChainLattice
(parms,
false
));
40
else
if
(parms[
"LATTICE"
] == std::string(
"open chain lattice"
))
41
return
impl_ptr(
new
ChainLattice
(parms,
false
));
42
else
if
(parms[
"LATTICE"
] == std::string(
"square lattice"
))
43
return
impl_ptr(
new
SquareLattice
(parms));
44
else
if
(parms[
"LATTICE"
] == std::string(
"open square lattice"
))
45
return
impl_ptr(
new
SquareLattice
(parms));
46
else
{
47
throw
std::runtime_error(
"Don't know this lattice!"
);
48
}
49
}
50
51
#endif
ChainLattice
Definition:
lattice.hpp:41
lattice.hpp
BaseParameters
Definition:
BaseParameters.h:65
coded_lattice_factory
boost::shared_ptr< lattice_impl > coded_lattice_factory(BaseParameters &parms)
Definition:
factory_lattice.hpp:33
SquareLattice
Definition:
lattice.hpp:141
Generated on Thu Aug 21 2014 11:18:54 for ALPS MPS Codes by
1.8.7