ergo
|
#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_coulomb.h"
#include "integrals_2el_exchange.h"
#include "integrals_2el_exchange_prep.h"
#include "utilities.h"
#include "memorymanag.h"
Typedefs | |
typedef int * | int_ptr |
typedef ergo_real * | ergo_real_ptr |
Functions | |
static ergo_real | get_max_charge (const Molecule &molecule) |
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) |
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 (const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, ergo_real threshold, 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_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) |
typedef ergo_real* ergo_real_ptr |
typedef int* int_ptr |
|
static |
References do_output(), mat::MatrixSymmetric< Treal, Tmatrix >::get_values(), LOG_AREA_SCF, LOG_CAT_INFO, and LOG_CAT_WARNING.
Referenced by compute_overlap_matrix_sparse().
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 | ||
) |
References compute_V_and_gradient_linear(), do_output(), get_basis_func_pair_list_1el(), get_max_charge(), mat::MatrixSymmetric< Treal, Tmatrix >::get_values(), Molecule::getNoOfAtoms(), LOG_AREA_SCF, LOG_CAT_ERROR, LOG_CAT_INFO, and BasisInfoStruct::noOfBasisFuncs.
Referenced by get_gradient_for_given_mol_and_dens(), and test_gradient_by_explicit_comparison().
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 | ||
) |
References mat::MatrixSymmetric< Treal, Tmatrix >::assign_from_sparse(), compute_J_by_boxes_linear(), do_output(), get_basis_func_pair_list_2el(), mat::MatrixSymmetric< Treal, Tmatrix >::get_values(), LOG_AREA_DENSFROMF, LOG_AREA_SCF, LOG_CAT_ERROR, LOG_CAT_INFO, mat::MatrixBase< Treal, Tmatrix >::maxAbsValue(), BasisInfoStruct::noOfBasisFuncs, output_current_memory_usage(), Util::TimeMeter::print(), JK::Params::threshold_J, and mat::FileWritable::writeAndReadAll().
Referenced by Jworkertest::ComputeMatrix(), Jworker::ComputeMatrix(), get_2e_matrices_and_energy_restricted_open(), get_2e_matrices_and_energy_simple_HF_sparse_unrestricted(), get_2e_matrices_and_energy_simple_sparse_unrestricted(), get_2e_matrix_and_energy_simple_HF_sparse(), get_2e_matrix_and_energy_simple_sparse(), get_Fock_matrix_in_ort_basis(), and main().
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.
To get the correct value multiply K by 2.
References A, mat::MatrixSymmetric< Treal, Tmatrix >::assign_from_sparse(), compute_K_by_boxes(), create_CSR_for_K(), do_output(), ergo_CSR_destroy(), ergo_CSR_get_nvalues(), ergo_CSR_get_values(), mat::MatrixGeneral< Treal, Tmatrix >::get_all_values(), get_CSR_from_symmMatrix(), LOG_AREA_SCF, LOG_CAT_ERROR, BasisInfoStruct::noOfBasisFuncs, output_current_memory_usage(), Util::TimeMeter::print(), mat::FileWritable::readFromFile(), and mat::FileWritable::writeToFile().
Referenced by Kworker::ComputeMatrix(), get_2e_matrices_and_energy_restricted_open(), get_2e_matrices_and_energy_simple_HF_sparse_unrestricted(), get_2e_matrices_and_energy_simple_sparse_unrestricted(), get_2e_matrix_and_energy_simple_HF_sparse(), get_2e_matrix_and_energy_simple_sparse(), and main().
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 | ||
) |
References mat::MatrixGeneral< Treal, Tmatrix >::assign_from_sparse(), compute_K_by_boxes(), create_CSR_for_K(), do_output(), ergo_CSR_destroy(), ergo_CSR_get_nvalues(), ergo_CSR_get_values(), get_CSR_from_normalMatrix(), LOG_AREA_SCF, LOG_CAT_ERROR, BasisInfoStruct::noOfBasisFuncs, output_current_memory_usage(), Util::TimeMeter::print(), mat::FileWritable::readFromFile(), and mat::FileWritable::writeToFile().
Referenced by get_Fock_matrix_in_ort_basis(), and main().
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 | ||
) |
References mat::MatrixGeneral< Treal, Tmatrix >::assign_from_sparse(), mat::MatrixBase< Treal, Tmatrix >::clear(), compute_operator_matrix_sparse(), do_output(), LOG_AREA_SCF, LOG_CAT_ERROR, BasisInfoStruct::noOfBasisFuncs, mat::FileWritable::readFromFile(), and mat::FileWritable::writeToFile().
Referenced by compute_dipole_moment_onecoord(), compute_h_core_matrix_sparse(), compute_overlap_matrix_sparse(), and do_tdhf_dynamics().
int compute_overlap_matrix_sparse | ( | const BasisInfoStruct & | basisInfo, |
symmMatrix & | S_symm, | ||
std::vector< int > const & | permutationHML | ||
) |
int compute_T_sparse | ( | const BasisInfoStruct & | basisInfo, |
const IntegralInfo & | integralInfo, | ||
ergo_real | threshold, | ||
symmMatrix & | T, | ||
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 | ||
) |
References mat::MatrixSymmetric< Treal, Tmatrix >::assign_from_sparse(), compute_V_and_gradient_linear(), do_output(), get_basis_func_pair_list_1el(), get_max_charge(), Molecule::getNoOfAtoms(), LOG_AREA_SCF, LOG_CAT_ERROR, LOG_CAT_INFO, and BasisInfoStruct::noOfBasisFuncs.
Referenced by compute_h_core_matrix_sparse(), get_electron_nuclear_attraction_energy(), test_S_V_comparison(), test_V_by_explicit_comparison(), and test_V_by_explicit_comparison_tight().
|
static |
|
static |
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 | ||
) |
References Atom::charge, Molecule::getAtom(), and Molecule::getNoOfAtoms().
Referenced by compute_gradient_of_nucl_and_trDV(), and compute_V_sparse().