ergo
integral_matrix_wrappers.h File Reference

Wrapper routines for different parts of the integral code, including conversion of matrices from/to the hierarchical matrix library (HML) format. More...

#include "basisinfo.h"
#include "matrix_typedefs.h"
#include "integrals_2el.h"

Go to the source code of this file.

Functions

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)
 
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)
 
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)
 
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)
 
int compute_T_sparse_linear (const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, ergo_real threshold, ergo_real boxSize, symmMatrix &T, std::vector< int > const &permutationHML)
 
int compute_overlap_matrix_sparse (const BasisInfoStruct &basisInfo, symmMatrix &S_symm, std::vector< int > const &permutationHML)
 
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.
 
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)
 
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)
 
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.
 
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)
 

Detailed Description

Wrapper routines for different parts of the integral code, including conversion of matrices from/to the hierarchical matrix library (HML) format.

Author
: Elias Rudberg responsible

Function Documentation

◆ compute_gradient_of_nucl_and_trDV()

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 )

◆ compute_J_by_boxes_sparse()

◆ compute_K_by_boxes_sparse()

◆ compute_K_by_boxes_sparse_nosymm()

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 )

◆ compute_operator_matrix_sparse_symm()

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 )

◆ compute_overlap_matrix_sparse()

int compute_overlap_matrix_sparse ( const BasisInfoStruct & basisInfo,
symmMatrix & S_symm,
std::vector< int > const & permutationHML )

◆ compute_R_matrix_sparse()

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.

References compute_operator_matrix_sparse(), do_output(), LOG_AREA_UNDEFINED, LOG_CAT_ERROR, and BasisInfoStruct::noOfBasisFuncs.

Referenced by load_density_and_project_sparse().

◆ compute_T_sparse_linear()

int compute_T_sparse_linear ( const BasisInfoStruct & basisInfo,
const IntegralInfo & integralInfo,
ergo_real threshold,
ergo_real boxSize,
symmMatrix & T,
std::vector< int > const & permutationHML )

◆ compute_V_sparse()

◆ compute_V_sparse_hierarchical()

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 )

◆ get_electron_nuclear_attraction_energy()

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 )