1 # Parameters {#parameters}
3 In Table \ref common-params, Table \ref optim-params and Table \ref evolve-params we list all parameters and the
default values used by the applications. They are split between common %
MPS parameters (valid in all codes), optimization parameters (available only in `mps_optim`) and time evolution specific parameters (
for `mps_evolve`). Models, lattice and measurements are parameters of the ALPS model and lattice libraries, we point the reader to the ALPS paper \cite alps-paper and [ALPS website][alps-web]
for further details.
7 The %
MPS applications can be initialized with four different types of initial states.
10 The
default initial state constructs an %
MPS which contains all allowed quantum number sectors that fulfill the total quantum numbers chosen by the user. In each %
MPS tensor all sectors will have a maximum size of 5x5 and they will be filled with random numbers.
13 The thin initial state is an extension of the
default option. After constructing the
default %
MPS the routine performs a
compression retaining only a total 20 truncated states per site. This initial state reduces considerably the number of sectors that the code has to tackle in the warm up sweeps. Sometimes it leads to faster convergence.
16 A many body basis state is easily encoded in a product state as an %
MPS with bond dimension M=1. With
this option the user can design its own initial state listing the desired
local quantum numbers in the input file as illustrated in Table \ref common-params.
19 The checkpoint file generated by a
simulation can easily be reused in a
new simulation by specifying it in the `initfile` parameter. This option is often used to start a time evolution from the ground state of an other model.
22 ## Temporary memory ##
23 An %
MPS simulation easily requires more than 100 GB of memory
for the storage of boundary objects, i.e. partial contractions of the %
MPS network needed to reduce the complexity of the variational optimization to only \f$\mathcal{O}(M^3)\f$.
25 Our codes are capable of efficiently move
this temporary memory to disk. This option is enabled by giving a non-empty value to the parameter `storagedir`. Since the application will often write >100 GB of temporary
data it is advised to use fast filesystems, e.g. running on a
local hard disk instead of a network mount. Once a
simulation finishes the user can safely erase all temporary
data.
28 ## Common parameters ##
30 | Parameter | Default | Description |
31 | --------- |:-------: | ----------- |
32 | `MAXSTATES` | | Maximum size of the matrices \f$M_{\sigma_i}\f$ |
33 | `TRUNCATION` | 1e-8 | Smallest singular value to be kept |
34 | `seed` | 42 | Seed of the
internal random number generator |
35 | `CONSERVED_QUANTUMNUMBERS` | | Comma-separated list of the quantum numbers to be conserved |
36 | `QN_total` | | Total value of the quantum number `QN`. `QN` is one of the quantum numbers defined in the parameter `CONSERVED_QUANTUMNUMBERS`. Example: `N_total = 8` fixes the total number of particles to 8. |
37 | `initfile` | | Path to an existing checkpoint
MPS to use it as initial
MPS |
38 | `init_state` |
default | Initial state of the
simulation (in
case `initfile` is not set). Possible values: `
default', `thin', `local_quantumnumbers
'. |
39 | `initial_local_QN` | | Comma-separated list with the value of the local quantum number `QN` at every site |
40 | `MEASURE_LOCAL[NAME]` | | Defines a new local measurement called `NAME`. Its value specifies the operator to be measured. Example: `MEASURE_LOCAL[Local density] = "n"` |
41 | `MEASURE_AVERAGE[NAME]` | | Defines a new average measurement called `NAME`. Its value specifies the operator to be measured. Example: `MEASURE_AVERAGE[Density] = "n"` |
42 | `MEASURE_CORRELATIONS[NAME]` | | Defines a new correlation measurement called `NAME`. Its value specifies the operators to be correlated separated by ":" (colon) If the operators define two or more *BONDOPERATORS*, e.g., *Op_A* and *Op_B* the correlation measurement compute all observables \f$\left \langle {\psi} {\mathtt{Op_A}(i, i+1)\, \mathtt{Op_B}(j, j+1)} {\psi} \right \rangle\f$. Example: `MEASURE_CORRELATIONS[Onebody Density Matrix] = "bdag:b"` |
43 | `MEASURE_HALF_CORRELATIONS[NAME]` | | Same as `MEASURE_CORRELATIONS` but it does not exchange the order of operators. If the input is, e.g., `bdag:b`, the first operator will be evaluated at all locatios \f$i\in[0,L-2]\f$ but the second operator only at locations \f$j\in[i,L-1]\f$. |
44 | `MEASURE_LOCAL_AT[NAME]` | | Syntax for the value: `"op_1:\dots:op_n | \f$(i_{1\,1},\dots,i_{1\,n})\f$, \f$(i_{2\,1},\dots,i_{2\,n})\f$, \dots"`. Defines a new measurement called `NAME` where the sequence of operators `op_1:\dots:op_n` is applied to all tuples of indices (of length *n* like the number of operators) listed after the vertical bar symbol "|". |
45 | `MEASURE[EnergyVariance]` | False | Measure the energy variance |
46 | `MEASURE[Entropy]` | False | Measure the von Neumann entropy |
47 | `MEASURE[Renyi2]` | False | Measure *n=2* Renyi entropy |
48 | `ALWAYS_MEASURE` | | Comma-separated list of measurements to evaluate at the end of every sweep |
49 | `COMPLEX` | False | Use complex numbers. For time evolution simulations the default value is changed to True. |
50 | `storagedir` | | Path to the directory to be used for temporary storage. If empty, temporary storage is disabled. |
52 ## Optimization parameters ##
54 | Parameter | Default | Description |
55 | --------- |:-------: | ----------- |
56 |`SWEEPS` | | Number of sweeps |
57 |`NUMBER_EIGENVALUES` | 1 | Number of eigenstate to target |
58 |`optimization` | twosite | Optimisation algorithm. Possible values are `singlesite', `twosite
'. |
59 |`ngrowsweeps` | | Single site only. Number of initial sweeps where the correction factor has the value `alpha_initial`. |
60 |`nmainsweeps` | | Single site only. Number of sweeps after `ngrowsweeps`where the correction factor has the value `alpha_main`. |
61 |`alpha_initial` | 1e-2 | Correction factor for single site optimization in the initial part |
62 |`alpha_main` | 1e-4 | Correction factor for single site optimization in the main part |
63 |`alpha_final` | 1e-8 | Correction factor for single site optimization in the final part |
64 |`ietl_jcd_toll` | 1e-8 | Convergence tolerance of the Jacobi-Davidson solver |
65 |`ietl_jcd_gmres` | 0 | Convergence tolerance of the Jacobi-Davidson solver |
66 |`ietl_jcd_maxiter` | 8 | Maximum number of iterations in the Jacobi-Davidson solver |
68 ## Time evolution parameters ##
70 | Parameter | Default | Description |
71 | --------- | :-------: | ----------- |
72 | `DT` | | Time step |
73 | `IMG_TIMESTEPS` | 0 | Number of imaginary time sweeps to perform before the proceeding with the real time evolution |
74 | `TIMESTEPS` | | Total number of sweeps |
75 | `te_order` | fourth | Order of the trotter decomposition. Possible values: `second', `fourth
'. |
76 | `te_type` | nearest neighbors | Type of time evolution algorithm. Possible values: `nearest neighbors', `mpo
'. |
77 | `chkp_each` | 1 | A checkpoint is created every `chkp_each` time steps. |
78 | `measure_each` | 1 | Measurements are performed every `measure_each` time steps. |
79 | `update_each` | -1 | Update the Hamiltonian parameters every `update_each` time steps. Used while quenching Hamiltonian parameters. A negative value will never change the Hamiltonian. |
80 | `P[Time]` | | Values assigned to the parameter `P` at each time step |
83 [alps-web]: http://alps.comp-phys.org
std::map< std::string, MPO< Matrix, SymmGroup > > local(const Lattice &lat, std::vector< block_matrix< Matrix, SymmGroup > > const &identities, std::vector< block_matrix< Matrix, SymmGroup > > const &fillings, std::vector< std::pair< std::vector< block_matrix< Matrix, SymmGroup > >, bool > > const &ops)