VMPS++
|
Base class for all the sweeping stuff. Needs to know PivotMatrixType
because sweeps using DMRG::BROOM::RDM and DMRG::BROOM::RICH_SVD involve non-local information, i.e. knowledge of the transfer matrices and the Hamiltonian (given by PivotMatrix1).
Definition at line 28 of file DmrgJanitor.h.
#include <DmrgJanitor.h>
Public Member Functions | |
DmrgJanitor () | |
DmrgJanitor (size_t L_input) | |
void | set_defaultCutoffs () |
void | set_pivot (int pivot_input) |
void | sweep (size_t loc, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL) |
void | skim (DMRG::DIRECTION::OPTION DIR, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL) |
void | skim (DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL) |
void | entropy_skim () |
void | sweepStep (DMRG::DIRECTION::OPTION DIR, size_t loc, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL, bool DISCARD_U_or_V=false) |
virtual void | rightSweepStep (size_t loc, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL, bool DISCARD_V=false) |
virtual void | leftSweepStep (size_t loc, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL, bool DISCARD_U=false) |
size_t | length () const |
Public Attributes | |
double | eps_svd |
double | eps_truncWeight |
double | alpha_rsvd |
size_t | max_Nsv |
size_t | min_Nsv |
int | max_Nrich |
Protected Attributes | |
int | pivot = -1 |
size_t | N_sites |
DmrgJanitor< PivotMatrixType >::DmrgJanitor |
Definition at line 117 of file DmrgJanitor.h.
DmrgJanitor< PivotMatrixType >::DmrgJanitor | ( | size_t | L_input | ) |
Definition at line 124 of file DmrgJanitor.h.
void DmrgJanitor< PivotMatrixType >::entropy_skim |
Like skim, but sets eps_svd temporarily to 0.
Definition at line 176 of file DmrgJanitor.h.
|
inlinevirtual |
Core function for a sweep to the left. Just a virtual placeholder in DmrgJanitor, overwritten by Mps with the real code.
loc | : Sweeps to the left from the site loc , updating the A-matrices at loc and loc-1 , shifting the pivot to loc-1 . |
TOOL | : with which broom to sweep, see DMRG::BROOM::OPTION |
H | : Non-local information for DMRG::BROOM::RDM and DMRG::BROOM::RICH_SVD enters thorugh here. |
DISCARD_U | If true , don't multiply the U-matrix onto the next site |
Reimplemented in Mps< Symmetry, Scalar >.
Definition at line 87 of file DmrgJanitor.h.
|
inline |
Returns the length of the chain.
Definition at line 92 of file DmrgJanitor.h.
|
inlinevirtual |
Core function for a sweep to the right. Just a virtual placeholder in DmrgJanitor, overwritten by Mps with the real code.
loc | : Sweeps to the right from the site loc , updating the A-matrices at loc and loc+1 , shifting the pivot to loc+1 . |
TOOL | : with which broom to sweep, see DMRG::BROOM::OPTION |
H | : Non-local information for DMRG::BROOM::RDM and DMRG::BROOM::RICH_SVD enters thorugh here. |
DISCARD_V | If true , don't multiply the V-matrix onto the next site |
Reimplemented in Mps< Symmetry, Scalar >.
Definition at line 78 of file DmrgJanitor.h.
void DmrgJanitor< PivotMatrixType >::set_defaultCutoffs |
Definition at line 132 of file DmrgJanitor.h.
|
inline |
Definition at line 104 of file DmrgJanitor.h.
void DmrgJanitor< PivotMatrixType >::skim | ( | DMRG::BROOM::OPTION | TOOL, |
PivotMatrixType * | H = NULL |
||
) |
Makes a full sweep to the opposite edge. Mainly useful for testing purposes. Asserts that the pivot
is = 0 or = N_sites-1
.
TOOL | : with which broom to sweep, see DMRG::BROOM::OPTION |
H | : Non-local information for DMRG::BROOM::RDM and DMRG::BROOM::RICH_SVD enters thorugh here. |
Definition at line 160 of file DmrgJanitor.h.
void DmrgJanitor< PivotMatrixType >::skim | ( | DMRG::DIRECTION::OPTION | DIR, |
DMRG::BROOM::OPTION | TOOL, | ||
PivotMatrixType * | H = NULL |
||
) |
Makes a full sweep to the left or right. Mainly useful for testing purposes. Asserts that the pivot
is =-1 or at the opposite edge.
DIR | : If DMRG::DIRECTION::LEFT, sweeps to left. If DMRG::DIRECTION::RIGHT, sweeps to right. |
TOOL | : with which broom to sweep, see DMRG::BROOM::OPTION |
H | : Non-local information for DMRG::BROOM::RDM and DMRG::BROOM::RICH_SVD enters thorugh here. |
Definition at line 144 of file DmrgJanitor.h.
void DmrgJanitor< PivotMatrixType >::sweep | ( | size_t | loc, |
DMRG::BROOM::OPTION | TOOL, | ||
PivotMatrixType * | H = NULL |
||
) |
Sweeps from pivot
to a specific site. Mainly useful for testing purposes.
loc | : pivot will go here |
TOOL | : with which broom to sweep, see DMRG::BROOM::OPTION |
H | : Non-local information for DMRG::BROOM::RDM and DMRG::BROOM::RICH_SVD enters thorugh here. |
Definition at line 197 of file DmrgJanitor.h.
|
inline |
Calls the next sweep step from site loc
according to the direction DIR
.
Definition at line 217 of file DmrgJanitor.h.
double DmrgJanitor< PivotMatrixType >::alpha_rsvd |
Cutoff criterion for DMRG::BROOM::OPTION.
Definition at line 97 of file DmrgJanitor.h.
double DmrgJanitor< PivotMatrixType >::eps_svd |
Cutoff criterion for DMRG::BROOM::OPTION.
Definition at line 97 of file DmrgJanitor.h.
double DmrgJanitor< PivotMatrixType >::eps_truncWeight |
Cutoff criterion for DMRG::BROOM::OPTION.
Definition at line 97 of file DmrgJanitor.h.
int DmrgJanitor< PivotMatrixType >::max_Nrich |
Cutoff criterion for DMRG::BROOM::OPTION.
Definition at line 99 of file DmrgJanitor.h.
size_t DmrgJanitor< PivotMatrixType >::max_Nsv |
Cutoff criterion for DMRG::BROOM::OPTION.
Definition at line 98 of file DmrgJanitor.h.
size_t DmrgJanitor< PivotMatrixType >::min_Nsv |
Cutoff criterion for DMRG::BROOM::OPTION.
Definition at line 98 of file DmrgJanitor.h.
|
protected |
Length of the chain.
Definition at line 112 of file DmrgJanitor.h.
|
protected |
The pivot site (also called "orthogonality centre", but "pivot" is so much better). All matrices to the left are left-canonical , all matrices to the right are right-canonical . If pivot==-1
, there is no orthogonality. Can be tested with Mps::test_ortho().
Definition at line 110 of file DmrgJanitor.h.