VMPS++
Loading...
Searching...
No Matches
DMRG::BROOM Struct Reference

Detailed Description

Choice of tool to perfom the sweeping.

Definition at line 259 of file DmrgTypedefs.h.

#include <DmrgTypedefs.h>

Public Types

enum  OPTION {
  QR , SVD , BRUTAL_SVD , RDM ,
  RICH_SVD , QR_NULL
}
 

Member Enumeration Documentation

◆ OPTION

Enumerator
QR 

Uses the QR decomposition. It is the fastest of all options, but preserves the matrix sizes, so that neither truncation nor growth can occur. Since the singular values are not computed, no entropy can be calculated and is therefore set to nan.

SVD 

Uses the singular value decomposition. All singular values below eps_truncWeight are cut off.

Warning
Needs Lapack. Define DONT_USE_LAPACK_SVD to use Eigen's SVD routine. It is 3-90 times slower, but probably accurate and stable as hell.
BRUTAL_SVD 

Uses the singular value decomposition, but imposes a limit on the matrix sizes. Only the first DmrgJanitor::N_sv singular values per symmetry block are kept. This option can be useful to generate starting points for variational procedures.

Warning
Needs Lapack (see above).
RDM 

Uses diagonalization of the reduced density matrix. Adds a noise term multiplied by DmrgJanitor::eps_noise. All eigenvalues smaller than DmrgJanitor::eps_rdm are cut off. (Note that the eigenvalues are the singular values squared, so DmrgJanitor::eps_noise must be chosen accordingly).

RICH_SVD 

Uses an enrichment scheme, a.k.a. the "Strictly Single-Site (SSS) algorithm" according to Hubig et al. (2015). The matrices are enlarged with non-local information times DmrgJanitor::eps_rsvd, then the usual SVD is performed (using DmrgJanitor::eps_truncWeight as a cutoff parameter). Note that DmrgJanitor::eps_rsvd is a much less sensitive parameter than DmrgJanitor::eps_rdm and can be even kept equal to 1 (but this will result in larger than optimal matrix sizes).

Warning
Needs Lapack (see above).
QR_NULL 

Computes the null space only using full QR decomposition.

Definition at line 261 of file DmrgTypedefs.h.


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