Go to the documentation of this file.
40 #ifndef HEADER_TRANSFORM
41 #define HEADER_TRANSFORM
51 template<
typename TYPE1,
typename TYPE2>
54 throw std::runtime_error(
"Error in transform_matrix_from_to : it is not implemented for given template parameters.");
84 #ifdef USE_CHUNKS_AND_TASKS
91 template<
typename MatrixType,
typename MatrixTypeWrapper>
92 inline void get_sparse_matrix_data(
const MatrixType& X,
93 std::vector<int>&
rows,
94 std::vector<int>&
cols,
95 std::vector<real>& vals)
97 throw std::runtime_error(
"Error in transform.h : get_sparse_matrix_data is not implemented for a given template parameters.");
102 inline void get_sparse_matrix_data<symmMatrix, chtml::CHTSymmMatrix<real, ParamsType> >(
const symmMatrix& X,
103 std::vector<int>&
rows,
104 std::vector<int>&
cols,
105 std::vector<real>& vals)
113 for (
size_t i = 0; i <
rows.size(); ++i)
121 vals[count] = vals[i];
132 inline void get_sparse_matrix_data<symmMatrix, chtml::CHTGeneralMatrix<real, ParamsType> >(
const symmMatrix& X,
133 std::vector<int>&
rows,
134 std::vector<int>&
cols,
135 std::vector<real>& vals)
143 for (
size_t i = 0; i <
rows.size(); ++i)
151 vals[count] = vals[i];
162 rows.reserve(count * 2);
163 cols.reserve(count * 2);
164 vals.reserve(count * 2);
166 size_t N =
rows.size();
167 for (
size_t i = 0; i < N; ++i)
173 vals.push_back(vals[i]);
181 inline void get_sparse_matrix_data<triangMatrix, chtml::CHTTriangMatrix<real, ParamsType> >(
const triangMatrix& X,
182 std::vector<int>&
rows,
183 std::vector<int>&
cols,
184 std::vector<real>& vals)
192 for (
size_t i = 0; i <
rows.size(); ++i)
200 vals[count] = vals[i];
211 inline void get_sparse_matrix_data<normalMatrix, chtml::CHTGeneralMatrix<real, ParamsType> >(
const normalMatrix& X,
212 std::vector<int>&
rows,
213 std::vector<int>&
cols,
214 std::vector<real>& vals)
222 for (
size_t i = 0; i <
rows.size(); ++i)
230 vals[count] = vals[i];
241 inline void transform_matrix_from_to<symmMatrix, chtml::CHTSymmMatrix<real, ParamsType> >
244 B.set_matrix_params(P);
246 int n =
A.get_nrows();
247 int m =
A.get_ncols();
250 std::vector<int>
rows;
251 std::vector<int>
cols;
252 std::vector<real> vals;
253 get_sparse_matrix_data<symmMatrix, chtml::CHTSymmMatrix<real, ParamsType> >(
A,
rows,
cols, vals);
254 B.create_CHT_matrix_from_sparse(
rows,
cols, vals);
259 inline void transform_matrix_from_to<symmMatrix, chtml::CHTGeneralMatrix<real, ParamsType> >
262 B.set_matrix_params(P);
264 int n =
A.get_nrows();
265 int m =
A.get_ncols();
268 std::vector<int>
rows;
269 std::vector<int>
cols;
270 std::vector<real> vals;
271 get_sparse_matrix_data<symmMatrix, chtml::CHTGeneralMatrix<real, ParamsType> >(
A,
rows,
cols, vals);
272 B.create_CHT_matrix_from_sparse(
rows,
cols, vals);
277 inline void transform_matrix_from_to<normalMatrix, chtml::CHTGeneralMatrix<real, ParamsType> >
280 B.set_matrix_params(P);
282 int n =
A.get_nrows();
283 int m =
A.get_ncols();
286 std::vector<int>
rows;
287 std::vector<int>
cols;
288 std::vector<real> vals;
289 get_sparse_matrix_data<normalMatrix, chtml::CHTGeneralMatrix<real, ParamsType> >(
A,
rows,
cols, vals);
290 B.create_CHT_matrix_from_sparse(
rows,
cols, vals);
295 inline void transform_matrix_from_to<triangMatrix, chtml::CHTTriangMatrix<real, ParamsType> >
298 B.set_matrix_params(P);
300 int n =
A.get_nrows();
301 int m =
A.get_ncols();
304 std::vector<int>
rows;
305 std::vector<int>
cols;
306 std::vector<real> vals;
307 get_sparse_matrix_data<triangMatrix, chtml::CHTTriangMatrix<real, ParamsType> >(
A,
rows,
cols, vals);
308 B.create_CHT_matrix_from_sparse(
rows,
cols, vals);
315 template<
typename MatrixTypeCHT,
typename MatrixType>
316 inline void set_sparse_matrix_from_data(
MatrixType& X,
317 const std::vector<int>&
rows,
318 const std::vector<int>&
cols,
319 const std::vector<real>& vals)
321 throw std::runtime_error(
"Error in transform_matrix_from_to : set_sparse_matrix_from_data is not implemented for a given template parameters.");
326 inline void set_sparse_matrix_from_data<chtml::CHTGeneralMatrix<real, ParamsType>,
symmMatrix>(
symmMatrix&
A,
327 const std::vector<int>&
rows,
328 const std::vector<int>&
cols,
329 const std::vector<real>& vals)
332 std::vector<int> rows1;
333 rows1.resize(
rows.size());
334 std::vector<int> cols1;
335 cols1.resize(
cols.size());
336 std::vector<real> vals1;
337 vals1.resize(vals.size());
339 for (
size_t i = 0; i <
rows.size(); ++i)
345 rows1[count] =
rows[i];
346 cols1[count] =
cols[i];
347 vals1[count] = vals[i];
353 A.assign_from_sparse(rows1, cols1, vals1);
358 inline void set_sparse_matrix_from_data<chtml::CHTSymmMatrix<real, ParamsType>,
symmMatrix>(
symmMatrix&
A,
359 const std::vector<int>&
rows,
360 const std::vector<int>&
cols,
361 const std::vector<real>& vals)
368 inline void transform_matrix_from_to<chtml::CHTSymmMatrix<real, ParamsType>,
symmMatrix>
373 std::vector<int>
rows;
374 std::vector<int>
cols;
375 std::vector<real> vals;
384 set_sparse_matrix_from_data<chtml::CHTSymmMatrix<real, ParamsType>,
symmMatrix>(
B,
rows,
cols, vals);
389 inline void transform_matrix_from_to<chtml::CHTGeneralMatrix<real, ParamsType>,
symmMatrix>
394 std::vector<int>
rows;
395 std::vector<int>
cols;
396 std::vector<real> vals;
405 set_sparse_matrix_from_data<chtml::CHTGeneralMatrix<real, ParamsType>,
symmMatrix>(
B,
rows,
cols, vals);
413 #endif // HEADER_TRANSFORM
@ euclNorm
Definition: matInclude.h:139
Treal template_blas_pow(Treal x, Treal y)
ergo_real real
Definition: recexp_many_tests.cc:63
static void update_nnz_percentages(int n, const symmMatrix &X, ergo_real &nnz_percentage_min, ergo_real &nnz_percentage_max)
Definition: simple_ort_puri_test.cc:299
#define TEST_COUNT
Definition: recexp_many_tests.cc:139
void extract_computed_eigenpairs(std::vector< VectorType > &eigVecUNOCCref, std::vector< VectorType > &eigVecOCCref, std::vector< real > &eigValUNOCCref, std::vector< real > &eigValOCCref)
Definition: purification_general.h:232
symmMatrix MatrixType
Definition: recexp_sprandsym.cc:89
ergo_real real
Definition: recexp_test.cc:63
Treal template_blas_sqrt(Treal x)
static bool pattern_to_ps(Dft::SparsePattern &p, const char *fName)
Definition: grid_test.cc:120
void set_no_occupied_orbs(int noOfOccupiedOrbs_)
Definition: GetDensFromFock.h:282
int main(int argc, char *argv[])
Definition: recexp_eigenv_test.cc:971
ergo_real threshold_K
Definition: integrals_2el.h:48
void set_use_diag_on_error()
Definition: GetDensFromFock.h:386
@ mixedNorm
Definition: matInclude.h:139
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_sprandsym.cc:70
ergo_real lambda_max
Definition: simple_ort_puri_test.cc:238
int setFromMoleculeFile(const char *fileName, int netCharge, char **basissetFile)
Loads molecule from a given file name, assuming given net charge.
Definition: molecule.cc:409
Wrapper routines for different parts of the integral code, including conversion of matrices from/to t...
static bool compare_matrices(char mat_name, const real *computed, const real *ref, int sz, ergo_real eps)
Definition: xcmat_r_u_test.cc:48
size_t nnz() const
Definition: MatrixSymmetric.h:484
Code for 1-electron integrals, computation of electron-nuclear potential energy matrix V.
static void get_matrices_A_and_B(int nBasisFuncs, int noOfOccupiedOrbitals, ergo_real *A, ergo_real *B, const ergo_real *eigv, const four_idx_AO_struct *g_MO)
Definition: naive_response_test.cc:268
Definition of the main floating-point datatype used; the ergo_real type.
Code for 1-electron integrals, computation of kinetic-energy matrix T.
int noOfBasisFuncs
Definition: basisinfo.h:120
ergo_real do_2e_integral(int mu, int nu, int la, int si, const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo)
Definition: integrals_2el_explicit.cc:75
MyMolInfo()
Definition: grid_test.cc:61
static void grid_test_synchronisation()
Definition: grid_test.cc:223
MatrixType::VectorType VectorType
Definition: recexp_sprandsym.cc:91
static int do_energy_comparison(int nx, int ny, int nz, ergo_real boxSizeForJ, bool specialCase)
Definition: many_h_atoms_test.cc:408
Common DFT routines. Mostly functional mixing.
int main(int argc, char *argv[])
Definition: basicmath_test.cc:86
Definition: basisinfo.h:50
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_test.cc:69
RadialScheme
Definition: grid_params.h:67
int maxit
Definition: recexp_many_tests.cc:130
PuriInfo info
Fill in during purification with useful information.
Definition: purification_general.h:128
Purification_sp2acc is a class which provides an interface for SP2ACC recursive expansion.
Definition: purification_sp2acc.h:52
Compressed sparse row (CSR) matrix functionality.
std::vector< int > const & permutationHML
Definition: jmat_extrapolate_test.cc:60
static ergo_real BoysFuncAccurate(int n, ergo_real x, const IntegralInfo &integralInfo)
Definition: boys_function_test.cc:56
void get_all_eigenvalues_of_matrix(std::vector< ergo_real > &eigvalList, const MatrixTypeInner &M)
Definition: random_matrices.cc:105
real SCALAR_TOL
Definition: recexp_eigenv_test.cc:74
void set_stopCriterionNormPurification(mat::normType const stopCriterionNormPurification_)
Set stopping criterion norm used in the recursive expansion.
Definition: GetDensFromFock.h:272
Memory allocation/deallocation routines.
int main(int argc, char *argv[])
Definition: mmul_simple_many_test.cc:77
ergo_real fmm_box_size
Definition: integrals_2el.h:52
MatrixType::VectorType VectorType
Definition: recexp_test.cc:65
void set_purification_maxmul(ergo_real purification_maxmul_)
Set maximum allowed number of iterations in recursive expansion.
Definition: GetDensFromFock.h:308
The sparse XC matrix evaluator.
int main(int argc, char *argv[])
Definition: naive_response_test.cc:331
static void preparePermutationsHML(const BasisInfoStruct &basisInfo, mat::SizesAndBlocks &sizeBlockInfo, std::vector< int > &permutation, std::vector< int > &inversePermutation, int blockSizeHML)
Definition: many_h_atoms_test.cc:49
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
void set_test_1_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:435
ergo_real getNuclearRepulsionEnergyQuadratic() const
Compute nuclear repulsion energy.
Definition: molecule.cc:87
static void get_density_mat_by_purification(const symmMatrix &F, symmMatrix &result_D, int n, int n_occ, const std::vector< int > &perm, const DensMatInfo &info, ergo_real truncation_threshold, const symmMatrix &D_ref, bool use_alt_trunc, bool verify_each_step)
Definition: simple_ort_puri_test.cc:704
static char * grid_file_name
Definition: grid_reader.cc:127
SP2ACC (SP2 accelerated) recursive density matrix expansion (or density matrix purification).
static void preparePermutationsHML(const BasisInfoStruct &basisInfo, mat::SizesAndBlocks &sizeBlockInfo, std::vector< int > &permutation, std::vector< int > &inversePermutation, int blockSizeHML)
Definition: naive_response_test.cc:59
void unset_use_diag_on_error_guess()
Definition: GetDensFromFock.h:380
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_randsym_test.cc:71
void assign_from_sparse(std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > const &values)
Assign from sparse matrix given by three vectors.
Definition: MatrixSymmetric.h:176
double ergo_real
Definition: realtype.h:69
Ergo specific implementation of molecule-grid interface.
Definition: dft_common.h:95
static void verify_mmul_result(const std::vector< ergo_real > &A, const std::vector< ergo_real > &B, const std::vector< ergo_real > &C, int n)
Definition: mmul_simple_test.cc:65
real err_eig
Definition: recexp_many_tests.cc:123
Definition: matrix_typedefs_chtml.h:79
void set_diagonalization_params(ergo_real electronicTemperature_, symmMatrix &overlapMatrix_)
Definition: GetDensFromFock.h:462
ergo_real x[MAX_AOS][MAX_AOS][MAX_AOS][MAX_AOS]
Definition: ci.cc:64
static void do_naive_mmul(std::vector< ergo_real > &C, const std::vector< ergo_real > &A, const std::vector< ergo_real > &B, int n, int m, int p)
Definition: mmul_rectangular_test.cc:55
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
Treal template_blas_cos(Treal x)
int main(int argc, char *argv[])
Definition: tmat_test.cc:43
int compute_T_matrix_full(const BasisInfoStruct &basisInfo, ergo_real threshold, ergo_real *result)
Definition: integrals_1el_kinetic.cc:284
static bool benchmark_calculation(const IntegralInfo &ii, int sideLength)
Definition: xcmat_sparse_test.cc:246
normalMatrix MatrixTypeGeneral
Definition: recexp_sprandsym.cc:90
Definition: recexp_many_tests.cc:119
void get_HML_J(const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const symmMatrix &D, symmMatrix &J)
Definition: naive_response_test.cc:84
static void do_naive_mmul(std::vector< ergo_real > &C, const std::vector< ergo_real > &A, const std::vector< ergo_real > &B, int n)
Definition: mmul_simple_test.cc:51
int read_vector(const char *filename, vector< real > &A, int &N, bool is_binary)
Definition: files_dense.cc:115
int template_lapack_gesv(const integer *n, const integer *nrhs, Treal *a, const integer *lda, integer *ipiv, Treal *b, const integer *ldb, integer *info)
Definition: template_lapack_gesv.h:42
static void setNProcs(unsigned int const nP)
Definition: matInclude.h:112
int main(int argc, char *argv[])
Definition: recexp_many_tests.cc:153
static int test_potf2_trtri(ergo_real tolerance, bool verbose)
Definition: lapack_test.cc:140
ergo_real compare_matrices(const std::vector< ergo_real > &A, const std::vector< ergo_real > &B, int n)
Definition: mmul_simple_test.cc:87
intervalType IntervalType
Definition: random_matrices.h:71
ergo_real compare_matrices(const std::vector< ergo_real > &A, const std::vector< ergo_real > &B, int n)
Definition: mmul_simple_many_test.cc:65
void set_test_3_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:489
int main(int argc, char *argv[])
Definition: mat_thread_test.cc:67
BasisInfoStruct * permuteShells(const int *shellMap, const IntegralInfo &ii) const
a factory method generating new BasisInfo struct with permuted shells and basis functions.
Definition: basisinfo.cc:683
Treal template_blas_exp(Treal x)
void get_HML_dens_matrix(int noOfBasisFuncs, int noOfOccupiedOrbitals, const mat::SizesAndBlocks &sizeBlockInfo, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, symmMatrix &S, symmMatrix &F, symmMatrix &Dnew)
Definition: naive_response_test.cc:136
ergo_real BoysFunction_expensive(int n, ergo_real x, int noOfIntegrationIntervals) const
Definition: integral_info.cc:249
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
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
static int test_small(const IntegralInfo &ii, const char *functional, const Dft::GridParams::RadialScheme &gridScheme, const char *gridSchemeName, const int *charges, const real(*coords)[3], const long double(*XCRef)[2])
Definition: xcmat_nan_inf_test.cc:85
static unsigned int getMatrixParallelLevel()
Definition: matInclude.h:120
struct data_for_recexp data_for_recexp_t
ergo_real lambda_min
Definition: simple_ort_puri_test.cc:237
void set_test_6_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:572
SP2 recursive density matrix expansion (or density matrix purification).
static int test_small_many()
Definition: xcmat_nan_inf_test.cc:246
int main(int argc, char *argv[])
Definition: kmat_symm_test.cc:44
RadialScheme radialGridScheme
Definition: grid_params.h:69
int main(int argc, char *argv[])
Definition: kmat_test.cc:42
virtual void clear()
Clear all matrices in the class.
Definition: purification_general.h:176
static void do_add_atom(Molecule &m, ergo_real spacing, int ix, int iy, int iz)
Definition: many_h_atoms_test.cc:171
int test1(int argc, char *argv[])
Definition: recexp_eigenv_test.cc:87
@ frobNorm
Definition: matInclude.h:139
side
Definition: Matrix.h:75
real lumo_out
Definition: recexp_many_tests.cc:129
int main(int argc, char *argv[])
Definition: recexp_randsym_test.cc:80
Treal template_blas_erfc(Treal x)
static int test_small(const IntegralInfo &ii, const char *functional, const Dft::GridParams::RadialScheme &gridScheme, const char *gridSchemeName, const int *charges, const real(*coords)[3], const long double(*XCRef)[2])
Definition: xcmat_test.cc:73
int total_it
Definition: puri_info.h:194
void gen_matlab_file_nnz(const char *filename) const
Create MATLAB .m file which plots the number of non-zero elements in matrices X_i and X_i^2 in each r...
Definition: purification_general.h:3612
static void ggev(const char *jobbl, const char *jobvr, const int *n, T *A, const int *lda, T *B, const int *ldb, T *alphar, T *alphai, T *beta, T *vl, const int *ldvl, T *vr, const int *ldvr, T *work, const int *lwork, int *info)
Definition: mat_gblas.h:301
ergo_real do_1e_repulsion_integral_using_symb_info(const DistributionSpecStruct &psi, ergo_real pointCharge, const ergo_real *pointChargeCoords, const IntegralInfo &integralInfo)
Definition: integrals_1el_single.cc:189
General functionality related to computation of integrals involving Gaussian basis functions.
static int test_stevr_small(ergo_real tolerance, bool verbose)
Definition: lapack_test.cc:285
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
static const MyMolInfo MolInfo
Definition: grid_test.cc:117
double get_start_time_wall_seconds() const
Definition: utilities.h:86
Definition: basisinfo.h:112
int main(int argc, char *argv[])
Definition: boys_function_test.cc:83
static void preparePermutations(const BasisInfoStruct &basisInfo, mat::SizesAndBlocks &sizeBlockInfo, std::vector< int > &permutation, std::vector< int > &inversePermutation)
Definition: gradient_test.cc:46
ergo_real real
Definition: test.cc:46
int getNoOfAtoms() const
Definition: molecule.h:114
int get_product_simple_primitives(const BasisInfoStruct &basisInfoA, int iA, const BasisInfoStruct &basisInfoB, int iB, DistributionSpecStruct resultList[], int maxCount, ergo_real threshold)
Definition: integrals_general.cc:268
Simple atom representation by its charge and cartesian coordinates.
Definition: molecule.h:51
void set_test_8_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:623
static void preparePermutations(const BasisInfoStruct &basisInfo, mat::SizesAndBlocks &sizeBlockInfo, std::vector< int > &permutation, std::vector< int > &inversePermutation)
Definition: vmat_test.cc:47
mat::SizesAndBlocks rows
Definition: test.cc:51
int test3()
Definition: recexp_eigenv_test.cc:568
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_randsym_test.cc:72
int get_F_orbs(int n, const ergo_real *F, const ergo_real *ovl, ergo_real *cmo, ergo_real *eigv)
get_f_orbs: use diagonalization to find the molecular orbitals corresponding to given Fock matrix f.
Definition: densfromf_full.cc:63
Definition: basisset.h:75
mat::normType normPuriStopCrit
Definition: recexp_many_tests.cc:125
EXTERN_C void dft_init(void)
Definition: dft_common.cc:195
int main(int argc, char *argv[])
Definition: mmul_rectangular_test.cc:116
void unset_purification_create_m_files()
Definition: GetDensFromFock.h:332
bool compute_eigenvectors
Definition: recexp_many_tests.cc:133
Definition: integrals_2el.h:45
void get_HML_J(const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const symmMatrix &D, symmMatrix &J)
Definition: many_h_atoms_test.cc:74
Treal template_blas_fabs(Treal x)
static bool small_calculation_core(const IntegralInfo &ii, const char *functionalName, const long double(*xcRef)[2], long double xcERef, bool useHiCu)
Definition: xcmat_sparse_test.cc:106
static void setMatrixParallelLevel(unsigned int const mPL)
Definition: matInclude.h:129
int main(int argc, char *argv[])
Definition: xcmat_r_u_test.cc:208
int charge
Definition: grid_test.cc:51
#define N_BF_SHELLS
Definition: grid_test.cc:46
static ergo_real get_maxabsdiff(int n, const ergo_real *x, const ergo_real *y)
Definition: lapack_test.cc:60
void set_test_2_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:462
ergo_real position[3]
Definition: grid_test.cc:50
int template_lapack_trtri(const char *uplo, const char *diag, const integer *n, Treal *a, const integer *lda, integer *info)
Definition: template_lapack_trtri.h:42
symmMatrix MatrixType
Definition: recexp_many_tests.cc:64
static void fill_matrix_with_random_numbers(int n, std::vector< ergo_real > &A)
Definition: mmul_simple_many_test.cc:44
int main(int argc, char *argv[])
Definition: grid_test.cc:269
static void get_all_matrix_elements_symm(const symmMatrix &A, int n, std::vector< ergo_real > &result)
Definition: simple_ort_puri_test.cc:231
@ GC2
Definition: grid_params.h:67
static void get_density_mat_by_diagonalization(const symmMatrix &F, symmMatrix &D, DensMatInfo &info, int n, int n_occ, const std::vector< int > &perm)
Definition: simple_ort_puri_test.cc:243
static ergo_real find_approx_largest_number()
Definition: basicmath_test.cc:60
MatrixType::VectorType VectorType
Definition: recexp_eigenv_test.cc:67
static int test_small_both()
Definition: xcmat_test.cc:194
static int test_gradient_by_explicit_comparison(const IntegralInfo &integralInfo)
Definition: gradient_test.cc:166
void set_eigenvectors_params(string eigenvectors_method_, string eigenvectors_iterative_method_, real eigensolver_accuracy_, int eigensolver_maxiter_, int scf_step_, bool try_eigv_on_next_iteration_if_fail_)
Set parameters for computing eigenvectors.
Definition: purification_general.h:802
const symmMatrix & D
Definition: jmat_extrapolate_test.cc:56
static ergo_real ShellRadii[]
Definition: grid_test.cc:57
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_many_tests.cc:69
int main(int argc, char *argv[])
Definition: matmem_test.cc:44
void GetScanResult(Treal *threshList_, Treal *errorList_frob_, Treal *errorList_eucl_, Treal *errorList_maxe_, Treal *timeList_)
Definition: mat_acc_extrapolate.h:140
MatrixType::VectorType VectorType
Definition: recexp_randsym_test.cc:77
static void report_timing(Util::TimeMeter &tm, const char *s)
Definition: simple_ort_puri_test.cc:44
void sprandsym(int N, MatrixTypeInner &X, MatrixGeneral &Q, vector< ergo_real > &D, const double MATRIX_SPARSITY)
Definition: random_matrices.cc:129
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
MatrixType X
Matrix X.
Definition: purification_general.h:130
ergo_real real
Definition: recexp_eigenv_test.cc:65
void unset_use_acceleration()
Definition: GetDensFromFock.h:404
void print_collected_info_printf()
Definition: puri_info.cc:269
void set_invCholFactor(triangMatrix const &invCholFactor_, ergo_real invCholFactor_euclnorm_)
Definition: GetDensFromFock.h:292
int main(int argc, char *argv[])
Definition: xcmat_sparse_test.cc:316
A structure describing the grid settings.
Definition: grid_params.h:59
mat::SizesAndBlocks prepareMatrixSizesAndBlocks(int n_basis_functions, int sparse_block_size, int factor1, int factor2, int factor3)
Definition: matrix_utilities.cc:47
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_sprandsym.cc:71
void unset_purification_ignore_failure()
Definition: GetDensFromFock.h:349
Symmetric matrix.
Definition: MatrixBase.h:51
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
void setNetCharge(ergo_real netCharge_)
Definition: molecule.h:109
int get_dens_from_fock(symmMatrix &Finput, symmMatrix &resultDens, symmMatrix &F_ort_prev)
Choose which method to use for computing the density matrix from Fock matrix.
Definition: GetDensFromFock.cc:76
ergo_real exchange_box_size
Definition: integrals_2el.h:59
void Scan(const Tworker &worker, Treal firstParam, Treal stepFactor, int nSteps)
Definition: mat_acc_extrapolate.h:85
static void do_truncation(int n, symmMatrix &X, ergo_real truncation_threshold, const symmMatrix &D_in, bool use_alt_trunc, const std::vector< int > &perm)
Definition: simple_ort_puri_test.cc:569
#define SQRT_EPSILON_REAL
Definition: recexp_sprandsym.cc:68
#define NATOMS
Definition: grid_test.cc:45
#define ergo_new(cnt, type)
Definition: memorymanag.h:43
void plot_results(const Purification_sp2< MatrixType > &Puri)
Definition: recexp_many_tests.cc:83
Purification_sp2acc is a class which provides an interface for SP2 recursive expansion.
Definition: purification_sp2.h:52
int noOfShells
Definition: grid_interface.h:49
int try_integral_diffs(const IntegralInfo &integralInfo, ergo_real h)
Definition: explicit_integral_test.cc:43
static void assign_from_full_matrix(symmMatrix &A, const ergo_real *A_full, int n, const std::vector< int > &perm)
Definition: simple_ort_puri_test.cc:164
Treal trace(const XYZ< Treal, MatrixGeneral< Treal, Tmatrix >, MatrixGeneral< Treal, Tmatrix > > &smm)
Definition: MatrixGeneral.h:904
void getMatrixPermutation(const BasisInfoStruct &basisInfo, int sparse_block_size, int factor1, int factor2, int factor3, std::vector< int > &permutation, std::vector< int > &inversePermutation)
Definition: matrix_utilities.cc:187
const IntegralInfo & integralInfo
Definition: jmat_extrapolate_test.cc:57
MyMolInfo(int a, int b, int s)
Definition: stream_test.cc:42
void enable_output()
Definition: output.cc:181
static int test_V_by_explicit_comparison_tight(const IntegralInfo &integralInfo)
Definition: vmat_test.cc:322
static void verify_mmul_result(const std::vector< ergo_real > &A, const std::vector< ergo_real > &B, const std::vector< ergo_real > &C, int n, int m, int p)
Definition: mmul_rectangular_test.cc:70
int main(int argc, char *argv[])
Definition: recexp_diag_test.cc:77
Streaming grid generator.
void get_HML_K(const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, symmMatrix &D, symmMatrix &K)
Definition: many_h_atoms_test.cc:91
#define N_BFS
Definition: grid_test.cc:47
Definition: grid_test.cc:59
Treal template_blas_log10(Treal x)
virtual void initialize(const MatrixType &F_, const IntervalType &lumo_bounds_, const IntervalType &homo_bounds_, int maxit_, real error_sub_, real error_eig_, bool use_new_stopping_criterion_, NormType norm_truncation, NormType norm_stop_crit, int nocc_)
Set imporatant parameters for the recursive expansion.
Definition: purification_general.h:604
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_diag_test.cc:73
static int test_small_both()
Definition: xcmat_r_u_test.cc:187
static void get_all_generalized_eigenvalues(int n, const ergo_real *A_in, const ergo_real *B_in, ergo_real *eigvalList)
Definition: naive_response_test.cc:300
ergo_real lambda_lumo
Definition: simple_ort_puri_test.cc:240
Various utilities used by self-consistent field (SCF) code. For example, interface routines convertin...
symmMatrixWrap MatrixTypeWrap
Definition: recexp_randsym_test.cc:76
bool empty() const
Definition: Interval.h:51
static unsigned int getNProcs()
Definition: matInclude.h:103
static void get_diag_dens_mat(symmMatrix &D, int n, int offset_0_or_1, const mat::SizesAndBlocks &sizeBlockInfo, const std::vector< int > &permutationHML)
Definition: many_h_atoms_test.cc:126
int converged
Definition: puri_info.h:199
void get_HML_K(const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, symmMatrix &D, symmMatrix &K)
Definition: naive_response_test.cc:101
static const struct @5 Atoms[]
EXTERN_C int dft_get_num_threads(void)
Definition: dft_common.cc:203
real error_subspace
Definition: puri_info.h:201
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
symmMatrix MatrixType
Definition: recexp_diag_test.cc:66
ergo_real real
Definition: recexp_diag_test.cc:65
void getExps(int *maxl, int **bascnt, real(**aa)[2]) const
Definition: stream_test.cc:69
int read_basisset_file(basisset_info &result, const char *fileName, int dirc, const char *dirv[], int print_raw)
Definition: basisset.cc:115
int noOfShells
Definition: basisinfo.h:118
int main(int argc, char *argv[])
Definition: jmat_test.cc:43
static bool compare_matrices(char mat_name, const real *computed, const long double *ref, int sz, ergo_real eps)
Definition: xcmat_nan_inf_test.cc:56
int main(int argc, char *argv[])
Definition: xcmat_test.cc:329
symmMatrix MatrixType
Definition: recexp_randsym_test.cc:75
Treal template_blas_erf(Treal x)
static void gemm(const char *ta, const char *tb, const int *n, const int *k, const int *l, const T *alpha, const T *A, const int *lda, const T *B, const int *ldb, const T *beta, T *C, const int *ldc)
Definition: mat_gblas.h:232
void get_values(std::vector< int > const &rowind, std::vector< int > const &colind, std::vector< Treal > &values) const
Get values given by row and column index lists.
Definition: MatrixGeneral.h:173
EXTERN_C real dft_get_xc_mt(int nElectrons, const real *dmat, const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, real *xc, real *edfty)
Computes the XC interaction matrix for given density matrix.
Definition: xc_matrix.cc:381
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_eigenv_test.cc:73
DftGridReader * grid_open_full(const class GridGenMolInfo *mol_info, const Dft::GridParams &gss, Dft::SparsePattern *pattern, const Dft::Matrix *dmat, const BasisInfoStruct &bis)
Returns a handle to a grid file.
Definition: grid_reader.cc:282
symmMatrix MatrixType
Definition: recexp_test.cc:64
IsGGAFunc is_gga
Definition: functionals.h:403
virtual void getAtom(int icent, int *cnt, real(*coor)[3], int *charge, int *mult) const
Definition: grid_test.cc:62
static ergo_real rand_1_to_10()
Definition: boys_function_test.cc:50
void unset_use_new_stopping_criterion()
Definition: GetDensFromFock.h:411
Utilities related to the hierarchical matrix library (HML), including functions for setting up permut...
void print_matrix(std::vector< ergo_real > const &A)
Definition: random_matrices.cc:52
void grid_free_files()
Frees all the cached data if any.
Definition: grid_reader.cc:135
@ right
Definition: Matrix.h:75
static double get_wall_seconds()
Definition: utilities.h:89
void ComputeMatrix(ergo_real param, symmMatrix &result) const
Definition: jmat_extrapolate_test.cc:76
Routines for getting density matrix from a given Fock matrix.
int main(int argc, char *argv[])
Definition: csr_matrix_test.cc:68
static bool compare_matrices(char mat_name, const real *computed, const long double *ref, int sz, ergo_real eps)
Definition: xcmat_test.cc:50
bool is_empty() const
Definition: VectorGeneral.h:56
int addBasisfuncsForMolecule(const Molecule &molecule, const char *basisset_filename_default, int noOfRanges, const BasissetNameRange *rangeList, const IntegralInfo &integralInfo, int print_raw, int do_normalization, int skip_sort_shells)
Fills in BasisInfoStruct for given molecule and basisset_filename.
Definition: basisinfo.cc:579
@ LMG
Definition: grid_params.h:67
void getNuclearRepulsionEnergyGradientContribQuadratic(ergo_real *resultGradient) const
Compute gradient of nuclear repulsion energy w.r.t.
Definition: molecule.cc:111
void getAtom(int icent, int *cnt, real(*coor)[3], int *charge, int *mult) const
Definition: stream_test.cc:43
int noOfAtoms
Definition: grid_interface.h:47
Code for explicit computation of 4-index 2-electron integrals.
static ergo_real get_nucl_energy_for_given_mol_and_dens(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: gradient_test.cc:67
int main(int argc, char *argv[])
Definition: mmul_simple_test.cc:99
static void get_all_matrix_elements_nosymm(const normalMatrix &A, int n, std::vector< ergo_real > &result)
Definition: simple_ort_puri_test.cc:217
static int test_S_V_comparison(const IntegralInfo &integralInfo)
Definition: vmat_test.cc:69
static void print_DensMatInfo(const DensMatInfo &info)
Definition: simple_ort_puri_test.cc:285
Definition: MatrixBase.h:55
Treal template_blas_sin(Treal x)
#define ERGO_SPREFIX
Definition: config.h:8
Definition: csr_matrix.h:51
#define SQRT_EPSILON_REAL
Definition: recexp_test.cc:67
#define SQRT_EPSILON_REAL
Definition: recexp_eigenv_test.cc:70
bool homo_lumo_bounds_known
Definition: recexp_many_tests.cc:132
std::vector< ergo_real > do_1e_repulsion_integral_derivatives_using_symb_info(const DistributionSpecStruct *psi, ergo_real pointCharge, const ergo_real *pointChargeCoords, const IntegralInfo &integralInfo)
Definition: integrals_1el_single.cc:113
Normal matrix.
Definition: MatrixBase.h:49
static bool grid_test_scaling(const char *fName)
This routine tests the sparsity pattern generation scalability properties.
Definition: grid_test.cc:173
Functionality for computing a single 1-electron integral, for a given primitive Gaussian distribution...
const Atom & getAtom(int i) const
Definition: molecule.h:113
static bool small_calculation(const IntegralInfo &ii)
Definition: xcmat_sparse_test.cc:191
void unset_output_homo_and_lumo_eigenvectors()
Definition: GetDensFromFock.h:341
int main(int argc, char *argv[])
Definition: lapack_test.cc:340
static ergo_real get_nnz_percentage(int n, const symmMatrix &X)
Definition: simple_ort_puri_test.cc:292
static int test_gesv(ergo_real tolerance, bool verbose)
Definition: lapack_test.cc:76
symmMatrixWrap MatrixTypeWrap
Definition: recexp_diag_test.cc:67
Xtrans< TX > transpose(TX const &A)
Transposition.
Definition: matrix_proxy.h:131
Defines IntegralInfo object, providing the coefficients needed for integral evaluation.
mat::SizesAndBlocks cols
Definition: test.cc:52
Basic OS access utilities.
Header file containing declarations of functions required for testing purposes. Functions include gen...
int ergo_CSR_add_to_element(csr_matrix_struct *csr, int row, int col, ergo_real value)
Definition: csr_matrix.cc:252
void gen_matlab_file_norm_diff(const char *filename) const
Create MATLAB .m file which plots the idempotency error in each recursive expansion iteration.
Definition: purification_general.h:3470
Definition: allocate.cc:39
static void report_subspace_error_via_diagonalization(int currIterCount, int n, int n_occ, const symmMatrix &X, const symmMatrix &D_ref, const std::vector< int > &perm)
Definition: simple_ort_puri_test.cc:692
#define LOG_CAT_INFO
Definition: output.h:49
Treal template_blas_log(Treal x)
const int MAX_AOS
Definition: naive_response_test.cc:52
static void report_subspace_error(int currIterCount, int n, const symmMatrix &X, const symmMatrix &D)
Definition: simple_ort_puri_test.cc:681
int main(int argc, char *argv[])
Definition: xcmat_nan_inf_test.cc:302
static int get_gradient_using_finite_differences(const IntegralInfo &integralInfo, const BasisInfoStruct &basisInfo, const Molecule &molecule, const symmMatrix &densityMatrix, ergo_real threshold_integrals_1el, const mat::SizesAndBlocks &matrix_size_block_info, const std::vector< int > &permutationHML, ergo_real *resultGradient)
Definition: gradient_test.cc:85
virtual void PurificationStart()
Start recursive expansion.
Definition: purification_general.h:953
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_eigenv_test.cc:72
void get_HML_G_matrix(const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, symmMatrix &D, symmMatrix &G)
Definition: many_h_atoms_test.cc:112
unsigned grid_stream_generate(ErgoGridStream *stream, const char *fname, int noOfThreads)
Generate grid for given molecule.
Definition: grid_stream.cc:1033
@ TURBO
Definition: grid_params.h:67
void setShellRadii(real *shellRadii) const
Definition: stream_test.cc:54
int template_lapack_potf2(const char *uplo, const integer *n, Treal *a, const integer *lda, integer *info)
Definition: template_lapack_potf2.h:42
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
int main(int argc, char *argv[])
Definition: many_h_atoms_test.cc:432
#define ERGO_DATA_PREFIX
Definition: config.h:5
int main(int argc, char *argv[])
Definition: gradient_test.cc:326
static const bool PRINT_TIME
Definition: xcmat_sparse_test.cc:48
ergo_real compare_matrices(const std::vector< ergo_real > &A, const std::vector< ergo_real > &B, int n, int m)
Definition: mmul_rectangular_test.cc:92
#define LOG_AREA_MAIN
Definition: output.h:57
int which_stop_crit
Definition: recexp_many_tests.cc:134
static int test_mol(const char *mol_fname, const char *basisSet, const char *xcFunc)
Definition: xcmat_test.cc:267
Code for setting up basis functions starting from shells.
normType
Definition: matInclude.h:139
virtual void getExps(int *maxl, int **bascnt, real(**aa)[2]) const
Definition: grid_test.cc:92
Definition: jmat_extrapolate_test.cc:46
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.
int main(int argc, char *argv[])
Definition: recexp_test.cc:84
static void get_identical_rand_numbers(int n, int nNumbers, std::vector< int > &vec)
Definition: csr_matrix_test.cc:45
Definition: simple_ort_puri_test.cc:236
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_many_tests.cc:70
Functional * selected_func
Definition: functionals.c:106
void set_gap_expected_lower_bound(ergo_real gap_expected_lower_bound_)
Definition: GetDensFromFock.h:300
real homo_in
Definition: recexp_many_tests.cc:126
Definition: integral_info.h:148
ergo_real real
Definition: recexp_sprandsym.cc:66
static void get_random_positive_definite_matrix(symmMatrix &result, mat::SizesAndBlocks sizeBlockInfo, int n)
Definition: mat_thread_test.cc:45
void grid_stream_free(ErgoGridStream *stream)
Definition: grid_stream.cc:1064
static bool value_seems_like_nan_or_inf(ergo_real x)
Definition: xcmat_nan_inf_test.cc:45
void setupShellMap(const BasisInfoStruct &bis, int *shellMap, int *aoMap)
Definition: sparse_pattern.cc:446
void set_compute_eigenvectors_in_each_iteration()
Definition: purification_general.h:245
static void report_timing(const Util::TimeMeter &tm, const char *s)
Definition: many_h_atoms_test.cc:69
symmMatrix MatrixType
Definition: recexp_eigenv_test.cc:66
#define SQRT_EPSILON_REAL
Definition: recexp_diag_test.cc:71
int grid_getchunk_blocked(DftGridReader *rawgrid, int maxlen, int *nBlocks, int *shlBlocks, real(*coor)[3], real *weight)
grid_getchunk_blocked() reads grid data also with screening information if only nblocks and shlblocks...
Definition: grid_reader.cc:325
void set_general_params(const int n_, mat::SizesAndBlocks const &matrixSizesAndBlocks_)
Definition: GetDensFromFock.h:238
Definition: electron_dynamics.h:44
virtual void setShellRadii(real *shellRadii) const
Definition: grid_test.cc:73
int test2()
Definition: recexp_eigenv_test.cc:375
GridType gridType
Definition: grid_params.h:70
static int test_functional(const IntegralInfo &ii, const char *funcName)
Definition: xcmat_nan_inf_test.cc:233
void fullvector(std::vector< Treal > &fullVector) const
Definition: VectorGeneral.h:88
#define MAX_DOUBLE
Definition: random_matrices.h:82
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_diag_test.cc:74
void set_test_4_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:517
void output_current_memory_usage(int logArea, const char *contextString)
Definition: output.cc:186
JK::Params J_K_params
Definition: jmat_extrapolate_test.cc:59
ergo_real charge
Definition: molecule.h:52
void getBlocks(const real *center, real cellsz, const real *rshell, int *nblcnt, int(*iblcks)[2]) const
Definition: stream_test.cc:60
Treal template_blas_compute_pi_BBP(Treal dummy)
Definition: template_blas_basicmath.h:77
static void verify_within_bounds(ergo_real x, ergo_real xmin, ergo_real xmax)
Definition: basicmath_test.cc:80
ergo_real lambda_homo
Definition: simple_ort_puri_test.cc:239
Definition: grid_reader.cc:166
#define SQRT_EPSILON_REAL
Definition: recexp_many_tests.cc:67
void do_HF_HML(int noOfBasisFuncs, int noOfOccupiedOrbitals, const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, const symmMatrix &S, const symmMatrix &T, const symmMatrix &V, double nuclearRepulsionEnergy, int noOfIterations, symmMatrix &finalFockMatrix)
Definition: naive_response_test.cc:220
void get_random_symm_matrix(int N, MatrixTypeInner &X, int blockSizesMultuple)
Definition: random_matrices.cc:65
ErgoGridStream * grid_stream_new(const struct Dft::GridParams &gss, const GridGenMolInfo &molInfo)
Creates the grid object.
Definition: grid_stream.cc:999
Definition: mat_acc_extrapolate.h:53
EXTERN_C void grid_set_tmpdir(const char *tmpdir)
Definition: grid_reader.cc:116
static bool mol_calculation(const IntegralInfo &ii, const char *fname)
Definition: xcmat_sparse_test.cc:290
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
static void verify_idempotency(const symmMatrix &X)
Definition: simple_ort_puri_test.cc:781
static void report_timing(const Util::TimeMeter &tm, const char *s)
Definition: naive_response_test.cc:79
static ergo_real find_approx_smallest_number()
Definition: basicmath_test.cc:43
static void calculation_shared(const IntegralInfo &ii, const Molecule &mol, const char *funcName, int blSize, int blFactor, symmMatrix &xcMat, ergo_real *energy, std::vector< int > &permutationHML, bool useHiCu)
Definition: xcmat_sparse_test.cc:51
void enable_memory_usage_output()
Definition: output.cc:175
void ergo_free(void *p)
Definition: memorymanag.cc:68
static void report_max_abs_element_of_matrix(const symmMatrix &A, const char *name, const std::vector< int > &inversePermutationHML)
Definition: many_h_atoms_test.cc:145
int main(int argc, char *argv[])
Definition: stream_test.cc:85
static void print_matrix(const symmMatrix &A, const char *A_name, int n, ergo_real scaleFactor=1.0)
Definition: simple_ort_puri_test.cc:189
void set_purification_limits(ergo_real subspaceErrorLimit_, ergo_real eigvalueErrorLimit_=0, ergo_real puri_eig_acc_factor_for_guess=0)
Definition: GetDensFromFock.h:474
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
Class used to keep track of the block sizes used at different levels in the hierarchical matrix data ...
static void verify_gap(const DensMatInfo &info)
Definition: simple_ort_puri_test.cc:790
void unset_store_all_eigenvalues_to_file()
Definition: GetDensFromFock.h:418
const Atom * getAtomListPtr() const
Definition: molecule.h:112
void set_test_5_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:545
Ergo-specific GridStream implementation.
Definition: grid_stream.cc:973
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
int main(int argc, char *argv[])
Definition: explicit_integral_test.cc:154
virtual void getBlocks(const real *center, real cellsz, const real *rshell, int *nblcnt, int(*iblcks)[2]) const
Definition: grid_test.cc:78
#define BOYS_N_MAX
Definition: boysfunction.h:47
void init_matrix(Matrix &X, const int N)
Definition: recexp_many_tests.cc:99
void read_matrix_from_bin(const char *filename, std::vector< int > &I, std::vector< int > &J, std::vector< real > &val, int &N, int &M)
Read data from the binary file.
Definition: files_sparse_bin.cc:147
ergo_real BoysFunction(int n, ergo_real x) const
Definition: integral_info.cc:243
MatrixType::VectorType VectorType
Definition: recexp_many_tests.cc:65
static void syev(const char *jobz, const char *uplo, const int *n, T *a, const int *lda, T *w, T *work, const int *lwork, int *info)
Definition: mat_gblas.h:382
static bool abs_compare(real a, real b)
Definition: recexp_sprandsym.cc:85
void grid_close(DftGridReader *rawgrid)
Closes the shared grid handle that is specifed as the argument.
Definition: grid_reader.cc:386
static ergo_real distance(const ergo_real *a, const ergo_real *b)
Coomputes distance between two points, they do not need to be of the Vector3D type.
Definition: dft_common.cc:526
void clean_eigs_intervals()
Set bounds for HOMO and LUMO eigenvalues to -/+ inf, thus remove any known bounds.
Definition: GetDensFromFock.h:196
Jworkertest(const symmMatrix &D_, const IntegralInfo &integralInfo_, const BasisInfoStruct &basisInfo_, const JK::Params &J_K_params_, std::vector< int > const &permutationHML_)
Definition: jmat_extrapolate_test.cc:63
ergo_real ergo_CSR_get_element(const csr_matrix_struct *csr, int row, int col)
Definition: csr_matrix.cc:278
real homo_out
Definition: recexp_many_tests.cc:127
static int get_gradient_using_explicit_integrals(const IntegralInfo &integralInfo, const BasisInfoStruct &basisInfo, const Molecule &molecule, const symmMatrix &densityMatrix, ergo_real threshold_integrals_1el, const mat::SizesAndBlocks &matrix_size_block_info, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, ergo_real *resultGradient)
Definition: gradient_test.cc:126
int compute_overlap_matrix_sparse(const BasisInfoStruct &basisInfo, symmMatrix &S_symm, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:423
static void fill_matrix_with_random_numbers(int n, int m, std::vector< ergo_real > &A)
Definition: mmul_rectangular_test.cc:45
Header file with typedefs for matrix types, using either the hierarchical matrix library (HML) or the...
void set_test_7_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:600
real SCALAR_TOL
Definition: recexp_sprandsym.cc:72
void set_use_diagonalization()
Definition: GetDensFromFock.h:362
ergo_real coords[3]
Definition: molecule.h:53
void addAtom(ergo_real c, ergo_real x, ergo_real y, ergo_real z)
Definition: molecule.h:97
real err_sub
Definition: recexp_many_tests.cc:122
void compute_eigenvectors_without_diagonalization_on_F(const MatrixType &F, int eigensolver_maxiter_for_F)
Definition: purification_general.h:2426
const BasisInfoStruct & basisInfo
Definition: jmat_extrapolate_test.cc:58
static void get_Huckel_matrix_periodic(symmMatrix &F, int n, const std::vector< int > &perm)
Definition: simple_ort_puri_test.cc:119
EXTERN_C real dft_get_uxc_mt(int nElectrons, const real *dmata, const real *dmatb, const BasisInfoStruct &bis, const Molecule &mol, const Dft::GridParams &gss, real *xca, real *xcb, real *edfty)
Definition: xc_matrix.cc:539
void grid_stream_set_sparse_pattern(ErgoGridStream *stream, Dft::SparsePattern *pattern)
Definition: grid_stream.cc:1020
static ergo_real rand_0_to_1()
Definition: boys_function_test.cc:44
ergo_real real
Definition: recexp_randsym_test.cc:67
GridGenMolInfo is an abstract class providing information about the molecule so that the grid generat...
Definition: grid_interface.h:45
@ TYPE_HICU
Definition: grid_params.h:68
void unset_use_purification()
Definition: GetDensFromFock.h:372
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
int getNumberOfElectrons() const
Compute total number of electrons.
Definition: molecule.cc:158
void set_truncationNormPurification(mat::normType const truncationNormPurification_)
Set truncation norm used in the recursive expansion.
Definition: GetDensFromFock.h:266
static int test_small(const IntegralInfo &ii, const char *functional, const Dft::GridParams::RadialScheme &gridScheme, const char *gridSchemeName, const int *charges, const real(*coords)[3])
Definition: xcmat_r_u_test.cc:71
void prepare_data_for_recexp(int testnum, data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:363
int main(int argc, char *argv[])
Definition: vmat_test.cc:422
void gen_matlab_file_eigs(const char *filename) const
Create MATLAB .m file which plots the homo and lumo bounds in each recursive expansion iteration.
Definition: purification_general.h:3710
static void fill_matrix_with_random_numbers(int n, std::vector< ergo_real > &A)
Definition: mmul_simple_test.cc:43
static int test_V_by_explicit_comparison(const IntegralInfo &integralInfo)
Definition: vmat_test.cc:157
int template_lapack_stevr(const char *jobz, const char *range, const integer *n, Treal *d__, Treal *e, const Treal *vl, const Treal *vu, const integer *il, const integer *iu, const Treal *abstol, integer *m, Treal *w, Treal *z__, const integer *ldz, integer *isuppz, Treal *work, integer *lwork, integer *iwork, integer *liwork, integer *info)
Definition: template_lapack_stevr.h:41
real accumulated_error_subspace
Definition: puri_info.h:202
int N_occ
Definition: recexp_many_tests.cc:121
real lumo_in
Definition: recexp_many_tests.cc:128
void init()
Definition: integral_info.cc:287
int test4()
Definition: recexp_eigenv_test.cc:760
int compute_V_matrix_full(const BasisInfoStruct &basisInfo, const IntegralInfo &integralInfo, int nAtoms, const Atom *atomList, ergo_real threshold, ergo_real *result)
Definition: integrals_1el_potential.cc:1570
mat::normType normPuri
Definition: recexp_many_tests.cc:124
void gen_matlab_file_time(const char *filename) const
Create MATLAB .m file which creates a bar plot presenting time spent on various parts of the iteratio...
Definition: purification_general.h:3779
Routine get_dens_from_fock_full() for getting density matrix from a given Fock matrix using diagonali...
int main(int argc, char *argv[])
Definition: kmat_nosymm_test.cc:44
Grid Generator interface. Functions for opening grid file, reading chunks from it,...
void unset_purification_use_rand_perturbation_for_alleigsint()
Definition: GetDensFromFock.h:357
void get_HML_G_matrix(const mat::SizesAndBlocks &sizeBlockInfo, const IntegralInfo &integralInfo, const BasisInfoStruct &bis, const std::vector< int > &permutationHML, const std::vector< int > &inversePermutationHML, symmMatrix &D, symmMatrix &G)
Definition: naive_response_test.cc:122
void do_restricted_calculations()
Definition: GetDensFromFock.h:276
Defined namespace eigvec containing functions for computing largest eigenvalues and corresponding eig...
static void do_naive_mmul(std::vector< ergo_real > &C, const std::vector< ergo_real > &A, const std::vector< ergo_real > &B, int n)
Definition: mmul_simple_many_test.cc:52
GetDensFromFock class containing parameters and functions for computing density matrix.
Definition: GetDensFromFock.h:57
void get_puri_stats(std::map< std::string, double > &puri_stats_) const
Definition: GetDensFromFock.h:509
int main(int argc, char *argv[])
Definition: recexp_sprandsym.cc:94
void gen_matlab_file_threshold(const char *filename) const
Create MATLAB .m file which plots the actual introduced error after truncation of the matrix X_i in e...
Definition: purification_general.h:3566
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_test.cc:70
real getXC_mt(const BasisInfoStruct &bis, const IntegralInfo &integralInfo, const Molecule &mol, const Dft::GridParams &gss, int nElectrons, const symmMatrix &dens, symmMatrix &xcm, real *xcEnergy, std::vector< int > const &permutationHML)
Definition: xc_matrix_sparse.cc:274
Time-measuring class.
Definition: utilities.h:80
int write_vector(const char *filename, const vector< real > &v)
Definition: files_dense.cc:206
static ergo_real get_energy(int nx, int ny, int nz, int &nAtoms, ergo_real boxSizeForJ, bool specialCase)
Definition: many_h_atoms_test.cc:178
Functionality for writing output messages to a text file.
void replaceAtom(int i, const Atom &atom)
Definition: molecule.h:110
EXTERN_C int dft_setfunc(const char *line)
Definition: dft_common.cc:277
MatrixType::VectorType VectorType
Definition: recexp_diag_test.cc:68
#define SQRT_EPSILON_REAL
Definition: recexp_randsym_test.cc:69
int N
Definition: recexp_many_tests.cc:120
int main(int argc, char *argv[])
Definition: simple_ort_puri_test.cc:855