ergo
GetDensFromFock.h
Go to the documentation of this file.
1 /* Ergo, version 3.8, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2019 Elias Rudberg, Emanuel H. Rubensson, Pawel Salek,
4  * and Anastasia Kruchinina.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  *
19  * Primary academic reference:
20  * Ergo: An open-source program for linear-scaling electronic structure
21  * calculations,
22  * Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, and Anastasia
23  * Kruchinina,
24  * SoftwareX 7, 107 (2018),
25  * <http://dx.doi.org/10.1016/j.softx.2018.03.005>
26  *
27  * For further information about Ergo, see <http://www.ergoscf.org>.
28  */
29 
39 #ifndef GETDENSFROMFOCKHEADER
40 #define GETDENSFROMFOCKHEADER
41 
42 #include "realtype.h"
43 #include "matrix_typedefs.h"
44 #include "matrix_typedefs_chtml.h"
45 #include "transform.h"
46 #include "output.h"
47 
48 
49 
57 {
58 public:
59 
60  static const int UNDEF_VALUE_UINT;
61  static const std::string NA_STRING;
62 
63  static const bool BOOL_TRUE;
64  static const bool BOOL_FALSE;
65 
66  void create_checkpoint(symmMatrix& Finput,
67  symmMatrix& F_ort_prev,
70  generalVector *eigVecLUMO,
71  generalVector *eigVecHOMO,
72  std::string IDstr
73  );
74 
75 
76  static void restore_from_checkpoint(GetDensFromFock& DensFromFock,
77  symmMatrix& Finput,
78  symmMatrix& F_ort_prev,
79  generalVector *eigVecLUMO,
80  generalVector *eigVecHOMO,
81  std::string checkpoint_path,
82  std::string IDstr,
83  int SCF_step
84  );
85 
86 
87  //constructor
89  {
90  do_output(LOG_CAT_INFO, LOG_AREA_DENSFROMF, "Create object from GetDensFromFock.");
91 
92  // set all variables and flags to default values
97  maxMul = 0;
100 
103 
106  eigvalueErrorLimit = 0;
107  subspaceErrorLimit = 0;
111 
124 
127 
134 
137 
138  std::string stats_prefix = ""; // default value
139 
140  truncationNormPurification = mat::euclNorm; // default value
141  stopCriterionNormPurification = mat::euclNorm; // default value
142 
145 
146 
147  filenameFinput = "matrix_Finput";
148  filenameF_ort_prev = "matrix_F_ort_prev";
149  filenameeigVecLUMO = "vector_eigVecLUMO";
150  filenameeigVecHOMO = "vector_eigVecHOMO";
151  filenameOverlap = "matrix_Overlap";
152  filenameD_ort_prev = "matrix_D_ort_prev";
153  filenameinvCholFactor = "matrix_invCholFactor";
154  file_for_basic_types = "basic_types";
155  }
156 
159  int get_dens_from_fock(symmMatrix& Finput,
160  symmMatrix& resultDens,
161  symmMatrix& F_ort_prev
164  );
165 
166 
167 
171  symmMatrix& F,
172  symmMatrix& resultDens,
173  symmMatrix& F_ort_prev
177  );
178 
179 
181  std::vector<generalVector> &eigVecUNOCCref,
182  std::vector<generalVector> &eigVecOCCref,
183  std::vector<ergo_real> &eigValUNOCCref,
184  std::vector<ergo_real> &eigValOCCref
185  )
186  {
187  eigVecUNOCCref = eigVecUNOCC;
188  eigVecOCCref = eigVecOCC;
189  eigValOCCref = eigValOCC;
190  eigValUNOCCref = eigValUNOCC;
191  }
192 
196  inline void clean_eigs_intervals()
197  {
198  homoInterval_Finput = intervalType(-1e22, 1e22);
199  lumoInterval_Finput = intervalType(-1e22, 1e22);
200  homoInterval_Finput = intervalType(-1e22, 1e22);
201  lumoInterval_Finput = intervalType(-1e22, 1e22);
202 
203  homoInterval_F_ort_prev = intervalType(-1e22, 1e22);
204  lumoInterval_F_ort_prev = intervalType(-1e22, 1e22);
205  homoInterval_F_ort_prev = intervalType(-1e22, 1e22);
206  lumoInterval_F_ort_prev = intervalType(-1e22, 1e22);
207  }
208 
209 
210 
211 
212  inline void set_SCF_step(int step )
213  { SCF_step = step; }
214  inline void unset_SCF_step()
216 
217 
220  inline void set_generate_figures(std::string str = "" )
221  {
222  if (create_m_files)
223  {
224  assert(SCF_step >= 0);
226  plot_puri_results_str = str;
227  }
228  }
229 
233  {
236  }
237 
238  inline void set_general_params(const int n_,
239  mat::SizesAndBlocks const& matrixSizesAndBlocks_
240  )
241  {
242  assert(n_ >= 1);
243  n = n_;
244  matrixSizesAndBlocks = matrixSizesAndBlocks_;
245  }
246 
247  inline void set_cht_matrix_params(const int leavesSizeMax_,
248  const int blocksize_
249  )
250  {
251  assert(leavesSizeMax_ >= 1);
252  assert(blocksize_ >= 1);
253  leavesSizeMax = leavesSizeMax_;
254  blocksize = blocksize_;
255  }
256 
257  inline void get_SizesAndBlocks(mat::SizesAndBlocks& matrixSizesAndBlocks_
258  ) const
259  {
260  matrixSizesAndBlocks_ = matrixSizesAndBlocks;
261  }
262 
266  inline void set_truncationNormPurification(mat::normType const truncationNormPurification_ )
267  { truncationNormPurification = truncationNormPurification_; }
268 
272  inline void set_stopCriterionNormPurification(mat::normType const stopCriterionNormPurification_ )
273  { stopCriterionNormPurification = stopCriterionNormPurification_; }
274 
275 
277  { factor = 2; }
278 
280  { factor = 1; }
281 
282  inline void set_no_occupied_orbs(int noOfOccupiedOrbs_)
283  {
284  assert(noOfOccupiedOrbs_ >= 0);
285  noOfOccupiedOrbs = noOfOccupiedOrbs_;
286  }
287 
288  inline void clean_puri_stats()
289  { puri_stats.clear(); }
290 
291 
292  inline void set_invCholFactor(triangMatrix const& invCholFactor_,
293  ergo_real invCholFactor_euclnorm_)
294  {
295  invCholFactor = invCholFactor_;
296  assert(invCholFactor_euclnorm_ >= 0);
297  invCholFactor_euclnorm = invCholFactor_euclnorm_;
298  }
299 
300  inline void set_gap_expected_lower_bound(ergo_real gap_expected_lower_bound_)
301  {
302  assert(gap_expected_lower_bound_ >= 0);
303  gap_expected_lower_bound = gap_expected_lower_bound_;
304  }
305 
308  inline void set_purification_maxmul(ergo_real purification_maxmul_)
309  {
310  assert(purification_maxmul_ > 0);
311  maxMul = purification_maxmul_;
312  }
313 
314  inline void set_number_of_eigenvectors_to_compute(int occ, int unocc)
315  {
318  }
319 
320  inline void set_projection_method_params(int go_back, int step)
321  {
322  go_back_X_iter_proj_method = go_back;
324  }
325 
326  /**** SET/UNSET SECTION *****/
327 
329  { return create_m_files == BOOL_TRUE; }
334 
335 
336 
343 
344 
351 
352 
359 
360  inline int get_use_diagonalization() const
361  { return use_diagonalization == BOOL_TRUE; }
366 
367 
368  inline int get_use_purification() const
369  { return use_purification == BOOL_TRUE; }
370  inline void set_use_purification()
374 
375 
376  inline int get_use_diag_on_error_guess() const
377  { return use_diag_on_error_guess == BOOL_TRUE; }
382 
383 
384  inline int get_use_diag_on_error() const
385  { return use_diag_on_error == BOOL_TRUE; }
386  inline void set_use_diag_on_error()
390 
391 
392  inline std::string get_stats_prefix() const
393  { return stats_prefix; }
394  inline void set_stats_prefix(std::string stats_prefix_)
395  { stats_prefix = stats_prefix_; }
396  inline void unset_stats_prefix()
397  { stats_prefix = ""; }
398 
399 
400  inline int get_use_acceleration() const
401  { return use_acceleration == BOOL_TRUE; }
402  inline void set_use_acceleration()
406 
413 
420 
427 
428 
429 
436 
437 
444 
445 
452 
453 
460 
461 
462  inline void set_diagonalization_params(ergo_real electronicTemperature_,
463  symmMatrix& overlapMatrix_)
464  {
465  set_overlapMatrix(overlapMatrix_);
466  assert(electronicTemperature_ >= 0);
467  electronicTemperature = electronicTemperature_;
468  }
469 
470  inline void set_overlapMatrix(symmMatrix& overlapMatrix_)
471  { overlapMatrix = overlapMatrix_; }
472 
473 
474  inline void set_purification_limits(ergo_real subspaceErrorLimit_,
475  ergo_real eigvalueErrorLimit_ = 0,
477  {
478  set_eigvalueErrorLimit(eigvalueErrorLimit_);
479  set_subspaceErrorLimit(subspaceErrorLimit_);
481  }
482 
485  inline void set_eigvalueErrorLimit(ergo_real eigvalueErrorLimit_)
486  { eigvalueErrorLimit = eigvalueErrorLimit_; }
487 
491  inline void set_subspaceErrorLimit(ergo_real subspaceErrorLimit_)
492  { subspaceErrorLimit = subspaceErrorLimit_; }
493 
499  inline void set_puri_eig_acc_factor_for_guess(ergo_real puri_eig_acc_factor_for_guess_)
500  { puri_eig_acc_factor_for_guess = puri_eig_acc_factor_for_guess_; }
501 
502 
503 
504  // get some results from the purification
505 
507  { return resultEntropyTerm; }
508 
509  inline void get_puri_stats(std::map<std::string, double>& puri_stats_) const
510  { puri_stats_ = puri_stats; }
511 
512 
513 
514  // Fprev is effective Hamiltonian matrix (=Finput)
515  // Intervals contain the homo and lumo eigenvalues of Fprev
516  inline void set_eigs_Fprev(intervalType& homoInterval_Finput_,
517  intervalType& lumoInterval_Finput_)
518  {
519  homoInterval_Finput = intervalType(homoInterval_Finput_);
520  lumoInterval_Finput = intervalType(lumoInterval_Finput_);
521  }
522 
523  inline void get_eigs_Fprev(intervalType& homoInterval_Finput_,
524  intervalType& lumoInterval_Finput_) const
525  {
526  homoInterval_Finput_ = intervalType(homoInterval_Finput);
527  lumoInterval_Finput_ = intervalType(lumoInterval_Finput);
528  }
529 
530  // F_ort_prev is matrix in orthogonal basis
531  // Intervals contain the homo and lumo eigenvalues of F_ort_prev
532  inline void set_eigs_F_ort_prev(intervalType& homoInterval_F_ort_prev_,
533  intervalType& lumoInterval_F_ort_prev_)
534  {
535  homoInterval_F_ort_prev = intervalType(homoInterval_F_ort_prev_);
536  lumoInterval_F_ort_prev = intervalType(lumoInterval_F_ort_prev_);
537  }
538 
539  inline void get_eigs_F_ort_prev(intervalType& homoInterval_F_ort_prev_,
540  intervalType& lumoInterval_F_ort_prev_) const
541  {
542  homoInterval_F_ort_prev_ = intervalType(homoInterval_F_ort_prev);
543  lumoInterval_F_ort_prev_ = intervalType(lumoInterval_F_ort_prev);
544  }
545 
547  { return eigvalueErrorLimit; }
549  { return subspaceErrorLimit; }
552 
553  inline void compute_eigenvectors(std::string eigenvectors_method_,
554  std::string eigenvectors_iterative_method_,
555  ergo_real eigensolver_accuracy_,
556  int eigensolver_maxiter_,
557  int use_prev_vector_as_initial_guess_,
558  int try_eigv_on_next_iteration_if_fail_)
559  {
560  assert(eigenvectors_method_ == "square" || eigenvectors_method_ == "projection");
561  eigenvectors_method = eigenvectors_method_;
562 
563  assert(eigenvectors_iterative_method_ == "power" || eigenvectors_iterative_method_ == "lanczos");
564  eigenvectors_iterative_method = eigenvectors_iterative_method_;
565 
566  eigensolver_accuracy = eigensolver_accuracy_;
567  eigensolver_maxiter = eigensolver_maxiter_;
568 
569  if (use_prev_vector_as_initial_guess_ > 0)
570  {
572  }
573  else
574  {
576  }
577  if (try_eigv_on_next_iteration_if_fail_ > 0)
578  {
580  }
581  else
582  {
584  }
585 
586  }
587 
588  inline void compute_eigenvectors_extra(int puri_compute_eigv_in_each_iteration_, int run_shift_and_square_method_on_F_)
589  {
590  if (puri_compute_eigv_in_each_iteration_ > 0)
591  {
593  }
594  else
595  {
597  }
598 
599  if (run_shift_and_square_method_on_F_ > 0)
600  {
602  }
603  else
604  {
606  }
607  }
608 
609 private:
610 
611  int SCF_step;
612 
613 
614 
639 
671  std::string stats_prefix;
676 
681  std::string eigenvectors_method;
689  int n;
708  int maxMul;
713  int blocksize;
717 
720 
722  std::map<std::string, double> puri_stats;
723 
724  std::vector<generalVector> eigVecOCC;
725  std::vector<generalVector> eigVecUNOCC;
726  std::vector<ergo_real> eigValOCC;
727  std::vector<ergo_real> eigValUNOCC;
728 
729  // Names of files needed for checkpoints
730  const char *filenameFinput;
731  const char *filenameF_ort_prev;
732  const char *filenameeigVecLUMO;
733  const char *filenameeigVecHOMO;
734  const char *filenameOverlap;
735  const char *filenameD_ort_prev;
737  const char *file_for_basic_types;
738 };
739 
740 
741 
742 #endif // GETDENSFROMFOCKHEADER
mat::euclNorm
@ euclNorm
Definition: matInclude.h:139
write_matrix_to_bin
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
PurificationGeneral::extract_computed_eigenpairs
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
GetDensFromFock::use_diag_on_error
bool use_diag_on_error
Flag to fall back on diagonalization if purification fails.
Definition: GetDensFromFock.h:637
template_blas_sqrt
Treal template_blas_sqrt(Treal x)
PuriInfo::homo_estim_low_F
real homo_estim_low_F
Definition: puri_info.h:207
GetDensFromFock::set_no_occupied_orbs
void set_no_occupied_orbs(int noOfOccupiedOrbs_)
Definition: GetDensFromFock.h:282
GetDensFromFock::set_use_diag_on_error
void set_use_diag_on_error()
Definition: GetDensFromFock.h:386
mat::mixedNorm
@ mixedNorm
Definition: matInclude.h:139
GetDensFromFock::use_purification
bool use_purification
Flag to turn on purification.
Definition: GetDensFromFock.h:617
GetDensFromFock::invCholFactor
triangMatrix invCholFactor
Inverse Cholesky factor (written to file)
Definition: GetDensFromFock.h:700
PurificationGeneral
PurificationGeneral is an abstract class which provides an interface for SP2, SP2ACC and possibly oth...
Definition: purification_general.h:117
GetDensFromFock::ignore_purification_failure
bool ignore_purification_failure
Continue even if purification fails to converge.
Definition: GetDensFromFock.h:661
GetDensFromFock::plot_puri_results
bool plot_puri_results
Plot results of the purification from this function call.
Definition: GetDensFromFock.h:673
GetDensFromFock::set_eigvalueErrorLimit
void set_eigvalueErrorLimit(ergo_real eigvalueErrorLimit_)
Set maximum allowed error in eigenvalues of the density matrix.
Definition: GetDensFromFock.h:485
GetDensFromFock::lumoInterval_F_ort_prev
intervalType lumoInterval_F_ort_prev
Definition: GetDensFromFock.h:719
GetDensFromFock::overlapMatrix
symmMatrix overlapMatrix
Overlap matrix (written to file)
Definition: GetDensFromFock.h:696
GetDensFromFock::set_use_acceleration
void set_use_acceleration()
Definition: GetDensFromFock.h:402
mat::FileWritable::getStatsCountRead
static std::string getStatsCountRead()
Definition: FileWritable.cc:364
GetDensFromFock::set_eigs_Fprev
void set_eigs_Fprev(intervalType &homoInterval_Finput_, intervalType &lumoInterval_Finput_)
Definition: GetDensFromFock.h:516
GetDensFromFock::get_eigs_Fprev
void get_eigs_Fprev(intervalType &homoInterval_Finput_, intervalType &lumoInterval_Finput_) const
Definition: GetDensFromFock.h:523
GetDensFromFock::filenameD_ort_prev
const char * filenameD_ort_prev
Definition: GetDensFromFock.h:735
realtype.h
Definition of the main floating-point datatype used; the ergo_real type.
PurificationGeneral::set_jump_over_X_iter_proj_method
void set_jump_over_X_iter_proj_method(int val)
Definition: purification_general.h:257
GetDensFromFock::get_output_homo_and_lumo_eigenvectors
int get_output_homo_and_lumo_eigenvectors() const
Definition: GetDensFromFock.h:337
GetDensFromFock::set_SCF_step
void set_SCF_step(int step)
Definition: GetDensFromFock.h:212
GetDensFromFock::set_projection_method_params
void set_projection_method_params(int go_back, int step)
Definition: GetDensFromFock.h:320
LOG_CAT_TIMINGS
#define LOG_CAT_TIMINGS
Definition: output.h:52
file_exist
bool file_exist(const std::string &name)
Definition: GetDensFromFock.cc:1207
GetDensFromFock::NA_STRING
static const std::string NA_STRING
Definition: GetDensFromFock.h:61
PurificationGeneral::info
PuriInfo info
Fill in during purification with useful information.
Definition: purification_general.h:128
Purification_sp2acc
Purification_sp2acc is a class which provides an interface for SP2ACC recursive expansion.
Definition: purification_sp2acc.h:52
transform_matrix_from_to
void transform_matrix_from_to(const TYPE1 &A, TYPE2 &B, const ParamsType &P)
Definition: transform.h:52
GetDensFromFock::set_stopCriterionNormPurification
void set_stopCriterionNormPurification(mat::normType const stopCriterionNormPurification_)
Set stopping criterion norm used in the recursive expansion.
Definition: GetDensFromFock.h:272
AllocatorManager.h
Code for AllocatorManager class used for memory allocation/deallocation in matrix library....
GetDensFromFock::set_puri_eig_acc_factor_for_guess
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
GetDensFromFock::get_purification_create_m_files
int get_purification_create_m_files() const
Definition: GetDensFromFock.h:328
GetDensFromFock::filenameOverlap
const char * filenameOverlap
Definition: GetDensFromFock.h:734
GetDensFromFock::set_purification_maxmul
void set_purification_maxmul(ergo_real purification_maxmul_)
Set maximum allowed number of iterations in recursive expansion.
Definition: GetDensFromFock.h:308
GetDensFromFock::eigenvectors_method
std::string eigenvectors_method
Method for computing eigenvectors: square or projection.
Definition: GetDensFromFock.h:681
mat::Interval< ergo_real >::intersect
static Interval intersect(Interval const &A, Interval const &B)
Definition: Interval.h:53
LOG_CAT_ERROR
#define LOG_CAT_ERROR
Definition: output.h:47
purification_general.h
Recursive density matrix expansion (or density matrix purification).
GetDensFromFock::leavesSizeMax
int leavesSizeMax
Information about leavesSizeMax and blocksize for CHTMatrix.
Definition: GetDensFromFock.h:712
mat::Interval::upp
Treal upp() const
Definition: Interval.h:145
GetDensFromFock::set_purification_ignore_failure
void set_purification_ignore_failure()
Definition: GetDensFromFock.h:347
LOG_CAT_WARNING
#define LOG_CAT_WARNING
Definition: output.h:48
GetDensFromFock::set_stats_prefix
void set_stats_prefix(std::string stats_prefix_)
Definition: GetDensFromFock.h:394
mat::VectorGeneral::clear
void clear()
Definition: VectorGeneral.h:100
purification_sp2acc.h
SP2ACC (SP2 accelerated) recursive density matrix expansion (or density matrix purification).
GetDensFromFock::unset_use_diag_on_error_guess
void unset_use_diag_on_error_guess()
Definition: GetDensFromFock.h:380
ergo_real
double ergo_real
Definition: realtype.h:69
GetDensFromFock::get_use_rand_perturbation_for_alleigsint
int get_use_rand_perturbation_for_alleigsint() const
Definition: GetDensFromFock.h:353
GetDensFromFock::eigensolver_accuracy
ergo_real eigensolver_accuracy
The accuracy for the eigenvalue problem solver.
Definition: GetDensFromFock.h:685
GetDensFromFock::set_diagonalization_params
void set_diagonalization_params(ergo_real electronicTemperature_, symmMatrix &overlapMatrix_)
Definition: GetDensFromFock.h:462
MatrixParamsType
Definition: matrix_typedefs_chtml.h:79
GetDensFromFock::BOOL_TRUE
static const bool BOOL_TRUE
Definition: GetDensFromFock.h:63
GetDensFromFock::get_use_new_stopping_criterion
int get_use_new_stopping_criterion() const
Definition: GetDensFromFock.h:407
mat::Gblas::time
static float time
Definition: mat_gblas.h:226
GetDensFromFock::jump_over_X_iter_proj_method
int jump_over_X_iter_proj_method
Parameter used in the projection method for computing eigenvectors.
Definition: GetDensFromFock.h:650
GetDensFromFock::gap_expected_lower_bound
ergo_real gap_expected_lower_bound
Expected lower bound for the gap to be used in early iterations.
Definition: GetDensFromFock.h:627
VectorType
generalVector VectorType
Definition: GetDensFromFock.cc:62
symmMatrix
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
GetDensFromFock::unset_save_permuted_F_matrix_in_bin
void unset_save_permuted_F_matrix_in_bin()
Definition: GetDensFromFock.h:425
GetDensFromFock::unset_use_prev_vector_as_initial_guess
void unset_use_prev_vector_as_initial_guess()
Definition: GetDensFromFock.h:458
GetDensFromFock::eigvalueErrorLimit
ergo_real eigvalueErrorLimit
Tolerated deviation of eigenvalues from 0 and 1 in the computed density matrix.
Definition: GetDensFromFock.h:629
GetDensFromFock::create_checkpoint
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
PurificationGeneral::set_number_of_eigenvectors_to_compute
void set_number_of_eigenvectors_to_compute(const int occ, const int unocc)
Definition: purification_general.h:248
GetDensFromFock::get_subspaceErrorLimit
ergo_real get_subspaceErrorLimit() const
Definition: GetDensFromFock.h:548
GetDensFromFock::store_all_eigenvalues_to_file
bool store_all_eigenvalues_to_file
Store eigenvalues to the file when doing diagonalization.
Definition: GetDensFromFock.h:619
purification_sp2.h
SP2 recursive density matrix expansion (or density matrix purification).
GetDensFromFock::get_run_shift_and_square_method_on_F
int get_run_shift_and_square_method_on_F()
Definition: GetDensFromFock.h:438
GetDensFromFock::noOfOccupiedOrbs
int noOfOccupiedOrbs
Number of occupied orbitals.
Definition: GetDensFromFock.h:691
GetDensFromFock::use_diag_on_error_guess
bool use_diag_on_error_guess
Definition: GetDensFromFock.h:638
GetDensFromFock::unset_stats_prefix
void unset_stats_prefix()
Definition: GetDensFromFock.h:396
GetDensFromFock::set_use_prev_vector_as_initial_guess
void set_use_prev_vector_as_initial_guess()
Definition: GetDensFromFock.h:456
mat::FileWritable::getStatsTimeCopyAndAssign
static std::string getStatsTimeCopyAndAssign()
Definition: FileWritable.cc:358
PurificationGeneral::clear
virtual void clear()
Clear all matrices in the class.
Definition: purification_general.h:176
mat::frobNorm
@ frobNorm
Definition: matInclude.h:139
GetDensFromFock::unset_try_eigv_on_next_iteration_if_fail
void unset_try_eigv_on_next_iteration_if_fail()
Definition: GetDensFromFock.h:450
PurificationGeneral::gen_matlab_file_nnz
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
GetDensFromFock::set_use_purification
void set_use_purification()
Definition: GetDensFromFock.h:370
GetDensFromFock::blocksize
int blocksize
Information about leavesSizeMax and blocksize for CHTMatrix.
Definition: GetDensFromFock.h:713
rows
mat::SizesAndBlocks rows
Definition: test.cc:51
PuriInfo::print_collected_info
void print_collected_info()
Definition: puri_info.cc:187
GetDensFromFock::save_permuted_F_matrix_in_bin
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
GetDensFromFock::use_diagonalization
bool use_diagonalization
Flag to turn on diagonalization.
Definition: GetDensFromFock.h:615
GetDensFromFock::BOOL_FALSE
static const bool BOOL_FALSE
Definition: GetDensFromFock.h:64
GetDensFromFock::set_store_all_eigenvalues_to_file
void set_store_all_eigenvalues_to_file()
Definition: GetDensFromFock.h:416
if
if(!(yy_init))
Definition: ergo_input_parser.c:784
GetDensFromFock::unset_purification_create_m_files
void unset_purification_create_m_files()
Definition: GetDensFromFock.h:332
GetDensFromFock::unset_SCF_step
void unset_SCF_step()
Definition: GetDensFromFock.h:214
GetDensFromFock::get_puri_compute_eigv_in_each_iteration
int get_puri_compute_eigv_in_each_iteration()
Definition: GetDensFromFock.h:430
GetDensFromFock::matrixSizesAndBlocks
mat::SizesAndBlocks matrixSizesAndBlocks
Information about HML matrix block sizes etc.
Definition: GetDensFromFock.h:710
mat::SizesAndBlocks::getBlockSizeVector
void getBlockSizeVector(std::vector< int > &blockSizesCopy) const
Definition: SizesAndBlocks.cc:87
template_blas_fabs
Treal template_blas_fabs(Treal x)
GetDensFromFock::unset_use_diag_on_error
void unset_use_diag_on_error()
Definition: GetDensFromFock.h:388
GetDensFromFock::eigVecOCC
std::vector< generalVector > eigVecOCC
Definition: GetDensFromFock.h:724
symmMatrixWrap
symmMatrix symmMatrixWrap
Definition: matrix_typedefs_chtml.h:84
PurificationGeneral::set_eigenvectors_params
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
GetDensFromFock::get_try_eigv_on_next_iteration_if_fail
int get_try_eigv_on_next_iteration_if_fail()
Definition: GetDensFromFock.h:446
GetDensFromFock::stats_prefix
std::string stats_prefix
Prefix to be added to statistics files.
Definition: GetDensFromFock.h:671
GetDensFromFock::filenameeigVecLUMO
const char * filenameeigVecLUMO
Definition: GetDensFromFock.h:732
GetDensFromFock::set_number_of_eigenvectors_to_compute
void set_number_of_eigenvectors_to_compute(int occ, int unocc)
Definition: GetDensFromFock.h:314
GetDensFromFock::resultEntropyTerm
ergo_real resultEntropyTerm
Definition: GetDensFromFock.h:721
normalMatrix
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71
triangMatrix
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
GetDensFromFock::output_homo_and_lumo_eigenvectors
bool output_homo_and_lumo_eigenvectors
Compute homo and lumo eigenvectors and write them to the file.
Definition: GetDensFromFock.h:642
PurificationGeneral::X
MatrixType X
Matrix X.
Definition: purification_general.h:130
GetDensFromFock::unset_use_acceleration
void unset_use_acceleration()
Definition: GetDensFromFock.h:404
GetDensFromFock::truncationNormPurification
mat::normType truncationNormPurification
Norm to be used for truncation.
Definition: GetDensFromFock.h:704
GetDensFromFock::set_invCholFactor
void set_invCholFactor(triangMatrix const &invCholFactor_, ergo_real invCholFactor_euclnorm_)
Definition: GetDensFromFock.h:292
GetDensFromFock::set_output_homo_and_lumo_eigenvectors
void set_output_homo_and_lumo_eigenvectors()
Definition: GetDensFromFock.h:339
GetDensFromFock::subspaceErrorLimit
ergo_real subspaceErrorLimit
Tolerated error in the occupied subspace as measured by the sinus of the largest canonical angle.
Definition: GetDensFromFock.h:631
GetDensFromFock::unset_purification_ignore_failure
void unset_purification_ignore_failure()
Definition: GetDensFromFock.h:349
GetDensFromFock::get_store_all_eigenvalues_to_file
int get_store_all_eigenvalues_to_file() const
Definition: GetDensFromFock.h:414
GetDensFromFock::get_dens_from_fock
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
LOG_AREA_DENSFROMF
#define LOG_AREA_DENSFROMF
Definition: output.h:61
Purification_sp2
Purification_sp2acc is a class which provides an interface for SP2 recursive expansion.
Definition: purification_sp2.h:52
GetDensFromFock::plot_puri_results_str
std::string plot_puri_results_str
Definition: GetDensFromFock.h:675
mat::trace
Treal trace(const XYZ< Treal, MatrixGeneral< Treal, Tmatrix >, MatrixGeneral< Treal, Tmatrix > > &smm)
Definition: MatrixGeneral.h:904
mat::VectorGeneral::resetSizesAndBlocks
void resetSizesAndBlocks(SizesAndBlocks const &newRows)
Definition: VectorGeneral.h:51
GetDensFromFock::set_puri_compute_eigv_in_each_iteration
void set_puri_compute_eigv_in_each_iteration()
Definition: GetDensFromFock.h:432
GetDensFromFock::unset_use_diagonalization
void unset_use_diagonalization()
Definition: GetDensFromFock.h:364
PuriInfo::lumo_estim_low_F
real lumo_estim_low_F
Definition: puri_info.h:209
GetDensFromFock::set_use_diag_on_error_guess
void set_use_diag_on_error_guess()
Definition: GetDensFromFock.h:378
GetDensFromFock::get_eigvalueErrorLimit
ergo_real get_eigvalueErrorLimit() const
Definition: GetDensFromFock.h:546
GetDensFromFock::do_unrestricted_calculations
void do_unrestricted_calculations()
Definition: GetDensFromFock.h:279
PurificationGeneral::initialize
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
GetDensFromFock::set_purification_create_m_files
void set_purification_create_m_files()
Definition: GetDensFromFock.h:330
mat::Params::getNProcs
static unsigned int getNProcs()
Definition: matInclude.h:103
PuriInfo::converged
int converged
Definition: puri_info.h:199
GetDensFromFock::set_save_permuted_F_matrix_in_bin
void set_save_permuted_F_matrix_in_bin()
Definition: GetDensFromFock.h:423
mat::FileWritable::getStatsTimeRead
static std::string getStatsTimeRead()
Definition: FileWritable.cc:355
GetDensFromFock::puri_stats
std::map< std::string, double > puri_stats
Definition: GetDensFromFock.h:722
GetDensFromFock::compute_eigenvectors_extra
void compute_eigenvectors_extra(int puri_compute_eigv_in_each_iteration_, int run_shift_and_square_method_on_F_)
Definition: GetDensFromFock.h:588
get_dens_from_fock_full
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
GetDensFromFock::eigVecUNOCC
std::vector< generalVector > eigVecUNOCC
Definition: GetDensFromFock.h:725
GetDensFromFock::unset_use_new_stopping_criterion
void unset_use_new_stopping_criterion()
Definition: GetDensFromFock.h:411
GetDensFromFock::use_new_stopping_criterion
bool use_new_stopping_criterion
Use new parameterless stopping criterion.
Definition: GetDensFromFock.h:679
matrix_utilities.h
Utilities related to the hierarchical matrix library (HML), including functions for setting up permut...
GetDensFromFock.h
Routines for getting density matrix from a given Fock matrix.
GetDensFromFock::set_run_shift_and_square_method_on_F
void set_run_shift_and_square_method_on_F()
Definition: GetDensFromFock.h:440
get_eucl_diff_with_adapted_accuracy
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
mat::VectorGeneral::is_empty
bool is_empty() const
Definition: VectorGeneral.h:56
GetDensFromFock::factor
ergo_real factor
Factor to scale the resulting density matrix.
Definition: GetDensFromFock.h:693
GetDensFromFock::set_cht_matrix_params
void set_cht_matrix_params(const int leavesSizeMax_, const int blocksize_)
Definition: GetDensFromFock.h:247
GetDensFromFock::get_SizesAndBlocks
void get_SizesAndBlocks(mat::SizesAndBlocks &matrixSizesAndBlocks_) const
Definition: GetDensFromFock.h:257
GetDensFromFock::try_eigv_on_next_iteration_if_fail
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
mat::VectorGeneral
Definition: MatrixBase.h:55
Util::TimeMeter::print
void print(int area, const char *routine)
Definition: utilities.h:111
GetDensFromFock::get_stats_prefix
std::string get_stats_prefix() const
Definition: GetDensFromFock.h:392
GetDensFromFock::get_purification_ignore_failure
int get_purification_ignore_failure() const
Definition: GetDensFromFock.h:345
GetDensFromFock::unset_output_homo_and_lumo_eigenvectors
void unset_output_homo_and_lumo_eigenvectors()
Definition: GetDensFromFock.h:341
GetDensFromFock::get_eigs_F_ort_prev
void get_eigs_F_ort_prev(intervalType &homoInterval_F_ort_prev_, intervalType &lumoInterval_F_ort_prev_) const
Definition: GetDensFromFock.h:539
GetDensFromFock::SCF_step
int SCF_step
Definition: GetDensFromFock.h:611
mat::transpose
Xtrans< TX > transpose(TX const &A)
Transposition.
Definition: matrix_proxy.h:131
GetDensFromFock::maxMul
int maxMul
Maximum allowed number of matrix multiplications in the purification.
Definition: GetDensFromFock.h:708
utilities.h
Basic OS access utilities.
GetDensFromFock::run_shift_and_square_method_on_F
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
GetDensFromFock::compute_eigenvectors
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
GetDensFromFock::set_purification_use_rand_perturbation_for_alleigsint
void set_purification_use_rand_perturbation_for_alleigsint()
Definition: GetDensFromFock.h:355
GetDensFromFock::stopCriterionNormPurification
mat::normType stopCriterionNormPurification
Norm to be used for stopping criterion.
Definition: GetDensFromFock.h:706
PurificationGeneral::gen_matlab_file_norm_diff
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
LOG_CAT_INFO
#define LOG_CAT_INFO
Definition: output.h:49
mat::FileWritable::getStatsCountCopyAndAssign
static std::string getStatsCountCopyAndAssign()
Definition: FileWritable.cc:367
GetDensFromFock::filenameFinput
const char * filenameFinput
Definition: GetDensFromFock.h:730
GetDensFromFock::D_ort_prev
symmMatrix D_ort_prev
Density matrix from previous SCF cycle (written to file)
Definition: GetDensFromFock.h:698
intervalType
mat::Interval< ergo_real > intervalType
Definition: matrix_typedefs.h:78
GetDensFromFock::n
int n
System size.
Definition: GetDensFromFock.h:689
PurificationGeneral::PurificationStart
virtual void PurificationStart()
Start recursive expansion.
Definition: purification_general.h:953
GetDensFromFock::go_back_X_iter_proj_method
int go_back_X_iter_proj_method
Parameter used in the projection method for computing eigenvectors.
Definition: GetDensFromFock.h:648
mat::FileWritable::writeAndReadAll
static std::string writeAndReadAll()
Definition: FileWritable.cc:509
mat::AllocatorManager::getStatistics
std::string getStatistics()
Definition: AllocatorManager.h:141
GetDensFromFock::file_for_basic_types
const char * file_for_basic_types
Definition: GetDensFromFock.h:737
GetDensFromFock::GetDensFromFock
GetDensFromFock()
Definition: GetDensFromFock.h:88
GetDensFromFock::set_generate_figures
void set_generate_figures(std::string str="")
Plot figures from the recursive expansion.
Definition: GetDensFromFock.h:220
GetDensFromFock::get_result_entropy_term
ergo_real get_result_entropy_term() const
Definition: GetDensFromFock.h:506
UNIT_one_eV
#define UNIT_one_eV
Definition: units.h:45
GetDensFromFock::homoInterval_Finput
intervalType homoInterval_Finput
Definition: GetDensFromFock.h:715
matrix_typedefs.h
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
mat::FileWritable::resetStats
static void resetStats()
Definition: FileWritable.cc:308
GetDensFromFock::get_use_diag_on_error_guess
int get_use_diag_on_error_guess() const
Definition: GetDensFromFock.h:376
mat::normType
normType
Definition: matInclude.h:139
GetDensFromFock::set_overlapMatrix
void set_overlapMatrix(symmMatrix &overlapMatrix_)
Definition: GetDensFromFock.h:470
mat::Gblas::timekeeping
static bool timekeeping
Definition: mat_gblas.h:227
mat::Interval< ergo_real >
LOG_AREA_SCF
#define LOG_AREA_SCF
Definition: output.h:58
max
#define max(a, b)
Definition: integrator.cc:87
GetDensFromFock::set_gap_expected_lower_bound
void set_gap_expected_lower_bound(ergo_real gap_expected_lower_bound_)
Definition: GetDensFromFock.h:300
GetDensFromFock::get_use_diag_on_error
int get_use_diag_on_error() const
Definition: GetDensFromFock.h:384
GetDensFromFock::electronicTemperature
ergo_real electronicTemperature
Electronic temperature.
Definition: GetDensFromFock.h:625
GetDensFromFock::use_prev_vector_as_initial_guess
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
TC2.h
PurificationGeneral::set_compute_eigenvectors_in_each_iteration
void set_compute_eigenvectors_in_each_iteration()
Definition: purification_general.h:245
PuriInfo::lumo_estim_upp_F
real lumo_estim_upp_F
Definition: puri_info.h:208
GetDensFromFock::get_use_diagonalization
int get_use_diagonalization() const
Definition: GetDensFromFock.h:360
units.h
Constants for conversion between units for some common units like Angstrom, electron-volt (eV),...
GetDensFromFock::use_rand_perturbation_for_alleigsint
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
GetDensFromFock::set_general_params
void set_general_params(const int n_, mat::SizesAndBlocks const &matrixSizesAndBlocks_)
Definition: GetDensFromFock.h:238
GetDensFromFock::filenameinvCholFactor
const char * filenameinvCholFactor
Definition: GetDensFromFock.h:736
GetDensFromFock::eigValOCC
std::vector< ergo_real > eigValOCC
Definition: GetDensFromFock.h:726
GetDensFromFock::get_use_acceleration
int get_use_acceleration() const
Definition: GetDensFromFock.h:400
PuriInfo::homo_eigenvector_is_computed
bool homo_eigenvector_is_computed
Definition: puri_info.h:212
GetDensFromFock::number_of_unoccupied_eigenvectors
int number_of_unoccupied_eigenvectors
Number of unoccupied eigenvectors to compute.
Definition: GetDensFromFock.h:646
GetDensFromFock::set_try_eigv_on_next_iteration_if_fail
void set_try_eigv_on_next_iteration_if_fail()
Definition: GetDensFromFock.h:448
GetDensFromFock::UNDEF_VALUE_UINT
static const int UNDEF_VALUE_UINT
Definition: GetDensFromFock.h:60
GetDensFromFock::eigensolver_maxiter
int eigensolver_maxiter
Maximum number of iterations for the eigenvalue problem solver.
Definition: GetDensFromFock.h:687
output_current_memory_usage
void output_current_memory_usage(int logArea, const char *contextString)
Definition: output.cc:186
PuriInfo::lumo_eigenvector_is_computed
bool lumo_eigenvector_is_computed
Definition: puri_info.h:213
GetDensFromFock::get_use_purification
int get_use_purification() const
Definition: GetDensFromFock.h:368
mat::getNormTypeString
std::string getNormTypeString(normType nType)
Definition: matInclude.cc:62
GetDensFromFock::create_m_files
bool create_m_files
Flag to create m-files with information about the purification process.
Definition: GetDensFromFock.h:640
GetDensFromFock::get_dens_from_fock_sparse
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
GetDensFromFock::get_use_prev_vector_as_initial_guess
int get_use_prev_vector_as_initial_guess()
Definition: GetDensFromFock.h:454
mat::FileWritable::getStatsCountWrite
static std::string getStatsCountWrite()
Definition: FileWritable.cc:361
GetDensFromFock::puri_eig_acc_factor_for_guess
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
transform.h
GetDensFromFock::set_purification_limits
void set_purification_limits(ergo_real subspaceErrorLimit_, ergo_real eigvalueErrorLimit_=0, ergo_real puri_eig_acc_factor_for_guess=0)
Definition: GetDensFromFock.h:474
GetDensFromFock::unset_generate_figures
void unset_generate_figures()
Do not plot figures from the recursive expansion.
Definition: GetDensFromFock.h:232
mat::SizesAndBlocks
Describes dimensions of matrix and its blocks on all levels.
Definition: SizesAndBlocks.h:45
mat::AllocatorManager::instance
static AllocatorManager & instance()
GetDensFromFock::unset_store_all_eigenvalues_to_file
void unset_store_all_eigenvalues_to_file()
Definition: GetDensFromFock.h:418
GetDensFromFock::get_computed_eigenpairs
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
mat::VectorGeneral::assign_from_full
void assign_from_full(std::vector< Treal > const &fullVector, SizesAndBlocks const &newRows)
Definition: VectorGeneral.h:83
GetDensFromFock::lumoInterval_Finput
intervalType lumoInterval_Finput
Definition: GetDensFromFock.h:716
machine_epsilon.h
Functionality for determining an approximate value of the "machine epsilon" – the smallest number tha...
GetDensFromFock::use_acceleration
bool use_acceleration
Use acceleration in the purification.
Definition: GetDensFromFock.h:677
GetDensFromFock::unset_run_shift_and_square_method_on_F
void unset_run_shift_and_square_method_on_F()
Definition: GetDensFromFock.h:442
GetDensFromFock::set_eigs_F_ort_prev
void set_eigs_F_ort_prev(intervalType &homoInterval_F_ort_prev_, intervalType &lumoInterval_F_ort_prev_)
Definition: GetDensFromFock.h:532
GetDensFromFock::unset_puri_compute_eigv_in_each_iteration
void unset_puri_compute_eigv_in_each_iteration()
Definition: GetDensFromFock.h:434
GetDensFromFock::clean_eigs_intervals
void clean_eigs_intervals()
Set bounds for HOMO and LUMO eigenvalues to -/+ inf, thus remove any known bounds.
Definition: GetDensFromFock.h:196
GetDensFromFock::get_puri_eig_acc_factor_for_guess
ergo_real get_puri_eig_acc_factor_for_guess() const
Definition: GetDensFromFock.h:550
GetDensFromFock::eigValUNOCC
std::vector< ergo_real > eigValUNOCC
Definition: GetDensFromFock.h:727
get_machine_epsilon
ergo_real get_machine_epsilon()
return machine epsilon.
Definition: machine_epsilon.cc:50
matrix_typedefs_chtml.h
Header file with typedefs for matrix types, using either the hierarchical matrix library (HML) or the...
GetDensFromFock::set_use_diagonalization
void set_use_diagonalization()
Definition: GetDensFromFock.h:362
GetDensFromFock::set_subspaceErrorLimit
void set_subspaceErrorLimit(ergo_real subspaceErrorLimit_)
Set maximum allowed error in invariant subspaces of the density matrix.
Definition: GetDensFromFock.h:491
GetDensFromFock::number_of_occupied_eigenvectors
int number_of_occupied_eigenvectors
Number of occupied eigenvectors to compute.
Definition: GetDensFromFock.h:644
GetDensFromFock::eigenvectors_iterative_method
std::string eigenvectors_iterative_method
Iterative method for computing eigenvectors: power or lanczos.
Definition: GetDensFromFock.h:683
PurificationGeneral::compute_eigenvectors_without_diagonalization_on_F
void compute_eigenvectors_without_diagonalization_on_F(const MatrixType &F, int eigensolver_maxiter_for_F)
Definition: purification_general.h:2426
mat::FileWritable::getStatsTimeWrite
static std::string getStatsTimeWrite()
Definition: FileWritable.cc:352
PurificationGeneral::set_go_back_X_iter_proj_method
void set_go_back_X_iter_proj_method(int val)
Definition: purification_general.h:261
mat::Interval::increase
void increase(Treal const value)
Increases interval with value in both directions.
Definition: Interval.h:133
GetDensFromFock::puri_compute_eigv_in_each_iteration
bool puri_compute_eigv_in_each_iteration
Compute eigenvectors in each iteration of the recursive expansion.
Definition: GetDensFromFock.h:654
GetDensFromFock::unset_use_purification
void unset_use_purification()
Definition: GetDensFromFock.h:372
do_output
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
GetDensFromFock::set_truncationNormPurification
void set_truncationNormPurification(mat::normType const truncationNormPurification_)
Set truncation norm used in the recursive expansion.
Definition: GetDensFromFock.h:266
PurificationGeneral::gen_matlab_file_eigs
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
PuriInfo::accumulated_error_subspace
real accumulated_error_subspace
Definition: puri_info.h:202
triangMatrixWrap
triangMatrix triangMatrixWrap
Definition: matrix_typedefs_chtml.h:86
GetDensFromFock::filenameeigVecHOMO
const char * filenameeigVecHOMO
Definition: GetDensFromFock.h:733
PurificationGeneral::gen_matlab_file_time
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
densfromf_full.h
Routine get_dens_from_fock_full() for getting density matrix from a given Fock matrix using diagonali...
GetDensFromFock::invCholFactor_euclnorm
ergo_real invCholFactor_euclnorm
Euclidean norm of inverse Cholesky factor.
Definition: GetDensFromFock.h:702
PuriInfo::homo_estim_upp_F
real homo_estim_upp_F
Definition: puri_info.h:206
GetDensFromFock::clean_puri_stats
void clean_puri_stats()
Definition: GetDensFromFock.h:288
GetDensFromFock::homoInterval_F_ort_prev
intervalType homoInterval_F_ort_prev
Definition: GetDensFromFock.h:718
GetDensFromFock::unset_purification_use_rand_perturbation_for_alleigsint
void unset_purification_use_rand_perturbation_for_alleigsint()
Definition: GetDensFromFock.h:357
GetDensFromFock::do_restricted_calculations
void do_restricted_calculations()
Definition: GetDensFromFock.h:276
GetDensFromFock
GetDensFromFock class containing parameters and functions for computing density matrix.
Definition: GetDensFromFock.h:57
GetDensFromFock::get_puri_stats
void get_puri_stats(std::map< std::string, double > &puri_stats_) const
Definition: GetDensFromFock.h:509
PurificationGeneral::gen_matlab_file_threshold
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
Util::TimeMeter
Time-measuring class.
Definition: utilities.h:80
GetDensFromFock::set_use_new_stopping_criterion
void set_use_new_stopping_criterion()
Definition: GetDensFromFock.h:409
output.h
Functionality for writing output messages to a text file.
mat::Interval::low
Treal low() const
Definition: Interval.h:144
GetDensFromFock::restore_from_checkpoint
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
GetDensFromFock::get_save_permuted_F_matrix_in_bin
int get_save_permuted_F_matrix_in_bin()
Definition: GetDensFromFock.h:421
GetDensFromFock::filenameF_ort_prev
const char * filenameF_ort_prev
Definition: GetDensFromFock.h:731