mpqc::lcao::Screener Class Reference

Documentation

Base class for screeners will never skip any integrals.

Derived classes should overload the skip functions which they intend to change.

Public Member Functions

 Screener ()=default
 
 Screener (Screener const &)=default
 
 Screener (Screener &&)=default
 
Screeneroperator= (Screener &&)=default
 
Screeneroperator= (Screener const &)=default
 
virtual ~Screener () noexcept=default
 
virtual std::tuple< TA::Tensor< float >, bool > norm_estimate (madness::World &world, gaussian::BasisRefVector const &bs_array, TA::Pmap const &pmap, bool replicate=false) const
 estimates norms for the tensor defined by a set of bases, in presence of symmetry described by a math::PetiteList object. More...
 
{bf,shell,cluster}-based loop skippers
Note
The index passed to Q2Matrix::skip() must be the lower bound basis functions for that shell set. For example if we have shells a, b, c that are all of size 3 then for the integral (a|c) the indices passed to skip should be skip(0,5).
The indices passed to Q2Matrix::skip_shell() are the shell indices.
The indices passed to Q2Matrix::skip_cluster() are the cluster indices.

When deriving from this class it is the developer's responsibility to convert function indices into shell indices. The motivation for this is to simplify the integral kernel code.

virtual bool skip (int64_t) const
 
virtual bool skip (int64_t, int64_t) const
 
virtual bool skip (int64_t, int64_t, int64_t) const
 
virtual bool skip (int64_t, int64_t, int64_t, double) const
 
virtual bool skip (int64_t, int64_t, int64_t, int64_t) const
 
virtual bool skip (int64_t, int64_t, int64_t, int64_t, double) const
 
virtual bool skip_shell (int64_t) const
 
virtual bool skip_shell (int64_t, int64_t) const
 
virtual bool skip_shell (int64_t, int64_t, int64_t) const
 
virtual bool skip_shell (int64_t, int64_t, int64_t, double) const
 
virtual bool skip_shell (int64_t, int64_t, int64_t, int64_t) const
 
virtual bool skip_shell (int64_t, int64_t, int64_t, int64_t, double) const
 
virtual bool skip_cluster (int64_t) const
 
virtual bool skip_cluster (int64_t, int64_t) const
 
virtual bool skip_cluster (int64_t, int64_t, int64_t) const
 
virtual bool skip_cluster (int64_t, int64_t, int64_t, double) const
 
virtual bool skip_cluster (int64_t, int64_t, int64_t, int64_t) const
 
virtual bool skip_cluster (int64_t, int64_t, int64_t, int64_t, double) const
 

Constructor & Destructor Documentation

◆ Screener() [1/3]

mpqc::lcao::Screener::Screener ( )
default

◆ Screener() [2/3]

mpqc::lcao::Screener::Screener ( Screener const &  )
default

◆ Screener() [3/3]

mpqc::lcao::Screener::Screener ( Screener &&  )
default

◆ ~Screener()

virtual mpqc::lcao::Screener::~Screener ( )
virtualdefaultnoexcept

Member Function Documentation

◆ norm_estimate()

std::tuple< TA::Tensor< float >, bool > mpqc::lcao::Screener::norm_estimate ( madness::World &  world,
gaussian::BasisRefVector const &  bs_array,
TA::Pmap const &  pmap,
bool  replicate = false 
) const
virtual

estimates norms for the tensor defined by a set of bases, in presence of symmetry described by a math::PetiteList object.

This function will only compute the estimate for tiles which are considered local by the pmap, the user will be responsible for using the world-based constructor for the TA::Shape.

Returns
pair of {estimate of tile norms of the tensor specified by bs_array , whether the norm values are scaled (per-element) or not}
Warning
The base class will error for all inputs.

Reimplemented in mpqc::lcao::gaussian::SchwarzScreen.

◆ operator=() [1/2]

Screener& mpqc::lcao::Screener::operator= ( Screener &&  )
default

◆ operator=() [2/2]

Screener& mpqc::lcao::Screener::operator= ( Screener const &  )
default

◆ skip() [1/6]

bool mpqc::lcao::Screener::skip ( int64_t  ) const
virtual

◆ skip() [2/6]

bool mpqc::lcao::Screener::skip ( int64_t  ,
int64_t   
) const
virtual

◆ skip() [3/6]

bool mpqc::lcao::Screener::skip ( int64_t  ,
int64_t  ,
int64_t   
) const
virtual

◆ skip() [4/6]

bool mpqc::lcao::Screener::skip ( int64_t  ,
int64_t  ,
int64_t  ,
double   
) const
virtual

◆ skip() [5/6]

bool mpqc::lcao::Screener::skip ( int64_t  ,
int64_t  ,
int64_t  ,
int64_t   
) const
virtual

◆ skip() [6/6]

bool mpqc::lcao::Screener::skip ( int64_t  ,
int64_t  ,
int64_t  ,
int64_t  ,
double   
) const
virtual

◆ skip_cluster() [1/6]

bool mpqc::lcao::Screener::skip_cluster ( int64_t  ) const
virtual

◆ skip_cluster() [2/6]

bool mpqc::lcao::Screener::skip_cluster ( int64_t  ,
int64_t   
) const
virtual

◆ skip_cluster() [3/6]

bool mpqc::lcao::Screener::skip_cluster ( int64_t  ,
int64_t  ,
int64_t   
) const
virtual

◆ skip_cluster() [4/6]

bool mpqc::lcao::Screener::skip_cluster ( int64_t  ,
int64_t  ,
int64_t  ,
double   
) const
virtual

◆ skip_cluster() [5/6]

bool mpqc::lcao::Screener::skip_cluster ( int64_t  ,
int64_t  ,
int64_t  ,
int64_t   
) const
virtual

◆ skip_cluster() [6/6]

bool mpqc::lcao::Screener::skip_cluster ( int64_t  ,
int64_t  ,
int64_t  ,
int64_t  ,
double   
) const
virtual

◆ skip_shell() [1/6]

bool mpqc::lcao::Screener::skip_shell ( int64_t  ) const
virtual

◆ skip_shell() [2/6]

bool mpqc::lcao::Screener::skip_shell ( int64_t  ,
int64_t   
) const
virtual

◆ skip_shell() [3/6]

bool mpqc::lcao::Screener::skip_shell ( int64_t  ,
int64_t  ,
int64_t   
) const
virtual

◆ skip_shell() [4/6]

bool mpqc::lcao::Screener::skip_shell ( int64_t  ,
int64_t  ,
int64_t  ,
double   
) const
virtual

◆ skip_shell() [5/6]

bool mpqc::lcao::Screener::skip_shell ( int64_t  ,
int64_t  ,
int64_t  ,
int64_t   
) const
virtual

◆ skip_shell() [6/6]

bool mpqc::lcao::Screener::skip_shell ( int64_t  ,
int64_t  ,
int64_t  ,
int64_t  ,
double   
) const
virtual

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