Go to the documentation of this file.
39 #ifndef INTEGRAL_MATRIX_WRAPPERS_HEADER
40 #define INTEGRAL_MATRIX_WRAPPERS_HEADER
54 std::vector<int>
const & permutationHML,
55 ergo_real & result_nuclearRepulsionEnergy);
64 std::vector<int>
const & permutationHML,
65 ergo_real & result_nuclearRepulsionEnergy);
75 std::vector<int>
const & permutationHML,
86 std::vector<int>
const & permutationHML);
95 std::vector<int>
const & permutationHML);
101 std::vector<int>
const & permutationHML);
112 std::vector<int>
const & matrixPermutationVec_A,
113 std::vector<int>
const & matrixPermutationVec_B);
122 std::vector<int>
const & permutationHML);
131 std::vector<int>
const & permutationHML);
141 std::vector<int>
const & permutationHML,
142 std::vector<int>
const & inversePermutationHML);
151 std::vector<int>
const & permutationHML,
152 std::vector<int>
const & inversePermutationHML);
int compute_T_sparse_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, ergo_real threshold, ergo_real boxSize, symmMatrix &T, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:331
Wrapper routines for different parts of the integral code, including conversion of matrices from/to t...
Code for 1-electron integrals, computation of electron-nuclear potential energy matrix V.
Code for 1-electron integrals, computation of kinetic-energy matrix T.
int noOfBasisFuncs
Definition: basisinfo.h:120
int compute_operator_matrix_sparse_symm(const BasisInfoStruct &basisInfo, int pow_x, int pow_y, int pow_z, symmMatrix &A_symm, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:522
Memory allocation/deallocation routines.
int compute_operator_matrix_sparse_symm(const BasisInfoStruct &basisInfo, int pow_x, int pow_y, int pow_z, symmMatrix &A_symm, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:522
static int check_diagonal_elements_of_overlap_matrix(int n, const symmMatrix &S_symm)
Definition: integral_matrix_wrappers.cc:387
int compute_T_sparse_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, ergo_real threshold, ergo_real boxSize, symmMatrix &T, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:331
#define LOG_CAT_ERROR
Definition: output.h:47
#define LOG_CAT_WARNING
Definition: output.h:48
int create_CSR_for_K(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, csr_matrix_struct *dens_CSR, csr_matrix_struct *K_CSR, int symmetryFlag)
Definition: integrals_2el_K_prep.cc:532
double ergo_real
Definition: realtype.h:69
int compute_J_by_boxes_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, const basis_func_index_pair_struct *basisFuncIndexPairList, int basisFuncIndexPairCount, const ergo_real *D_list, ergo_real *result_J_list, int noOfBasisFuncIndexPairs)
Computes the Coulomb interaction.
Definition: integrals_2el_J.cc:1260
int compute_K_by_boxes_sparse(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, symmMatrix &K, symmMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML)
Returns the exchange matrix multiplied by 0.5.
Definition: integral_matrix_wrappers.cc:794
int compute_overlap_matrix_sparse(const BasisInfoStruct &basisInfo, symmMatrix &S_symm, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:423
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
int compute_R_matrix_sparse(const BasisInfoStruct &basisInfo_A, const BasisInfoStruct &basisInfo_B, normalMatrix &result_R, ergo_real sparse_threshold, std::vector< int > const &matrixPermutationVec_A, std::vector< int > const &matrixPermutationVec_B)
compute_R_matrix_sparse computes the overlap matrix between two different basis sets.
Definition: integral_matrix_wrappers.cc:446
int ergo_CSR_get_values(const csr_matrix_struct *csr, std::vector< int > &rowind, std::vector< int > &colind, std::vector< ergo_real > &values, long nvalues)
Definition: csr_matrix.cc:321
int compute_J_by_boxes_sparse(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, symmMatrix &J, const symmMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:596
int ergo_CSR_create(csr_matrix_struct *csr, int symmetryFlag, int n, long nnz, const std::vector< int > &rowind, const std::vector< int > &colind)
Definition: csr_matrix.cc:75
Definition: basisinfo.h:112
int getNoOfAtoms() const
Definition: molecule.h:114
Definition: integrals_2el.h:45
Treal template_blas_fabs(Treal x)
int get_basis_func_pair_list_2el(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, ergo_real threshold, ergo_real maxDensityMatrixElement, std::vector< basis_func_index_pair_struct > &resultList)
Definition: basis_func_pair_list.cc:119
int get_basis_func_pair_list_1el_for_V(const BasisInfoStruct &basisInfo, ergo_real threshold, ergo_real boxSize, ergo_real maxCharge, basis_func_index_pair_struct_1el *result_basisFuncPairList, int resultMaxCount)
Definition: basis_func_pair_list_1el.cc:52
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71
static ergo_real get_max_charge(const Molecule &molecule)
Definition: integral_matrix_wrappers.cc:56
int compute_V_sparse(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, symmMatrix &V, std::vector< int > const &permutationHML, ergo_real &result_nuclearRepulsionEnergy)
Definition: integral_matrix_wrappers.cc:86
#define LOG_AREA_DENSFROMF
Definition: output.h:61
int * int_ptr
Definition: integral_matrix_wrappers.cc:518
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
int compute_K_by_boxes_sparse_nosymm(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, normalMatrix &K, normalMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML)
Definition: integral_matrix_wrappers.cc:892
Functions for setting up lists of non-negligible basis function pairs, for 1-electron integrals.
int compute_V_and_gradient_linear(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, const basis_func_index_pair_struct_1el *basisFuncIndexPairList, ergo_real *V_list, int noOfBasisFuncIndexPairs, bool compute_gradient_also, const ergo_real *D_list, ergo_real *gradient_list, ergo_real &result_nuclearRepulsionEnergy)
Definition: integrals_1el_potential.cc:1108
int compute_T_matrix_sparse_linear(const BasisInfoStruct &basisInfo, ergo_real threshold, ergo_real boxSize, int *nvaluesList, int **colindList, ergo_real **valuesList)
Definition: integrals_1el_kinetic.cc:157
Code for 2-electron integrals, computation of Coulomb (J) and HF exchange (K) matrices using a single...
#define LOG_AREA_UNDEFINED
Definition: output.h:56
int compute_gradient_of_nucl_and_trDV(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, const symmMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML, ergo_real *result_gradient_list)
Definition: integral_matrix_wrappers.cc:237
Code for preparing for computation of the Hartree-Fock exchange matrix K.
Definition: csr_matrix.h:51
void print(int area, const char *routine)
Definition: utilities.h:111
int compute_operator_matrix_sparse(const BasisInfoStruct &basisInfoA, const BasisInfoStruct &basisInfoB, int pow_x, int pow_y, int pow_z, int n_A, int n_B, std::vector< int > &nvaluesList, std::vector< std::vector< int > > &colindList, std::vector< std::vector< ergo_real > > &valuesList)
computes the matrix of a dipole/quadrupole/etc operator.
Definition: operator_matrix.cc:116
static int get_CSR_from_normalMatrix(int n, const normalMatrix &A, std::vector< int > const &inversePermutationHML, csr_matrix_struct &CSR)
Definition: integral_matrix_wrappers.cc:747
const Atom & getAtom(int i) const
Definition: molecule.h:113
ergo_real * ergo_real_ptr
Definition: integral_matrix_wrappers.cc:519
Basic OS access utilities.
int ergo_CSR_add_to_element(csr_matrix_struct *csr, int row, int col, ergo_real value)
Definition: csr_matrix.cc:252
int compute_J_by_boxes_sparse(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::Params &J_K_params, symmMatrix &J, const symmMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:596
#define LOG_CAT_INFO
Definition: output.h:49
static std::string writeAndReadAll()
Definition: FileWritable.cc:509
int compute_V_hierarchical(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, const basis_func_index_pair_struct_1el *basisFuncIndexPairList, int noOfBasisFuncIndexPairs, csr_matrix_struct *V_CSR, ergo_real &result_nuclearRepulsionEnergy)
Definition: integrals_1el_potential.cc:1415
Code for computing the Coulomb matrix J.
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
Code for setting up basis functions starting from shells.
ergo_real get_electron_nuclear_attraction_energy(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)
Definition: integral_matrix_wrappers.cc:304
Parameters related to integral evaluation.
ergo_real get_electron_nuclear_attraction_energy(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)
Definition: integral_matrix_wrappers.cc:304
int compute_V_sparse_hierarchical(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, symmMatrix &V, std::vector< int > const &permutationHML, ergo_real &result_nuclearRepulsionEnergy)
Definition: integral_matrix_wrappers.cc:168
Definition: integral_info.h:148
void output_current_memory_usage(int logArea, const char *contextString)
Definition: output.cc:186
ergo_real charge
Definition: molecule.h:52
int compute_R_matrix_sparse(const BasisInfoStruct &basisInfo_A, const BasisInfoStruct &basisInfo_B, normalMatrix &result_R, ergo_real sparse_threshold, std::vector< int > const &matrixPermutationVec_A, std::vector< int > const &matrixPermutationVec_B)
compute_R_matrix_sparse computes the overlap matrix between two different basis sets.
Definition: integral_matrix_wrappers.cc:446
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
Functions for computing the matrix of a dipole/quadrupole/etc operator. Full and sparse versions.
Functions for setting up lists of non-negligible basis function pairs, for 2-electron integrals.
void ergo_free(void *p)
Definition: memorymanag.cc:68
int compute_V_sparse_hierarchical(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, symmMatrix &V, std::vector< int > const &permutationHML, ergo_real &result_nuclearRepulsionEnergy)
Definition: integral_matrix_wrappers.cc:168
Describes dimensions of matrix and its blocks on all levels.
Definition: SizesAndBlocks.h:45
int compute_K_by_boxes(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params_in, const JK::Params &J_K_params, csr_matrix_struct *K_CSR, csr_matrix_struct *densCSR, int symmetryFlag)
Definition: integrals_2el_K.cc:679
int compute_gradient_of_nucl_and_trDV(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, const symmMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML, ergo_real *result_gradient_list)
Definition: integral_matrix_wrappers.cc:237
int compute_K_by_boxes_sparse_nosymm(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, normalMatrix &K, normalMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML)
Definition: integral_matrix_wrappers.cc:892
ergo_real threshold_J
Definition: integrals_2el.h:47
static void convert_symm_CSR_to_HML_and_destroy_CSR(csr_matrix_struct &M_CSR, symmMatrix &M_HML, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:67
int compute_K_by_boxes_sparse(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const JK::ExchWeights &CAM_params, const JK::Params &J_K_params, symmMatrix &K, symmMatrix &densityMatrix_sparse, std::vector< int > const &permutationHML, std::vector< int > const &inversePermutationHML)
Returns the exchange matrix multiplied by 0.5.
Definition: integral_matrix_wrappers.cc:794
static int get_CSR_from_symmMatrix(int n, const symmMatrix &A, std::vector< int > const &inversePermutationHML, csr_matrix_struct &CSR)
Definition: integral_matrix_wrappers.cc:691
ergo_real ergo_CSR_get_element(const csr_matrix_struct *csr, int row, int col)
Definition: csr_matrix.cc:278
int compute_overlap_matrix_sparse(const BasisInfoStruct &basisInfo, symmMatrix &S_symm, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:423
int ergo_CSR_destroy(csr_matrix_struct *csr)
Definition: csr_matrix.cc:171
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
int compute_V_sparse(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, const Molecule &molecule, ergo_real threshold, ergo_real boxSize, symmMatrix &V, std::vector< int > const &permutationHML, ergo_real &result_nuclearRepulsionEnergy)
Definition: integral_matrix_wrappers.cc:86
Code for computing the Hartree-Fock exchange matrix K.
long ergo_CSR_get_nvalues(const csr_matrix_struct *csr)
Definition: csr_matrix.cc:314
Time-measuring class.
Definition: utilities.h:80
Functionality for writing output messages to a text file.