ergo
|
Utilities related to the hierarchical matrix library (HML), including functions for setting up permutations of basis functions to increase data locality in the hierarchical matrix data structure. More...
Go to the source code of this file.
Classes | |
struct | matrix_utilities_CompareClass< RandomAccessIterator > |
Functions | |
mat::SizesAndBlocks | prepareMatrixSizesAndBlocks (int n_basis_functions, int sparse_block_size, int factor1, int factor2, int factor3) |
void | getMatrixPermutation (const BasisInfoStruct &basisInfo, int sparse_block_size, int factor1, int factor2, int factor3, std::vector< int > &permutation) |
void | getMatrixPermutation (const BasisInfoStruct &basisInfo, int sparse_block_size, int factor1, int factor2, int factor3, std::vector< int > &permutation, std::vector< int > &inversePermutation) |
void | getMatrixPermutationOnlyFactor2 (const std::vector< ergo_real > &xcoords, const std::vector< ergo_real > &ycoords, const std::vector< ergo_real > &zcoords, int sparse_block_size_lowest, int first_factor, std::vector< int > &permutation, std::vector< int > &inversePermutation) |
void | getMatrixPermutationOnlyFactor2 (const BasisInfoStruct &basisInfo, int sparse_block_size_lowest, int first_factor, std::vector< int > &permutation, std::vector< int > &inversePermutation) |
void | fill_matrix_with_random_numbers (int n, symmMatrix &M) |
void | add_random_diag_perturbation (int n, symmMatrix &M, ergo_real eps) |
bool | check_if_matrix_contains_strange_elements (const symmMatrix &M, std::vector< int > const &inversePermutationHML) |
This function is supposed to check if a matrix contains any strange numbers such as "inf" or "nan". More... | |
void | output_matrix (int n, const ergo_real *matrix, const char *matrixName) |
template<class Tmatrix > | |
ergo_real | compute_maxabs_sparse (const Tmatrix &M) |
template<typename Tmatrix > | |
void | get_all_nonzeros (Tmatrix const &A, std::vector< int > const &inversePermutation, std::vector< int > &rowind, std::vector< int > &colind, std::vector< ergo_real > &values) |
template<typename Tmatrix > | |
void | write_matrix_in_matrix_market_format (Tmatrix const &A, std::vector< int > const &inversePermutation, std::string filename, std::string identifier, std::string method_and_basis) |
Utilities related to the hierarchical matrix library (HML), including functions for setting up permutations of basis functions to increase data locality in the hierarchical matrix data structure.
void add_random_diag_perturbation | ( | int | n, |
symmMatrix & | M, | ||
ergo_real | eps | ||
) |
References rand_minus1_to_1().
bool check_if_matrix_contains_strange_elements | ( | const symmMatrix & | M, |
std::vector< int > const & | inversePermutationHML | ||
) |
This function is supposed to check if a matrix contains any strange numbers such as "inf" or "nan".
The function returns true is any strange numbers are found, and false if the matrix seems ok.
Referenced by SCF_restricted::get_2e_part_and_energy().
ergo_real compute_maxabs_sparse | ( | const Tmatrix & | M | ) |
void fill_matrix_with_random_numbers | ( | int | n, |
symmMatrix & | M | ||
) |
void get_all_nonzeros | ( | Tmatrix const & | A, |
std::vector< int > const & | inversePermutation, | ||
std::vector< int > & | rowind, | ||
std::vector< int > & | colind, | ||
std::vector< ergo_real > & | values | ||
) |
References A.
Referenced by write_matrix_in_matrix_market_format().
void getMatrixPermutation | ( | const BasisInfoStruct & | basisInfo, |
int | sparse_block_size, | ||
int | factor1, | ||
int | factor2, | ||
int | factor3, | ||
std::vector< int > & | permutation | ||
) |
References getMatrixPermutation().
void getMatrixPermutation | ( | const BasisInfoStruct & | basisInfo, |
int | sparse_block_size, | ||
int | factor1, | ||
int | factor2, | ||
int | factor3, | ||
std::vector< int > & | permutation, | ||
std::vector< int > & | inversePermutation | ||
) |
References BasisInfoStruct::basisFuncList, BasisFuncStruct::centerCoords, do_output(), getPermutation(), LOG_AREA_UNDEFINED, LOG_CAT_INFO, and BasisInfoStruct::noOfBasisFuncs.
Referenced by calculation_shared(), getMatrixPermutation(), load_density_and_project_sparse(), main(), SCF::MatOptions::prepare(), preparePermutations(), and preparePermutationsHML().
void getMatrixPermutationOnlyFactor2 | ( | const BasisInfoStruct & | basisInfo, |
int | sparse_block_size_lowest, | ||
int | first_factor, | ||
std::vector< int > & | permutation, | ||
std::vector< int > & | inversePermutation | ||
) |
void getMatrixPermutationOnlyFactor2 | ( | const std::vector< ergo_real > & | xcoords, |
const std::vector< ergo_real > & | ycoords, | ||
const std::vector< ergo_real > & | zcoords, | ||
int | sparse_block_size_lowest, | ||
int | first_factor, | ||
std::vector< int > & | permutation, | ||
std::vector< int > & | inversePermutation | ||
) |
References do_output(), getPermutation(), LOG_AREA_UNDEFINED, and LOG_CAT_INFO.
Referenced by create_mtx_files_with_different_orderings(), and getMatrixPermutationOnlyFactor2().
void output_matrix | ( | int | n, |
const ergo_real * | matrix, | ||
const char * | matrixName | ||
) |
Referenced by dft_get_uxc(), and dft_get_xc().
mat::SizesAndBlocks prepareMatrixSizesAndBlocks | ( | int | n_basis_functions, |
int | sparse_block_size, | ||
int | factor1, | ||
int | factor2, | ||
int | factor3 | ||
) |
References do_output(), LOG_AREA_UNDEFINED, and LOG_CAT_INFO.
Referenced by calculation_shared(), get_dipole_moment_fullmat(), load_density_and_project_sparse(), main(), SCF::MatOptions::prepare(), preparePermutations(), and preparePermutationsHML().
void write_matrix_in_matrix_market_format | ( | Tmatrix const & | A, |
std::vector< int > const & | inversePermutation, | ||
std::string | filename, | ||
std::string | identifier, | ||
std::string | method_and_basis | ||
) |
References A, get_all_nonzeros(), and VERSION.
Referenced by compute_h_core_matrix_sparse(), SCF_restricted::create_mtx_files_D(), SCF_unrestricted::create_mtx_files_D(), SCF_restricted::create_mtx_files_F(), SCF_unrestricted::create_mtx_files_F(), create_mtx_files_with_different_orderings(), and SCF_general::SCF_general().