MPQC
3.0.0-alpha
|
This is an abstract base type for classes that compute geometric derivatives of the integrals involving two electrons and four basis functions. 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 () const |
Return the basis set on center one. | |
Ref< GaussianBasisSet > | basis1 () const |
Return the basis set on center one. | |
Ref< GaussianBasisSet > | basis2 () const |
Return the basis set on center two. | |
Ref< GaussianBasisSet > | basis3 () const |
Return the basis set on center three. | |
Ref< GaussianBasisSet > | basis4 () const |
Return the basis set on center four. | |
const double * | buffer () const |
The computed shell-set of integrals will be put in the buffer returned by this member. More... | |
virtual void | compute_shell (int sh0, int sh1, int sh2, int sh3, DerivCenters &dercenters)=0 |
Given for shell indices, this will cause the derivative integral shell set to be computed. More... | |
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. More... | |
double | shell_bound (int=-1, int=-1, int=-1, int=-1) |
Return the maximum magnitude of any integral in a shell block. More... | |
Integral * | integral () const |
Return the integral factory that was used to create this object. | |
virtual bool | cloneable () const |
Return true if the clone member can be called. More... | |
virtual Ref< TwoBodyDerivInt > | clone () |
Returns a clone of this. More... | |
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 Member Functions | |
TwoBodyDerivInt (Integral *integral, const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2, const Ref< GaussianBasisSet > &b3, const Ref< GaussianBasisSet > &b4) | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
Protected Attributes | |
Integral * | integral_ |
Ref< GaussianBasisSet > | bs1_ |
Ref< GaussianBasisSet > | bs2_ |
Ref< GaussianBasisSet > | bs3_ |
Ref< GaussianBasisSet > | bs4_ |
double * | buffer_ |
This is an abstract base type for classes that compute geometric derivatives of the integrals involving two electrons and four basis functions.
const double* sc::TwoBodyDerivInt::buffer | ( | ) | const |
The computed shell-set of integrals will be put in the buffer returned by this member.
The integrals are are returned as an array with derivative index as the "fast" (innermost) dimension. E.g. derivatives of a (pp|pp) shell would be stored like this: d (p_0 p_0|p_0 p_0) / d R_0x (derivative with respect to x coordinate of atom 0; atom 0 is provided as argument to compute_shell or returned in DerivCenters) d (p_0 p_0|p_0 p_0) / d R_0y d (p_0 p_0|p_0 p_0) / d R_0z d (p_0 p_0|p_0 p_0) / d R_1x (missing if derivatives with respect to one atom only) ... (the rest of geometric derivatives of (p_0 p_0|p_0 p_0)) d (p_0 p_0|p_0 p_1) / d R_0x ... etc.
where p_0, p_1, p_2 are the components of p shell (spherical or Cartesian), etc.
The number of computed derivatives is 3 times DerivCenters::n() for the object returned by TwoBodyIntDeriv::compute_shell().
Referenced by sc::LocalTBGrad< T >::run().
|
virtual |
Returns a clone of this.
The default implementation throws an exception.
|
virtual |
Return true if the clone member can be called.
The default implementation returns false.
|
pure virtual |
Given for shell indices, this will cause the derivative integral shell set to be computed.
[in] | sh0 | shell index for bra function of electron 1 |
[in] | sh1 | shell index for ket function of electron 1 |
[in] | sh2 | shell index for bra function of electron 2 |
[in] | sh3 | shell index for ket function of electron 2 |
[out] | dercenters | returns the information about centers the derivatives are computed for |
Implemented in sc::TwoBodyDerivIntLibint2, and sc::TwoBodyDerivIntV3.
Referenced by sc::LocalTBGrad< T >::run().
|
pure virtual |
Return log base 2 of the maximum magnitude of any integral in a shell block.
An index of -1 for any argument indicates any shell.
Implemented in sc::TwoBodyDerivIntLibint2, and sc::TwoBodyDerivIntV3.
Referenced by sc::LocalTBGrad< T >::run().
double sc::TwoBodyDerivInt::shell_bound | ( | int | = -1 , |
int | = -1 , |
||
int | = -1 , |
||
int | = -1 |
||
) |
Return the maximum magnitude of any integral in a shell block.
An index of -1 for any argument indicates any shell.