VMPS++
Loading...
Searching...
No Matches
DmrgJanitor< PivotMatrixType > Class Template Reference

Detailed Description

template<typename PivotMatrixType>
class DmrgJanitor< PivotMatrixType >

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>

Inheritance diagram for DmrgJanitor< PivotMatrixType >:

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
 

Constructor & Destructor Documentation

◆ DmrgJanitor() [1/2]

template<typename PivotMatrixType >
DmrgJanitor< PivotMatrixType >::DmrgJanitor

Definition at line 117 of file DmrgJanitor.h.

◆ DmrgJanitor() [2/2]

template<typename PivotMatrixType >
DmrgJanitor< PivotMatrixType >::DmrgJanitor ( size_t  L_input)

Definition at line 124 of file DmrgJanitor.h.

Member Function Documentation

◆ entropy_skim()

template<typename PivotMatrixType >
void DmrgJanitor< PivotMatrixType >::entropy_skim

Like skim, but sets eps_svd temporarily to 0.

Definition at line 176 of file DmrgJanitor.h.

◆ leftSweepStep()

template<typename PivotMatrixType >
virtual void DmrgJanitor< PivotMatrixType >::leftSweepStep ( size_t  loc,
DMRG::BROOM::OPTION  TOOL,
PivotMatrixType *  H = NULL,
bool  DISCARD_U = false 
)
inlinevirtual

Core function for a sweep to the left. Just a virtual placeholder in DmrgJanitor, overwritten by Mps with the real code.

Parameters
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_UIf true, don't multiply the U-matrix onto the next site

Reimplemented in Mps< Symmetry, Scalar >.

Definition at line 87 of file DmrgJanitor.h.

◆ length()

template<typename PivotMatrixType >
size_t DmrgJanitor< PivotMatrixType >::length ( ) const
inline

Returns the length of the chain.

Definition at line 92 of file DmrgJanitor.h.

◆ rightSweepStep()

template<typename PivotMatrixType >
virtual void DmrgJanitor< PivotMatrixType >::rightSweepStep ( size_t  loc,
DMRG::BROOM::OPTION  TOOL,
PivotMatrixType *  H = NULL,
bool  DISCARD_V = false 
)
inlinevirtual

Core function for a sweep to the right. Just a virtual placeholder in DmrgJanitor, overwritten by Mps with the real code.

Parameters
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_VIf true, don't multiply the V-matrix onto the next site

Reimplemented in Mps< Symmetry, Scalar >.

Definition at line 78 of file DmrgJanitor.h.

◆ set_defaultCutoffs()

template<typename PivotMatrixType >
void DmrgJanitor< PivotMatrixType >::set_defaultCutoffs

Definition at line 132 of file DmrgJanitor.h.

◆ set_pivot()

template<typename PivotMatrixType >
void DmrgJanitor< PivotMatrixType >::set_pivot ( int  pivot_input)
inline

Definition at line 104 of file DmrgJanitor.h.

◆ skim() [1/2]

template<typename PivotMatrixType >
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.

Parameters
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.

◆ skim() [2/2]

template<typename PivotMatrixType >
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.

Parameters
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.

◆ sweep()

template<typename PivotMatrixType >
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.

Parameters
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.

◆ sweepStep()

template<typename PivotMatrixType >
void DmrgJanitor< PivotMatrixType >::sweepStep ( DMRG::DIRECTION::OPTION  DIR,
size_t  loc,
DMRG::BROOM::OPTION  TOOL,
PivotMatrixType *  H = NULL,
bool  DISCARD_U_or_V = false 
)
inline

Calls the next sweep step from site loc according to the direction DIR.

Definition at line 217 of file DmrgJanitor.h.

Member Data Documentation

◆ alpha_rsvd

template<typename PivotMatrixType >
double DmrgJanitor< PivotMatrixType >::alpha_rsvd

Cutoff criterion for DMRG::BROOM::OPTION.

Definition at line 97 of file DmrgJanitor.h.

◆ eps_svd

template<typename PivotMatrixType >
double DmrgJanitor< PivotMatrixType >::eps_svd

Cutoff criterion for DMRG::BROOM::OPTION.

Definition at line 97 of file DmrgJanitor.h.

◆ eps_truncWeight

template<typename PivotMatrixType >
double DmrgJanitor< PivotMatrixType >::eps_truncWeight

Cutoff criterion for DMRG::BROOM::OPTION.

Definition at line 97 of file DmrgJanitor.h.

◆ max_Nrich

template<typename PivotMatrixType >
int DmrgJanitor< PivotMatrixType >::max_Nrich

Cutoff criterion for DMRG::BROOM::OPTION.

Definition at line 99 of file DmrgJanitor.h.

◆ max_Nsv

template<typename PivotMatrixType >
size_t DmrgJanitor< PivotMatrixType >::max_Nsv

Cutoff criterion for DMRG::BROOM::OPTION.

Definition at line 98 of file DmrgJanitor.h.

◆ min_Nsv

template<typename PivotMatrixType >
size_t DmrgJanitor< PivotMatrixType >::min_Nsv

Cutoff criterion for DMRG::BROOM::OPTION.

Definition at line 98 of file DmrgJanitor.h.

◆ N_sites

template<typename PivotMatrixType >
size_t DmrgJanitor< PivotMatrixType >::N_sites
protected

Length of the chain.

Definition at line 112 of file DmrgJanitor.h.

◆ pivot

template<typename PivotMatrixType >
int DmrgJanitor< PivotMatrixType >::pivot = -1
protected

The pivot site (also called "orthogonality centre", but "pivot" is so much better). All matrices to the left are left-canonical $\sum_s {A^s}^\dag A^s=I$, all matrices to the right are right-canonical $\sum_s B^s {B^s}^\dag=I$. If pivot==-1, there is no orthogonality. Can be tested with Mps::test_ortho().

Definition at line 110 of file DmrgJanitor.h.


The documentation for this class was generated from the following file: