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.