LIBINT
2.1.0-stable
|
TwoBodyEngine computes (ab|O|cd) (i.e. More...
#include <engine.h>
Classes | |
struct | class_id |
struct | class_profile |
Public Types | |
typedef libint2::TwoBodyEngineTraits< Kernel >::oper_params_type | oper_params_type |
Public Member Functions | |
TwoBodyEngine () | |
creates a default (unusable) TwoBodyEngine | |
TwoBodyEngine (size_t max_nprim, int max_l, int deriv_order=0, real_t precision=std::numeric_limits< real_t >::epsilon(), const oper_params_type &oparams=oper_params_type()) | |
Constructs a (usable) TwoBodyEngine. More... | |
TwoBodyEngine (TwoBodyEngine &&other) | |
move constructor | |
TwoBodyEngine (const TwoBodyEngine &other) | |
(deep) copy constructor | |
TwoBodyEngine & | operator= (TwoBodyEngine &&other) |
move assignment | |
TwoBodyEngine & | operator= (const TwoBodyEngine &other) |
(deep) copy assignment | |
const real_t * | compute (const libint2::Shell &tbra1, const libint2::Shell &tbra2, const libint2::Shell &tket1, const libint2::Shell &tket2) |
computes shell set of integrals More... | |
void | set_precision (real_t prec) |
this specifies target precision for computing the integrals. More... | |
real_t | precision () const |
void | print_timers () |
Public Attributes | |
Timers< 3 > | timers |
std::map< class_id, class_profile > | class_profiles |
Static Public Attributes | |
static bool | skip_core_ints = false |
Friends | |
struct | detail::TwoBodyEngineDispatcher< Kernel > |
TwoBodyEngine computes (ab|O|cd) (i.e.
four-center) integrals over a two-body kernel of type MultiplicativeSphericalTwoBodyKernel using Obara-Saika-Ahlrichs relations.
Kernel | kernel type, the supported values are enumerated by MultiplicativeSphericalTwoBodyKernel |
|
inline |
Constructs a (usable) TwoBodyEngine.
max_nprim | the maximum number of primitives per contracted Gaussian shell |
max_l | the maximum angular momentum of Gaussian shell |
deriv_order | if not 0, will compute geometric derivatives of Gaussian integrals of order deriv_order |
precision | specifies the target precision with which the integrals will be computed; the default is the "epsilon" of real_t type, given by std::numeric_limits<real_t>::epsilon() . The precision control is somewhat empirical, hence be conservative. |
oper_params | specifies the operator parameters. The type of oper_params depends on Kernel as follows:
|
|
inline |
computes shell set of integrals
References libint2::Shell::contr, libint2::Timers< N >::start(), and libint2::Timers< N >::stop().
|
inline |
References libint2::Timers< N >::read(), and libint2::Timers< N >::set_now_overhead().
|
inline |
this specifies target precision for computing the integrals.
target precision is used in 3 ways: (1) to screen out primitive pairs in ShellPair object for which
; (2) to screen out primitive quartets outside compute_primdata() for which
; (3) to screen out primitive quartets inside compute_primdata() for which the prefactor of
is smaller than
.