Go to the documentation of this file.
39 #ifndef GETDENSFROMFOCKHEADER
40 #define GETDENSFROMFOCKHEADER
81 std::string checkpoint_path,
181 std::vector<generalVector> &eigVecUNOCCref,
182 std::vector<generalVector> &eigVecOCCref,
183 std::vector<ergo_real> &eigValUNOCCref,
184 std::vector<ergo_real> &eigValOCCref
251 assert(leavesSizeMax_ >= 1);
252 assert(blocksize_ >= 1);
284 assert(noOfOccupiedOrbs_ >= 0);
296 assert(invCholFactor_euclnorm_ >= 0);
302 assert(gap_expected_lower_bound_ >= 0);
310 assert(purification_maxmul_ > 0);
311 maxMul = purification_maxmul_;
466 assert(electronicTemperature_ >= 0);
554 std::string eigenvectors_iterative_method_,
556 int eigensolver_maxiter_,
557 int use_prev_vector_as_initial_guess_,
558 int try_eigv_on_next_iteration_if_fail_)
560 assert(eigenvectors_method_ ==
"square" || eigenvectors_method_ ==
"projection");
563 assert(eigenvectors_iterative_method_ ==
"power" || eigenvectors_iterative_method_ ==
"lanczos");
569 if (use_prev_vector_as_initial_guess_ > 0)
577 if (try_eigv_on_next_iteration_if_fail_ > 0)
590 if (puri_compute_eigv_in_each_iteration_ > 0)
599 if (run_shift_and_square_method_on_F_ > 0)
742 #endif // GETDENSFROMFOCKHEADER
@ euclNorm
Definition: matInclude.h:139
void write_matrix_to_bin(const char *filename, const std::vector< int > &I, const std::vector< int > &J, const std::vector< real > &val, const int &N)
Definition: files_sparse_bin.cc:43
void extract_computed_eigenpairs(std::vector< VectorType > &eigVecUNOCCref, std::vector< VectorType > &eigVecOCCref, std::vector< real > &eigValUNOCCref, std::vector< real > &eigValOCCref)
Definition: purification_general.h:232
bool use_diag_on_error
Flag to fall back on diagonalization if purification fails.
Definition: GetDensFromFock.h:637
Treal template_blas_sqrt(Treal x)
real homo_estim_low_F
Definition: puri_info.h:207
void set_no_occupied_orbs(int noOfOccupiedOrbs_)
Definition: GetDensFromFock.h:282
void set_use_diag_on_error()
Definition: GetDensFromFock.h:386
@ mixedNorm
Definition: matInclude.h:139
bool use_purification
Flag to turn on purification.
Definition: GetDensFromFock.h:617
triangMatrix invCholFactor
Inverse Cholesky factor (written to file)
Definition: GetDensFromFock.h:700
PurificationGeneral is an abstract class which provides an interface for SP2, SP2ACC and possibly oth...
Definition: purification_general.h:117
bool ignore_purification_failure
Continue even if purification fails to converge.
Definition: GetDensFromFock.h:661
bool plot_puri_results
Plot results of the purification from this function call.
Definition: GetDensFromFock.h:673
void set_eigvalueErrorLimit(ergo_real eigvalueErrorLimit_)
Set maximum allowed error in eigenvalues of the density matrix.
Definition: GetDensFromFock.h:485
intervalType lumoInterval_F_ort_prev
Definition: GetDensFromFock.h:719
symmMatrix overlapMatrix
Overlap matrix (written to file)
Definition: GetDensFromFock.h:696
void set_use_acceleration()
Definition: GetDensFromFock.h:402
static std::string getStatsCountRead()
Definition: FileWritable.cc:364
void set_eigs_Fprev(intervalType &homoInterval_Finput_, intervalType &lumoInterval_Finput_)
Definition: GetDensFromFock.h:516
void get_eigs_Fprev(intervalType &homoInterval_Finput_, intervalType &lumoInterval_Finput_) const
Definition: GetDensFromFock.h:523
const char * filenameD_ort_prev
Definition: GetDensFromFock.h:735
Definition of the main floating-point datatype used; the ergo_real type.
void set_jump_over_X_iter_proj_method(int val)
Definition: purification_general.h:257
int get_output_homo_and_lumo_eigenvectors() const
Definition: GetDensFromFock.h:337
void set_SCF_step(int step)
Definition: GetDensFromFock.h:212
void set_projection_method_params(int go_back, int step)
Definition: GetDensFromFock.h:320
#define LOG_CAT_TIMINGS
Definition: output.h:52
bool file_exist(const std::string &name)
Definition: GetDensFromFock.cc:1207
static const std::string NA_STRING
Definition: GetDensFromFock.h:61
PuriInfo info
Fill in during purification with useful information.
Definition: purification_general.h:128
Purification_sp2acc is a class which provides an interface for SP2ACC recursive expansion.
Definition: purification_sp2acc.h:52
void set_stopCriterionNormPurification(mat::normType const stopCriterionNormPurification_)
Set stopping criterion norm used in the recursive expansion.
Definition: GetDensFromFock.h:272
Code for AllocatorManager class used for memory allocation/deallocation in matrix library....
void set_puri_eig_acc_factor_for_guess(ergo_real puri_eig_acc_factor_for_guess_)
Set puri_eig_acc_factor_for_guess parameter.
Definition: GetDensFromFock.h:499
int get_purification_create_m_files() const
Definition: GetDensFromFock.h:328
const char * filenameOverlap
Definition: GetDensFromFock.h:734
void set_purification_maxmul(ergo_real purification_maxmul_)
Set maximum allowed number of iterations in recursive expansion.
Definition: GetDensFromFock.h:308
std::string eigenvectors_method
Method for computing eigenvectors: square or projection.
Definition: GetDensFromFock.h:681
static Interval intersect(Interval const &A, Interval const &B)
Definition: Interval.h:53
#define LOG_CAT_ERROR
Definition: output.h:47
Recursive density matrix expansion (or density matrix purification).
int leavesSizeMax
Information about leavesSizeMax and blocksize for CHTMatrix.
Definition: GetDensFromFock.h:712
Treal upp() const
Definition: Interval.h:145
void set_purification_ignore_failure()
Definition: GetDensFromFock.h:347
#define LOG_CAT_WARNING
Definition: output.h:48
void set_stats_prefix(std::string stats_prefix_)
Definition: GetDensFromFock.h:394
void clear()
Definition: VectorGeneral.h:100
SP2ACC (SP2 accelerated) recursive density matrix expansion (or density matrix purification).
void unset_use_diag_on_error_guess()
Definition: GetDensFromFock.h:380
double ergo_real
Definition: realtype.h:69
int get_use_rand_perturbation_for_alleigsint() const
Definition: GetDensFromFock.h:353
ergo_real eigensolver_accuracy
The accuracy for the eigenvalue problem solver.
Definition: GetDensFromFock.h:685
void set_diagonalization_params(ergo_real electronicTemperature_, symmMatrix &overlapMatrix_)
Definition: GetDensFromFock.h:462
Definition: matrix_typedefs_chtml.h:79
static const bool BOOL_TRUE
Definition: GetDensFromFock.h:63
int get_use_new_stopping_criterion() const
Definition: GetDensFromFock.h:407
static float time
Definition: mat_gblas.h:226
int jump_over_X_iter_proj_method
Parameter used in the projection method for computing eigenvectors.
Definition: GetDensFromFock.h:650
ergo_real gap_expected_lower_bound
Expected lower bound for the gap to be used in early iterations.
Definition: GetDensFromFock.h:627
generalVector VectorType
Definition: GetDensFromFock.cc:62
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
void unset_save_permuted_F_matrix_in_bin()
Definition: GetDensFromFock.h:425
void unset_use_prev_vector_as_initial_guess()
Definition: GetDensFromFock.h:458
ergo_real eigvalueErrorLimit
Tolerated deviation of eigenvalues from 0 and 1 in the computed density matrix.
Definition: GetDensFromFock.h:629
void create_checkpoint(symmMatrix &Finput, symmMatrix &F_ort_prev, generalVector *eigVecLUMO, generalVector *eigVecHOMO, std::string IDstr)
Function save all needed data to files in order to repeat recursive expansion in a desired SCF cycle ...
Definition: GetDensFromFock.cc:1020
void set_number_of_eigenvectors_to_compute(const int occ, const int unocc)
Definition: purification_general.h:248
ergo_real get_subspaceErrorLimit() const
Definition: GetDensFromFock.h:548
bool store_all_eigenvalues_to_file
Store eigenvalues to the file when doing diagonalization.
Definition: GetDensFromFock.h:619
SP2 recursive density matrix expansion (or density matrix purification).
int get_run_shift_and_square_method_on_F()
Definition: GetDensFromFock.h:438
int noOfOccupiedOrbs
Number of occupied orbitals.
Definition: GetDensFromFock.h:691
bool use_diag_on_error_guess
Definition: GetDensFromFock.h:638
void unset_stats_prefix()
Definition: GetDensFromFock.h:396
void set_use_prev_vector_as_initial_guess()
Definition: GetDensFromFock.h:456
static std::string getStatsTimeCopyAndAssign()
Definition: FileWritable.cc:358
virtual void clear()
Clear all matrices in the class.
Definition: purification_general.h:176
@ frobNorm
Definition: matInclude.h:139
void unset_try_eigv_on_next_iteration_if_fail()
Definition: GetDensFromFock.h:450
void gen_matlab_file_nnz(const char *filename) const
Create MATLAB .m file which plots the number of non-zero elements in matrices X_i and X_i^2 in each r...
Definition: purification_general.h:3612
void set_use_purification()
Definition: GetDensFromFock.h:370
int blocksize
Information about leavesSizeMax and blocksize for CHTMatrix.
Definition: GetDensFromFock.h:713
mat::SizesAndBlocks rows
Definition: test.cc:51
void print_collected_info()
Definition: puri_info.cc:187
bool save_permuted_F_matrix_in_bin
Save sparse matrix F into bin file in the current permutation of rows and columns.
Definition: GetDensFromFock.h:659
bool use_diagonalization
Flag to turn on diagonalization.
Definition: GetDensFromFock.h:615
static const bool BOOL_FALSE
Definition: GetDensFromFock.h:64
void set_store_all_eigenvalues_to_file()
Definition: GetDensFromFock.h:416
void unset_purification_create_m_files()
Definition: GetDensFromFock.h:332
void unset_SCF_step()
Definition: GetDensFromFock.h:214
int get_puri_compute_eigv_in_each_iteration()
Definition: GetDensFromFock.h:430
mat::SizesAndBlocks matrixSizesAndBlocks
Information about HML matrix block sizes etc.
Definition: GetDensFromFock.h:710
void getBlockSizeVector(std::vector< int > &blockSizesCopy) const
Definition: SizesAndBlocks.cc:87
Treal template_blas_fabs(Treal x)
void unset_use_diag_on_error()
Definition: GetDensFromFock.h:388
std::vector< generalVector > eigVecOCC
Definition: GetDensFromFock.h:724
symmMatrix symmMatrixWrap
Definition: matrix_typedefs_chtml.h:84
void set_eigenvectors_params(string eigenvectors_method_, string eigenvectors_iterative_method_, real eigensolver_accuracy_, int eigensolver_maxiter_, int scf_step_, bool try_eigv_on_next_iteration_if_fail_)
Set parameters for computing eigenvectors.
Definition: purification_general.h:802
int get_try_eigv_on_next_iteration_if_fail()
Definition: GetDensFromFock.h:446
std::string stats_prefix
Prefix to be added to statistics files.
Definition: GetDensFromFock.h:671
const char * filenameeigVecLUMO
Definition: GetDensFromFock.h:732
void set_number_of_eigenvectors_to_compute(int occ, int unocc)
Definition: GetDensFromFock.h:314
ergo_real resultEntropyTerm
Definition: GetDensFromFock.h:721
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
bool output_homo_and_lumo_eigenvectors
Compute homo and lumo eigenvectors and write them to the file.
Definition: GetDensFromFock.h:642
MatrixType X
Matrix X.
Definition: purification_general.h:130
void unset_use_acceleration()
Definition: GetDensFromFock.h:404
mat::normType truncationNormPurification
Norm to be used for truncation.
Definition: GetDensFromFock.h:704
void set_invCholFactor(triangMatrix const &invCholFactor_, ergo_real invCholFactor_euclnorm_)
Definition: GetDensFromFock.h:292
void set_output_homo_and_lumo_eigenvectors()
Definition: GetDensFromFock.h:339
ergo_real subspaceErrorLimit
Tolerated error in the occupied subspace as measured by the sinus of the largest canonical angle.
Definition: GetDensFromFock.h:631
void unset_purification_ignore_failure()
Definition: GetDensFromFock.h:349
int get_store_all_eigenvalues_to_file() const
Definition: GetDensFromFock.h:414
int get_dens_from_fock(symmMatrix &Finput, symmMatrix &resultDens, symmMatrix &F_ort_prev)
Choose which method to use for computing the density matrix from Fock matrix.
Definition: GetDensFromFock.cc:76
#define LOG_AREA_DENSFROMF
Definition: output.h:61
Purification_sp2acc is a class which provides an interface for SP2 recursive expansion.
Definition: purification_sp2.h:52
std::string plot_puri_results_str
Definition: GetDensFromFock.h:675
Treal trace(const XYZ< Treal, MatrixGeneral< Treal, Tmatrix >, MatrixGeneral< Treal, Tmatrix > > &smm)
Definition: MatrixGeneral.h:904
void resetSizesAndBlocks(SizesAndBlocks const &newRows)
Definition: VectorGeneral.h:51
void set_puri_compute_eigv_in_each_iteration()
Definition: GetDensFromFock.h:432
void unset_use_diagonalization()
Definition: GetDensFromFock.h:364
real lumo_estim_low_F
Definition: puri_info.h:209
void set_use_diag_on_error_guess()
Definition: GetDensFromFock.h:378
ergo_real get_eigvalueErrorLimit() const
Definition: GetDensFromFock.h:546
void do_unrestricted_calculations()
Definition: GetDensFromFock.h:279
virtual void initialize(const MatrixType &F_, const IntervalType &lumo_bounds_, const IntervalType &homo_bounds_, int maxit_, real error_sub_, real error_eig_, bool use_new_stopping_criterion_, NormType norm_truncation, NormType norm_stop_crit, int nocc_)
Set imporatant parameters for the recursive expansion.
Definition: purification_general.h:604
void set_purification_create_m_files()
Definition: GetDensFromFock.h:330
static unsigned int getNProcs()
Definition: matInclude.h:103
int converged
Definition: puri_info.h:199
void set_save_permuted_F_matrix_in_bin()
Definition: GetDensFromFock.h:423
static std::string getStatsTimeRead()
Definition: FileWritable.cc:355
std::map< std::string, double > puri_stats
Definition: GetDensFromFock.h:722
void compute_eigenvectors_extra(int puri_compute_eigv_in_each_iteration_, int run_shift_and_square_method_on_F_)
Definition: GetDensFromFock.h:588
int get_dens_from_fock_full(int n, int noOfOccupiedOrbs, ergo_real *result_P, const ergo_real *F, const ergo_real *ovl, ergo_real factor, ergo_real electronicTemperature, ergo_real &resultEntropyTerm, ergo_real &resultHomoLumoGap, int store_all_eigenvalues_to_file, int number_of_occ_eigenvectors, int number_of_unocc_eigenvectors, std::vector< std::vector< ergo_real > > &eigVecOCC, std::vector< std::vector< ergo_real > > &eigVecUNOCC, std::vector< ergo_real > &eigValOCC, std::vector< ergo_real > &eigValUNOCC)
Definition: densfromf_full.cc:209
std::vector< generalVector > eigVecUNOCC
Definition: GetDensFromFock.h:725
void unset_use_new_stopping_criterion()
Definition: GetDensFromFock.h:411
bool use_new_stopping_criterion
Use new parameterless stopping criterion.
Definition: GetDensFromFock.h:679
Utilities related to the hierarchical matrix library (HML), including functions for setting up permut...
Routines for getting density matrix from a given Fock matrix.
void set_run_shift_and_square_method_on_F()
Definition: GetDensFromFock.h:440
static ergo_real get_eucl_diff_with_adapted_accuracy(int n, const symmMatrixWrap &F_w, const symmMatrixWrap &F_ort_prev_w, ergo_real acc)
Definition: GetDensFromFock.cc:269
bool is_empty() const
Definition: VectorGeneral.h:56
ergo_real factor
Factor to scale the resulting density matrix.
Definition: GetDensFromFock.h:693
void set_cht_matrix_params(const int leavesSizeMax_, const int blocksize_)
Definition: GetDensFromFock.h:247
void get_SizesAndBlocks(mat::SizesAndBlocks &matrixSizesAndBlocks_) const
Definition: GetDensFromFock.h:257
bool try_eigv_on_next_iteration_if_fail
For square method: if eigenvector is not computed in iteration i, try to compute it in iteration i+1.
Definition: GetDensFromFock.h:622
Definition: MatrixBase.h:55
void print(int area, const char *routine)
Definition: utilities.h:111
std::string get_stats_prefix() const
Definition: GetDensFromFock.h:392
int get_purification_ignore_failure() const
Definition: GetDensFromFock.h:345
void unset_output_homo_and_lumo_eigenvectors()
Definition: GetDensFromFock.h:341
void get_eigs_F_ort_prev(intervalType &homoInterval_F_ort_prev_, intervalType &lumoInterval_F_ort_prev_) const
Definition: GetDensFromFock.h:539
int SCF_step
Definition: GetDensFromFock.h:611
Xtrans< TX > transpose(TX const &A)
Transposition.
Definition: matrix_proxy.h:131
int maxMul
Maximum allowed number of matrix multiplications in the purification.
Definition: GetDensFromFock.h:708
Basic OS access utilities.
bool run_shift_and_square_method_on_F
(for comparison) Run shift_and_square method to get eigenvectors of the matrix F for various shifts.
Definition: GetDensFromFock.h:656
void compute_eigenvectors(std::string eigenvectors_method_, std::string eigenvectors_iterative_method_, ergo_real eigensolver_accuracy_, int eigensolver_maxiter_, int use_prev_vector_as_initial_guess_, int try_eigv_on_next_iteration_if_fail_)
Definition: GetDensFromFock.h:553
void set_purification_use_rand_perturbation_for_alleigsint()
Definition: GetDensFromFock.h:355
mat::normType stopCriterionNormPurification
Norm to be used for stopping criterion.
Definition: GetDensFromFock.h:706
void gen_matlab_file_norm_diff(const char *filename) const
Create MATLAB .m file which plots the idempotency error in each recursive expansion iteration.
Definition: purification_general.h:3470
#define LOG_CAT_INFO
Definition: output.h:49
static std::string getStatsCountCopyAndAssign()
Definition: FileWritable.cc:367
const char * filenameFinput
Definition: GetDensFromFock.h:730
symmMatrix D_ort_prev
Density matrix from previous SCF cycle (written to file)
Definition: GetDensFromFock.h:698
mat::Interval< ergo_real > intervalType
Definition: matrix_typedefs.h:78
int n
System size.
Definition: GetDensFromFock.h:689
virtual void PurificationStart()
Start recursive expansion.
Definition: purification_general.h:953
int go_back_X_iter_proj_method
Parameter used in the projection method for computing eigenvectors.
Definition: GetDensFromFock.h:648
static std::string writeAndReadAll()
Definition: FileWritable.cc:509
std::string getStatistics()
Definition: AllocatorManager.h:141
const char * file_for_basic_types
Definition: GetDensFromFock.h:737
GetDensFromFock()
Definition: GetDensFromFock.h:88
void set_generate_figures(std::string str="")
Plot figures from the recursive expansion.
Definition: GetDensFromFock.h:220
ergo_real get_result_entropy_term() const
Definition: GetDensFromFock.h:506
#define UNIT_one_eV
Definition: units.h:45
intervalType homoInterval_Finput
Definition: GetDensFromFock.h:715
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
static void resetStats()
Definition: FileWritable.cc:308
int get_use_diag_on_error_guess() const
Definition: GetDensFromFock.h:376
normType
Definition: matInclude.h:139
void set_overlapMatrix(symmMatrix &overlapMatrix_)
Definition: GetDensFromFock.h:470
static bool timekeeping
Definition: mat_gblas.h:227
#define LOG_AREA_SCF
Definition: output.h:58
#define max(a, b)
Definition: integrator.cc:87
void set_gap_expected_lower_bound(ergo_real gap_expected_lower_bound_)
Definition: GetDensFromFock.h:300
int get_use_diag_on_error() const
Definition: GetDensFromFock.h:384
ergo_real electronicTemperature
Electronic temperature.
Definition: GetDensFromFock.h:625
bool use_prev_vector_as_initial_guess
Use eigenvector from the previous SCF cycle as an initial guess in this cycle.
Definition: GetDensFromFock.h:652
void set_compute_eigenvectors_in_each_iteration()
Definition: purification_general.h:245
real lumo_estim_upp_F
Definition: puri_info.h:208
int get_use_diagonalization() const
Definition: GetDensFromFock.h:360
Constants for conversion between units for some common units like Angstrom, electron-volt (eV),...
bool use_rand_perturbation_for_alleigsint
Apply a random perturbation to (try to) improve the convergence speed of Lanczos calculation of extre...
Definition: GetDensFromFock.h:663
void set_general_params(const int n_, mat::SizesAndBlocks const &matrixSizesAndBlocks_)
Definition: GetDensFromFock.h:238
const char * filenameinvCholFactor
Definition: GetDensFromFock.h:736
std::vector< ergo_real > eigValOCC
Definition: GetDensFromFock.h:726
int get_use_acceleration() const
Definition: GetDensFromFock.h:400
bool homo_eigenvector_is_computed
Definition: puri_info.h:212
int number_of_unoccupied_eigenvectors
Number of unoccupied eigenvectors to compute.
Definition: GetDensFromFock.h:646
void set_try_eigv_on_next_iteration_if_fail()
Definition: GetDensFromFock.h:448
static const int UNDEF_VALUE_UINT
Definition: GetDensFromFock.h:60
int eigensolver_maxiter
Maximum number of iterations for the eigenvalue problem solver.
Definition: GetDensFromFock.h:687
void output_current_memory_usage(int logArea, const char *contextString)
Definition: output.cc:186
bool lumo_eigenvector_is_computed
Definition: puri_info.h:213
int get_use_purification() const
Definition: GetDensFromFock.h:368
std::string getNormTypeString(normType nType)
Definition: matInclude.cc:62
bool create_m_files
Flag to create m-files with information about the purification process.
Definition: GetDensFromFock.h:640
int get_dens_from_fock_sparse(symmMatrix &F, symmMatrix &resultDens, symmMatrix &F_ort_prev)
Use recursive expansion for computing the density matrix from Fock matrix.
Definition: GetDensFromFock.cc:306
int get_use_prev_vector_as_initial_guess()
Definition: GetDensFromFock.h:454
static std::string getStatsCountWrite()
Definition: FileWritable.cc:361
ergo_real puri_eig_acc_factor_for_guess
With this number will be multiplied the tolerated deviation of eigenvalues from 0 and 1 in the comput...
Definition: GetDensFromFock.h:633
void set_purification_limits(ergo_real subspaceErrorLimit_, ergo_real eigvalueErrorLimit_=0, ergo_real puri_eig_acc_factor_for_guess=0)
Definition: GetDensFromFock.h:474
void unset_generate_figures()
Do not plot figures from the recursive expansion.
Definition: GetDensFromFock.h:232
Describes dimensions of matrix and its blocks on all levels.
Definition: SizesAndBlocks.h:45
static AllocatorManager & instance()
void unset_store_all_eigenvalues_to_file()
Definition: GetDensFromFock.h:418
void get_computed_eigenpairs(std::vector< generalVector > &eigVecUNOCCref, std::vector< generalVector > &eigVecOCCref, std::vector< ergo_real > &eigValUNOCCref, std::vector< ergo_real > &eigValOCCref)
Definition: GetDensFromFock.h:180
void assign_from_full(std::vector< Treal > const &fullVector, SizesAndBlocks const &newRows)
Definition: VectorGeneral.h:83
intervalType lumoInterval_Finput
Definition: GetDensFromFock.h:716
Functionality for determining an approximate value of the "machine epsilon" – the smallest number tha...
bool use_acceleration
Use acceleration in the purification.
Definition: GetDensFromFock.h:677
void unset_run_shift_and_square_method_on_F()
Definition: GetDensFromFock.h:442
void set_eigs_F_ort_prev(intervalType &homoInterval_F_ort_prev_, intervalType &lumoInterval_F_ort_prev_)
Definition: GetDensFromFock.h:532
void unset_puri_compute_eigv_in_each_iteration()
Definition: GetDensFromFock.h:434
void clean_eigs_intervals()
Set bounds for HOMO and LUMO eigenvalues to -/+ inf, thus remove any known bounds.
Definition: GetDensFromFock.h:196
ergo_real get_puri_eig_acc_factor_for_guess() const
Definition: GetDensFromFock.h:550
std::vector< ergo_real > eigValUNOCC
Definition: GetDensFromFock.h:727
ergo_real get_machine_epsilon()
return machine epsilon.
Definition: machine_epsilon.cc:50
Header file with typedefs for matrix types, using either the hierarchical matrix library (HML) or the...
void set_use_diagonalization()
Definition: GetDensFromFock.h:362
void set_subspaceErrorLimit(ergo_real subspaceErrorLimit_)
Set maximum allowed error in invariant subspaces of the density matrix.
Definition: GetDensFromFock.h:491
int number_of_occupied_eigenvectors
Number of occupied eigenvectors to compute.
Definition: GetDensFromFock.h:644
std::string eigenvectors_iterative_method
Iterative method for computing eigenvectors: power or lanczos.
Definition: GetDensFromFock.h:683
void compute_eigenvectors_without_diagonalization_on_F(const MatrixType &F, int eigensolver_maxiter_for_F)
Definition: purification_general.h:2426
static std::string getStatsTimeWrite()
Definition: FileWritable.cc:352
void set_go_back_X_iter_proj_method(int val)
Definition: purification_general.h:261
void increase(Treal const value)
Increases interval with value in both directions.
Definition: Interval.h:133
bool puri_compute_eigv_in_each_iteration
Compute eigenvectors in each iteration of the recursive expansion.
Definition: GetDensFromFock.h:654
void unset_use_purification()
Definition: GetDensFromFock.h:372
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
void set_truncationNormPurification(mat::normType const truncationNormPurification_)
Set truncation norm used in the recursive expansion.
Definition: GetDensFromFock.h:266
void gen_matlab_file_eigs(const char *filename) const
Create MATLAB .m file which plots the homo and lumo bounds in each recursive expansion iteration.
Definition: purification_general.h:3710
real accumulated_error_subspace
Definition: puri_info.h:202
triangMatrix triangMatrixWrap
Definition: matrix_typedefs_chtml.h:86
const char * filenameeigVecHOMO
Definition: GetDensFromFock.h:733
void gen_matlab_file_time(const char *filename) const
Create MATLAB .m file which creates a bar plot presenting time spent on various parts of the iteratio...
Definition: purification_general.h:3779
Routine get_dens_from_fock_full() for getting density matrix from a given Fock matrix using diagonali...
ergo_real invCholFactor_euclnorm
Euclidean norm of inverse Cholesky factor.
Definition: GetDensFromFock.h:702
real homo_estim_upp_F
Definition: puri_info.h:206
void clean_puri_stats()
Definition: GetDensFromFock.h:288
intervalType homoInterval_F_ort_prev
Definition: GetDensFromFock.h:718
void unset_purification_use_rand_perturbation_for_alleigsint()
Definition: GetDensFromFock.h:357
void do_restricted_calculations()
Definition: GetDensFromFock.h:276
GetDensFromFock class containing parameters and functions for computing density matrix.
Definition: GetDensFromFock.h:57
void get_puri_stats(std::map< std::string, double > &puri_stats_) const
Definition: GetDensFromFock.h:509
void gen_matlab_file_threshold(const char *filename) const
Create MATLAB .m file which plots the actual introduced error after truncation of the matrix X_i in e...
Definition: purification_general.h:3566
Time-measuring class.
Definition: utilities.h:80
void set_use_new_stopping_criterion()
Definition: GetDensFromFock.h:409
Functionality for writing output messages to a text file.
Treal low() const
Definition: Interval.h:144
static void restore_from_checkpoint(GetDensFromFock &DensFromFock, symmMatrix &Finput, symmMatrix &F_ort_prev, generalVector *eigVecLUMO, generalVector *eigVecHOMO, std::string checkpoint_path, std::string IDstr, int SCF_step)
Function restores data from files in order to repeat recursive expansion in a desired SCF cycle.
Definition: GetDensFromFock.cc:1217
int get_save_permuted_F_matrix_in_bin()
Definition: GetDensFromFock.h:421
const char * filenameF_ort_prev
Definition: GetDensFromFock.h:731