MPQC  3.0.0-alpha
sc::TwoBodyTwoCenterIntLibint2 Class Reference

This implements 2-center 2-body integrals in the IntLibint2 library. More...

#include <chemistry/qc/libint2/tbintlibint2.h>

Inheritance diagram for sc::TwoBodyTwoCenterIntLibint2:
sc::TwoBodyTwoCenterInt sc::RefCount

Public Types

typedef IntParamsG12::ContractedGeminal ContractedGeminal
 

Public Member Functions

 TwoBodyTwoCenterIntLibint2 (Integral *integral, const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2, size_t storage, TwoBodyOperSet::type int2etype, const Ref< IntParams > &params)
 
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< TwoBodyTwoCenterIntclone ()
 Returns a clone of this. More...
 
int log2_shell_bound (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)
 Given four shell indices, integrals will be computed and placed in the buffer. More...
 
size_t used_storage () const
 
const double * buffer (TwoBodyOper::type te_type) const
 The computed shell integrals will be put in the buffer returned by this member. More...
 
- Public Member Functions inherited from sc::TwoBodyTwoCenterInt
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 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.
 
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.
 
double shell_bound (int=-1, int=-1)
 Return the maximum magnitude (as a double) of any integral in a shell block obtained from compute_shell. More...
 
int redundant () const
 If redundant is true, then keep redundant integrals in the buffer. More...
 
void set_redundant (int i)
 See redundant().
 
virtual void set_integral_storage (size_t storage)
 This storage is used to cache computed integrals.
 
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< Int2eLibint2int2elibint2_
 
- Protected Attributes inherited from sc::TwoBodyTwoCenterInt
Integralintegral_
 
Ref< GaussianBasisSetbs1_
 
Ref< GaussianBasisSetbs2_
 
double * buffer_
 
int redundant_
 

Additional Inherited Members

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

Detailed Description

This implements 2-center 2-body integrals in the IntLibint2 library.

Member Function Documentation

◆ buffer()

const double* sc::TwoBodyTwoCenterIntLibint2::buffer ( TwoBodyOper::type  type) const
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.

Reimplemented from sc::TwoBodyTwoCenterInt.

◆ clone()

Ref<TwoBodyTwoCenterInt> sc::TwoBodyTwoCenterIntLibint2::clone ( )
virtual

Returns a clone of this.

The default implementation throws an exception.

Reimplemented from sc::TwoBodyTwoCenterInt.

◆ cloneable()

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

Return true if the clone member can be called.

The default implementation returns false.

Reimplemented from sc::TwoBodyTwoCenterInt.

◆ compute_shell()

void sc::TwoBodyTwoCenterIntLibint2::compute_shell ( int  ,
int   
)
virtual

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

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

Implements sc::TwoBodyTwoCenterInt.

◆ log2_shell_bound()

int sc::TwoBodyTwoCenterIntLibint2::log2_shell_bound ( 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::TwoBodyTwoCenterInt.

◆ type()

TwoBodyOperSet::type sc::TwoBodyTwoCenterIntLibint2::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::TwoBodyTwoCenterInt.


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

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