ergo
transform.h
Go to the documentation of this file.
1 /* Ergo, version 3.8, a program for linear scaling electronic structure
2  * calculations.
3  * Copyright (C) 2019 Elias Rudberg, Emanuel H. Rubensson, Pawel Salek,
4  * and Anastasia Kruchinina.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  *
19  * Primary academic reference:
20  * Ergo: An open-source program for linear-scaling electronic structure
21  * calculations,
22  * Elias Rudberg, Emanuel H. Rubensson, Pawel Salek, and Anastasia
23  * Kruchinina,
24  * SoftwareX 7, 107 (2018),
25  * <http://dx.doi.org/10.1016/j.softx.2018.03.005>
26  *
27  * For further information about Ergo, see <http://www.ergoscf.org>.
28  */
40 #ifndef HEADER_TRANSFORM
41 #define HEADER_TRANSFORM
42 
43 #include <iostream>
44 #include "matrix_typedefs.h"
45 #include "matrix_typedefs_chtml.h"
46 
47 typedef ergo_real real;
48 
49 
50 
51 template<typename TYPE1, typename TYPE2>
52 inline void transform_matrix_from_to(const TYPE1& A, TYPE2& B, const ParamsType& P)
53 {
54  throw std::runtime_error("Error in transform_matrix_from_to : it is not implemented for given template parameters.");
55 }
56 
57 
58 /* "FAKE" TRANSFORMATIONS */
59 
60 template<>
62  (const symmMatrix& A, symmMatrix& B, const ParamsType& P)
63 {
64  B = A;
65 }
66 
67 
68 template<>
70  (const normalMatrix& A, normalMatrix& B, const ParamsType& P)
71 {
72  B = A;
73 }
74 
75 
76 template<>
78  (const triangMatrix& A, triangMatrix& B, const ParamsType& P)
79 {
80  B = A;
81 }
82 
83 
84 #ifdef USE_CHUNKS_AND_TASKS
85 
86 
87 
88 /* FROM ERGO TO CHT */
89 
90 
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)
96 {
97  throw std::runtime_error("Error in transform.h : get_sparse_matrix_data is not implemented for a given template parameters.");
98 }
99 
100 
101 template<>
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)
106 {
107  rows.clear();
108  cols.clear();
109  vals.clear();
110  X.get_all_values(rows, cols, vals);
111 
112  size_t count = 0;
113  for (size_t i = 0; i < rows.size(); ++i)
114  {
115  if (vals[i] == 0)
116  {
117  continue;
118  }
119  rows[count] = rows[i];
120  cols[count] = cols[i];
121  vals[count] = vals[i];
122  count++;
123  }
124 
125  rows.resize(count);
126  cols.resize(count);
127  vals.resize(count);
128 }
129 
130 
131 template<>
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)
136 {
137  rows.clear();
138  cols.clear();
139  vals.clear();
140  X.get_all_values(rows, cols, vals);
141 
142  size_t count = 0;
143  for (size_t i = 0; i < rows.size(); ++i)
144  {
145  if (vals[i] == 0)
146  {
147  continue;
148  }
149  rows[count] = rows[i];
150  cols[count] = cols[i];
151  vals[count] = vals[i];
152  count++;
153  }
154 
155 
156  // here we have just upper triangle
157  // now set the lower triangle
158 
159  rows.resize(count);
160  cols.resize(count);
161  vals.resize(count);
162  rows.reserve(count * 2);
163  cols.reserve(count * 2);
164  vals.reserve(count * 2);
165 
166  size_t N = rows.size();
167  for (size_t i = 0; i < N; ++i)
168  {
169  if (rows[i] != cols[i])
170  {
171  rows.push_back(cols[i]);
172  cols.push_back(rows[i]);
173  vals.push_back(vals[i]);
174  count++;
175  }
176  }
177 }
178 
179 
180 template<>
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)
185 {
186  rows.clear();
187  cols.clear();
188  vals.clear();
189  X.get_all_values(rows, cols, vals);
190 
191  size_t count = 0;
192  for (size_t i = 0; i < rows.size(); ++i)
193  {
194  if (vals[i] == 0)
195  {
196  continue;
197  }
198  rows[count] = rows[i];
199  cols[count] = cols[i];
200  vals[count] = vals[i];
201  count++;
202  }
203 
204  rows.resize(count);
205  cols.resize(count);
206  vals.resize(count);
207 }
208 
209 
210 template<>
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)
215 {
216  rows.clear();
217  cols.clear();
218  vals.clear();
219  X.get_all_values(rows, cols, vals);
220 
221  size_t count = 0;
222  for (size_t i = 0; i < rows.size(); ++i)
223  {
224  if (vals[i] == 0)
225  {
226  continue;
227  }
228  rows[count] = rows[i];
229  cols[count] = cols[i];
230  vals[count] = vals[i];
231  count++;
232  }
233 
234  rows.resize(count);
235  cols.resize(count);
236  vals.resize(count);
237 }
238 
239 
240 template<>
241 inline void transform_matrix_from_to<symmMatrix, chtml::CHTSymmMatrix<real, ParamsType> >
242  (const symmMatrix& A, chtml::CHTSymmMatrix<real, ParamsType>& B, const ParamsType& P)
243 {
244  B.set_matrix_params(P);
245 
246  int n = A.get_nrows();
247  int m = A.get_ncols();
248  // check dim of B
249 
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);
255 }
256 
257 
258 template<>
259 inline void transform_matrix_from_to<symmMatrix, chtml::CHTGeneralMatrix<real, ParamsType> >
260  (const symmMatrix& A, chtml::CHTGeneralMatrix<real, ParamsType>& B, const ParamsType& P)
261 {
262  B.set_matrix_params(P);
263 
264  int n = A.get_nrows();
265  int m = A.get_ncols();
266  // check dim of B
267 
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);
273 }
274 
275 
276 template<>
277 inline void transform_matrix_from_to<normalMatrix, chtml::CHTGeneralMatrix<real, ParamsType> >
278  (const normalMatrix& A, chtml::CHTGeneralMatrix<real, ParamsType>& B, const ParamsType& P)
279 {
280  B.set_matrix_params(P);
281 
282  int n = A.get_nrows();
283  int m = A.get_ncols();
284  // check dim of B
285 
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);
291 }
292 
293 
294 template<>
295 inline void transform_matrix_from_to<triangMatrix, chtml::CHTTriangMatrix<real, ParamsType> >
296  (const triangMatrix& A, chtml::CHTTriangMatrix<real, ParamsType>& B, const ParamsType& P)
297 {
298  B.set_matrix_params(P);
299 
300  int n = A.get_nrows();
301  int m = A.get_ncols();
302  // check dim of B
303 
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);
309 }
310 
311 
312 /* FROM CHT TO ERGO */
313 
314 
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)
320 {
321  throw std::runtime_error("Error in transform_matrix_from_to : set_sparse_matrix_from_data is not implemented for a given template parameters.");
322 }
323 
324 
325 template<>
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)
330 {
331  // we need just upper triangle
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());
338  size_t count = 0;
339  for (size_t i = 0; i < rows.size(); ++i)
340  {
341  if (rows[i] > cols[i])
342  {
343  continue;
344  }
345  rows1[count] = rows[i];
346  cols1[count] = cols[i];
347  vals1[count] = vals[i];
348  count++;
349  }
350  rows1.resize(count);
351  cols1.resize(count);
352  vals1.resize(count);
353  A.assign_from_sparse(rows1, cols1, vals1);
354 }
355 
356 
357 template<>
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)
362 {
363  A.assign_from_sparse(rows, cols, vals);
364 }
365 
366 
367 template<>
368 inline void transform_matrix_from_to<chtml::CHTSymmMatrix<real, ParamsType>, symmMatrix>
369  (const chtml::CHTSymmMatrix<real, ParamsType>& A, symmMatrix& B, const ParamsType& P)
370 {
371  int n, m, nB, mB;
372 
373  std::vector<int> rows;
374  std::vector<int> cols;
375  std::vector<real> vals;
376 
377  n = A.get_nrows();
378  nB = B.get_nrows();
379  assert(nB == n);
380  m = A.get_ncols();
381  mB = B.get_ncols();
382  assert(mB == m);
383  A.get_matrix(rows, cols, vals);
384  set_sparse_matrix_from_data<chtml::CHTSymmMatrix<real, ParamsType>, symmMatrix>(B, rows, cols, vals);
385 }
386 
387 
388 template<>
389 inline void transform_matrix_from_to<chtml::CHTGeneralMatrix<real, ParamsType>, symmMatrix>
390  (const chtml::CHTGeneralMatrix<real, ParamsType>& A, symmMatrix& B, const ParamsType& P)
391 {
392  int n, m, nB, mB;
393 
394  std::vector<int> rows;
395  std::vector<int> cols;
396  std::vector<real> vals;
397 
398  n = A.get_nrows();
399  nB = B.get_nrows();
400  assert(nB == n);
401  m = A.get_ncols();
402  mB = B.get_ncols();
403  assert(mB == m);
404  A.get_matrix(rows, cols, vals);
405  set_sparse_matrix_from_data<chtml::CHTGeneralMatrix<real, ParamsType>, symmMatrix>(B, rows, cols, vals);
406 }
407 
408 
409 #endif
410 
411 
412 
413 #endif // HEADER_TRANSFORM
mat::euclNorm
@ euclNorm
Definition: matInclude.h:139
template_blas_pow
Treal template_blas_pow(Treal x, Treal y)
real
ergo_real real
Definition: recexp_many_tests.cc:63
update_nnz_percentages
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
TEST_COUNT
#define TEST_COUNT
Definition: recexp_many_tests.cc:139
PurificationGeneral::extract_computed_eigenpairs
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
MatrixType
symmMatrix MatrixType
Definition: recexp_sprandsym.cc:89
real
ergo_real real
Definition: recexp_test.cc:63
template_blas_sqrt
Treal template_blas_sqrt(Treal x)
pattern_to_ps
static bool pattern_to_ps(Dft::SparsePattern &p, const char *fName)
Definition: grid_test.cc:120
GetDensFromFock::set_no_occupied_orbs
void set_no_occupied_orbs(int noOfOccupiedOrbs_)
Definition: GetDensFromFock.h:282
main
int main(int argc, char *argv[])
Definition: recexp_eigenv_test.cc:971
JK::Params::threshold_K
ergo_real threshold_K
Definition: integrals_2el.h:48
GetDensFromFock::set_use_diag_on_error
void set_use_diag_on_error()
Definition: GetDensFromFock.h:386
mat::mixedNorm
@ mixedNorm
Definition: matInclude.h:139
TOL_ERR_SUBS_DEFAULT
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_sprandsym.cc:70
real
ergo_real real
Definition: transform.h:47
DensMatInfo::lambda_max
ergo_real lambda_max
Definition: simple_ort_puri_test.cc:238
Molecule::setFromMoleculeFile
int setFromMoleculeFile(const char *fileName, int netCharge, char **basissetFile)
Loads molecule from a given file name, assuming given net charge.
Definition: molecule.cc:409
verify_mmul_result
static void verify_mmul_result(int n, const std::vector< ergo_real > &fullMat_A, const std::vector< ergo_real > &fullMat_B, const normalMatrix &C)
Definition: mat_performance_test.cc:60
integral_matrix_wrappers.h
Wrapper routines for different parts of the integral code, including conversion of matrices from/to t...
compare_matrices
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
mat::MatrixSymmetric::nnz
size_t nnz() const
Definition: MatrixSymmetric.h:484
integrals_1el_potential.h
Code for 1-electron integrals, computation of electron-nuclear potential energy matrix V.
MatrixTriangular.h
get_matrices_A_and_B
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
realtype.h
Definition of the main floating-point datatype used; the ergo_real type.
integrals_1el_kinetic.h
Code for 1-electron integrals, computation of kinetic-energy matrix T.
BasisInfoStruct::noOfBasisFuncs
int noOfBasisFuncs
Definition: basisinfo.h:120
do_2e_integral
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::MyMolInfo
MyMolInfo()
Definition: grid_test.cc:61
grid_test_synchronisation
static void grid_test_synchronisation()
Definition: grid_test.cc:223
VectorType
MatrixType::VectorType VectorType
Definition: recexp_sprandsym.cc:91
do_energy_comparison
static int do_energy_comparison(int nx, int ny, int nz, ergo_real boxSizeForJ, bool specialCase)
Definition: many_h_atoms_test.cc:408
dft_common.h
Common DFT routines. Mostly functional mixing.
main
int main(int argc, char *argv[])
Definition: basicmath_test.cc:86
DistributionSpecStruct
Definition: basisinfo.h:50
TOL_ERR_SUBS_DEFAULT
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_test.cc:69
Dft::GridParams::RadialScheme
RadialScheme
Definition: grid_params.h:67
data_for_recexp::maxit
int maxit
Definition: recexp_many_tests.cc:130
Vector.h
PurificationGeneral::info
PuriInfo info
Fill in during purification with useful information.
Definition: purification_general.h:128
Purification_sp2acc
Purification_sp2acc is a class which provides an interface for SP2ACC recursive expansion.
Definition: purification_sp2acc.h:52
csr_matrix.h
Compressed sparse row (CSR) matrix functionality.
Jworkertest::permutationHML
std::vector< int > const & permutationHML
Definition: jmat_extrapolate_test.cc:60
transform_matrix_from_to
void transform_matrix_from_to(const TYPE1 &A, TYPE2 &B, const ParamsType &P)
Definition: transform.h:52
BoysFuncAccurate
static ergo_real BoysFuncAccurate(int n, ergo_real x, const IntegralInfo &integralInfo)
Definition: boys_function_test.cc:56
get_all_eigenvalues_of_matrix
void get_all_eigenvalues_of_matrix(std::vector< ergo_real > &eigvalList, const MatrixTypeInner &M)
Definition: random_matrices.cc:105
SCALAR_TOL
real SCALAR_TOL
Definition: recexp_eigenv_test.cc:74
GetDensFromFock::set_stopCriterionNormPurification
void set_stopCriterionNormPurification(mat::normType const stopCriterionNormPurification_)
Set stopping criterion norm used in the recursive expansion.
Definition: GetDensFromFock.h:272
memorymanag.h
Memory allocation/deallocation routines.
main
int main(int argc, char *argv[])
Definition: mmul_simple_many_test.cc:77
transform_matrix_from_to< normalMatrix, normalMatrix >
void transform_matrix_from_to< normalMatrix, normalMatrix >(const normalMatrix &A, normalMatrix &B, const ParamsType &P)
Definition: transform.h:70
JK::Params::fmm_box_size
ergo_real fmm_box_size
Definition: integrals_2el.h:52
VectorType
MatrixType::VectorType VectorType
Definition: recexp_test.cc:65
GetDensFromFock::set_purification_maxmul
void set_purification_maxmul(ergo_real purification_maxmul_)
Set maximum allowed number of iterations in recursive expansion.
Definition: GetDensFromFock.h:308
xc_matrix_sparse.h
The sparse XC matrix evaluator.
main
int main(int argc, char *argv[])
Definition: naive_response_test.cc:331
preparePermutationsHML
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
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)
Definition: integral_matrix_wrappers.cc:331
set_test_1_data
void set_test_1_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:435
Molecule::getNuclearRepulsionEnergyQuadratic
ergo_real getNuclearRepulsionEnergyQuadratic() const
Compute nuclear repulsion energy.
Definition: molecule.cc:87
get_density_mat_by_purification
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
get_random_matrix_full
static void get_random_matrix_full(int n, std::vector< ergo_real > &fullMat)
Definition: mat_performance_test.cc:45
grid_file_name
static char * grid_file_name
Definition: grid_reader.cc:127
purification_sp2acc.h
SP2ACC (SP2 accelerated) recursive density matrix expansion (or density matrix purification).
preparePermutationsHML
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
GetDensFromFock::unset_use_diag_on_error_guess
void unset_use_diag_on_error_guess()
Definition: GetDensFromFock.h:380
TOL_ERR_SUBS_DEFAULT
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_randsym_test.cc:71
mat::MatrixSymmetric::assign_from_sparse
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
ergo_real
double ergo_real
Definition: realtype.h:69
ErgoMolInfo
Ergo specific implementation of molecule-grid interface.
Definition: dft_common.h:95
verify_mmul_result
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
data_for_recexp::err_eig
real err_eig
Definition: recexp_many_tests.cc:123
MatrixParamsType
Definition: matrix_typedefs_chtml.h:79
GetDensFromFock::set_diagonalization_params
void set_diagonalization_params(ergo_real electronicTemperature_, symmMatrix &overlapMatrix_)
Definition: GetDensFromFock.h:462
four_idx_AO_struct::x
ergo_real x[MAX_AOS][MAX_AOS][MAX_AOS][MAX_AOS]
Definition: ci.cc:64
do_naive_mmul
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
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)
Returns the exchange matrix multiplied by 0.5.
Definition: integral_matrix_wrappers.cc:794
template_blas_cos
Treal template_blas_cos(Treal x)
main
int main(int argc, char *argv[])
Definition: tmat_test.cc:43
compute_T_matrix_full
int compute_T_matrix_full(const BasisInfoStruct &basisInfo, ergo_real threshold, ergo_real *result)
Definition: integrals_1el_kinetic.cc:284
benchmark_calculation
static bool benchmark_calculation(const IntegralInfo &ii, int sideLength)
Definition: xcmat_sparse_test.cc:246
MatrixTypeGeneral
normalMatrix MatrixTypeGeneral
Definition: recexp_sprandsym.cc:90
data_for_recexp
Definition: recexp_many_tests.cc:119
get_HML_J
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
do_naive_mmul
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
read_vector
int read_vector(const char *filename, vector< real > &A, int &N, bool is_binary)
Definition: files_dense.cc:115
template_lapack_gesv
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
mat::Params::setNProcs
static void setNProcs(unsigned int const nP)
Definition: matInclude.h:112
main
int main(int argc, char *argv[])
Definition: recexp_many_tests.cc:153
test_potf2_trtri
static int test_potf2_trtri(ergo_real tolerance, bool verbose)
Definition: lapack_test.cc:140
compare_matrices
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 IntervalType
Definition: random_matrices.h:71
compare_matrices
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
set_test_3_data
void set_test_3_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:489
main
int main(int argc, char *argv[])
Definition: mat_thread_test.cc:67
BasisInfoStruct::permuteShells
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
template_blas_exp
Treal template_blas_exp(Treal x)
get_HML_dens_matrix
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
IntegralInfo::BoysFunction_expensive
ergo_real BoysFunction_expensive(int n, ergo_real x, int noOfIntegrationIntervals) const
Definition: integral_info.cc:249
symmMatrix
MatrixSymmetric< real, matri > symmMatrix
Definition: test_LanczosSeveralLargestEig.cc:69
compute_J_by_boxes_sparse
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
test_small
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
mat::Params::getMatrixParallelLevel
static unsigned int getMatrixParallelLevel()
Definition: matInclude.h:120
data_for_recexp_t
struct data_for_recexp data_for_recexp_t
Matrix.h
DensMatInfo::lambda_min
ergo_real lambda_min
Definition: simple_ort_puri_test.cc:237
set_test_6_data
void set_test_6_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:572
purification_sp2.h
SP2 recursive density matrix expansion (or density matrix purification).
test_small_many
static int test_small_many()
Definition: xcmat_nan_inf_test.cc:246
main
int main(int argc, char *argv[])
Definition: kmat_symm_test.cc:44
Dft::GridParams::radialGridScheme
RadialScheme radialGridScheme
Definition: grid_params.h:69
main
int main(int argc, char *argv[])
Definition: kmat_test.cc:42
template_blas_common.h
main
int main(int argc, char *argv[])
Definition: mat_performance_test.cc:91
PurificationGeneral::clear
virtual void clear()
Clear all matrices in the class.
Definition: purification_general.h:176
do_add_atom
static void do_add_atom(Molecule &m, ergo_real spacing, int ix, int iy, int iz)
Definition: many_h_atoms_test.cc:171
test1
int test1(int argc, char *argv[])
Definition: recexp_eigenv_test.cc:87
mat::frobNorm
@ frobNorm
Definition: matInclude.h:139
mat::side
side
Definition: Matrix.h:75
data_for_recexp::lumo_out
real lumo_out
Definition: recexp_many_tests.cc:129
main
int main(int argc, char *argv[])
Definition: recexp_randsym_test.cc:80
template_blas_erfc
Treal template_blas_erfc(Treal x)
test_small
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
PuriInfo::total_it
int total_it
Definition: puri_info.h:194
PurificationGeneral::gen_matlab_file_nnz
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
mat::ggev
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
do_1e_repulsion_integral_using_symb_info
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
integrals_general.h
General functionality related to computation of integrals involving Gaussian basis functions.
test_stevr_small
static int test_stevr_small(ergo_real tolerance, bool verbose)
Definition: lapack_test.cc:285
ergo_CSR_create
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
MolInfo
static const MyMolInfo MolInfo
Definition: grid_test.cc:117
Util::TimeMeter::get_start_time_wall_seconds
double get_start_time_wall_seconds() const
Definition: utilities.h:86
BasisInfoStruct
Definition: basisinfo.h:112
main
int main(int argc, char *argv[])
Definition: boys_function_test.cc:83
preparePermutations
static void preparePermutations(const BasisInfoStruct &basisInfo, mat::SizesAndBlocks &sizeBlockInfo, std::vector< int > &permutation, std::vector< int > &inversePermutation)
Definition: gradient_test.cc:46
real
ergo_real real
Definition: test.cc:46
Molecule::getNoOfAtoms
int getNoOfAtoms() const
Definition: molecule.h:114
get_product_simple_primitives
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
Atom
Simple atom representation by its charge and cartesian coordinates.
Definition: molecule.h:51
set_test_8_data
void set_test_8_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:623
preparePermutations
static void preparePermutations(const BasisInfoStruct &basisInfo, mat::SizesAndBlocks &sizeBlockInfo, std::vector< int > &permutation, std::vector< int > &inversePermutation)
Definition: vmat_test.cc:47
mat_gblas.h
rows
mat::SizesAndBlocks rows
Definition: test.cc:51
test3
int test3()
Definition: recexp_eigenv_test.cc:568
TOL_TRACE_ERROR_DEFAULT
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_randsym_test.cc:72
get_F_orbs
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
basisset_info
Definition: basisset.h:75
data_for_recexp::normPuriStopCrit
mat::normType normPuriStopCrit
Definition: recexp_many_tests.cc:125
dft_init
EXTERN_C void dft_init(void)
Definition: dft_common.cc:195
main
int main(int argc, char *argv[])
Definition: mmul_rectangular_test.cc:116
GetDensFromFock::unset_purification_create_m_files
void unset_purification_create_m_files()
Definition: GetDensFromFock.h:332
data_for_recexp::compute_eigenvectors
bool compute_eigenvectors
Definition: recexp_many_tests.cc:133
JK::Params
Definition: integrals_2el.h:45
get_HML_J
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
template_blas_fabs
Treal template_blas_fabs(Treal x)
small_calculation_core
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
mat::Params::setMatrixParallelLevel
static void setMatrixParallelLevel(unsigned int const mPL)
Definition: matInclude.h:129
main
int main(int argc, char *argv[])
Definition: xcmat_r_u_test.cc:208
charge
int charge
Definition: grid_test.cc:51
N_BF_SHELLS
#define N_BF_SHELLS
Definition: grid_test.cc:46
get_maxabsdiff
static ergo_real get_maxabsdiff(int n, const ergo_real *x, const ergo_real *y)
Definition: lapack_test.cc:60
set_test_2_data
void set_test_2_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:462
position
ergo_real position[3]
Definition: grid_test.cc:50
template_lapack_trtri
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
MatrixType
symmMatrix MatrixType
Definition: recexp_many_tests.cc:64
fill_matrix_with_random_numbers
static void fill_matrix_with_random_numbers(int n, std::vector< ergo_real > &A)
Definition: mmul_simple_many_test.cc:44
main
int main(int argc, char *argv[])
Definition: grid_test.cc:269
get_all_matrix_elements_symm
static void get_all_matrix_elements_symm(const symmMatrix &A, int n, std::vector< ergo_real > &result)
Definition: simple_ort_puri_test.cc:231
Dft::GridParams::GC2
@ GC2
Definition: grid_params.h:67
get_density_mat_by_diagonalization
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
find_approx_largest_number
static ergo_real find_approx_largest_number()
Definition: basicmath_test.cc:60
B
#define B
VectorType
MatrixType::VectorType VectorType
Definition: recexp_eigenv_test.cc:67
test_small_both
static int test_small_both()
Definition: xcmat_test.cc:194
test_gradient_by_explicit_comparison
static int test_gradient_by_explicit_comparison(const IntegralInfo &integralInfo)
Definition: gradient_test.cc:166
PurificationGeneral::set_eigenvectors_params
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
Jworkertest::D
const symmMatrix & D
Definition: jmat_extrapolate_test.cc:56
ShellRadii
static ergo_real ShellRadii[]
Definition: grid_test.cc:57
TOL_ERR_SUBS_DEFAULT
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_many_tests.cc:69
main
int main(int argc, char *argv[])
Definition: matmem_test.cc:44
MatAccInvestigator::GetScanResult
void GetScanResult(Treal *threshList_, Treal *errorList_frob_, Treal *errorList_eucl_, Treal *errorList_maxe_, Treal *timeList_)
Definition: mat_acc_extrapolate.h:140
VectorType
MatrixType::VectorType VectorType
Definition: recexp_randsym_test.cc:77
report_timing
static void report_timing(Util::TimeMeter &tm, const char *s)
Definition: simple_ort_puri_test.cc:44
sprandsym
void sprandsym(int N, MatrixTypeInner &X, MatrixGeneral &Q, vector< ergo_real > &D, const double MATRIX_SPARSITY)
Definition: random_matrices.cc:129
normalMatrix
MatrixGeneral< real, matri > normalMatrix
Definition: test_LanczosSeveralLargestEig.cc:71
triangMatrix
MatrixTriangular< real, matri > triangMatrix
Definition: test_LanczosSeveralLargestEig.cc:70
PurificationGeneral::X
MatrixType X
Matrix X.
Definition: purification_general.h:130
real
ergo_real real
Definition: recexp_eigenv_test.cc:65
GetDensFromFock::unset_use_acceleration
void unset_use_acceleration()
Definition: GetDensFromFock.h:404
PuriInfo::print_collected_info_printf
void print_collected_info_printf()
Definition: puri_info.cc:269
GetDensFromFock::set_invCholFactor
void set_invCholFactor(triangMatrix const &invCholFactor_, ergo_real invCholFactor_euclnorm_)
Definition: GetDensFromFock.h:292
main
int main(int argc, char *argv[])
Definition: xcmat_sparse_test.cc:316
Dft::GridParams
A structure describing the grid settings.
Definition: grid_params.h:59
prepareMatrixSizesAndBlocks
mat::SizesAndBlocks prepareMatrixSizesAndBlocks(int n_basis_functions, int sparse_block_size, int factor1, int factor2, int factor3)
Definition: matrix_utilities.cc:47
TOL_TRACE_ERROR_DEFAULT
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_sprandsym.cc:71
GetDensFromFock::unset_purification_ignore_failure
void unset_purification_ignore_failure()
Definition: GetDensFromFock.h:349
mat::MatrixSymmetric
Symmetric matrix.
Definition: MatrixBase.h:51
compute_V_sparse
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
Molecule::setNetCharge
void setNetCharge(ergo_real netCharge_)
Definition: molecule.h:109
GetDensFromFock::get_dens_from_fock
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
JK::Params::exchange_box_size
ergo_real exchange_box_size
Definition: integrals_2el.h:59
MatAccInvestigator::Scan
void Scan(const Tworker &worker, Treal firstParam, Treal stepFactor, int nSteps)
Definition: mat_acc_extrapolate.h:85
do_truncation
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
SQRT_EPSILON_REAL
#define SQRT_EPSILON_REAL
Definition: recexp_sprandsym.cc:68
NATOMS
#define NATOMS
Definition: grid_test.cc:45
ergo_new
#define ergo_new(cnt, type)
Definition: memorymanag.h:43
plot_results
void plot_results(const Purification_sp2< MatrixType > &Puri)
Definition: recexp_many_tests.cc:83
Purification_sp2
Purification_sp2acc is a class which provides an interface for SP2 recursive expansion.
Definition: purification_sp2.h:52
GridGenMolInfo::noOfShells
int noOfShells
Definition: grid_interface.h:49
template_lapack_common.h
try_integral_diffs
int try_integral_diffs(const IntegralInfo &integralInfo, ergo_real h)
Definition: explicit_integral_test.cc:43
assign_from_full_matrix
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
mat::trace
Treal trace(const XYZ< Treal, MatrixGeneral< Treal, Tmatrix >, MatrixGeneral< Treal, Tmatrix > > &smm)
Definition: MatrixGeneral.h:904
getMatrixPermutation
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
Jworkertest::integralInfo
const IntegralInfo & integralInfo
Definition: jmat_extrapolate_test.cc:57
MyMolInfo::MyMolInfo
MyMolInfo(int a, int b, int s)
Definition: stream_test.cc:42
enable_output
void enable_output()
Definition: output.cc:181
test_V_by_explicit_comparison_tight
static int test_V_by_explicit_comparison_tight(const IntegralInfo &integralInfo)
Definition: vmat_test.cc:322
verify_mmul_result
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
main
int main(int argc, char *argv[])
Definition: recexp_diag_test.cc:77
grid_stream.h
Streaming grid generator.
main
int main(int argc, char *argv[])
Definition: jmat_extrapolate_test.cc:91
get_HML_K
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
N_BFS
#define N_BFS
Definition: grid_test.cc:47
MyMolInfo
Definition: grid_test.cc:59
transform_matrix_from_to< triangMatrix, triangMatrix >
void transform_matrix_from_to< triangMatrix, triangMatrix >(const triangMatrix &A, triangMatrix &B, const ParamsType &P)
Definition: transform.h:78
template_blas_log10
Treal template_blas_log10(Treal x)
PurificationGeneral::initialize
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
TOL_ERR_SUBS_DEFAULT
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_diag_test.cc:73
test_small_both
static int test_small_both()
Definition: xcmat_r_u_test.cc:187
get_all_generalized_eigenvalues
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
DensMatInfo::lambda_lumo
ergo_real lambda_lumo
Definition: simple_ort_puri_test.cc:240
scf_utils.h
Various utilities used by self-consistent field (SCF) code. For example, interface routines convertin...
MatrixTypeWrap
symmMatrixWrap MatrixTypeWrap
Definition: recexp_randsym_test.cc:76
mat::Interval::empty
bool empty() const
Definition: Interval.h:51
mat::Params::getNProcs
static unsigned int getNProcs()
Definition: matInclude.h:103
get_diag_dens_mat
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
PuriInfo::converged
int converged
Definition: puri_info.h:199
get_HML_K
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
Atoms
static const struct @5 Atoms[]
dft_get_num_threads
EXTERN_C int dft_get_num_threads(void)
Definition: dft_common.cc:203
PuriInfo::error_subspace
real error_subspace
Definition: puri_info.h:201
IntegralInfo
Contains coefficients needed for quick integral evaluation.
Definition: integral_info.h:94
MatrixType
symmMatrix MatrixType
Definition: recexp_diag_test.cc:66
real
ergo_real real
Definition: recexp_diag_test.cc:65
MyMolInfo::getExps
void getExps(int *maxl, int **bascnt, real(**aa)[2]) const
Definition: stream_test.cc:69
read_basisset_file
int read_basisset_file(basisset_info &result, const char *fileName, int dirc, const char *dirv[], int print_raw)
Definition: basisset.cc:115
BasisInfoStruct::noOfShells
int noOfShells
Definition: basisinfo.h:118
main
int main(int argc, char *argv[])
Definition: jmat_test.cc:43
compare_matrices
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
main
int main(int argc, char *argv[])
Definition: xcmat_test.cc:329
MatrixType
symmMatrix MatrixType
Definition: recexp_randsym_test.cc:75
template_blas_erf
Treal template_blas_erf(Treal x)
mat::gemm
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
mat::MatrixGeneral::get_values
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
dft_get_xc_mt
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
TOL_TRACE_ERROR_DEFAULT
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_eigenv_test.cc:73
grid_open_full
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
MatrixType
symmMatrix MatrixType
Definition: recexp_test.cc:64
Functional_::is_gga
IsGGAFunc is_gga
Definition: functionals.h:403
MyMolInfo::getAtom
virtual void getAtom(int icent, int *cnt, real(*coor)[3], int *charge, int *mult) const
Definition: grid_test.cc:62
rand_1_to_10
static ergo_real rand_1_to_10()
Definition: boys_function_test.cc:50
GetDensFromFock::unset_use_new_stopping_criterion
void unset_use_new_stopping_criterion()
Definition: GetDensFromFock.h:411
matrix_utilities.h
Utilities related to the hierarchical matrix library (HML), including functions for setting up permut...
print_matrix
void print_matrix(std::vector< ergo_real > const &A)
Definition: random_matrices.cc:52
grid_free_files
void grid_free_files()
Frees all the cached data if any.
Definition: grid_reader.cc:135
mat::right
@ right
Definition: Matrix.h:75
Util::TimeMeter::get_wall_seconds
static double get_wall_seconds()
Definition: utilities.h:89
Jworkertest::ComputeMatrix
void ComputeMatrix(ergo_real param, symmMatrix &result) const
Definition: jmat_extrapolate_test.cc:76
GetDensFromFock.h
Routines for getting density matrix from a given Fock matrix.
main
int main(int argc, char *argv[])
Definition: csr_matrix_test.cc:68
compare_matrices
static bool compare_matrices(char mat_name, const real *computed, const long double *ref, int sz, ergo_real eps)
Definition: xcmat_test.cc:50
mat::VectorGeneral::is_empty
bool is_empty() const
Definition: VectorGeneral.h:56
BasisInfoStruct::addBasisfuncsForMolecule
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
Dft::GridParams::LMG
@ LMG
Definition: grid_params.h:67
Molecule::getNuclearRepulsionEnergyGradientContribQuadratic
void getNuclearRepulsionEnergyGradientContribQuadratic(ergo_real *resultGradient) const
Compute gradient of nuclear repulsion energy w.r.t.
Definition: molecule.cc:111
MyMolInfo::getAtom
void getAtom(int icent, int *cnt, real(*coor)[3], int *charge, int *mult) const
Definition: stream_test.cc:43
GridGenMolInfo::noOfAtoms
int noOfAtoms
Definition: grid_interface.h:47
integrals_2el_explicit.h
Code for explicit computation of 4-index 2-electron integrals.
get_nucl_energy_for_given_mol_and_dens
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
main
int main(int argc, char *argv[])
Definition: mmul_simple_test.cc:99
get_all_matrix_elements_nosymm
static void get_all_matrix_elements_nosymm(const normalMatrix &A, int n, std::vector< ergo_real > &result)
Definition: simple_ort_puri_test.cc:217
test_S_V_comparison
static int test_S_V_comparison(const IntegralInfo &integralInfo)
Definition: vmat_test.cc:69
print_DensMatInfo
static void print_DensMatInfo(const DensMatInfo &info)
Definition: simple_ort_puri_test.cc:285
mat::VectorGeneral
Definition: MatrixBase.h:55
template_blas_sin
Treal template_blas_sin(Treal x)
ERGO_SPREFIX
#define ERGO_SPREFIX
Definition: config.h:8
csr_matrix_struct
Definition: csr_matrix.h:51
SQRT_EPSILON_REAL
#define SQRT_EPSILON_REAL
Definition: recexp_test.cc:67
SQRT_EPSILON_REAL
#define SQRT_EPSILON_REAL
Definition: recexp_eigenv_test.cc:70
data_for_recexp::homo_lumo_bounds_known
bool homo_lumo_bounds_known
Definition: recexp_many_tests.cc:132
do_1e_repulsion_integral_derivatives_using_symb_info
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
mat::MatrixGeneral
Normal matrix.
Definition: MatrixBase.h:49
grid_test_scaling
static bool grid_test_scaling(const char *fName)
This routine tests the sparsity pattern generation scalability properties.
Definition: grid_test.cc:173
integrals_1el_single.h
Functionality for computing a single 1-electron integral, for a given primitive Gaussian distribution...
Molecule::getAtom
const Atom & getAtom(int i) const
Definition: molecule.h:113
small_calculation
static bool small_calculation(const IntegralInfo &ii)
Definition: xcmat_sparse_test.cc:191
GetDensFromFock::unset_output_homo_and_lumo_eigenvectors
void unset_output_homo_and_lumo_eigenvectors()
Definition: GetDensFromFock.h:341
main
int main(int argc, char *argv[])
Definition: lapack_test.cc:340
get_nnz_percentage
static ergo_real get_nnz_percentage(int n, const symmMatrix &X)
Definition: simple_ort_puri_test.cc:292
test_gesv
static int test_gesv(ergo_real tolerance, bool verbose)
Definition: lapack_test.cc:76
MatrixTypeWrap
symmMatrixWrap MatrixTypeWrap
Definition: recexp_diag_test.cc:67
mat::transpose
Xtrans< TX > transpose(TX const &A)
Transposition.
Definition: matrix_proxy.h:131
integral_info.h
Defines IntegralInfo object, providing the coefficients needed for integral evaluation.
cols
mat::SizesAndBlocks cols
Definition: test.cc:52
utilities.h
Basic OS access utilities.
random_matrices.h
Header file containing declarations of functions required for testing purposes. Functions include gen...
ergo_CSR_add_to_element
int ergo_CSR_add_to_element(csr_matrix_struct *csr, int row, int col, ergo_real value)
Definition: csr_matrix.cc:252
PurificationGeneral::gen_matlab_file_norm_diff
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
mat
Definition: allocate.cc:39
A
#define A
report_subspace_error_via_diagonalization
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
LOG_CAT_INFO
#define LOG_CAT_INFO
Definition: output.h:49
template_blas_log
Treal template_blas_log(Treal x)
MAX_AOS
const int MAX_AOS
Definition: naive_response_test.cc:52
report_subspace_error
static void report_subspace_error(int currIterCount, int n, const symmMatrix &X, const symmMatrix &D)
Definition: simple_ort_puri_test.cc:681
main
int main(int argc, char *argv[])
Definition: xcmat_nan_inf_test.cc:302
get_gradient_using_finite_differences
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
PurificationGeneral::PurificationStart
virtual void PurificationStart()
Start recursive expansion.
Definition: purification_general.h:953
TOL_ERR_SUBS_DEFAULT
real TOL_ERR_SUBS_DEFAULT
Definition: recexp_eigenv_test.cc:72
get_HML_G_matrix
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
grid_stream_generate
unsigned grid_stream_generate(ErgoGridStream *stream, const char *fname, int noOfThreads)
Generate grid for given molecule.
Definition: grid_stream.cc:1033
Dft::GridParams::TURBO
@ TURBO
Definition: grid_params.h:67
MyMolInfo::setShellRadii
void setShellRadii(real *shellRadii) const
Definition: stream_test.cc:54
template_lapack_potf2
int template_lapack_potf2(const char *uplo, const integer *n, Treal *a, const integer *lda, integer *info)
Definition: template_lapack_potf2.h:42
matrix_typedefs.h
Header file with typedefs for matrix and vector types. The levels of hierarchic matrices are defined ...
main
int main(int argc, char *argv[])
Definition: many_h_atoms_test.cc:432
ERGO_DATA_PREFIX
#define ERGO_DATA_PREFIX
Definition: config.h:5
main
int main(int argc, char *argv[])
Definition: gradient_test.cc:326
PRINT_TIME
static const bool PRINT_TIME
Definition: xcmat_sparse_test.cc:48
compare_matrices
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
LOG_AREA_MAIN
#define LOG_AREA_MAIN
Definition: output.h:57
data_for_recexp::which_stop_crit
int which_stop_crit
Definition: recexp_many_tests.cc:134
test_mol
static int test_mol(const char *mol_fname, const char *basisSet, const char *xcFunc)
Definition: xcmat_test.cc:267
basisinfo.h
Code for setting up basis functions starting from shells.
mat::normType
normType
Definition: matInclude.h:139
MyMolInfo::getExps
virtual void getExps(int *maxl, int **bascnt, real(**aa)[2]) const
Definition: grid_test.cc:92
Jworkertest
Definition: jmat_extrapolate_test.cc:46
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)
Definition: integral_matrix_wrappers.cc:304
integrals_2el.h
Parameters related to integral evaluation.
main
int main(int argc, char *argv[])
Definition: recexp_test.cc:84
get_identical_rand_numbers
static void get_identical_rand_numbers(int n, int nNumbers, std::vector< int > &vec)
Definition: csr_matrix_test.cc:45
mat::Interval< ergo_real >
DensMatInfo
Definition: simple_ort_puri_test.cc:236
TOL_TRACE_ERROR_DEFAULT
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_many_tests.cc:70
selected_func
Functional * selected_func
Definition: functionals.c:106
GetDensFromFock::set_gap_expected_lower_bound
void set_gap_expected_lower_bound(ergo_real gap_expected_lower_bound_)
Definition: GetDensFromFock.h:300
data_for_recexp::homo_in
real homo_in
Definition: recexp_many_tests.cc:126
JK::ExchWeights
Definition: integral_info.h:148
real
ergo_real real
Definition: recexp_sprandsym.cc:66
get_random_positive_definite_matrix
static void get_random_positive_definite_matrix(symmMatrix &result, mat::SizesAndBlocks sizeBlockInfo, int n)
Definition: mat_thread_test.cc:45
grid_stream_free
void grid_stream_free(ErgoGridStream *stream)
Definition: grid_stream.cc:1064
value_seems_like_nan_or_inf
static bool value_seems_like_nan_or_inf(ergo_real x)
Definition: xcmat_nan_inf_test.cc:45
setupShellMap
void setupShellMap(const BasisInfoStruct &bis, int *shellMap, int *aoMap)
Definition: sparse_pattern.cc:446
PurificationGeneral::set_compute_eigenvectors_in_each_iteration
void set_compute_eigenvectors_in_each_iteration()
Definition: purification_general.h:245
report_timing
static void report_timing(const Util::TimeMeter &tm, const char *s)
Definition: many_h_atoms_test.cc:69
transform_matrix_from_to< symmMatrix, symmMatrix >
void transform_matrix_from_to< symmMatrix, symmMatrix >(const symmMatrix &A, symmMatrix &B, const ParamsType &P)
Definition: transform.h:62
MatrixType
symmMatrix MatrixType
Definition: recexp_eigenv_test.cc:66
SQRT_EPSILON_REAL
#define SQRT_EPSILON_REAL
Definition: recexp_diag_test.cc:71
grid_getchunk_blocked
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
GetDensFromFock::set_general_params
void set_general_params(const int n_, mat::SizesAndBlocks const &matrixSizesAndBlocks_)
Definition: GetDensFromFock.h:238
ED
Definition: electron_dynamics.h:44
MyMolInfo::setShellRadii
virtual void setShellRadii(real *shellRadii) const
Definition: grid_test.cc:73
test2
int test2()
Definition: recexp_eigenv_test.cc:375
Dft::GridParams::gridType
GridType gridType
Definition: grid_params.h:70
test_functional
static int test_functional(const IntegralInfo &ii, const char *funcName)
Definition: xcmat_nan_inf_test.cc:233
mat::VectorGeneral::fullvector
void fullvector(std::vector< Treal > &fullVector) const
Definition: VectorGeneral.h:88
MAX_DOUBLE
#define MAX_DOUBLE
Definition: random_matrices.h:82
TOL_TRACE_ERROR_DEFAULT
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_diag_test.cc:74
set_test_4_data
void set_test_4_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:517
output_current_memory_usage
void output_current_memory_usage(int logArea, const char *contextString)
Definition: output.cc:186
Jworkertest::J_K_params
JK::Params J_K_params
Definition: jmat_extrapolate_test.cc:59
Atom::charge
ergo_real charge
Definition: molecule.h:52
MyMolInfo::getBlocks
void getBlocks(const real *center, real cellsz, const real *rshell, int *nblcnt, int(*iblcks)[2]) const
Definition: stream_test.cc:60
template_blas_compute_pi_BBP
Treal template_blas_compute_pi_BBP(Treal dummy)
Definition: template_blas_basicmath.h:77
verify_within_bounds
static void verify_within_bounds(ergo_real x, ergo_real xmin, ergo_real xmax)
Definition: basicmath_test.cc:80
DensMatInfo::lambda_homo
ergo_real lambda_homo
Definition: simple_ort_puri_test.cc:239
DftGridReader
Definition: grid_reader.cc:166
SQRT_EPSILON_REAL
#define SQRT_EPSILON_REAL
Definition: recexp_many_tests.cc:67
do_HF_HML
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
get_random_symm_matrix
void get_random_symm_matrix(int N, MatrixTypeInner &X, int blockSizesMultuple)
Definition: random_matrices.cc:65
grid_stream_new
ErgoGridStream * grid_stream_new(const struct Dft::GridParams &gss, const GridGenMolInfo &molInfo)
Creates the grid object.
Definition: grid_stream.cc:999
MatAccInvestigator
Definition: mat_acc_extrapolate.h:53
grid_set_tmpdir
EXTERN_C void grid_set_tmpdir(const char *tmpdir)
Definition: grid_reader.cc:116
mol_calculation
static bool mol_calculation(const IntegralInfo &ii, const char *fname)
Definition: xcmat_sparse_test.cc:290
Molecule
Representation of a molecule as a set of nuclei and total charge.
Definition: molecule.h:87
verify_idempotency
static void verify_idempotency(const symmMatrix &X)
Definition: simple_ort_puri_test.cc:781
report_timing
static void report_timing(const Util::TimeMeter &tm, const char *s)
Definition: naive_response_test.cc:79
find_approx_smallest_number
static ergo_real find_approx_smallest_number()
Definition: basicmath_test.cc:43
calculation_shared
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
enable_memory_usage_output
void enable_memory_usage_output()
Definition: output.cc:175
ergo_free
void ergo_free(void *p)
Definition: memorymanag.cc:68
report_max_abs_element_of_matrix
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
main
int main(int argc, char *argv[])
Definition: stream_test.cc:85
print_matrix
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
transform.h
GetDensFromFock::set_purification_limits
void set_purification_limits(ergo_real subspaceErrorLimit_, ergo_real eigvalueErrorLimit_=0, ergo_real puri_eig_acc_factor_for_guess=0)
Definition: GetDensFromFock.h:474
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)
Definition: integral_matrix_wrappers.cc:168
mat::SizesAndBlocks
Describes dimensions of matrix and its blocks on all levels.
Definition: SizesAndBlocks.h:45
SizesAndBlocks.h
Class used to keep track of the block sizes used at different levels in the hierarchical matrix data ...
verify_gap
static void verify_gap(const DensMatInfo &info)
Definition: simple_ort_puri_test.cc:790
GetDensFromFock::unset_store_all_eigenvalues_to_file
void unset_store_all_eigenvalues_to_file()
Definition: GetDensFromFock.h:418
Molecule::getAtomListPtr
const Atom * getAtomListPtr() const
Definition: molecule.h:112
set_test_5_data
void set_test_5_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:545
ErgoGridStream
Ergo-specific GridStream implementation.
Definition: grid_stream.cc:973
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)
Definition: integral_matrix_wrappers.cc:237
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)
Definition: integral_matrix_wrappers.cc:892
matInclude.h
JK::Params::threshold_J
ergo_real threshold_J
Definition: integrals_2el.h:47
main
int main(int argc, char *argv[])
Definition: explicit_integral_test.cc:154
MyMolInfo::getBlocks
virtual void getBlocks(const real *center, real cellsz, const real *rshell, int *nblcnt, int(*iblcks)[2]) const
Definition: grid_test.cc:78
config.h
BOYS_N_MAX
#define BOYS_N_MAX
Definition: boysfunction.h:47
init_matrix
void init_matrix(Matrix &X, const int N)
Definition: recexp_many_tests.cc:99
read_matrix_from_bin
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
IntegralInfo::BoysFunction
ergo_real BoysFunction(int n, ergo_real x) const
Definition: integral_info.cc:243
VectorType
MatrixType::VectorType VectorType
Definition: recexp_many_tests.cc:65
mat::syev
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
abs_compare
static bool abs_compare(real a, real b)
Definition: recexp_sprandsym.cc:85
grid_close
void grid_close(DftGridReader *rawgrid)
Closes the shared grid handle that is specifed as the argument.
Definition: grid_reader.cc:386
distance
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
GetDensFromFock::clean_eigs_intervals
void clean_eigs_intervals()
Set bounds for HOMO and LUMO eigenvalues to -/+ inf, thus remove any known bounds.
Definition: GetDensFromFock.h:196
Jworkertest::Jworkertest
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_CSR_get_element
ergo_real ergo_CSR_get_element(const csr_matrix_struct *csr, int row, int col)
Definition: csr_matrix.cc:278
data_for_recexp::homo_out
real homo_out
Definition: recexp_many_tests.cc:127
xc_matrix.h
get_gradient_using_explicit_integrals
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
compute_overlap_matrix_sparse
int compute_overlap_matrix_sparse(const BasisInfoStruct &basisInfo, symmMatrix &S_symm, std::vector< int > const &permutationHML)
Definition: integral_matrix_wrappers.cc:423
fill_matrix_with_random_numbers
static void fill_matrix_with_random_numbers(int n, int m, std::vector< ergo_real > &A)
Definition: mmul_rectangular_test.cc:45
matrix_typedefs_chtml.h
Header file with typedefs for matrix types, using either the hierarchical matrix library (HML) or the...
set_test_7_data
void set_test_7_data(data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:600
SCALAR_TOL
real SCALAR_TOL
Definition: recexp_sprandsym.cc:72
GetDensFromFock::set_use_diagonalization
void set_use_diagonalization()
Definition: GetDensFromFock.h:362
get_matrix_from_full
static void get_matrix_from_full(normalMatrix &result, mat::SizesAndBlocks sizeBlockInfo, const std::vector< ergo_real > &fullMat)
Definition: mat_performance_test.cc:53
Atom::coords
ergo_real coords[3]
Definition: molecule.h:53
Molecule::addAtom
void addAtom(ergo_real c, ergo_real x, ergo_real y, ergo_real z)
Definition: molecule.h:97
data_for_recexp::err_sub
real err_sub
Definition: recexp_many_tests.cc:122
PurificationGeneral::compute_eigenvectors_without_diagonalization_on_F
void compute_eigenvectors_without_diagonalization_on_F(const MatrixType &F, int eigensolver_maxiter_for_F)
Definition: purification_general.h:2426
Jworkertest::basisInfo
const BasisInfoStruct & basisInfo
Definition: jmat_extrapolate_test.cc:58
get_Huckel_matrix_periodic
static void get_Huckel_matrix_periodic(symmMatrix &F, int n, const std::vector< int > &perm)
Definition: simple_ort_puri_test.cc:119
dft_get_uxc_mt
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
grid_stream_set_sparse_pattern
void grid_stream_set_sparse_pattern(ErgoGridStream *stream, Dft::SparsePattern *pattern)
Definition: grid_stream.cc:1020
rand_0_to_1
static ergo_real rand_0_to_1()
Definition: boys_function_test.cc:44
real
ergo_real real
Definition: recexp_randsym_test.cc:67
GridGenMolInfo
GridGenMolInfo is an abstract class providing information about the molecule so that the grid generat...
Definition: grid_interface.h:45
Dft::GridParams::TYPE_HICU
@ TYPE_HICU
Definition: grid_params.h:68
MatrixSymmetric.h
GetDensFromFock::unset_use_purification
void unset_use_purification()
Definition: GetDensFromFock.h:372
do_output
void do_output(int logCategory, int logArea, const char *format,...)
Definition: output.cc:53
Molecule::getNumberOfElectrons
int getNumberOfElectrons() const
Compute total number of electrons.
Definition: molecule.cc:158
GetDensFromFock::set_truncationNormPurification
void set_truncationNormPurification(mat::normType const truncationNormPurification_)
Set truncation norm used in the recursive expansion.
Definition: GetDensFromFock.h:266
test_small
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
prepare_data_for_recexp
void prepare_data_for_recexp(int testnum, data_for_recexp_t &DATA)
Definition: recexp_many_tests.cc:363
main
int main(int argc, char *argv[])
Definition: vmat_test.cc:422
PurificationGeneral::gen_matlab_file_eigs
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
fill_matrix_with_random_numbers
static void fill_matrix_with_random_numbers(int n, std::vector< ergo_real > &A)
Definition: mmul_simple_test.cc:43
test_V_by_explicit_comparison
static int test_V_by_explicit_comparison(const IntegralInfo &integralInfo)
Definition: vmat_test.cc:157
template_lapack_stevr
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
PuriInfo::accumulated_error_subspace
real accumulated_error_subspace
Definition: puri_info.h:202
mat_acc_extrapolate.h
Functionality for performing a scan testing different threshold values for some kind of matrix comput...
data_for_recexp::N_occ
int N_occ
Definition: recexp_many_tests.cc:121
data_for_recexp::lumo_in
real lumo_in
Definition: recexp_many_tests.cc:128
IntegralInfo::init
void init()
Definition: integral_info.cc:287
test4
int test4()
Definition: recexp_eigenv_test.cc:760
compute_V_matrix_full
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
four_idx_AO_struct
Definition: ci.cc:63
data_for_recexp::normPuri
mat::normType normPuri
Definition: recexp_many_tests.cc:124
PurificationGeneral::gen_matlab_file_time
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
densfromf_full.h
Routine get_dens_from_fock_full() for getting density matrix from a given Fock matrix using diagonali...
MatrixGeneral.h
main
int main(int argc, char *argv[])
Definition: kmat_nosymm_test.cc:44
VectorGeneral.h
grid_reader.h
Grid Generator interface. Functions for opening grid file, reading chunks from it,...
GetDensFromFock::unset_purification_use_rand_perturbation_for_alleigsint
void unset_purification_use_rand_perturbation_for_alleigsint()
Definition: GetDensFromFock.h:357
get_HML_G_matrix
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
GetDensFromFock::do_restricted_calculations
void do_restricted_calculations()
Definition: GetDensFromFock.h:276
get_eigenvectors.h
Defined namespace eigvec containing functions for computing largest eigenvalues and corresponding eig...
do_naive_mmul
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
GetDensFromFock class containing parameters and functions for computing density matrix.
Definition: GetDensFromFock.h:57
GetDensFromFock::get_puri_stats
void get_puri_stats(std::map< std::string, double > &puri_stats_) const
Definition: GetDensFromFock.h:509
main
int main(int argc, char *argv[])
Definition: recexp_sprandsym.cc:94
PurificationGeneral::gen_matlab_file_threshold
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
TOL_TRACE_ERROR_DEFAULT
real TOL_TRACE_ERROR_DEFAULT
Definition: recexp_test.cc:70
getXC_mt
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
Util::TimeMeter
Time-measuring class.
Definition: utilities.h:80
write_vector
int write_vector(const char *filename, const vector< real > &v)
Definition: files_dense.cc:206
get_energy
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
output.h
Functionality for writing output messages to a text file.
Molecule::replaceAtom
void replaceAtom(int i, const Atom &atom)
Definition: molecule.h:110
dft_setfunc
EXTERN_C int dft_setfunc(const char *line)
Definition: dft_common.cc:277
VectorType
MatrixType::VectorType VectorType
Definition: recexp_diag_test.cc:68
SQRT_EPSILON_REAL
#define SQRT_EPSILON_REAL
Definition: recexp_randsym_test.cc:69
data_for_recexp::N
int N
Definition: recexp_many_tests.cc:120
main
int main(int argc, char *argv[])
Definition: simple_ort_puri_test.cc:855