|
VMPS++
|
Definition at line 41 of file DmrgSolver.h.
#include <DmrgSolver.h>
Public Member Functions | |
| DmrgSolver (DMRG::VERBOSITY::OPTION VERBOSITY=DMRG::VERBOSITY::SILENT) | |
| string | info () const |
| string | eigeninfo () const |
| double | memory (MEMUNIT memunit=GB) const |
| void | edgeState (const MpHamiltonian &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, qarray< Nq > Qtot_input, LANCZOS::EDGE::OPTION EDGE=LANCZOS::EDGE::GROUND, bool USE_STATE=false) |
| void | edgeState (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, qarray< Nq > Qtot_input, LANCZOS::EDGE::OPTION EDGE=LANCZOS::EDGE::GROUND, bool USE_STATE=false) |
| void | userSetGlobParam () |
| void | userSetDynParam () |
| void | userSetLocParam () |
| void | set_verbosity (DMRG::VERBOSITY::OPTION VERBOSITY) |
| DMRG::VERBOSITY::OPTION | get_verbosity () const |
| void | set_additional_terms (const vector< MpHamiltonian > &Hterms) |
| void | prepare (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, qarray< Nq > Qtot_input, bool USE_STATE=false) |
| void | halfsweep (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, LANCZOS::EDGE::OPTION EDGE=LANCZOS::EDGE::GROUND) |
| void | cleanup (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, LANCZOS::EDGE::OPTION EDGE=LANCZOS::EDGE::GROUND) |
| double | get_errEigval () const |
| double | get_errState () const |
| double | get_pivot () const |
| double | get_direction () const |
| void | push_back (const Mps< Symmetry, Scalar > &Psi0_input) |
| void | set_SweepStatus (const SweepStatus &SweepStat_input) |
| void | set_observable (string label, const Mpo< typename MpHamiltonian::Symmetry, typename MpHamiltonian::Scalar_ > &Operator, double N=1.) |
| void | iteration_zero (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, LANCZOS::EDGE::OPTION EDGE, double &time_lanczos, double &time_sweep, double &time_LR, double &time_overhead) |
| void | iteration_one (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, LANCZOS::EDGE::OPTION EDGE, double &time_lanczos, double &time_sweep, double &time_LR, double &time_overhead) |
| void | iteration_two (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, LANCZOS::EDGE::OPTION EDGE, double &time_lanczos, double &time_sweep, double &time_LR, double &time_overhead) |
Public Attributes | |
| DMRG::CONTROL::GLOB | GlobParam |
| DMRG::CONTROL::DYN | DynParam |
| DMRG::CONTROL::LOC | LocParam |
| double | Epenalty = 1e4 |
Private Types | |
| typedef Symmetry::qType | qType |
Private Member Functions | |
| void | calc_state_error (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, double &t_err) |
| size_t | loc1 () const |
| size_t | loc2 () const |
| void | sweep_to_edge (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, bool MAKE_ENVIRONMENT) |
| void | build_L (const vector< MpHamiltonian > &H, const Eigenstate< Mps< Symmetry, Scalar > > &Vout, size_t loc) |
| void | build_R (const vector< MpHamiltonian > &H, const Eigenstate< Mps< Symmetry, Scalar > > &Vout, size_t loc) |
| void | build_PL (const vector< MpHamiltonian > &H, const Eigenstate< Mps< Symmetry, Scalar > > &Vout, size_t loc) |
| void | build_PR (const vector< MpHamiltonian > &H, const Eigenstate< Mps< Symmetry, Scalar > > &Vout, size_t loc) |
| void | adapt_alpha_rsvd (const vector< MpHamiltonian > &H, Eigenstate< Mps< Symmetry, Scalar > > &Vout, LANCZOS::EDGE::OPTION EDGE) |
Private Attributes | |
| size_t | N_sites |
| size_t | N_phys |
| size_t | Dmax |
| size_t | Mmax |
| size_t | Nqmax |
| double | totalTruncWeight |
| size_t | Mmax_old |
| double | err_eigval |
| double | err_state |
| double | err_eigval_prev |
| vector< PivotMatrix1< Symmetry, Scalar, Scalar > > | Heff |
| double | Eold |
| double | DeltaEopt |
| double | max_alpha_rsvd |
| double | min_alpha_rsvd |
| bool | USER_SET_GLOBPARAM = false |
| bool | USER_SET_DYNPARAM = false |
| bool | USER_SET_LOCPARAM = false |
| SweepStatus | SweepStat |
| stringstream | errorCalcInfo |
| Mps< Symmetry, Scalar > | Vref |
| vector< Mps< Symmetry, Scalar > > | Psi0 |
| double | E0 |
| VectorXd | overlaps |
| double | gap |
| DMRG::VERBOSITY::OPTION | CHOSEN_VERBOSITY |
| vector< Mpo< typename MpHamiltonian::Symmetry, typename MpHamiltonian::Scalar_ > > | observables |
| vector< string > | obs_labels |
| vector< double > | obs_normalizations |
Static Private Attributes | |
| static constexpr size_t | Nq = Symmetry::Nq |
|
private |
Definition at line 44 of file DmrgSolver.h.
|
inline |
Definition at line 47 of file DmrgSolver.h.
|
private |
Definition at line 1795 of file DmrgSolver.h.
|
inlineprivate |
Constructs the left transfer matrix at chain site loc (left environment of loc).
Definition at line 1942 of file DmrgSolver.h.
|
inlineprivate |
Definition at line 1976 of file DmrgSolver.h.
|
inlineprivate |
Definition at line 1988 of file DmrgSolver.h.
|
inlineprivate |
Constructs the right transfer matrix at chain site loc (right environment of loc).
Definition at line 1959 of file DmrgSolver.h.
|
private |
Definition at line 877 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::cleanup | ( | const vector< MpHamiltonian > & | H, |
| Eigenstate< Mps< Symmetry, Scalar > > & | Vout, | ||
| LANCZOS::EDGE::OPTION | EDGE = LANCZOS::EDGE::GROUND |
||
| ) |
Definition at line 1560 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::edgeState | ( | const MpHamiltonian & | H, |
| Eigenstate< Mps< Symmetry, Scalar > > & | Vout, | ||
| qarray< Nq > | Qtot_input, | ||
| LANCZOS::EDGE::OPTION | EDGE = LANCZOS::EDGE::GROUND, |
||
| bool | USE_STATE = false |
||
| ) |
Definition at line 1662 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::edgeState | ( | const vector< MpHamiltonian > & | H, |
| Eigenstate< Mps< Symmetry, Scalar > > & | Vout, | ||
| qarray< Nq > | Qtot_input, | ||
| LANCZOS::EDGE::OPTION | EDGE = LANCZOS::EDGE::GROUND, |
||
| bool | USE_STATE = false |
||
| ) |
Definition at line 1669 of file DmrgSolver.h.
| string DmrgSolver< Symmetry, MpHamiltonian, Scalar >::eigeninfo |
Definition at line 226 of file DmrgSolver.h.
|
inline |
Returns the current direction of the sweep process.
Definition at line 120 of file DmrgSolver.h.
|
inline |
Returns the current error of the eigenvalue while the sweep process.
Definition at line 111 of file DmrgSolver.h.
|
inline |
Returns the current error of the state while the sweep process.
Definition at line 114 of file DmrgSolver.h.
|
inline |
Returns the current pivot site of the sweep process.
Definition at line 117 of file DmrgSolver.h.
|
inline |
Definition at line 71 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::halfsweep | ( | const vector< MpHamiltonian > & | H, |
| Eigenstate< Mps< Symmetry, Scalar > > & | Vout, | ||
| LANCZOS::EDGE::OPTION | EDGE = LANCZOS::EDGE::GROUND |
||
| ) |
Definition at line 749 of file DmrgSolver.h.
| string DmrgSolver< Symmetry, MpHamiltonian, Scalar >::info |
Definition at line 213 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::iteration_one | ( | const vector< MpHamiltonian > & | H, |
| Eigenstate< Mps< Symmetry, Scalar > > & | Vout, | ||
| LANCZOS::EDGE::OPTION | EDGE, | ||
| double & | time_lanczos, | ||
| double & | time_sweep, | ||
| double & | time_LR, | ||
| double & | time_overhead | ||
| ) |
Performs an 1-site iteration, e.g. solves the effective eigenvalue problem of the 1-site effective Hamiltonian and updates therewith the A-tensors directly.
Definition at line 1235 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::iteration_two | ( | const vector< MpHamiltonian > & | H, |
| Eigenstate< Mps< Symmetry, Scalar > > & | Vout, | ||
| LANCZOS::EDGE::OPTION | EDGE, | ||
| double & | time_lanczos, | ||
| double & | time_sweep, | ||
| double & | time_LR, | ||
| double & | time_overhead | ||
| ) |
Performs an 2-site iteration, e.g. solves the effective eigenvalue problem of the 2-site effective Hamiltonian and updates therewith the two-site wavefunction.
Definition at line 1398 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::iteration_zero | ( | const vector< MpHamiltonian > & | H, |
| Eigenstate< Mps< Symmetry, Scalar > > & | Vout, | ||
| LANCZOS::EDGE::OPTION | EDGE, | ||
| double & | time_lanczos, | ||
| double & | time_sweep, | ||
| double & | time_LR, | ||
| double & | time_overhead | ||
| ) |
Performs an 0-site iteration, e.g. solves the effective eigenvalue problem of the 0-site effective Hamiltonian and updates therewith the center-matrix C.
Definition at line 1178 of file DmrgSolver.h.
|
inlineprivate |
Definition at line 173 of file DmrgSolver.h.
|
inlineprivate |
Definition at line 174 of file DmrgSolver.h.
| double DmrgSolver< Symmetry, MpHamiltonian, Scalar >::memory | ( | MEMUNIT | memunit = GB | ) | const |
Definition at line 274 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::prepare | ( | const vector< MpHamiltonian > & | H, |
| Eigenstate< Mps< Symmetry, Scalar > > & | Vout, | ||
| qarray< Nq > | Qtot_input, | ||
| bool | USE_STATE = false |
||
| ) |
Definition at line 288 of file DmrgSolver.h.
|
inline |
Definition at line 122 of file DmrgSolver.h.
| void DmrgSolver< Symmetry, MpHamiltonian, Scalar >::set_additional_terms | ( | const vector< MpHamiltonian > & | Hterms | ) |
|
inline |
Compute observable during sweeping process
Definition at line 141 of file DmrgSolver.h.
|
inline |
Definition at line 135 of file DmrgSolver.h.
|
inline |
Definition at line 70 of file DmrgSolver.h.
|
private |
Definition at line 1526 of file DmrgSolver.h.
|
inline |
Definition at line 63 of file DmrgSolver.h.
|
inline |
Definition at line 62 of file DmrgSolver.h.
|
inline |
Definition at line 64 of file DmrgSolver.h.
|
private |
Definition at line 198 of file DmrgSolver.h.
|
private |
Definition at line 160 of file DmrgSolver.h.
|
private |
Definition at line 151 of file DmrgSolver.h.
| DMRG::CONTROL::DYN DmrgSolver< Symmetry, MpHamiltonian, Scalar >::DynParam |
Definition at line 67 of file DmrgSolver.h.
|
private |
Definition at line 194 of file DmrgSolver.h.
|
private |
Definition at line 158 of file DmrgSolver.h.
| double DmrgSolver< Symmetry, MpHamiltonian, Scalar >::Epenalty = 1e4 |
Energy penalty for projected-out states.
Definition at line 133 of file DmrgSolver.h.
|
private |
Definition at line 154 of file DmrgSolver.h.
|
private |
Definition at line 154 of file DmrgSolver.h.
|
private |
Definition at line 154 of file DmrgSolver.h.
|
private |
Definition at line 169 of file DmrgSolver.h.
|
private |
Definition at line 196 of file DmrgSolver.h.
| DMRG::CONTROL::GLOB DmrgSolver< Symmetry, MpHamiltonian, Scalar >::GlobParam |
Definition at line 66 of file DmrgSolver.h.
|
private |
Definition at line 156 of file DmrgSolver.h.
| DMRG::CONTROL::LOC DmrgSolver< Symmetry, MpHamiltonian, Scalar >::LocParam |
Definition at line 68 of file DmrgSolver.h.
|
private |
Definition at line 161 of file DmrgSolver.h.
|
private |
Definition at line 161 of file DmrgSolver.h.
|
private |
Definition at line 151 of file DmrgSolver.h.
|
private |
Definition at line 153 of file DmrgSolver.h.
|
private |
Definition at line 150 of file DmrgSolver.h.
|
private |
Definition at line 150 of file DmrgSolver.h.
|
staticconstexprprivate |
Definition at line 43 of file DmrgSolver.h.
|
private |
Definition at line 151 of file DmrgSolver.h.
|
private |
Definition at line 201 of file DmrgSolver.h.
|
private |
Definition at line 202 of file DmrgSolver.h.
|
private |
Definition at line 200 of file DmrgSolver.h.
|
private |
Definition at line 195 of file DmrgSolver.h.
|
private |
Projected-out states to find the edge of the spectrum.
Definition at line 193 of file DmrgSolver.h.
|
private |
Definition at line 167 of file DmrgSolver.h.
|
private |
Definition at line 152 of file DmrgSolver.h.
|
private |
Definition at line 164 of file DmrgSolver.h.
|
private |
Definition at line 163 of file DmrgSolver.h.
|
private |
Definition at line 165 of file DmrgSolver.h.
|
private |
Definition at line 170 of file DmrgSolver.h.