ergo
purification_general.h File Reference

Recursive density matrix expansion (or density matrix purification). More...

#include <iostream>
#include <fstream>
#include <sstream>
#include "matrix_typedefs.h"
#include "realtype.h"
#include "matrix_utilities.h"
#include "integral_matrix_wrappers.h"
#include "output.h"
#include "matrix_proxy.h"
#include "puri_info.h"
#include "constants.h"
#include "utilities.h"
#include "units.h"
#include "files_dense.h"
#include "files_sparse.h"
#include "files_sparse_bin.h"
#include "get_eigenvectors.h"

Go to the source code of this file.

Classes

class  PurificationGeneral< MatrixType >
 PurificationGeneral is an abstract class which provides an interface for SP2, SP2ACC and possibly other recursive expansions. More...
 

Macros

#define NUM_ADDITIONAL_ITERATIONS   0
 
#define DEBUG_PURI_OUTPUT
 
#define PURI_OUTPUT_NNZ
 

Typedefs

typedef ergo_real real
 

Variables

real eucl_acc
 Tolerance used for computation of spectral norm. More...
 
real mixed_acc
 Tolerance used for computation of mixed norm. More...
 
real TOL_OVERLAPPING_BOUNDS
 If the difference between inner bounds for homo and lumo is less then this tolerance, i.e. More...
 
real THRESHOLD_EIG_TOLERANCE
 Inner homo and lumo bounds may be too good, and it may happen that computed eigenvalue slightly outside of given intervals. More...
 
int EIG_EMPTY
 
int EIG_SQUARE_INT
 
int EIG_PROJECTION_INT
 
int EIG_POWER_INT
 
int EIG_LANCZOS_INT
 

Detailed Description

Recursive density matrix expansion (or density matrix purification).

Author
Anastasia Kruchinina responsible

Macro Definition Documentation

◆ DEBUG_PURI_OUTPUT

#define DEBUG_PURI_OUTPUT

◆ NUM_ADDITIONAL_ITERATIONS

#define NUM_ADDITIONAL_ITERATIONS   0

◆ PURI_OUTPUT_NNZ

#define PURI_OUTPUT_NNZ

Typedef Documentation

◆ real

typedef ergo_real real

Variable Documentation

◆ EIG_EMPTY

◆ EIG_LANCZOS_INT

◆ EIG_POWER_INT

◆ EIG_PROJECTION_INT

◆ EIG_SQUARE_INT

◆ eucl_acc

real eucl_acc

Tolerance used for computation of spectral norm.


Referenced by PurificationGeneral< MatrixType >::purification_process().

◆ mixed_acc

real mixed_acc

Tolerance used for computation of mixed norm.

NOTE: If truncation is 0 this may not be enough, set to machine epsilon.

Referenced by PurificationGeneral< MatrixType >::purification_process().

◆ THRESHOLD_EIG_TOLERANCE

real THRESHOLD_EIG_TOLERANCE

Inner homo and lumo bounds may be too good, and it may happen that computed eigenvalue slightly outside of given intervals.

Thus we allow some flexibility for eigenvalue. Set threshold 1e-5 since otherwise for small molecules does not work.

Referenced by PurificationGeneral< MatrixType >::check_eigenvectors_at_the_end(), and PurificationGeneral< MatrixType >::check_homo_lumo_eigenvalues().

◆ TOL_OVERLAPPING_BOUNDS

real TOL_OVERLAPPING_BOUNDS

If the difference between inner bounds for homo and lumo is less then this tolerance, i.e.

bounds are still bad, eigenvectors will not be computed. (Inner bounds are used to estimate iterations for computation of homo and lumo eigenvectors.)

Referenced by PurificationGeneral< MatrixType >::prepare_to_purification_eigenvectors().