ERKALE
ERKALE - DFT from Hel
 All Classes Functions Variables Friends Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ERIscreen Class Reference

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_tshpairs
 Integral pairs sorted by value.
 
const BasisSetbasp
 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.
 

Detailed Description

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.

Author
Susi Lehtola
Date
2011/05/12 19:44

Member Function Documentation

arma::vec ERIscreen::calculate_force ( std::vector< std::vector< ForceDigestor * > > &  digest,
double  tol 
) const
private

Run force calculation with given digestor.

ERI derivative worker


The documentation for this class was generated from the following files: