MPQC  3.0.0-alpha
Public Member Functions | Protected Member Functions | Protected Attributes
sc::TwoBodyThreeCenterInt Class Reference

This is an abstract base type for classes that compute integrals involving two electrons in three Gaussian functions. More...

#include <chemistry/qc/basis/tbint.h>

Inheritance diagram for sc::TwoBodyThreeCenterInt:
Inheritance graph
[legend]

List of all members.

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 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.
Ref< GaussianBasisSetbasis ()
 Return the basis set on center one.
Ref< GaussianBasisSetbasis1 ()
 Return the basis set on center one.
Ref< GaussianBasisSetbasis2 ()
 Return the basis set on center two.
Ref< GaussianBasisSetbasis3 ()
 Return the basis set on center three.
virtual TwoBodyOperSet::type type () const =0
 Returns the type of the operator set that this object computes.
virtual const Ref
< TwoBodyOperSetDescr > & 
descr () const =0
 return the operator set descriptor
virtual const double * buffer (TwoBodyOper::type type=TwoBodyOper::eri) const
 The computed shell integrals will be put in the buffer returned by this member.
virtual void compute_shell (int, int, int)=0
 Given three shell indices, integrals will be computed and placed in the buffer.
virtual int log2_shell_bound (int=-1, int=-1, int=-1)=0
 Return log base 2 of the maximum magnitude of any integral in a shell block obtained from compute_shell.
double shell_bound (int=-1, int=-1, int=-1)
 Return the maximum magnitude of any integral in a shell block obtained from compute_shell.
int redundant () const
 If redundant is true, then keep redundant integrals in the buffer.
void set_redundant (int i)
 See redundant().
virtual void set_integral_storage (size_t storage)
 This storage is used to cache computed integrals.
virtual bool cloneable ()
 Return true if the clone member can be called.
virtual Ref
< TwoBodyThreeCenterInt
clone ()
 Returns a clone of this.
Integralintegral () const
 Return the integral factory that was used to create this object.

Protected Member Functions

 TwoBodyThreeCenterInt (Integral *integral, const Ref< GaussianBasisSet > &bs1, const Ref< GaussianBasisSet > &bs2, const Ref< GaussianBasisSet > &bs3)

Protected Attributes

Integralintegral_
Ref< GaussianBasisSetbs1_
Ref< GaussianBasisSetbs2_
Ref< GaussianBasisSetbs3_
double * buffer_
int redundant_

Detailed Description

This is an abstract base type for classes that compute integrals involving two electrons in three Gaussian functions.


Member Function Documentation

virtual const double* sc::TwoBodyThreeCenterInt::buffer ( TwoBodyOper::type  type = TwoBodyOper::eri) const [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.

Reimplemented in sc::TwoBodyThreeCenterIntLibint2.

Returns a clone of this.

The default implementation throws an exception.

virtual bool sc::TwoBodyThreeCenterInt::cloneable ( ) [virtual]

Return true if the clone member can be called.

The default implementation returns false.

virtual void sc::TwoBodyThreeCenterInt::compute_shell ( int  ,
int  ,
int   
) [pure virtual]

Given three shell indices, integrals will be computed and placed in the buffer.

The first two indices correspond to electron 1 and the second index corresponds to electron 2.

Implemented in sc::TwoBodyThreeCenterIntLibint2, and sc::TwoBodyThreeCenterIntV3.

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

Implemented in sc::TwoBodyThreeCenterIntLibint2, and sc::TwoBodyThreeCenterIntV3.

int sc::TwoBodyThreeCenterInt::redundant ( ) const [inline]

If redundant is true, then keep redundant integrals in the buffer.

The default is true.

double sc::TwoBodyThreeCenterInt::shell_bound ( int  = -1,
int  = -1,
int  = -1 
)

Return the maximum magnitude of any integral in a shell block obtained from compute_shell.

An index of -1 for any argument indicates any shell.

virtual TwoBodyOperSet::type sc::TwoBodyThreeCenterInt::type ( ) const [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::TwoBodyThreeCenterIntLibint2, and sc::TwoBodyThreeCenterIntV3.


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

Generated at Sat Jul 7 2012 11:52:51 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.0.