ergo
SCF_general.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 
38 #ifndef SCF_GENERAL_HEADER
39 #define SCF_GENERAL_HEADER
40 
41 #include "molecule.h"
42 #include "basisinfo.h"
43 #include "integrals_2el.h"
44 #include "grid_stream.h"
45 #include "scf.h"
46 #include "diis_general.h"
47 #include "SCF_statistics.h"
48 #include "GetDensFromFock.h"
49 
50 
52 {
53  public:
54 
55  // SCF convergence routine
56  void do_SCF_iterations();
57 
59  void get_invCholFactor_matrix(triangMatrix & invCholFactor_);
60  void get_H_core_matrix(symmMatrix & H_core);
61  void get_energy(ergo_real & E, ergo_real & E_nuclear);
62 
63  protected:
64  // Constructor
65  SCF_general(const Molecule& molecule_,
66  const Molecule& extraCharges_,
67  const BasisInfoStruct & basisInfo_,
68  const IntegralInfo & integralInfo_,
69  const char* guessDmatFileName_,
70  const JK::Params& J_K_params_,
71  const Dft::GridParams& gridParams_,
72  const SCF::Options& scfopts,
73  const SCF::MatOptions& matOpts,
74  ergo_real threshold_integrals_1el_input);
75 
76  // Destructor
77  virtual ~SCF_general();
78 
83  const char* guessDmatFileName;
89 
90  //integral_prep_struct* integralPrep;
91 
92  JK::ExchWeights CAM_params; // range-separated exchange parameters
93 
94  // number of SCF cycle
95  int SCF_step;
96 
97  // nuclearEnergy is nuclear repulsion energy plus contribution from external electric field.
99 
102 
103  ergo_real energy_2el_core; // only used when "core density matrix" is used
104  ergo_real energy_2el_valence; // only used when "core density matrix" is used
105  ergo_real energy_of_valence; // only used when "core density matrix" is used
106  ergo_real energy_reference; // only used when "core density matrix" is used
107 
109 
111 
113 
118 
119  DIISManager* DIIS; // Must be initialized by restricted/unrestricted derived class.
120 
122 
124 
126 
128 
129  virtual void initialize_matrices() = 0;
130  virtual void check_params() = 0;
131  virtual void get_starting_guess_density() = 0;
132  virtual void initialize_homo_lumo_limits() = 0;
133  virtual void write_matrices_to_file() = 0;
134  virtual void get_2e_part_and_energy() = 0;
135  virtual void output_sparsity_S_F_D(SCF_statistics & stats) = 0;
136  virtual void calculate_energy() = 0;
137  virtual void get_FDSminusSDF() = 0;
138  virtual void get_error_measure() = 0;
139  virtual void add_to_DIIS_list() = 0;
140  virtual void update_best_fock_so_far() = 0;
141  virtual void combine_old_fock_matrices(ergo_real stepLength) = 0;
143  virtual void clear_diis_list() = 0;
144  virtual void clear_error_matrices() = 0;
145  virtual void save_current_fock_as_fprev() = 0;
146  virtual void get_new_density_matrix() = 0;
147  virtual void write_density_to_file() = 0;
148  virtual void save_final_potential() = 0;
151  virtual void output_density_images() = 0;
152  virtual void write_diag_dens_to_file() = 0;
153  virtual void report_final_results() = 0;
154  virtual void save_density_as_prevdens() = 0;
155  virtual void update_subspace_diff() = 0;
156  virtual void disturb_fock_matrix(ergo_real subspaceError) = 0;
157  virtual void disturb_dens_matrix(ergo_real subspaceError) = 0;
158  virtual void do_spin_flip(int atomCount) = 0;
159  virtual void disturb_dens_matrix_exact(ergo_real subspaceError) = 0;
160  virtual void save_full_matrices_for_matlab() = 0;
161  virtual void report_density_difference() = 0;
162  virtual void create_mtx_files_F(int const scfIter) = 0;
163  virtual void create_mtx_files_D(int const scfIter) = 0;
164  virtual void create_eigenvectors_files() const = 0;
165  virtual void create_gabedit_file() const = 0;
166  virtual void compute_dipole_moment() = 0;
167  virtual void do_mulliken_pop_stuff() = 0;
168  virtual void compute_gradient_fixeddens() = 0;
169 };
170 
171 
172 
173 
174 
175 #endif
SCF::Options::store_all_eigenvalues_to_file
int store_all_eigenvalues_to_file
Definition: scf.h:124
diis_general.h
General DIISManager class that can be used as a base class in implementations of direct inversion in ...
SCF_general::update_subspace_diff
virtual void update_subspace_diff()=0
SCF_general::S_symm
symmMatrix S_symm
Definition: SCF_general.h:114
SCF_general::DensFromFock
GetDensFromFock DensFromFock
Definition: SCF_general.h:125
template_blas_sqrt
Treal template_blas_sqrt(Treal x)
JK::Params::threshold_K
ergo_real threshold_K
Definition: integrals_2el.h:48
GetDensFromFock::set_use_diag_on_error
void set_use_diag_on_error()
Definition: GetDensFromFock.h:386
SCF_general
Definition: SCF_general.h:52
compute_h_core_matrix_simple_dense
int compute_h_core_matrix_simple_dense(const IntegralInfo &integralInfo, const Molecule &molecule, const BasisInfoStruct &basisInfo, symmMatrix &H_core_Matrix_sparse, ergo_real threshold_integrals_1el, int noOfThreadsForV, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, ergo_real &result_nuclearRepulsionEnergy)
Definition: scf_utils.cc:409
SCF::Options::number_of_unoccupied_eigenvectors
int number_of_unoccupied_eigenvectors
Definition: scf.h:150
JK::ExchWeights::mu
ergo_real mu
Definition: integral_info.h:151
SCF_general::save_full_matrices_for_matlab
virtual void save_full_matrices_for_matlab()=0
GetDensFromFock::set_use_acceleration
void set_use_acceleration()
Definition: GetDensFromFock.h:402
SCF::Options::output_expected_values_pos_operator
int output_expected_values_pos_operator
Definition: scf.h:112
LOG_CAT_RESULTS
#define LOG_CAT_RESULTS
Definition: output.h:51
SCF::Options::purification_truncation_norm
mat::normType purification_truncation_norm
Definition: scf.h:72
SCF_statistics::stop_timer
void stop_timer(std::string identifier)
Definition: SCF_statistics.cc:62
integral_matrix_wrappers.h
Wrapper routines for different parts of the integral code, including conversion of matrices from/to t...
SCF_general::nuclearEnergy
ergo_real nuclearEnergy
Definition: SCF_general.h:98
SCF::MatOptions::sparse_threshold
ergo_real sparse_threshold
threshold value for sparse matrix truncation.
Definition: scf.h:280
SCF::Options::starting_guess_disturbance
ergo_real starting_guess_disturbance
Definition: scf.h:89
SCF::Options::step_length_start
ergo_real step_length_start
Definition: scf.h:62
BasisInfoStruct::noOfBasisFuncs
int noOfBasisFuncs
Definition: basisinfo.h:120
GetDensFromFock::set_projection_method_params
void set_projection_method_params(int go_back, int step)
Definition: GetDensFromFock.h:320
SCF_statistics::output_mfile
void output_mfile(std::string name)
Definition: SCF_statistics.cc:81
SCF_general::clear_error_matrices
virtual void clear_error_matrices()=0
get_eucl_norm_try_different_acc
static ergo_real get_eucl_norm_try_different_acc(const symmMatrix &A, ergo_real &acc)
Definition: SCF_general.cc:53
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....
SCF::Options::save_permuted_F_matrix_in_bin
int save_permuted_F_matrix_in_bin
Definition: scf.h:128
SCF::Options::create_mtx_file_H_core
int create_mtx_file_H_core
Definition: scf.h:140
SCF_general::get_error_measure
virtual void get_error_measure()=0
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
UNIT_one_Angstrom
#define UNIT_one_Angstrom
Definition: units.h:43
SCF_general::disturb_fock_matrix
virtual void disturb_fock_matrix(ergo_real subspaceError)=0
LOG_CAT_ERROR
#define LOG_CAT_ERROR
Definition: output.h:47
SCF_general::create_mtx_files_F
virtual void create_mtx_files_F(int const scfIter)=0
SCF::Options::write_overlap_matrix
int write_overlap_matrix
Definition: scf.h:129
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
SCF_general::GetEuclideanNormOfMatrix
ergo_real GetEuclideanNormOfMatrix(const symmMatrix &A)
Definition: SCF_general.cc:493
GetDensFromFock::unset_use_diag_on_error_guess
void unset_use_diag_on_error_guess()
Definition: GetDensFromFock.h:380
SCF_general::H_core_Matrix
symmMatrix H_core_Matrix
Definition: SCF_general.h:117
SCF_general::threshold_integrals_1el
ergo_real threshold_integrals_1el
Definition: SCF_general.h:88
SCF_general::write_matrices_to_file
virtual void write_matrices_to_file()=0
ergo_real
double ergo_real
Definition: realtype.h:69
GetDensFromFock::set_diagonalization_params
void set_diagonalization_params(ergo_real electronicTemperature_, symmMatrix &overlapMatrix_)
Definition: GetDensFromFock.h:462
SCF::Options::create_mtx_file_S
int create_mtx_file_S
Definition: scf.h:139
working_directory_struct::s
char s[MAX_WORKING_DIRECTORY_LEN]
Definition: utilities.h:57
SCF::Options::use_simple_dense_H_core
int use_simple_dense_H_core
Definition: scf.h:94
SCF::Options::calculation_identifier
std::string calculation_identifier
Definition: scf.h:54
SCF_general::compute_dipole_moment
virtual void compute_dipole_moment()=0
SCF_general::curr_subspace_diff
ergo_real curr_subspace_diff
Definition: SCF_general.h:112
SCF::Options::output_density_images_only
int output_density_images_only
Definition: scf.h:114
SCF::Options::purification_maxmul
int purification_maxmul
Definition: scf.h:81
SCF_general::energy_2el_valence
ergo_real energy_2el_valence
Definition: SCF_general.h:104
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
SCF::Options::min_number_of_iterations
int min_number_of_iterations
Definition: scf.h:109
SCF::Options::purification_stop_crit_norm
mat::normType purification_stop_crit_norm
Definition: scf.h:73
SCF::Options::electric_field
Vector3D electric_field
Definition: scf.h:56
SCF_general::errorMeasure
ergo_real errorMeasure
Definition: SCF_general.h:110
DIISManager::Initialize
int Initialize(int noOfIters)
Definition: diis_general.cc:83
SCF_general::energy_reference
ergo_real energy_reference
Definition: SCF_general.h:106
SCF::Options::purification_ignore_failure
int purification_ignore_failure
Definition: scf.h:83
Molecule::getNuclearElectricFieldEnergy
ergo_real getNuclearElectricFieldEnergy(const Vector3D &electricField) const
Compute nuclear energy in given electric field.
Definition: molecule.cc:138
GetDensFromFock::set_use_purification
void set_use_purification()
Definition: GetDensFromFock.h:370
BasisInfoStruct
Definition: basisinfo.h:112
working_directory_struct
Definition: utilities.h:56
SCF_general::J_K_params
const JK::Params & J_K_params
Definition: SCF_general.h:84
SCF_statistics
Definition: SCF_statistics.h:57
SCF::Options::no_of_threads_for_V
int no_of_threads_for_V
Definition: scf.h:79
Molecule::getNoOfAtoms
int getNoOfAtoms() const
Definition: molecule.h:114
SCF::Options::max_number_of_iterations
int max_number_of_iterations
Definition: scf.h:110
SCF_general::report_final_results
virtual void report_final_results()=0
SCF::Options::purification_use_rand_perturbation_for_alleigsint
int purification_use_rand_perturbation_for_alleigsint
Definition: scf.h:84
GetDensFromFock::set_store_all_eigenvalues_to_file
void set_store_all_eigenvalues_to_file()
Definition: GetDensFromFock.h:416
JK::ExchWeights::alpha
ergo_real alpha
Definition: integral_info.h:149
compute_h_core_matrix_sparse
int compute_h_core_matrix_sparse(const IntegralInfo &integralInfo, const Molecule &molecule, const Molecule &extraCharges, ergo_real electric_field_x, ergo_real electric_field_y, ergo_real electric_field_z, const BasisInfoStruct &basisInfo, symmMatrix &H_core_Matrix_sparse, ergo_real threshold_integrals_1el, int noOfThreadsForV, ergo_real boxSizeForVT, ergo_real &result_nuclearRepulsionEnergy, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, int const create_dipole_mtx, std::vector< int > const *const inversePermutationHML, std::string const *const calculation_identifier, std::string const *const method_and_basis_set)
Definition: scf_utils.cc:457
SCF::Options::compute_core_density
int compute_core_density
Definition: scf.h:116
SCF::Options::step_length_giveup
ergo_real step_length_giveup
Definition: scf.h:61
SCF_general::check_params
virtual void check_params()=0
SCF::Options::sparse_threshold_for_Z
ergo_real sparse_threshold_for_Z
Definition: scf.h:59
GetDensFromFock::unset_purification_create_m_files
void unset_purification_create_m_files()
Definition: GetDensFromFock.h:332
SCF_general::get_starting_guess_density
virtual void get_starting_guess_density()=0
JK::Params
Definition: integrals_2el.h:45
SCF::Options::break_on_energy_increase
int break_on_energy_increase
Definition: scf.h:95
scf.h
Code for classes containing various options related to self-consistent field (SCF) calculations.
SCF_general::~SCF_general
virtual ~SCF_general()
Definition: SCF_general.cc:487
GetDensFromFock::unset_use_diag_on_error
void unset_use_diag_on_error()
Definition: GetDensFromFock.h:388
SCF_general::report_density_difference
virtual void report_density_difference()=0
SCF::MatOptions
An object respresenting the configuration of the matrix library.
Definition: scf.h:276
SCF_general::clear_diis_list
virtual void clear_diis_list()=0
DIISManager::GetNoOfIters
int GetNoOfIters()
Definition: diis_general.cc:74
SCF::Options::write_diag_dens_to_file
int write_diag_dens_to_file
Definition: scf.h:88
write_matrix_in_matrix_market_format
void write_matrix_in_matrix_market_format(Tmatrix const &A, std::vector< int > const &inversePermutation, std::string filename, std::string identifier, std::string method_and_basis)
Definition: matrix_utilities.h:149
SCF::Options::puri_eig_acc_factor_for_guess
ergo_real puri_eig_acc_factor_for_guess
Definition: scf.h:63
SCF_general::gridParams
const Dft::GridParams & gridParams
Definition: SCF_general.h:85
SCF_general::output_sparsity_S_F_D
virtual void output_sparsity_S_F_D(SCF_statistics &stats)=0
GetDensFromFock::set_number_of_eigenvectors_to_compute
void set_number_of_eigenvectors_to_compute(int occ, int unocc)
Definition: GetDensFromFock.h:314
DIISManager
Definition: diis_general.h:48
write_2el_integral_m_file
int write_2el_integral_m_file(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo)
Definition: scf_utils.cc:995
SCF::Options::use_diag_on_error_guess
int use_diag_on_error_guess
Definition: scf.h:123
SCF::Options::gap_expected_lower_bound
ergo_real gap_expected_lower_bound
Definition: scf.h:71
SCF::Options::cht_blocksize
int cht_blocksize
Definition: scf.h:75
triangMatrix
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
GetDensFromFock::unset_use_acceleration
void unset_use_acceleration()
Definition: GetDensFromFock.h:404
GetDensFromFock::set_invCholFactor
void set_invCholFactor(triangMatrix const &invCholFactor_, ergo_real invCholFactor_euclnorm_)
Definition: GetDensFromFock.h:292
SCF_general::create_gabedit_file
virtual void create_gabedit_file() const =0
SCF_general::use_diis_to_get_new_fock_matrix
virtual void use_diis_to_get_new_fock_matrix()=0
GetDensFromFock::set_output_homo_and_lumo_eigenvectors
void set_output_homo_and_lumo_eigenvectors()
Definition: GetDensFromFock.h:339
Dft::GridParams
A structure describing the grid settings.
Definition: grid_params.h:59
GetDensFromFock::unset_purification_ignore_failure
void unset_purification_ignore_failure()
Definition: GetDensFromFock.h:349
SCF::Options::number_of_occupied_eigenvectors
int number_of_occupied_eigenvectors
Definition: scf.h:149
SCF::Options::skip_H_core
int skip_H_core
Definition: scf.h:93
host_name_struct
Definition: utilities.h:49
SCF_general::get_energy
void get_energy(ergo_real &E, ergo_real &E_nuclear)
Definition: SCF_general.cc:524
SCF::Options::create_mtx_files_S_and_quit
int create_mtx_files_S_and_quit
Definition: scf.h:144
SCF::Options::output_mulliken_pop
int output_mulliken_pop
Definition: scf.h:157
SCF_general::initialize_matrices
virtual void initialize_matrices()=0
SCF_general::disturb_dens_matrix
virtual void disturb_dens_matrix(ergo_real subspaceError)=0
SCF_statistics.h
Class for keeping timings and other statistics related to self-consistent field (SCF) procedure.
SCF_general::get_invCholFactor_matrix
void get_invCholFactor_matrix(triangMatrix &invCholFactor_)
Definition: SCF_general.cc:508
SCF_statistics::start_timer
void start_timer(std::string identifier)
Definition: SCF_statistics.cc:59
grid_stream.h
Streaming grid generator.
SCF_general::add_random_disturbance_to_starting_guess
virtual void add_random_disturbance_to_starting_guess()=0
GetDensFromFock::unset_use_diagonalization
void unset_use_diagonalization()
Definition: GetDensFromFock.h:364
SCF::Options::electronic_temperature
ergo_real electronic_temperature
Definition: scf.h:57
SCF_general::CAM_params
JK::ExchWeights CAM_params
Definition: SCF_general.h:92
SCF::MatOptions::inversePermutationHML
std::vector< int > inversePermutationHML
Definition: scf.h:279
GetDensFromFock::set_use_diag_on_error_guess
void set_use_diag_on_error_guess()
Definition: GetDensFromFock.h:378
write_basis_func_coord_file
int write_basis_func_coord_file(const BasisInfoStruct &basisInfo)
Definition: scf_utils.cc:976
GetDensFromFock::set_purification_create_m_files
void set_purification_create_m_files()
Definition: GetDensFromFock.h:330
scf_utils.h
Various utilities used by self-consistent field (SCF) code. For example, interface routines convertin...
SCF::Options::output_density_images
int output_density_images
Definition: scf.h:113
JK::ExchWeights::beta
ergo_real beta
Definition: integral_info.h:150
SCF_general::get_FDSminusSDF
virtual void get_FDSminusSDF()=0
GetDensFromFock::set_save_permuted_F_matrix_in_bin
void set_save_permuted_F_matrix_in_bin()
Definition: GetDensFromFock.h:423
IntegralInfo
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
SCF::Options::compute_gradient_fixeddens
int compute_gradient_fixeddens
Definition: scf.h:158
SCF::Options::create_mtx_files_dipole
int create_mtx_files_dipole
Definition: scf.h:143
SCF_general::guessDmatFileName
const char * guessDmatFileName
Definition: SCF_general.h:83
SCF::Options::purification_create_m_files
int purification_create_m_files
Definition: scf.h:82
SCF::MatOptions::sparse_matrix_block_size
int sparse_matrix_block_size
Definition: scf.h:283
get_memory_usage_by_procfile
int get_memory_usage_by_procfile(double *virtualMemGigaBytes, double *residentMemGigaBytes, double *virtualMemPeakGigaBytes)
Definition: utilities.cc:229
host_name_struct::s
char s[MAX_HOST_NAME_LEN]
Definition: utilities.h:50
SCF_statistics::add_value
void add_value(std::string identifier, double value)
Definition: SCF_statistics.cc:68
GetDensFromFock::unset_use_new_stopping_criterion
void unset_use_new_stopping_criterion()
Definition: GetDensFromFock.h:411
matrix_utilities.h
Utilities related to the hierarchical matrix library (HML), including functions for setting up permut...
mat::right
@ right
Definition: Matrix.h:75
GetDensFromFock.h
Routines for getting density matrix from a given Fock matrix.
SCF_general::SCF_step
int SCF_step
Definition: SCF_general.h:95
SCF::Options::purification_with_acceleration
int purification_with_acceleration
Definition: scf.h:69
SCF_general::compute_gradient_fixeddens
virtual void compute_gradient_fixeddens()=0
GetDensFromFock::set_cht_matrix_params
void set_cht_matrix_params(const int leavesSizeMax_, const int blocksize_)
Definition: GetDensFromFock.h:247
SCF_general::initialize_homo_lumo_limits
virtual void initialize_homo_lumo_limits()=0
get_host_name
void get_host_name(host_name_struct *result)
Definition: utilities.cc:78
Util::TimeMeter::print
void print(int area, const char *routine)
Definition: utilities.h:111
mat::MatrixGeneral
Normal matrix.
Definition: MatrixBase.h:49
SCF::Options::create_mtx_files_F
int create_mtx_files_F
Definition: scf.h:141
SCF::Options::output_homo_and_lumo_eigenvectors
int output_homo_and_lumo_eigenvectors
Definition: scf.h:148
Vector3D::v
ergo_real v[3]
Definition: molecule.h:61
GetDensFromFock::unset_output_homo_and_lumo_eigenvectors
void unset_output_homo_and_lumo_eigenvectors()
Definition: GetDensFromFock.h:341
SCF_general::output_density_images
virtual void output_density_images()=0
get_working_directory
void get_working_directory(working_directory_struct *result)
Definition: utilities.cc:88
SCF_general::add_to_DIIS_list
virtual void add_to_DIIS_list()=0
mat::transpose
Xtrans< TX > transpose(TX const &A)
Transposition.
Definition: matrix_proxy.h:131
SCF_general::get_new_density_matrix
virtual void get_new_density_matrix()=0
UNIT_one_Kelvin
#define UNIT_one_Kelvin
Definition: units.h:46
utilities.h
Basic OS access utilities.
SCF_general::get_overlap_matrix
void get_overlap_matrix(symmMatrix &S)
Definition: SCF_general.cc:500
GetDensFromFock::set_purification_use_rand_perturbation_for_alleigsint
void set_purification_use_rand_perturbation_for_alleigsint()
Definition: GetDensFromFock.h:355
A
#define A
SCF::Options::create_mtx_files_D
int create_mtx_files_D
Definition: scf.h:142
SCF_general::get_2e_part_and_energy
virtual void get_2e_part_and_energy()=0
LOG_CAT_INFO
#define LOG_CAT_INFO
Definition: output.h:49
SCF::Options::use_diag_on_error
int use_diag_on_error
Definition: scf.h:122
SCF_general::scfopts
const SCF::Options & scfopts
Definition: SCF_general.h:86
SCF_general::write_diag_dens_to_file
virtual void write_diag_dens_to_file()=0
SCF_general::matOpts
const SCF::MatOptions & matOpts
Definition: SCF_general.h:87
SCF_general::output_expected_values_pos_operator
virtual void output_expected_values_pos_operator()=0
SCF::MatOptions::permutationHML
std::vector< int > permutationHML
Definition: scf.h:278
SCF_general::noOfElectrons
int noOfElectrons
Definition: SCF_general.h:121
mat::AllocatorManager::getStatistics
std::string getStatistics()
Definition: AllocatorManager.h:141
SCF::MatOptions::threshold_inch
ergo_real threshold_inch
Truncation threshold in INCH function.
Definition: scf.h:282
SCF_general::energy_2el
ergo_real energy_2el
Definition: SCF_general.h:100
SCF_general::invCholFactor
triangMatrix invCholFactor
Definition: SCF_general.h:115
SCF::Options::use_simple_starting_guess
int use_simple_starting_guess
Definition: scf.h:86
SCF_general::create_mtx_files_D
virtual void create_mtx_files_D(int const scfIter)=0
basisinfo.h
Code for setting up basis functions starting from shells.
SCF_general.h
Class for self-consistent field (SCF) procedure; base class that can be used for both restricted and ...
SCF::Options::jump_over_X_iter_proj_method
int jump_over_X_iter_proj_method
Definition: scf.h:151
SCF::Options::save_full_matrices_for_matlab
int save_full_matrices_for_matlab
Definition: scf.h:130
SCF_general::extraCharges
const Molecule & extraCharges
Definition: SCF_general.h:80
integrals_2el.h
Parameters related to integral evaluation.
create_mtx_files_with_different_orderings
void create_mtx_files_with_different_orderings(const symmMatrix &A, const std::string &calculation_identifier, const std::string &method_and_basis_set, const std::vector< int > &inversePermutationHML, const BasisInfoStruct &basisInfo)
Definition: scf_utils.cc:2639
LOG_AREA_SCF
#define LOG_AREA_SCF
Definition: output.h:58
GetDensFromFock::set_gap_expected_lower_bound
void set_gap_expected_lower_bound(ergo_real gap_expected_lower_bound_)
Definition: GetDensFromFock.h:300
SCF::Options::method_and_basis_set
std::string method_and_basis_set
Definition: scf.h:55
JK::ExchWeights
Definition: integral_info.h:148
SCF::Options::no_of_impr_req_for_diis
int no_of_impr_req_for_diis
Definition: scf.h:102
units.h
Constants for conversion between units for some common units like Angstrom, electron-volt (eV),...
SCF::Options::purification_subspace_err_limit
ergo_real purification_subspace_err_limit
Definition: scf.h:68
GetDensFromFock::set_general_params
void set_general_params(const int n_, mat::SizesAndBlocks const &matrixSizesAndBlocks_)
Definition: GetDensFromFock.h:238
SCF::Options::output_density_at_every_step
int output_density_at_every_step
Definition: scf.h:111
SCF::Options::use_dft
int use_dft
Definition: scf.h:85
do_output_time
void do_output_time(int logCategory, int logArea, const char *s)
Definition: output.cc:159
SCF::Options::subspace_factor_dens
ergo_real subspace_factor_dens
Definition: scf.h:77
SCF::Options::box_size_for_V_and_T
ergo_real box_size_for_V_and_T
Definition: scf.h:80
output_current_memory_usage
void output_current_memory_usage(int logArea, const char *contextString)
Definition: output.cc:186
SCF::Options::spin_flip_atom_count
int spin_flip_atom_count
Definition: scf.h:98
SCF::Options::max_restart_count
int max_restart_count
Definition: scf.h:101
GetDensFromFock::get_use_purification
int get_use_purification() const
Definition: GetDensFromFock.h:368
SCF_general::create_eigenvectors_files
virtual void create_eigenvectors_files() const =0
SCF::Options::use_new_stopping_criterion
int use_new_stopping_criterion
Definition: scf.h:70
SCF::Options::create_basis_func_coord_file
int create_basis_func_coord_file
Definition: scf.h:146
JK::ExchWeights::computeRangeSeparatedExchange
int computeRangeSeparatedExchange
shortcut for |beta| != 0
Definition: integral_info.h:152
save_symmetric_matrix
int save_symmetric_matrix(symmMatrix &A, const BasisInfoStruct &basisInfo, const char *fileName, std::vector< int > const &inversePermutationHML)
Saves specified symmetic matrix to a file of specified name.
Definition: scf_utils.cc:735
molecule.h
Class representing a molecule as a set of atoms with assiciated coordinates and charges of the atomic...
SCF::Options::go_back_X_iter_proj_method
int go_back_X_iter_proj_method
Definition: scf.h:152
SCF_general::energy_of_valence
ergo_real energy_of_valence
Definition: SCF_general.h:105
SCF_general::energy_2el_core
ergo_real energy_2el_core
Definition: SCF_general.h:103
SCF::Options::write_guess_density_only
int write_guess_density_only
Definition: scf.h:115
Molecule
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
SCF::Options::create_2el_integral_m_file
int create_2el_integral_m_file
Definition: scf.h:145
Molecule::getExtremeInternuclearDistancesQuadratic
void getExtremeInternuclearDistancesQuadratic(ergo_real &minDist, ergo_real &maxDist) const
Compute smallest and largest internuclear distances.
Definition: molecule.cc:66
SCF::Options::use_diis_always
int use_diis_always
Definition: scf.h:103
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
SCF_general::save_final_potential
virtual void save_final_potential()=0
SCF::Options::use_diagonalization
int use_diagonalization
Definition: scf.h:121
GetDensFromFock::unset_generate_figures
void unset_generate_figures()
Do not plot figures from the recursive expansion.
Definition: GetDensFromFock.h:232
SCF_general::do_mulliken_pop_stuff
virtual void do_mulliken_pop_stuff()=0
mat::AllocatorManager::instance
static AllocatorManager & instance()
SCF_general::electronicEntropyTerm
ergo_real electronicEntropyTerm
Definition: SCF_general.h:108
GetDensFromFock::unset_store_all_eigenvalues_to_file
void unset_store_all_eigenvalues_to_file()
Definition: GetDensFromFock.h:418
SCF::Options
Definition: scf.h:53
output_sparsity_symm
void output_sparsity_symm(int n, const symmMatrix &M, const char *matrixName)
Definition: scf_utils.cc:376
SCF::MatOptions::size_block_info
mat::SizesAndBlocks size_block_info
Definition: scf.h:277
SCF::Options::max_no_of_diis_matrices
int max_no_of_diis_matrices
Definition: scf.h:100
JK::Params::threshold_J
ergo_real threshold_J
Definition: integrals_2el.h:47
SCF::Options::use_artificial_subspace_disturbances
int use_artificial_subspace_disturbances
Definition: scf.h:78
SCF_general::invCholFactor_euclnorm
ergo_real invCholFactor_euclnorm
Definition: SCF_general.h:116
SCF_general::molecule
const Molecule & molecule
Definition: SCF_general.h:79
VERSION
#define VERSION
Definition: config.h:268
SCF_general::get_H_core_matrix
void get_H_core_matrix(symmMatrix &H_core)
Definition: SCF_general.cc:516
machine_epsilon.h
Functionality for determining an approximate value of the "machine epsilon" – the smallest number tha...
SCF::Options::cht_leavesSizeMax
int cht_leavesSizeMax
Definition: scf.h:74
SCF_general::curr_cycle_stats
SCF_statistics * curr_cycle_stats
Definition: SCF_general.h:123
SCF_general::basisInfo
const BasisInfoStruct & basisInfo
Definition: SCF_general.h:81
SCF_general::update_best_fock_so_far
virtual void update_best_fock_so_far()=0
SCF::Options::no_of_careful_first_scf_steps
int no_of_careful_first_scf_steps
Definition: scf.h:106
SCF_general::do_spin_flip
virtual void do_spin_flip(int atomCount)=0
SCF_general::integralInfo
const IntegralInfo & integralInfo
Definition: SCF_general.h:82
get_machine_epsilon
ergo_real get_machine_epsilon()
return machine epsilon.
Definition: machine_epsilon.cc:50
compute_overlap_matrix_sparse
int compute_overlap_matrix_sparse(const BasisInfoStruct &basisInfo, symmMatrix &S_symm, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:423
GetDensFromFock::set_use_diagonalization
void set_use_diagonalization()
Definition: GetDensFromFock.h:362
SCF::Options::output_statistics_mfiles
int output_statistics_mfiles
Definition: scf.h:105
SCF_general::save_current_fock_as_fprev
virtual void save_current_fock_as_fprev()=0
get_hf_weight_and_cam_params
void get_hf_weight_and_cam_params(int use_dft, ergo_real *exch_param_alpha, ergo_real *exch_param_beta, ergo_real *exch_param_mu)
Definition: scf_utils.cc:2611
SCF_general::disturb_dens_matrix_exact
virtual void disturb_dens_matrix_exact(ergo_real subspaceError)=0
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
Molecule::getNumberOfElectrons
int getNumberOfElectrons() const
Compute total number of electrons.
Definition: molecule.cc:158
GetDensFromFock::set_truncationNormPurification
void set_truncationNormPurification(mat::normType const truncationNormPurification_)
Set truncation norm used in the recursive expansion.
Definition: GetDensFromFock.h:266
SCF_general::energy
ergo_real energy
Definition: SCF_general.h:101
SCF::Options::sparse_threshold_for_S
ergo_real sparse_threshold_for_S
Definition: scf.h:58
SCF::Options::save_final_potential
int save_final_potential
Definition: scf.h:120
SCF_general::write_density_to_file
virtual void write_density_to_file()=0
SCF_general::DIIS
DIISManager * DIIS
Definition: SCF_general.h:119
GetDensFromFock::unset_purification_use_rand_perturbation_for_alleigsint
void unset_purification_use_rand_perturbation_for_alleigsint()
Definition: GetDensFromFock.h:357
SCF_general::combine_old_fock_matrices
virtual void combine_old_fock_matrices(ergo_real stepLength)=0
GetDensFromFock
GetDensFromFock class containing parameters and functions for computing density matrix.
Definition: GetDensFromFock.h:57
output_sparsity_triang
void output_sparsity_triang(int n, const triangMatrix &M, const char *matrixName)
Definition: scf_utils.cc:381
mat::MatrixGeneral::eucl_thresh
Treal eucl_thresh(Treal const threshold)
Definition: MatrixGeneral.h:525
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
SCF::Options::purification_eigvalue_err_limit
ergo_real purification_eigvalue_err_limit
Definition: scf.h:67
SCF_general::calculate_energy
virtual void calculate_energy()=0
SCF_general::do_SCF_iterations
void do_SCF_iterations()
Definition: SCF_general.cc:531
output.h
Functionality for writing output messages to a text file.
SCF_general::SCF_general
SCF_general(const Molecule &molecule_, const Molecule &extraCharges_, const BasisInfoStruct &basisInfo_, const IntegralInfo &integralInfo_, const char *guessDmatFileName_, const JK::Params &J_K_params_, const Dft::GridParams &gridParams_, const SCF::Options &scfopts, const SCF::MatOptions &matOpts, ergo_real threshold_integrals_1el_input)
Definition: SCF_general.cc:81
SCF::Options::error_maxabs_for_diis
ergo_real error_maxabs_for_diis
Definition: scf.h:108
SCF_general::save_density_as_prevdens
virtual void save_density_as_prevdens()=0