40 #ifndef SCF_UTILS_HEADER 41 #define SCF_UTILS_HEADER 67 ergo_real & result_nuclearRepulsionEnergy,
69 std::vector<int>
const & permutationHML,
70 int const create_dipole_mtx = 0,
71 std::vector<int>
const *
const inversePermutationHML = 0,
72 std::string
const *
const calculation_identifier = 0,
73 std::string
const *
const method_and_basis_set = 0);
83 std::vector<int>
const & permutationHML,
84 ergo_real & result_nuclearRepulsionEnergy);
93 std::vector<int>
const & permutationHML,
99 std::vector<int>
const & inversePermutationHML);
105 int specificElementCount,
106 const int* elementIndexVector,
107 std::vector<int>
const & permutationHML);
117 const char* fileName,
118 std::vector<int>
const & permutationHML);
123 const char* fileName,
124 std::vector<int>
const & permutationHML);
129 const char* fileName,
130 std::vector<int>
const & inversePermutationHML);
151 std::vector<int>
const & permutationHML,
152 std::vector<int>
const & inversePermutationHML,
153 int get_J_K_Fxc_matrices,
174 std::vector<int>
const & permutationHML,
175 std::vector<int>
const & inversePermutationHML);
192 std::vector<int>
const & permutationHML,
193 std::vector<int>
const & inversePermutationHML);
206 int* noOfElectrons_alpha,
207 int* noOfElectrons_beta);
218 int* noOfElectrons_alpha,
219 int* noOfElectrons_beta);
226 std::vector<int>
const & permutationHML,
227 std::vector<int>
const & inversePermutationHML,
235 std::vector<int>
const & permutationHML,
236 std::vector<int>
const & inversePermutationHML,
243 std::vector<int>
const & permutationHML,
244 std::vector<ergo_real> &mean,
245 std::vector<ergo_real> &
std);
253 double output_density_images_boxwidth,
254 const std::string &filename_id =
"");
261 bool doInvCholFactorTransformation,
264 std::vector<int>
const & permutationHML,
274 bool doInvCholFactorTransformation,
278 std::vector<int>
const & permutationHML,
279 std::vector<int>
const & inversePermutationHML,
292 bool doInvCholFactorTransformation,
294 std::vector<int>
const & permutationHML,
295 std::vector<int>
const & inversePermutationHML,
302 const std::string & calculation_identifier,
303 const std::string & method_and_basis_set,
304 const std::vector<int> & inversePermutationHML,
void output_sparsity_symm(int n, const symmMatrix &M, const char *matrixName)
Definition: scf_utils.cc:376
double ergo_real
Definition: realtype.h:69
int get_simple_starting_guess_sparse(int n, int noOfElectrons, symmMatrix &densityMatrix)
Definition: scf_utils.cc:818
A structure describing the grid settings.
Definition: grid_params.h:59
Streaming grid generator.
int get_2e_matrices_and_energy_restricted_open(const BasisInfoStruct &basisInfo, const Molecule &molecule, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params, symmMatrix &twoelMatrix_Fc, symmMatrix &twoelMatrix_Fo, symmMatrix &densityMatrix_sparse_alpha, symmMatrix &densityMatrix_sparse_beta, const JK::Params &J_K_params, const Dft::GridParams &gridParams, int do_xc, ergo_real *energy_2el, int noOfElectrons, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML)
Computes G_c and G_o.
Definition: scf_utils.cc:1929
void do_mulliken_spin_densities(const symmMatrix &spinDensityMatrix, const symmMatrix &S_symm, const BasisInfoStruct &basisInfo, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML, const Molecule &molecule)
Definition: scf_utils.cc:2325
Definition: integrals_2el.h:44
Definition: SCF_statistics.h:57
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
int get_diag_matrix_from_file(int n, symmMatrix &M, const char *fileName, std::vector< int > const &permutationHML)
Definition: scf_utils.cc:840
Code for setting up basis functions starting from shells.
Class representing a molecule as a set of atoms with assiciated coordinates and charges of the atomic...
void output_sparsity_triang(int n, const triangMatrix &M, const char *matrixName)
Definition: scf_utils.cc:381
Describes dimensions of matrix and its blocks on all levels.
Definition: SizesAndBlocks.h:45
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
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
void output_sparsity(int n, const normalMatrix &M, const char *matrixName)
Definition: scf_utils.cc:371
Definition: integral_info.h:147
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71
int write_diag_elements_to_file(int n, const symmMatrix &M, const char *fileName, std::vector< int > const &permutationHML)
Definition: scf_utils.cc:917
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:93
int get_2e_matrix_and_energy_sparse(const BasisInfoStruct &basisInfo, const Molecule &molecule, const IntegralInfo &integralInfo, symmMatrix &twoelMatrix_sparse, symmMatrix &densityMatrix_sparse, const JK::Params &J_K_params, const JK::ExchWeights &CAM_params, const Dft::GridParams &gridParams, int do_xc, ergo_real *energy_2el, int noOfElectrons, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML, int get_J_K_Fxc_matrices, symmMatrix &J_matrix, symmMatrix &K_matrix, symmMatrix &Fxc_matrix, SCF_statistics &stats)
General routine for computing the two-electron part of the Fock/KS matrix.
Definition: scf_utils.cc:1531
void do_density_images(const BasisInfoStruct &basisInfo, const Molecule &molecule, const ergo_real *densityMatrixFull_tot, const ergo_real *densityMatrixFull_spin, double output_density_images_boxwidth, const std::string &filename_id="")
Definition: scf_utils.cc:2410
int write_basis_func_coord_file(const BasisInfoStruct &basisInfo)
Definition: scf_utils.cc:976
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
Definition: basisinfo.h:112
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=0, std::vector< int > const *const inversePermutationHML=0, std::string const *const calculation_identifier=0, std::string const *const method_and_basis_set=0)
Definition: scf_utils.cc:457
int get_2e_matrices_and_energy_sparse_unrestricted(const BasisInfoStruct &basisInfo, const Molecule &molecule, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params, symmMatrix &twoelMatrix_sparse_alpha, symmMatrix &twoelMatrix_sparse_beta, symmMatrix &densityMatrix_sparse_alpha, symmMatrix &densityMatrix_sparse_beta, const JK::Params &J_K_params, const Dft::GridParams &gridParams, int do_xc, ergo_real *energy_2el, int noOfElectrons, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML)
Definition: scf_utils.cc:1721
Header file with typedefs for matrix and vector types.
void do_acc_scan_Vxc(symmMatrix &D, const IntegralInfo &integralInfo, const BasisInfoStruct &basisInfo, const Molecule &molecule, const Dft::GridParams &gridParams, int noOfElectrons, triangMatrix &invCholFactor, bool doInvCholFactorTransformation, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML, int nSteps, ergo_real startThresh, ergo_real stepFactor)
Definition: scf_utils.cc:320
int save_symmetric_matrix(symmMatrix &A, const BasisInfoStruct &basisInfo, const char *name, std::vector< int > const &inversePermutationHML)
Saves specified symmetic matrix to a file of specified name.
Definition: scf_utils.cc:735
int determine_number_of_electrons_unrestricted(int noOfElectrons, int alpha_beta_diff, int *noOfElectrons_alpha, int *noOfElectrons_beta)
Definition: scf_utils.cc:2201
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
void do_acc_scan_J(const symmMatrix &D, const IntegralInfo &integralInfo, const BasisInfoStruct &basisInfo, triangMatrix &invCholFactor, bool doInvCholFactorTransformation, const JK::Params &J_K_params, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, int nSteps, ergo_real startThresh, ergo_real stepFactor)
Definition: scf_utils.cc:158
void do_acc_scan_K(symmMatrix &D, const IntegralInfo &integralInfo, const BasisInfoStruct &basisInfo, triangMatrix &invCholFactor, bool doInvCholFactorTransformation, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML, int nSteps, ergo_real startThresh, ergo_real stepFactor)
Definition: scf_utils.cc:235
void get_exp_value_pos_operator(const BasisInfoStruct &basisInfo, const Molecule &molecule, const symmMatrix &densityMatrix, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, std::vector< ergo_real > &mean, std::vector< ergo_real > &std)
Definition: scf_utils.cc:2364
int add_disturbance_to_matrix(int n, symmMatrix &A, ergo_real disturbance, int specificElementCount, const int *elementIndexVector, std::vector< int > const &permutationHML)
Definition: scf_utils.cc:761
void do_mulliken_atomic_charges(const symmMatrix &densityMatrix, const symmMatrix &S_symm, const BasisInfoStruct &basisInfo, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML, const Molecule &molecule)
Definition: scf_utils.cc:2296
int compute_FDSminusSDF_sparse(int n, symmMatrix &F_symm, symmMatrix &D_symm, symmMatrix &S_symm, normalMatrix &result, ergo_real sparse_threshold)
Definition: scf_utils.cc:2084
Parameters related to integral evaluation.
int get_gradient_for_given_mol_and_dens(const IntegralInfo &integralInfo, const Molecule &molecule, const BasisInfoStruct &basisInfo, const symmMatrix &D, ergo_real threshold_integrals_1el, mat::SizesAndBlocks const &matrix_size_block_info, std::vector< int > const &permutationHML, ergo_real *result_gradient_list)
Definition: scf_utils.cc:701
int write_2el_integral_m_file(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo)
Definition: scf_utils.cc:995
Class for keeping timings and other statistics related to self-consistent field (SCF) procedure...
int write_full_matrix(int n, const symmMatrix &M, const char *fileName, std::vector< int > const &inversePermutationHML)
Definition: scf_utils.cc:959