ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DmrgParameters.h
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 Bela Bauer <bauerb@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 DMRGPARAMETERS2_H
28 #define DMRGPARAMETERS2_H
29 
30 #include "BaseParameters.h"
31 
33 {
34 public:
35  DmrgParameters() : BaseParameters() { init_options(); }
36  DmrgParameters(std::ifstream& param_file)
37  : BaseParameters(param_file)
38  {
39  init_options();
40  }
42  : BaseParameters(p)
43  {
44  init_options();
45  }
46 
47 private:
48 
49  void init_options()
50  {
51  using parameters::value;
52 
53  add_option("COMPLEX", "use complex numbers", value(false));
54 
55  add_option("truncation_initial", "Initial value for the truncation error", value(1e-16));
56  add_option("truncation_final", "Final value for the truncation", value(1e-16));
57 
58  add_option("init_bond_dimension", "", value(5));
59  add_option("max_bond_dimension", "");
60  add_option("sweep_bond_dimensions", "");
61 
62  add_option("optimization", "singlesite or twosite", value("twosite"));
63 
64  add_option("alpha_initial","", value(1e-2));
65  add_option("alpha_main", "", value(1e-4));
66  add_option("alpha_final", "", value(1e-8));
67 
68  add_option("eigensolver", "", value("IETL_JCD"));
69  add_option("ietl_jcd_tol", "", value(1e-8));
70  add_option("ietl_jcd_gmres", "", value(0));
71  add_option("ietl_jcd_maxiter", "", value(8));
72 
73  add_option("nsweeps", "");
74  add_option("nmainsweeps", "", 0);
75  add_option("ngrowsweeps", "", 0);
76 
77  add_option("resultfile", "");
78  add_option("chkpfile", "");
79  add_option("initfile", "", value(""));
80 
81  add_option("donotsave", "", value(0));
82  add_option("run_seconds", "", value(0));
83  add_option("storagedir", "", value(""));
84  add_option("use_compressed", "", value(0));
85  add_option("seed", "", value(42));
86  add_option("ALWAYS_MEASURE", "comma separated list of measurements", value(""));
87  add_option("measure_each", "", value(1));
88  add_option("chkp_each", "", value(1));
89  add_option("update_each", "", value(-1));
90  add_option("entanglement_spectra", "", value(0));
91 
92 
93  add_option("expm_method", "algorithm used for exp(-i H dt): heev (default), geev", value("heev"));
94  add_option("te_type", "time evolution algorithm: nn (default), mpo", value("nn"));
95  add_option("te_optim", "optimized nn time evolution", value(true));
96  add_option("te_order", "trotter decomposition: second, fourth (default)", value("fourth"));
97  add_option("dt", "time step in time eovlution", value(1e-3));
98  add_option("nsweeps_img", "number of imaginary time steps", value(0));
99 
100  add_option("ngrainings", "", value(0));
101  add_option("finegrain_optim", "", value(false));
102 
103  add_option("init_state", "", value("default"));
104  add_option("init_coeff", "coefficients for coherent init", value(""));
105  add_option("init_basis_state", "local indexes for basis state init", value(""));
106 
107  add_option("symmetry", "none, u1 or 2u1", value("u1"));
108  add_option("lattice_library", "", value("alps"));
109  add_option("model_library", "", value("alps"));
110  add_option("model_file", "path to model parameters", value(""));
111 
112  add_option("beta_mode", "", value(0));
113 
114  add_option("NUMBER_EIGENVALUES", "", value(1));
115  add_option("n_ortho_states", "", value(0));
116  add_option("ortho_states", "comma separated list of filenames", "");
117 
118  add_option("MEASURE[EnergyVariance]", "", value(0));
119  add_option("MEASURE[Entropy]", "", value(false));
120  add_option("MEASURE[Renyi2]", "", value(false));
121  }
122 
123 };
124 
126 {
127 public:
128  ModelParameters() : BaseParameters() { init_options(); }
129  ModelParameters(std::ifstream& param_file)
130  : BaseParameters(param_file)
131  {
132  init_options();
133  }
135  : BaseParameters(p)
136  {
137  init_options();
138  }
139 
140 
141 private:
142 
143  void init_options()
144  {
145  using parameters::value;
146 
147  add_option("MODEL", "");
148  add_option("LATTICE", "");
149  add_option("alps_lattice", "");
150 
151  add_option("L", "");
152  add_option("W", "");
153 
154  add_option("Jxy", "");
155  add_option("Jx", "");
156  add_option("Jy", "");
157  add_option("Jz", "");
158  add_option("Jxy1", "");
159  add_option("Jz1", "");
160  add_option("J1", "");
161  add_option("J2", "");
162 
163  add_option("U", "");
164  add_option("t", "");
165  add_option("t1", "");
166  add_option("t2", "");
167 
168  add_option("theta", "");
169  add_option("h0", "");
170  add_option("pin", "");
171  add_option("y", "", value(1));
172  add_option("x", "", value(1));
173  add_option("z", "", value(1));
174  add_option("delta", "");
175 
176  add_option("K0", "");
177  add_option("K1", "");
178 
179  add_option("penalty", "");
180  add_option("twist", "");
181  add_option("move", "");
182 
183  add_option("Nmax", "");
184  add_option("mu", "", value(0));
185  add_option("mu0", "", value(0));
186  add_option("h", "", value(1));
187  add_option("c", "", value(0));
188  add_option("V0", "", value(0));
189  add_option("k", "", value(0));
190  add_option("a", "", value(1));
191  add_option("Ndiscr", "");
192  add_option("omega", "", value(0.));
193  add_option("shift", "", value(0.));
194 
195  add_option("V" , "", value(0.));
196  add_option("Lambda" , "", value(0.));
197  add_option("Delta" , "", value(0.));
198  add_option("Gamma1a", "", value(0.));
199  add_option("Gamma1b", "", value(0.));
200  add_option("Gamma2" , "", value(0.));
201  add_option("nbar" , "", value(0.));
202 
203  add_option("u1_total_charge", "");
204  add_option("u1_total_charge1", "");
205  add_option("u1_total_charge2", "");
206 
207  add_option("orbital_order", "comma separated list of orbital numbers");
208  add_option("hf_occ", "comma separated list of orbital occupancies for Hartree Fock initial state");
209 
210  add_option("integral_cutoff", "Ignore electron integrals below a certain magnitude", value(1.e-20));
211 
212  add_option("MEASURE_CONTINUUM[Psi energy]", "", value(false));
213  add_option("MEASURE_CONTINUUM[Density]", "", value(true));
214  add_option("MEASURE_CONTINUUM[Local density]", "", value(true));
215  add_option("MEASURE_CONTINUUM[Onebody density matrix]", "", value(false));
216 
217  add_option("MEASURE[Density]", "", value(false));
218  add_option("MEASURE[Local density]", "", value(false));
219  add_option("MEASURE[Local density^2]", "", value(false));
220  add_option("MEASURE[Onebody density matrix]", "", value(false));
221  add_option("MEASURE[Density correlation]", "", value(false));
222 
223  add_option("RUN_FINITE_T", "", value(false));
224  }
225 
226 };
227 
228 #endif
DmrgParameters(BaseParameters const &p)
ModelParameters(BaseParameters const &p)
void add_option(std::string const &name, std::string const &desc, parameters::value const &val=parameters::value())
ModelParameters(std::ifstream &param_file)
DmrgParameters(std::ifstream &param_file)