Collaboration diagram for mpqc::lcao::gaussian::SQVlScreen:

Documentation

Implements SQVlScreen screener for shell-sets of (0|12) integrals.

The SQVl estimator is described in Hollman, Schaefer, Valeev, J. Chem. Phys. 142, 154106 (2015), DOI 10.1063/1.4917519 This implementation is reverse-engineered from David Hollman's code in MPQC3 .

Warning
SQVl currently doesn't support mixed basis integrals.
Due to the nonfactorizable nature of the SQVl, the cluster index skipping uses regular Schwarz.

Public Member Functions

 SQVlScreen ()=default
 
 SQVlScreen (SchwarzScreen ss)
 
 SQVlScreen (SchwarzScreen ss, shell_data_accessor_type bs0_data_accessor, shell_data_accessor_type bs1_data_accessor)
 
 SQVlScreen (SchwarzScreen ss, shell_data_accessor_type bs0_data_accessor, shellpair_data_accessor_type bs12_data_accessor)
 
double sq_threshold_squared () const
 
bool skip (int64_t a, int64_t b) const override
 
bool skip (int64_t a, int64_t c, int64_t d) const override
 
bool skip_shell (int64_t a, int64_t b) const override
 
bool skip_shell (int64_t a, int64_t c, int64_t d) const override
 
double estimate (int64_t a, int64_t b) const override
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
double estimate (int64_t a, int64_t b, int64_t c) const override
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
double estimate_shell (int64_t a, int64_t b) const override
 compute estimate of squared norm of a shellset/cluster of integrals More...
 
double estimate_shell (int64_t a, int64_t b, int64_t c) const override
 compute estimate of squared norm of a shellset/cluster of integrals 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, 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, 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 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 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
 

Static Public Member Functions

static double erfinv_ws_thresh ()
 computes erfc^{-1} of the well_separated_thresh_ element More...
 

Static Public Attributes

static constexpr const double default_sq_threshold = 0.1
 

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

◆ SQVlScreen() [1/4]

mpqc::lcao::gaussian::SQVlScreen::SQVlScreen ( )
default

◆ SQVlScreen() [2/4]

mpqc::lcao::gaussian::SQVlScreen::SQVlScreen ( SchwarzScreen  ss)

Constructs {2,3}-center SQVl that will initialize the needed shell/shellpair data

◆ SQVlScreen() [3/4]

mpqc::lcao::gaussian::SQVlScreen::SQVlScreen ( SchwarzScreen  ss,
SQVlScreen::shell_data_accessor_type  bs0_data_accessor,
SQVlScreen::shell_data_accessor_type  bs1_data_accessor 
)

Constructs 2-center SQVl that will pull the needed shell data using the provided accessors

◆ SQVlScreen() [4/4]

mpqc::lcao::gaussian::SQVlScreen::SQVlScreen ( SchwarzScreen  ss,
SQVlScreen::shell_data_accessor_type  bs0_data_accessor,
SQVlScreen::shellpair_data_accessor_type  bs12_data_accessor 
)

Constructs 3-center SQVl that will pull the needed shell and shellpair data using the provided accessors

Member Function Documentation

◆ erfinv_ws_thresh()

static double mpqc::lcao::gaussian::SQVlScreen::erfinv_ws_thresh ( )
inlinestatic

computes erfc^{-1} of the well_separated_thresh_ element

◆ estimate() [1/2]

double mpqc::lcao::gaussian::SQVlScreen::estimate ( int64_t  a,
int64_t  b 
) const
overridevirtual

compute estimate of squared norm of a shellset/cluster of integrals

Reimplemented from mpqc::lcao::gaussian::SchwarzScreen.

◆ estimate() [2/2]

double mpqc::lcao::gaussian::SQVlScreen::estimate ( int64_t  a,
int64_t  b,
int64_t  c 
) const
overridevirtual

compute estimate of squared norm of a shellset/cluster of integrals

Reimplemented from mpqc::lcao::gaussian::SchwarzScreen.

◆ estimate_shell() [1/2]

double mpqc::lcao::gaussian::SQVlScreen::estimate_shell ( int64_t  a,
int64_t  b 
) const
overridevirtual

compute estimate of squared norm of a shellset/cluster of integrals

Reimplemented from mpqc::lcao::gaussian::SchwarzScreen.

◆ estimate_shell() [2/2]

double mpqc::lcao::gaussian::SQVlScreen::estimate_shell ( int64_t  a,
int64_t  b,
int64_t  c 
) const
overridevirtual

compute estimate of squared norm of a shellset/cluster of integrals

Reimplemented from mpqc::lcao::gaussian::SchwarzScreen.

◆ skip() [1/2]

bool mpqc::lcao::gaussian::SQVlScreen::skip ( int64_t  a,
int64_t  b 
) const
overridevirtual

◆ skip() [2/2]

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

◆ skip_shell() [1/2]

bool mpqc::lcao::gaussian::SQVlScreen::skip_shell ( int64_t  a,
int64_t  b 
) const
overridevirtual

◆ skip_shell() [2/2]

bool mpqc::lcao::gaussian::SQVlScreen::skip_shell ( int64_t  a,
int64_t  c,
int64_t  d 
) const
overridevirtual

◆ sq_threshold_squared()

double mpqc::lcao::gaussian::SQVlScreen::sq_threshold_squared ( ) const
inline
Returns
the SQ ratio threshold, squared
Note
this is used to control whether SVl or QVl is used; see Eq. 29 in DOI 10.1063/1.4917519

Member Data Documentation

◆ default_sq_threshold

constexpr const double mpqc::lcao::gaussian::SQVlScreen::default_sq_threshold = 0.1
staticconstexpr

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