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 >.