|
MPQC
3.0.0-alpha
|
This is an abstract base type for classes that compute integrals involving two electrons and 2 functions per electron. More...
#include <chemistry/qc/basis/tbint.h>

Public Member Functions | |
| int | nbasis () const |
| Return the number of basis functions on center one. | |
| int | nbasis1 () const |
| Return the number of basis functions on center one. | |
| int | nbasis2 () const |
| Return the number of basis functions on center two. | |
| int | nbasis3 () const |
| Return the number of basis functions on center three. | |
| int | nbasis4 () const |
| Return the number of basis functions on center four. | |
| int | nshell () const |
| Return the number of shells on center one. | |
| int | nshell1 () const |
| Return the number of shells on center one. | |
| int | nshell2 () const |
| Return the number of shells on center two. | |
| int | nshell3 () const |
| Return the number of shells on center three. | |
| int | nshell4 () const |
| Return the number of shells on center four. | |
| Ref< GaussianBasisSet > | basis () |
| Return the basis set on center one. | |
| Ref< GaussianBasisSet > | basis1 () |
| Return the basis set on center one. | |
| Ref< GaussianBasisSet > | basis2 () |
| Return the basis set on center two. | |
| Ref< GaussianBasisSet > | basis3 () |
| Return the basis set on center three. | |
| Ref< GaussianBasisSet > | basis4 () |
| Return the basis set on center four. | |
| virtual TwoBodyOperSet::type | type () const =0 |
| Returns the type of the operator set that this object computes. | |
|
virtual const Ref < TwoBodyOperSetDescr > & | descr () const =0 |
| return the operator set descriptor | |
| virtual const double * | buffer (TwoBodyOper::type type=TwoBodyOper::eri) const |
| The computed shell integrals will be put in the buffer returned by this member. | |
| virtual void | compute_shell (int, int, int, int)=0 |
| Given four shell indices, integrals will be computed and placed in the buffer. | |
| std::pair< std::map < TwoBodyOper::type, const double * >, std::array < unsigned long, 4 > > | compute_shell_arrays (int, int, int, int) |
| Given four shell indices, supported two body integral types are computed and returned. | |
| virtual int | log2_shell_bound (int=-1, int=-1, int=-1, int=-1)=0 |
| Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell. | |
| double | shell_bound (int=-1, int=-1, int=-1, int=-1) |
| Return the maximum magnitude of any integral in a shell block obtained from compute_shell. | |
| virtual int | redundant () const |
| If redundant is true, then keep redundant integrals in the buffer. | |
| virtual void | set_redundant (int i) |
| See redundant(). | |
| virtual void | set_integral_storage (size_t storage) |
| This storage is used to cache computed integrals. | |
| virtual bool | cloneable () |
| Return true if the clone member can be called. | |
| virtual Ref< TwoBodyInt > | clone () |
| Returns a clone of this. | |
| Integral * | integral () const |
| Return the integral factory that was used to create this object. | |
Protected Member Functions | |
| TwoBodyInt (Integral *integral, const Ref< GaussianBasisSet > &bs1, const Ref< GaussianBasisSet > &bs2, const Ref< GaussianBasisSet > &bs3, const Ref< GaussianBasisSet > &bs4) | |
Protected Attributes | |
| Integral * | integral_ |
| Ref< GaussianBasisSet > | bs1_ |
| Ref< GaussianBasisSet > | bs2_ |
| Ref< GaussianBasisSet > | bs3_ |
| Ref< GaussianBasisSet > | bs4_ |
| double * | buffer_ |
| int | redundant_ |
This is an abstract base type for classes that compute integrals involving two electrons and 2 functions per electron.
| virtual const double* sc::TwoBodyInt::buffer | ( | TwoBodyOper::type | type = TwoBodyOper::eri | ) | const [virtual] |
The computed shell integrals will be put in the buffer returned by this member.
Some TwoBodyInt specializations have more than one buffer: The type arguments selects which buffer is returned. If the requested type is not supported, then 0 is returned.
Reimplemented in sc::TwoBodyIntCCA, sc::TwoBodyIntLibint2, and sc::TwoBodyIntCints.
Referenced by sc::LocalGBuild< T >::run().
| virtual Ref<TwoBodyInt> sc::TwoBodyInt::clone | ( | ) | [virtual] |
Returns a clone of this.
The default implementation throws an exception.
| virtual bool sc::TwoBodyInt::cloneable | ( | ) | [virtual] |
Return true if the clone member can be called.
The default implementation returns false.
| virtual void sc::TwoBodyInt::compute_shell | ( | int | , |
| int | , | ||
| int | , | ||
| int | |||
| ) | [pure virtual] |
Given four shell indices, integrals will be computed and placed in the buffer.
The first two indices correspond to electron 1 and the second two indices correspond to electron 2.
Implemented in sc::TwoBodyIntCCA, sc::TwoBodyIntLibint2, sc::TwoBodyIntCints, and sc::TwoBodyIntV3.
Referenced by sc::LocalGBuild< T >::run().
| std::pair<std::map<TwoBodyOper::type,const double*>,std::array<unsigned long,4> > sc::TwoBodyInt::compute_shell_arrays | ( | int | , |
| int | , | ||
| int | , | ||
| int | |||
| ) |
Given four shell indices, supported two body integral types are computed and returned.
The first two indices correspond to electron 1 and the second two indices correspond to electron 2. This is used in the python interface where the return type is automatically converted to a map of numpy arrays.
| virtual int sc::TwoBodyInt::log2_shell_bound | ( | int | = -1, |
| int | = -1, |
||
| int | = -1, |
||
| int | = -1 |
||
| ) | [pure virtual] |
Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell.
An index of -1 for any argument indicates any shell.
Implemented in sc::TwoBodyIntCCA, sc::TwoBodyIntLibint2, sc::TwoBodyIntCints, and sc::TwoBodyIntV3.
Referenced by sc::LocalGBuild< T >::run().
| virtual int sc::TwoBodyInt::redundant | ( | ) | const [inline, virtual] |
If redundant is true, then keep redundant integrals in the buffer.
The default is true.
Reimplemented in sc::TwoBodyIntCCA.
| double sc::TwoBodyInt::shell_bound | ( | int | = -1, |
| int | = -1, |
||
| int | = -1, |
||
| int | = -1 |
||
| ) |
Return the maximum magnitude of any integral in a shell block obtained from compute_shell.
An index of -1 for any argument indicates any shell.
| virtual TwoBodyOperSet::type sc::TwoBodyInt::type | ( | ) | const [pure virtual] |
Returns the type of the operator set that this object computes.
this function is necessary to describe the computed integrals (their number, symmetries, etc.) and/or to implement cloning.
Implemented in sc::TwoBodyIntCCA, sc::TwoBodyIntLibint2, sc::TwoBodyIntCints, and sc::TwoBodyIntV3.