MPQC
3.0.0-alpha
|
This is a generic implementation of TwoBodyIntBatch in terms of a TwoBodyInt. More...
#include <chemistry/qc/basis/tbint_batch.h>
Public Types | |
typedef TwoBodyIntEvalType< NumCenters >::value | TwoBodyIntEval |
Public Types inherited from sc::TwoBodyIntBatch< NumCenters > | |
typedef detail::tuple< NumCenters, unsigned int > | IntTuple |
Public Member Functions | |
TwoBodyIntBatchGeneric (Ref< TwoBodyIntEval > tbint) | |
bool | cloneable () const |
Return true if the clone member can be called. More... | |
Ref< TwoBodyIntBatch< NumCenters > > | clone () |
Returns a clone of this. More... | |
TwoBodyOperSet::type | type () const |
Returns the type of the operator set that this object computes. More... | |
const Ref< TwoBodyOperSetDescr > & | descr () const |
return the operator set descriptor | |
void | set_integral_storage (size_t storage) |
This storage is used to cache computed integrals. More... | |
const std::vector< IntTuple > & | current_batch () const |
returns the shell indices of the current batch | |
const std::vector< IntTuple > & | start () |
const std::vector< IntTuple > & | fence () |
const double * | buffer (TwoBodyOper::type type=TwoBodyOper::eri) const |
The computed shell integrals will be put in the buffer returned by this member. More... | |
template<unsigned int > | |
void | init (const Ref< IndexRangeIterator< NumCenters > > &i, int s=int()) |
bool | next () |
compute next batch, return true if have another may need to be split into have_next and next TODO JTF implement | |
Public Member Functions inherited from sc::TwoBodyIntBatch< NumCenters > | |
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 | |
const Ref< GaussianBasisSet > & | basis (unsigned int c=0) const |
Return the basis set on center c TODO JTF implement. | |
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... | |
Additional Inherited Members | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
Protected Attributes inherited from sc::TwoBodyIntBatch< NumCenters > | |
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_ |
This is a generic implementation of TwoBodyIntBatch in terms of a TwoBodyInt.
|
inlinevirtual |
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
Implements sc::TwoBodyIntBatch< NumCenters >.
|
inlinevirtual |
Returns a clone of this.
The default implementation throws an exception. TODO JTF implement
Implements sc::TwoBodyIntBatch< NumCenters >.
References sc::TwoBodyIntEval::clone().
|
inlinevirtual |
Return true if the clone member can be called.
The default implementation returns false. TODO JTF implement
Implements sc::TwoBodyIntBatch< NumCenters >.
|
inlinevirtual |
This storage is used to cache computed integrals.
TODO: do we really want to allocate by size_t, instead of number of elements?
Implements sc::TwoBodyIntBatch< NumCenters >.
|
inlinevirtual |
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.
Implements sc::TwoBodyIntBatch< NumCenters >.
References sc::TwoBodyIntEval::type().