ERKALE
ERKALE - DFT from Hel
 All Classes Functions Variables Friends Pages
erifit.h
1 /*
2  * This source code is part of
3  *
4  * E R K A L E
5  * -
6  * HF/DFT from Hel
7  *
8  * Copyright © 2015 The Regents of the University of California
9  * All Rights Reserved
10  *
11  * Written by Susi Lehtola, Lawrence Berkeley National Laboratory
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  */
18 
19 #ifndef ERKALE_ERIFIT
20 #define ERKALE_ERIFIT
21 
22 #include "global.h"
23 #include "basislibrary.h"
24 #include <set>
25 
26 namespace ERIfit {
28  struct bf_pair_t {
30  size_t idx;
32  size_t i;
34  size_t is;
36  size_t j;
38  size_t js;
39  };
40 
42  bool operator<(const bf_pair_t & lhs, const bf_pair_t & rhs);
43 
45  void compute_ERIs(const BasisSet & basis, arma::mat & eris);
47  void compute_ERIs(const ElementBasisSet & orbel, arma::mat & eris);
49  void compute_diag_ERIs(const ElementBasisSet & orbel, arma::mat & eris);
50 
52  void unique_exponent_pairs(const ElementBasisSet & orbel, int am1, int am2, std::vector< std::vector<shellpair_t> > & pairs, std::vector<double> & exps);
54  void compute_cholesky_T(const ElementBasisSet & orbel, int am1, int am2, arma::mat & eris, arma::vec & exps);
55 
57  void compute_fitint(const BasisSetLibrary & fitlib, const ElementBasisSet & orbel, arma::mat & fitint);
58 
60  void compute_ERIfit(const BasisSetLibrary & fitlib, const ElementBasisSet & orbel, double linthr, const arma::mat & fitint, arma::mat & fiteri);
62  void compute_diag_ERIfit(const BasisSetLibrary & fitlib, const ElementBasisSet & orbel, double linthr, const arma::mat & fitint, arma::mat & fiteri);
63 
65  void orthonormal_ERI_trans(const ElementBasisSet & orbel, double linthr, arma::mat & trans);
66 }
67 
68 #endif
size_t js
shell index
Definition: erifit.h:38
size_t j
rh function
Definition: erifit.h:36
Basis set library class.
Definition: basislibrary.h:231
Basis set for an element.
Definition: basislibrary.h:102
Basis function pair.
Definition: erifit.h:28
Basis set.
Definition: basis.h:187
size_t idx
Index.
Definition: erifit.h:30
size_t is
shell index
Definition: erifit.h:34
size_t i
lh function
Definition: erifit.h:32