MPQC  3.0.0-alpha
sc::TwoBodyIntV3 Class Reference

This implements electron repulsion integrals in the IntV3 library. More...

#include <chemistry/qc/intv3/tbintv3.h>

Inheritance diagram for sc::TwoBodyIntV3:
sc::TwoBodyInt sc::RefCount

Public Member Functions

 TwoBodyIntV3 (Integral *integral, const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2, const Ref< GaussianBasisSet > &b3, const Ref< GaussianBasisSet > &b4, size_t storage)
 
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
 
bool cloneable () const
 Return true if the clone member can be called. More...
 
Ref< TwoBodyIntclone ()
 Returns a clone of this. More...
 
int log2_shell_bound (int, int, int, int)
 Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell. More...
 
void compute_shell (int, int, int, int)
 Given four shell indices, integrals will be computed and placed in the buffer. More...
 
size_t storage_used ()
 
void set_integral_storage (size_t storage)
 This storage is used to cache computed integrals.
 
- Public Member Functions inherited from sc::TwoBodyInt
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< GaussianBasisSetbasis (size_t c=0) const
 Return the basis set on center c. More...
 
Ref< GaussianBasisSetbasis1 () const
 Return the basis set on center one.
 
Ref< GaussianBasisSetbasis2 () const
 Return the basis set on center two.
 
Ref< GaussianBasisSetbasis3 () const
 Return the basis set on center three.
 
Ref< GaussianBasisSetbasis4 () const
 Return the basis set on center four.
 
virtual const double * buffer (TwoBodyOper::type type=TwoBodyOper::eri) const
 The computed shell integrals will be put in the buffer returned by this member. More...
 
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. More...
 
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. More...
 
virtual int redundant () const
 If redundant is true, then keep redundant integrals in the buffer. More...
 
virtual void set_redundant (int i)
 See redundant().
 
Integralintegral () 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< Int2eV3int2ev3_
 
Ref< TwoBodyOperSetDescrdescr_
 
- Protected Attributes inherited from sc::TwoBodyInt
Integralintegral_
 
Ref< GaussianBasisSetbs1_
 
Ref< GaussianBasisSetbs2_
 
Ref< GaussianBasisSetbs3_
 
Ref< GaussianBasisSetbs4_
 
double * buffer_
 
int redundant_
 

Additional Inherited Members

- Protected Member Functions inherited from sc::TwoBodyInt
 TwoBodyInt (Integral *integral, const Ref< GaussianBasisSet > &bs1, const Ref< GaussianBasisSet > &bs2, const Ref< GaussianBasisSet > &bs3, const Ref< GaussianBasisSet > &bs4)
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Detailed Description

This implements electron repulsion integrals in the IntV3 library.

Member Function Documentation

◆ clone()

Ref<TwoBodyInt> sc::TwoBodyIntV3::clone ( )
virtual

Returns a clone of this.

The default implementation throws an exception.

Reimplemented from sc::TwoBodyInt.

◆ cloneable()

bool sc::TwoBodyIntV3::cloneable ( ) const
virtual

Return true if the clone member can be called.

The default implementation returns false.

Reimplemented from sc::TwoBodyInt.

◆ compute_shell()

void sc::TwoBodyIntV3::compute_shell ( int  ,
int  ,
int  ,
int   
)
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.

Implements sc::TwoBodyInt.

◆ log2_shell_bound()

int sc::TwoBodyIntV3::log2_shell_bound ( int  ,
int  ,
int  ,
int   
)
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.

Implements sc::TwoBodyInt.

◆ type()

TwoBodyOperSet::type sc::TwoBodyIntV3::type ( ) const
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::TwoBodyInt.

References sc::TwoBodyOperSet::ERI.


The documentation for this class was generated from the following file:

Generated at Sun Jan 26 2020 23:24:13 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.