VMPS++
|
Compressor for uMPS. Needed to obtain various operations containing uMPSs and MPOs with a variational approach.
Symmetry | : A class providing all relevant functions and infos that are determined by the Symmetry. Click here for more information. |
Scalar | : double or complex<double> |
MpoScalar | : double or complex<double> |
Definition at line 22 of file UmpsCompressor.h.
#include <UmpsCompressor.h>
Public Member Functions | |
UmpsCompressor (DMRG::VERBOSITY::OPTION VERBOSITY=DMRG::VERBOSITY::SILENT) | |
string | info () const |
double | memory (MEMUNIT memunit=GB) const |
void | stateCompress (const Umps< Symmetry, Scalar > &Vin, Umps< Symmetry, Scalar > &Vout, size_t Dinit_input, size_t Qinit_input, double tol_input, size_t max_iterations=100ul, size_t min_iterations=10ul) |
Private Member Functions | |
void | optimize_parallel (const Umps< Symmetry, Scalar > &Vin, Umps< Symmetry, Scalar > &Vout) |
void | build_cellEnv (const Umps< Symmetry, Scalar > &Vbra, const Umps< Symmetry, Scalar > &Vket) |
void | build_LR (const Umps< Symmetry, Scalar > &Vbra, const Umps< Symmetry, Scalar > &Vket) |
void | calc_error (const Umps< Symmetry, Scalar > &Vout) |
size_t | minus1modL (size_t l) const |
Private Attributes | |
DMRG::VERBOSITY::OPTION | CHOSEN_VERBOSITY |
vector< PivotOverlap1< Symmetry, Scalar > > | Env |
size_t | N_sites |
size_t | N_iterations |
size_t | Dinit |
size_t | Qinit |
double | err_var |
double | tol |
complex< double > | lambdaL |
double | t_fixedL |
double | t_fixedR |
|
inline |
Definition at line 26 of file UmpsCompressor.h.
|
private |
Definition at line 162 of file UmpsCompressor.h.
|
private |
Definition at line 186 of file UmpsCompressor.h.
|
private |
Definition at line 260 of file UmpsCompressor.h.
string UmpsCompressor< Symmetry, Scalar, MpoScalar >::info |
Prints some info about this class.
Definition at line 84 of file UmpsCompressor.h.
double UmpsCompressor< Symmetry, Scalar, MpoScalar >::memory | ( | MEMUNIT | memunit = GB | ) | const |
Calculates the (theoretically) allocated memory (note: by default in GB).
Definition at line 110 of file UmpsCompressor.h.
|
inlineprivate |
Safely calculates without overflow for size_t
.
Definition at line 72 of file UmpsCompressor.h.
|
private |
Definition at line 218 of file UmpsCompressor.h.
void UmpsCompressor< Symmetry, Scalar, MpoScalar >::stateCompress | ( | const Umps< Symmetry, Scalar > & | Vin, |
Umps< Symmetry, Scalar > & | Vout, | ||
size_t | Dinit_input, | ||
size_t | Qinit_input, | ||
double | tol_input, | ||
size_t | max_iterations = 100ul , |
||
size_t | min_iterations = 10ul |
||
) |
Compresses a given uMps .
[in] | Vin | : input state to be compressed |
[out] | Vout | : compressed output state |
[in] | Dinit_input | : matrix size cutoff per site and subspace for Vout |
[in] | Qinit_input | : symmetry block cutoff per site for Vout |
[in] | tol_input | : tolerance for the variational error |
[in] | max_iterations | : maximal amount of iterations; break if exceeded |
[in] | min_iterations | : minimal amount of iterations |
Definition at line 128 of file UmpsCompressor.h.
|
private |
Definition at line 59 of file UmpsCompressor.h.
|
private |
Definition at line 76 of file UmpsCompressor.h.
|
private |
Definition at line 62 of file UmpsCompressor.h.
|
private |
Definition at line 77 of file UmpsCompressor.h.
|
private |
Definition at line 78 of file UmpsCompressor.h.
|
private |
Definition at line 75 of file UmpsCompressor.h.
|
private |
Definition at line 74 of file UmpsCompressor.h.
|
private |
Definition at line 76 of file UmpsCompressor.h.
|
private |
Definition at line 79 of file UmpsCompressor.h.
|
private |
Definition at line 80 of file UmpsCompressor.h.
|
private |
Definition at line 77 of file UmpsCompressor.h.