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 | |
SchwarzScreen & | operator= (SchwarzScreen const &)=default |
SchwarzScreen & | operator= (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_type * | norm_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 | |
ThresholdedScreener & | operator= (ThresholdedScreener &&)=default |
ThresholdedScreener & | operator= (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 | |
Screener & | operator= (Screener &&)=default |
Screener & | operator= (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]
|
default |
◆ QQRScreen() [2/2]
|
inline |
Member Function Documentation
◆ skip()
|
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: