mpqc::lcao::gaussian::QQRScreen Class Reference
Collaboration diagram for mpqc::lcao::gaussian::QQRScreen:

Documentation

Implements QQR screener for shell-sets of integrals.

The QQR estimator is described in Maurer, S. A.; Lambrecht, D. S.; Flaig, D. JCP. 136, 144107 (2012). This implementation is reverse-engineered from David Hollman's code in MPQC3 .

Warning
Due to the nonfactorizable nature of the QQR, the cluster index skipping uses regular Schwarz.

Public Member Functions

 QQRScreen ()=default
 
 QQRScreen (SchwarzScreen ss)
 
bool skip (int64_t, int64_t, int64_t, int64_t) const override
 4-loop skipper More...
 
- Public Member Functions inherited from mpqc::lcao::gaussian::SchwarzScreen
 SchwarzScreen ()=default
 
 SchwarzScreen (SchwarzScreen const &)=default
 
 SchwarzScreen (SchwarzScreen &&)=default
 
SchwarzScreenoperator= (SchwarzScreen const &)=default
 
SchwarzScreenoperator= (SchwarzScreen &&)=default
 
virtual ~SchwarzScreen () noexcept=default
 
 SchwarzScreen (std::shared_ptr< Q2Matrix > Q2bra, std::shared_ptr< Q2Matrix > Q2ket, double thresh, double thresh_cluster)
 Constructor which requires two Q matrices. More...
 
 SchwarzScreen (std::shared_ptr< Q2Matrix > Q2bra, std::shared_ptr< Q2Matrix > Q2ket, double thresh)
 The ctor version that uses same threshold for shell and cluster skipping. More...
 
void set_skip_threshold (double thresh) override
 
void set_skip_threshold_cluster (double thresh) override
 
Q2Matrix const & Q2bra () const
 Returns the screening matrix for the Bra indices. More...
 
Q2Matrix const & Q2ket () const
 Returns the screening matrix for the Ket indices. More...
 
const std::shared_ptr< const Basis > & basis (std::size_t i=0) const
 
std::size_t nbases () const
 
norm_op_typenorm_op () const
 
std::tuple< TA::Tensor< float >, bool > norm_estimate (madness::World &world, BasisRefVector const &bs_array, TA::Pmap const &pmap, bool replicate=false) const override
 returns an estimate of shape norms for the given basis vector, in presence of symmetry described by a math::PetiteList object. More...
 
virtual double estimate (int64_t a) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate (int64_t a, int64_t b) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate (int64_t a, int64_t b, int64_t c) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate (int64_t a, int64_t b, int64_t c, int64_t d) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate_shell (int64_t a) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate_shell (int64_t a, int64_t b) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate_shell (int64_t a, int64_t b, int64_t c) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate_shell (int64_t a, int64_t b, int64_t c, int64_t d) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate_cluster (int64_t a) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate_cluster (int64_t a, int64_t b) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate_cluster (int64_t a, int64_t b, int64_t c) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
virtual double estimate_cluster (int64_t a, int64_t b, int64_t c, int64_t d) const
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
bool skip (int64_t) const override
 
bool skip (int64_t, int64_t) const override
 
bool skip (int64_t, int64_t, int64_t) const override
 
bool skip (int64_t a, int64_t b, int64_t c, double D) const override
 
bool skip (int64_t, int64_t, int64_t, int64_t) const override
 
bool skip (int64_t, int64_t, int64_t, int64_t, double) const override
 
bool skip_shell (int64_t) const override
 
bool skip_shell (int64_t, int64_t) const override
 
bool skip_shell (int64_t, int64_t, int64_t) const override
 
bool skip_shell (int64_t a, int64_t b, int64_t c, double D) const override
 
bool skip_shell (int64_t, int64_t, int64_t, int64_t) const override
 
bool skip_shell (int64_t, int64_t, int64_t, int64_t, double D) const override
 
bool skip_cluster (int64_t) const override
 
bool skip_cluster (int64_t, int64_t) const override
 
bool skip_cluster (int64_t, int64_t, int64_t) const override
 
bool skip_cluster (int64_t a, int64_t b, int64_t c, double D) const override
 
bool skip_cluster (int64_t, int64_t, int64_t, int64_t) const override
 
bool skip_cluster (int64_t, int64_t, int64_t, int64_t, double D) const override
 
- Public Member Functions inherited from mpqc::lcao::ThresholdedScreener
 ThresholdedScreener ()=default
 
 ThresholdedScreener (ThresholdedScreener const &)=default
 
 ThresholdedScreener (ThresholdedScreener &&)=default
 
ThresholdedScreeneroperator= (ThresholdedScreener &&)=default
 
ThresholdedScreeneroperator= (ThresholdedScreener const &)=default
 
virtual ~ThresholdedScreener () noexcept=default
 
 ThresholdedScreener (double thresh, double thresh_cluster)
 
 ThresholdedScreener (double thresh)
 
virtual double skip_threshold () const
 
virtual double skip_threshold_cluster () const
 
- Public Member Functions inherited from mpqc::lcao::Screener
 Screener ()=default
 
 Screener (Screener const &)=default
 
 Screener (Screener &&)=default
 
Screeneroperator= (Screener &&)=default
 
Screeneroperator= (Screener const &)=default
 
virtual ~Screener () noexcept=default
 

Additional Inherited Members

- Public Types inherited from mpqc::lcao::gaussian::SchwarzScreen
using norm_op_type = Q2Matrix::norm_op_type
 
- Protected Member Functions inherited from mpqc::lcao::gaussian::SchwarzScreen
double skip_threshold_squared () const
 
double skip_threshold_cluster_squared () const
 
template<typename... IDX>
bool skip_ (IDX &&... idx) const
 
template<typename... IDX>
bool skip_shell_ (IDX &&... idx) const
 
template<typename... IDX>
bool skip_cluster_ (IDX &&... idx) const
 
template<typename... IDX>
bool skip_ (double D, IDX... idx) const
 
template<typename... IDX>
bool skip_shell_ (double D, IDX... idx) const
 
template<typename... IDX>
bool skip_cluster_ (double D, IDX... idx) const
 

Constructor & Destructor Documentation

◆ QQRScreen() [1/2]

mpqc::lcao::gaussian::QQRScreen::QQRScreen ( )
default

◆ QQRScreen() [2/2]

mpqc::lcao::gaussian::QQRScreen::QQRScreen ( SchwarzScreen  ss)
inline

Member Function Documentation

◆ skip()

bool mpqc::lcao::gaussian::QQRScreen::skip ( int64_t  a,
int64_t  b,
int64_t  c,
int64_t  d 
) const
overridevirtual

4-loop skipper

Only use QQR once all 4 shells are present. This means for now only Schwarz is used for loop skipping.

Reimplemented from mpqc::lcao::Screener.


The documentation for this class was generated from the following files:
  • mpqc/chemistry/qc/lcao/integrals/screening/qqr.h
  • mpqc/chemistry/qc/lcao/integrals/screening/qqr.cpp