Screening of electron repulsion integrals. More...
#include <eriscreen.h>
Public Member Functions | |
ERIscreen () | |
Constructor. | |
~ERIscreen () | |
Destructor. | |
size_t | get_N () const |
Get amount of basis functions. | |
void | set_range_separation (double omega, double alpha, double beta) |
Set range separation. | |
void | get_range_separation (double &omega, double &alpha, double &beta) const |
Get range separation. | |
size_t | fill (const BasisSet *basis, double shtol, bool verbose=true) |
Form screening matrix, return amount of significant shell pairs. | |
arma::mat | calcJ (const arma::mat &P, double tol) const |
Calculate Coulomb matrix with tolerance tol for integrals. | |
std::vector< arma::cx_mat > | calcJK (const std::vector< arma::cx_mat > &P, double jfrac, double kfrac, double tol) const |
Calculate set of Coulomb and exchange matrices with tolerance tol for integrals (for PZ-SIC) | |
arma::mat | calcK (const arma::mat &P, double tol) const |
Calculate exchange matrix with tolerance tol for integrals. | |
arma::cx_mat | calcK (const arma::cx_mat &P, double tol) const |
Calculate exchange matrix with tolerance tol for integrals. | |
void | calcK (const arma::mat &Pa, const arma::mat &Pb, arma::mat &Ka, arma::mat &Kb, double tol) const |
Calculate exchange matrices with tolerance tol for integrals. | |
void | calcK (const arma::cx_mat &Pa, const arma::cx_mat &Pb, arma::cx_mat &Ka, arma::cx_mat &Kb, double tol) const |
Calculate exchange matrices with tolerance tol for integrals. | |
void | calcJK (const arma::mat &P, arma::mat &J, arma::mat &K, double tol) const |
Calculate Coulomb and exchange matrices at the same time with tolerance tol for integrals. | |
void | calcJK (const arma::cx_mat &P, arma::mat &J, arma::cx_mat &K, double tol) const |
Calculate Coulomb and exchange matrices at the same time with tolerance tol for integrals. | |
void | calcJK (const arma::mat &Pa, const arma::mat &Pb, arma::mat &J, arma::mat &Ka, arma::mat &Kb, double tol) const |
Calculate Coulomb and exchange matrices at the same time with tolerance tol for integrals, unrestricted calculation. | |
void | calcJK (const arma::cx_mat &Pa, const arma::cx_mat &Pb, arma::mat &J, arma::cx_mat &Ka, arma::cx_mat &Kb, double tol) const |
Calculate Coulomb and exchange matrices at the same time with tolerance tol for integrals, unrestricted calculation. | |
arma::vec | forceJ (const arma::mat &P, double tol) const |
Calculate Coulomb force with tolerance tol for integrals. | |
arma::vec | forceK (const arma::mat &P, double tol, double kfrac) const |
Calculate exchange force with tolerance tol for integrals. | |
arma::vec | forceK (const arma::mat &Pa, const arma::mat &Pb, double tol, double kfrac) const |
Calculate Coulomb and exchange forces at the same time with tolerance tol for integrals, unrestricted calculation. | |
arma::vec | forceJK (const arma::mat &P, double tol, double kfrac) const |
Calculate Coulomb and exchange forces at the same time with tolerance tol for integrals. | |
arma::vec | forceJK (const arma::mat &Pa, const arma::mat &Pb, double tol, double kfrac) const |
Calculate Coulomb and exchange forces at the same time with tolerance tol for integrals, unrestricted calculation. | |
Private Member Functions | |
void | calculate (std::vector< std::vector< IntegralDigestor * > > &digest, double tol) const |
Run calculation with given digestor. | |
arma::vec | calculate_force (std::vector< std::vector< ForceDigestor * > > &digest, double tol) const |
Run force calculation with given digestor. More... | |
Private Attributes | |
arma::mat | screen |
Prescreening table of shell integrals. | |
std::vector< eripair_t > | shpairs |
Integral pairs sorted by value. | |
const BasisSet * | basp |
Pointer to the used basis set. | |
std::vector< size_t > | iidx |
Index helper. | |
double | omega |
Range separation parameter. | |
double | alpha |
Fraction of long-range exchange. | |
double | beta |
Fraction of short-range exchange. | |
Screening of electron repulsion integrals.
On-the-fly calculation of electron repulsion integrals.
This class performs on-the-fly formations of the Hartree-Fock exchange and Coulomb matrices, that are needed calculations of large systems for which the integrals don't fit into memory. The integrals are screened adaptively by the use of the Schwarz inequality.
|
private |
Run force calculation with given digestor.
ERI derivative worker