MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
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
 
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.
 
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.
 
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
 Return 1 if the object is managed. Otherwise return 0.
 

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

◆ buffer()

virtual double * sc::Int2eLibint2::buffer ( unsigned int ) const
pure virtual

Returns the location of the buffer with target integrals.

Implemented in sc::G12NCLibint2.

◆ clone()

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

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

the default implementation throws

◆ compute_quartet()

virtual void sc::Int2eLibint2::compute_quartet ( int * ,
int * ,
int * ,
int *  )
pure virtual

Evaluate the target quartet of integrals.

Implemented in sc::G12NCLibint2, and sc::GRTLibint2.

◆ 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 Wed Sep 25 2024 02:45:33 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.