mpqc::lcao::gaussian::Q2Matrix Class Reference

Documentation

Class which holds shell set information for screening.

Warning
This holds Q^2 values, where Q are square roots of the integral block norm

Public Types

using norm_op_type = double(Eigen::Map< const RowMatrixXd > const &)
 type of function that computes the norm More...
 

Public Member Functions

 Q2Matrix ()=default
 
 Q2Matrix (Q2Matrix const &)=default
 
 Q2Matrix (Q2Matrix &&)=default
 
Q2Matrixoperator= (Q2Matrix const &)=default
 
Q2Matrixoperator= (Q2Matrix &&)=default
 
RowMatrixXd const & Q2 () const
 
RowMatrixXd const Q2_cluster () const
 
const std::shared_ptr< const Basis > & basis0 () const
 
const std::shared_ptr< const Basis > & basis1 () const
 
const libint2::Operator & oper_type () const
 
norm_op_typenorm_op () const
 
madness::World & world () const
 
template<typename E >
 Q2Matrix (madness::World &world, E const &eng, Basis const &bs, norm_op_type norm_op=detail::l2_norm)
 
template<typename E >
 Q2Matrix (madness::World &world, E const &eng, Basis const &bs0, Basis const &bs1, norm_op_type norm_op=detail::inf_norm)
 
double operator() () const
 
double operator() (int64_t a) const
 
double operator() (int64_t a, int64_t b) const
 
double max () const
 same as operator()() More...
 
double max_in_row (int64_t sh_a) const
 
double value (int64_t sh_a, int64_t sh_b) const
 
double max_cluster () const
 
double max_in_row_cluster (int64_t cl_a) const
 
double value_cluster (int64_t cl_a, int64_t cl_b) const
 
bool is_aux_Q () const
 Return whether this Q is for an auxiliary basis, i.e. is a vector. More...
 
int64_t f2s (size_t basis_idx, int64_t bf) const
 

Member Typedef Documentation

◆ norm_op_type

using mpqc::lcao::gaussian::Q2Matrix::norm_op_type = double(Eigen::Map<const RowMatrixXd> const &)

type of function that computes the norm

Constructor & Destructor Documentation

◆ Q2Matrix() [1/5]

mpqc::lcao::gaussian::Q2Matrix::Q2Matrix ( )
default

◆ Q2Matrix() [2/5]

mpqc::lcao::gaussian::Q2Matrix::Q2Matrix ( Q2Matrix const &  )
default

◆ Q2Matrix() [3/5]

mpqc::lcao::gaussian::Q2Matrix::Q2Matrix ( Q2Matrix &&  )
default

◆ Q2Matrix() [4/5]

template<typename E >
mpqc::lcao::gaussian::Q2Matrix::Q2Matrix ( madness::World &  world,
E const &  eng,
Basis const &  bs,
norm_op_type  norm_op = detail::l2_norm 
)
inline

Constructs Q2Matrix for the case of screening integrals over shells, e.g. integrals of type (a|Op|b)

Parameters
worldis a reference to the madness world to compute the Q matrix construction tasks
engis an integral engine pool used to compute the integral estimates
bsis a Basis object
norm_funcis a function that computes the sqrt(norm(quartet)) of the integrals with signature norm_op_type

◆ Q2Matrix() [5/5]

template<typename E >
mpqc::lcao::gaussian::Q2Matrix::Q2Matrix ( madness::World &  world,
E const &  eng,
Basis const &  bs0,
Basis const &  bs1,
norm_op_type  norm_op = detail::inf_norm 
)
inline

Constructs Q2Matrix for the case of screening integrals over shell-pairs, e.g. integrals of type (ab|Op|cd)

Parameters
worldis a reference to the madness world to compute the Q matrix construction tasks
engis an integral engine pool used to compute the integral estimates
bs0is a Basis object composed of shells that appear first in shell pairs
bs1is a Basis object composed of shells that appear second in shell pairs
norm_funcis a function that computes the sqrt(norm(quartet)) of the integrals with signature double (Eigen::Map<const RowMatrixXd> const &)

Member Function Documentation

◆ basis0()

const std::shared_ptr<const Basis>& mpqc::lcao::gaussian::Q2Matrix::basis0 ( ) const
inline
Returns
the first basis set

◆ basis1()

const std::shared_ptr<const Basis>& mpqc::lcao::gaussian::Q2Matrix::basis1 ( ) const
inline
Returns
the second basis set (nullptr, if not given)

◆ f2s()

int64_t mpqc::lcao::gaussian::Q2Matrix::f2s ( size_t  basis_idx,
int64_t  bf 
) const

Maps basis function bf in basis basis_idx to the shell index

Parameters
[in]basis_idx0 or 1
[in]bfthe basis function index, must be the first index in the shell
Returns
the shell index

◆ is_aux_Q()

bool mpqc::lcao::gaussian::Q2Matrix::is_aux_Q ( ) const

Return whether this Q is for an auxiliary basis, i.e. is a vector.

◆ max()

double mpqc::lcao::gaussian::Q2Matrix::max ( ) const

same as operator()()

◆ max_cluster()

double mpqc::lcao::gaussian::Q2Matrix::max_cluster ( ) const
Returns
the largest value in any row of Q2_cluster

◆ max_in_row()

double mpqc::lcao::gaussian::Q2Matrix::max_in_row ( int64_t  sh_a) const
Parameters
[in]sh_athe shell index
Returns
the largest value in the row of Q corresponding to sh_a

◆ max_in_row_cluster()

double mpqc::lcao::gaussian::Q2Matrix::max_in_row_cluster ( int64_t  cl_a) const
Parameters
[in]cl_athe cluster index
Returns
the largest value in the row of Q2_cluster corresponding to cl_a

◆ norm_op()

norm_op_type* mpqc::lcao::gaussian::Q2Matrix::norm_op ( ) const
inline
Returns
pointer to the norm op function

◆ oper_type()

const libint2::Operator& mpqc::lcao::gaussian::Q2Matrix::oper_type ( ) const
inline
Returns
the operator type

◆ operator()() [1/3]

double mpqc::lcao::gaussian::Q2Matrix::operator() ( ) const
Returns
the largest value in Q

◆ operator()() [2/3]

double mpqc::lcao::gaussian::Q2Matrix::operator() ( int64_t  a) const
Parameters
[in]athe basis function index, must be the first function in its shell
Returns
the largest value in the row of Q corresponding to a

◆ operator()() [3/3]

double mpqc::lcao::gaussian::Q2Matrix::operator() ( int64_t  a,
int64_t  b 
) const
Parameters
[in]athe basis function index, must be the first function in its shell
[in]bthe basis function index, must be the first function in its shell
Returns
the value of Q for {a,b}

◆ operator=() [1/2]

Q2Matrix& mpqc::lcao::gaussian::Q2Matrix::operator= ( Q2Matrix &&  )
default

◆ operator=() [2/2]

Q2Matrix& mpqc::lcao::gaussian::Q2Matrix::operator= ( Q2Matrix const &  )
default

◆ Q2()

RowMatrixXd const& mpqc::lcao::gaussian::Q2Matrix::Q2 ( ) const
inline

◆ Q2_cluster()

RowMatrixXd const mpqc::lcao::gaussian::Q2Matrix::Q2_cluster ( ) const
inline

◆ value()

double mpqc::lcao::gaussian::Q2Matrix::value ( int64_t  sh_a,
int64_t  sh_b 
) const
Parameters
[in]sh_athe shell index
[in]sh_bthe shell index
Returns
the value of Q for {sh_a,sh_b}

◆ value_cluster()

double mpqc::lcao::gaussian::Q2Matrix::value_cluster ( int64_t  cl_a,
int64_t  cl_b 
) const
Parameters
[in]cl_athe cluster index
[in]cl_bthe cluster index
Returns
the value of Q2_cluster for {cl_a,cl_b}

◆ world()

madness::World& mpqc::lcao::gaussian::Q2Matrix::world ( ) const
inline
Returns
the World object with which this was initialized, or the default world

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