MPQC  3.0.0-alpha
sc::TwoBodyDerivInt Class Referenceabstract

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>

Inheritance diagram for sc::TwoBodyDerivInt:
sc::RefCount sc::TwoBodyDerivIntLibint2 sc::TwoBodyDerivIntV3

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< GaussianBasisSetbasis () const
 Return the basis set on center one.
 
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.
 
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...
 
Integralintegral () 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< TwoBodyDerivIntclone ()
 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 &)
 
RefCountoperator= (const RefCount &)
 

Protected Attributes

Integralintegral_
 
Ref< GaussianBasisSetbs1_
 
Ref< GaussianBasisSetbs2_
 
Ref< GaussianBasisSetbs3_
 
Ref< GaussianBasisSetbs4_
 
double * buffer_
 

Detailed Description

This is an abstract base type for classes that compute geometric derivatives of the integrals involving two electrons and four basis functions.

Member Function Documentation

◆ buffer()

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

◆ clone()

virtual Ref<TwoBodyDerivInt> sc::TwoBodyDerivInt::clone ( )
virtual

Returns a clone of this.

The default implementation throws an exception.

◆ cloneable()

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

Return true if the clone member can be called.

The default implementation returns false.

◆ compute_shell()

virtual void sc::TwoBodyDerivInt::compute_shell ( int  sh0,
int  sh1,
int  sh2,
int  sh3,
DerivCenters dercenters 
)
pure virtual

Given for shell indices, this will cause the derivative integral shell set to be computed.

Parameters
[in]sh0shell index for bra function of electron 1
[in]sh1shell index for ket function of electron 1
[in]sh2shell index for bra function of electron 2
[in]sh3shell index for ket function of electron 2
[out]dercentersreturns the information about centers the derivatives are computed for

Implemented in sc::TwoBodyDerivIntLibint2, and sc::TwoBodyDerivIntV3.

Referenced by sc::LocalTBGrad< T >::run().

◆ log2_shell_bound()

virtual int sc::TwoBodyDerivInt::log2_shell_bound ( int  = -1,
int  = -1,
int  = -1,
int  = -1 
)
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().

◆ shell_bound()

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.


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.