ergo
integral_matrix_wrappers.cc 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 <string.h>
#include "integral_matrix_wrappers.h"
#include "output.h"
#include "basis_func_pair_list_1el.h"
#include "integrals_1el_kinetic.h"
#include "integrals_1el_potential.h"
#include "operator_matrix.h"
#include "basis_func_pair_list.h"
#include "integrals_2el_boxed.h"
#include "integrals_2el_J.h"
#include "integrals_2el_K.h"
#include "integrals_2el_K_prep.h"
#include "utilities.h"
#include "memorymanag.h"

Typedefs

typedef int * int_ptr
 
typedef ergo_realergo_real_ptr
 

Functions

static ergo_real get_max_charge (const Molecule &molecule)
 
static void convert_symm_CSR_to_HML_and_destroy_CSR (csr_matrix_struct &M_CSR, symmMatrix &M_HML, std::vector< int > const &permutationHML)
 
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)
 
static int check_diagonal_elements_of_overlap_matrix (int n, const symmMatrix &S_symm)
 
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. More...
 
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)
 
static int get_CSR_from_symmMatrix (int n, const symmMatrix &A, std::vector< int > const &inversePermutationHML, csr_matrix_struct &CSR)
 
static int get_CSR_from_normalMatrix (int n, const normalMatrix &A, std::vector< int > const &inversePermutationHML, csr_matrix_struct &CSR)
 
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. More...
 
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

Typedef Documentation

◆ ergo_real_ptr

◆ int_ptr

typedef int* int_ptr

Function Documentation

◆ check_diagonal_elements_of_overlap_matrix()

static int check_diagonal_elements_of_overlap_matrix ( int  n,
const symmMatrix S_symm 
)
static

◆ 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()

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 
)

◆ 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 
)

◆ convert_symm_CSR_to_HML_and_destroy_CSR()

static void convert_symm_CSR_to_HML_and_destroy_CSR ( csr_matrix_struct M_CSR,
symmMatrix M_HML,
std::vector< int > const &  permutationHML 
)
static

◆ get_CSR_from_normalMatrix()

static int get_CSR_from_normalMatrix ( int  n,
const normalMatrix A,
std::vector< int > const &  inversePermutationHML,
csr_matrix_struct CSR 
)
static

◆ get_CSR_from_symmMatrix()

static int get_CSR_from_symmMatrix ( int  n,
const symmMatrix A,
std::vector< int > const &  inversePermutationHML,
csr_matrix_struct CSR 
)
static

◆ 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 
)

◆ get_max_charge()