MPQC  3.0.0-alpha
sc::Int2eLibint2 Class Referenceabstract

Int2eLibint2 is an interface to various specializations of two-electron integral evaluators implemented in Libint2. More...

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

Inheritance diagram for sc::Int2eLibint2:
sc::RefCount sc::G12NCLibint2 sc::GRTLibint2

Public Member Functions

 Int2eLibint2 (Integral *, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, const Ref< GaussianBasisSet > &, size_t storage)
 
virtual Ref< Int2eLibint2clone ()
 "clones" this engine, all precomputed data is shallow-copied More...
 
void bounds (const Ref< Log2Bounds > &)
 provides the bounds evaluator for log2_bound
 
const Ref< Log2Bounds > & bounds () const
 returns the bounds evaluator for log2_bound
 
size_t storage_used () const
 Reports how much storage is actually used at a given time.
 
int redundant () const
 Whether redundant integrals are returned.
 
void set_redundant (int flag)
 Set redundant flag.
 
int permute () const
 Whether shells can be permuted.
 
void set_permute (int flag)
 Set shell permutation flag.
 
virtual void compute_quartet (int *, int *, int *, int *)=0
 Evaluate the target quartet of integrals.
 
virtual double * buffer (unsigned int) const =0
 Returns the location of the buffer with target integrals.
 
virtual int log2_bound (int s1, int s2, int s3, int s4)
 Computes log2 bound. More...
 
Ref< GaussianBasisSetbasis ()
 
Ref< GaussianBasisSetbasis1 ()
 
Ref< GaussianBasisSetbasis2 ()
 
Ref< GaussianBasisSetbasis3 ()
 
Ref< GaussianBasisSetbasis4 ()
 
- 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

void check_storage_ () const
 
void transform_contrquartets_ (double *, double *)
 
void norm_contrcart1_ (double *data)
 
template<unsigned int ntypes>
void norm_contrcart_ (double *data)
 
void sort_contrquartets_to_shellquartet_ (double *, double *)
 
void permute_target_ (double *, double *, int, int, int)
 
void permute_1234_to_1243_ (double *, double *)
 
void permute_1234_to_2134_ (double *, double *)
 
void permute_1234_to_2143_ (double *, double *)
 
void permute_1234_to_3412_ (double *, double *)
 
void permute_1234_to_3421_ (double *, double *)
 
void permute_1234_to_4312_ (double *, double *)
 
void permute_1234_to_4321_ (double *, double *)
 
void get_nonredundant_ints_ (double *, double *, int, int, int)
 
 Int2eLibint2 (const Int2eLibint2 &other)
 shallow-copies other
 
- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Static Protected Member Functions

static size_t storage_required_ (const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2=0, const Ref< GaussianBasisSet > &b3=0, const Ref< GaussianBasisSet > &b4=0)
 

Protected Attributes

Integralintegral_
 
Ref< GaussianBasisSetbs1_
 
Ref< GaussianBasisSetbs2_
 
Ref< GaussianBasisSetbs3_
 
Ref< GaussianBasisSetbs4_
 
Ref< Log2Boundsbounds_
 
GaussianShellint_shell1_
 
GaussianShellint_shell2_
 
GaussianShellint_shell3_
 
GaussianShellint_shell4_
 
int permute_
 
int redundant_
 
size_t storage_
 
size_t storage_used_
 
std::vector< double > tformbuf_
 

Detailed Description

Int2eLibint2 is an interface to various specializations of two-electron integral evaluators implemented in Libint2.

It is used by TwoBodyIntLibint2 and TwoBodyDerivIntLibint2 to implement IntegralLibint2.

Member Function Documentation

◆ clone()

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

"clones" this engine, all precomputed data is shallow-copied

the default implementation throws

◆ log2_bound()

virtual int sc::Int2eLibint2::log2_bound ( int  s1,
int  s2,
int  s3,
int  s4 
)
virtual

Computes log2 bound.

By default Int2eLibint2 implementations are not required to compute bounds hence usually this will return a large value.


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

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