|
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_batch.h>
Public Types | |
| typedef detail::tuple< NumCenters, unsigned int > | IntTuple |
Public Member Functions | |
| TwoBodyIntBatch (Ref< Integral > i) | |
| template<typename Seed > | |
| void | init (const Ref< IndexRangeIterator< NumCenters > > &n, Seed s=Seed()) |
| prepare to iterate using seed s TODO JTF implement | |
| virtual bool | next ()=0 |
| compute next batch, return true if have another may need to be split into have_next and next TODO JTF implement | |
| virtual const std::vector< IntTuple > & | current_batch () const =0 |
| returns the shell indices of the current batch | |
| virtual const double * | buffer (TwoBodyOper::type type=TwoBodyOper::eri) const =0 |
| The computed shell integrals will be put in the buffer returned by this member. More... | |
| const Ref< GaussianBasisSet > & | basis (unsigned int c=0) const |
| Return the basis set on center c TODO JTF implement. | |
| virtual TwoBodyOperSet::type | type () const =0 |
| Returns the type of the operator set that this object computes. More... | |
| virtual const Ref< TwoBodyOperSetDescr > & | descr () const =0 |
| return the operator set descriptor | |
| virtual void | set_integral_storage (size_t storage)=0 |
| This storage is used to cache computed integrals. More... | |
| virtual bool | cloneable () const =0 |
| Return true if the clone member can be called. More... | |
| virtual Ref< TwoBodyIntBatch > | clone ()=0 |
| Returns a clone of this. More... | |
| Integral * | integral () const |
| Return the integral factory that was used to create this object. | |
Public Member Functions inherited from sc::RefCount | |
| size_t | identifier () const |
| Return the unique identifier for this object that can be compared for different objects of different types. More... | |
| int | lock_ptr () const |
| Lock this object. | |
| int | unlock_ptr () const |
| Unlock this object. | |
| void | use_locks (bool inVal) |
| start and stop using locks on this object | |
| refcount_t | nreference () const |
| Return the reference count. | |
| refcount_t | reference () |
| Increment the reference count and return the new count. | |
| refcount_t | dereference () |
| Decrement the reference count and return the new count. | |
| int | managed () const |
| void | unmanage () |
| Turn off the reference counting mechanism for this object. More... | |
Protected Attributes | |
| Ref< Integral > | integral_ |
| Ref< GaussianBasisSet > | bs_ [NumCenters] |
| std::vector< double > | buffer_ |
| std::vector< IntTuple > | shells_in_buffer_ |
| std::vector< IntTuple > | start_ |
| std::vector< IntTuple > | fence_ |
| size_t | buf_cap_ |
Additional Inherited Members | |
Protected Member Functions inherited from sc::RefCount | |
| RefCount (const RefCount &) | |
| RefCount & | operator= (const RefCount &) |
This is an abstract base type for classes that compute integrals involving two electrons and 2 functions per electron.
|
pure 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. TODO JTF implement
Implemented in sc::TwoBodyIntBatchGeneric< NumCenters >.
|
pure virtual |
Returns a clone of this.
The default implementation throws an exception. TODO JTF implement
Implemented in sc::TwoBodyIntBatchGeneric< NumCenters >.
|
pure virtual |
Return true if the clone member can be called.
The default implementation returns false. TODO JTF implement
Implemented in sc::TwoBodyIntBatchGeneric< NumCenters >.
|
pure virtual |
This storage is used to cache computed integrals.
TODO: do we really want to allocate by size_t, instead of number of elements?
Implemented in sc::TwoBodyIntBatchGeneric< NumCenters >.
|
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::TwoBodyIntBatchGeneric< NumCenters >.