Psi4
Public Member Functions | List of all members
psi::ERI Class Reference

Capable of computing two-electron repulsion integrals. More...

#include <eri.h>

Inheritance diagram for psi::ERI:
psi::TwoElectronInt psi::TwoBodyAOInt

Public Member Functions

 ERI (const IntegralFactory *integral, int deriv=0, bool use_shell_pairs=false)
 
virtual ~ERI ()
 
- Public Member Functions inherited from psi::TwoElectronInt
 TwoElectronInt (const IntegralFactory *integral, int deriv=0, bool use_shell_pairs=false)
 Constructor. Use an IntegralFactory to create this object. More...
 
virtual ~TwoElectronInt ()
 
size_t compute_shell (const AOShellCombinationsIterator &)
 Compute ERIs between 4 shells. Result is stored in buffer. More...
 
virtual size_t compute_shell (int, int, int, int)
 Compute ERIs between 4 shells. Result is stored in buffer. More...
 
virtual size_t compute_shell_deriv1 (int, int, int, int)
 Compute ERI derivatives between 4 shells. Result is stored in buffer. More...
 
virtual size_t compute_shell_deriv2 (int, int, int, int)
 Compute ERI second derivatives between 4 sheels. Result is stored in buffer. More...
 
- Public Member Functions inherited from psi::TwoBodyAOInt
virtual ~TwoBodyAOInt ()
 
std::shared_ptr< BasisSetbasis ()
 Basis set on center one. More...
 
std::shared_ptr< BasisSetbasis1 ()
 Basis set on center one. More...
 
std::shared_ptr< BasisSetbasis2 ()
 Basis set on center two. More...
 
std::shared_ptr< BasisSetbasis3 ()
 Basis set on center three. More...
 
std::shared_ptr< BasisSetbasis4 ()
 Basis set on center four. More...
 
void set_force_cartesian (bool t_f)
 Sets whether we're forcing this object to always generate Cartesian integrals. More...
 
int deriv () const
 Returns the derivative level this object is setup for. More...
 
const double * buffer () const
 Buffer where the integrals are placed. More...
 
const IntegralFactoryintegral () const
 Returns the integral factory used to create this object. More...
 
std::vector< ShellPairBlockget_blocks12 (void) const
 Get optimal blocks of shell pairs for centers 1 & 2. More...
 
std::vector< ShellPairBlockget_blocks34 (void) const
 Get optimal blocks of shell pairs for centers 3 & 4. More...
 
virtual void compute_shell_blocks (int shellpair12, int shellpair34, int npair12=-1, int npair34=-1)
 
virtual int shell_is_zero (int, int, int, int)
 Is the shell zero? More...
 
void normalize_am (std::shared_ptr< GaussianShell >, std::shared_ptr< GaussianShell >, std::shared_ptr< GaussianShell >, std::shared_ptr< GaussianShell >, int nchunk=1)
 Normalize Cartesian functions based on angular momentum. More...
 
virtual bool cloneable () const
 Return true if the clone member can be called. By default returns false. More...
 
virtual TwoBodyAOIntclone () const
 Returns a clone of this object. By default throws an exception. More...
 
void pure_transform (int, int, int, int, int nchunk, bool copy_to_source=true)
 Results go back to buffer_. More...
 

Additional Inherited Members

- Protected Member Functions inherited from psi::TwoElectronInt
size_t compute_quartet (int, int, int, int)
 Computes the ERIs between four shells. More...
 
size_t compute_quartet_deriv1 (int, int, int, int)
 Computes the ERI derivatives between four shells. More...
 
size_t compute_quartet_deriv2 (int, int, int, int)
 Computes the ERI second derivative between four shells. More...
 
void init_shell_pairs12 ()
 Form shell pair information. Must be smart enough to handle arbitrary basis sets. More...
 
void init_shell_pairs34 ()
 
void free_shell_pairs12 ()
 Free shell pair information. More...
 
void free_shell_pairs34 ()
 
size_t memory_to_store_shell_pairs (const std::shared_ptr< BasisSet > &, const std::shared_ptr< BasisSet > &)
 Evaluates how much memory (in doubles) is needed to store shell pair data. More...
 
- Protected Member Functions inherited from psi::TwoBodyAOInt
void create_blocks (void)
 
void permute_target (double *s, double *t, int sh1, int sh2, int sh3, int sh4, bool p12, bool p34, bool p13p24)
 
void permute_1234_to_1243 (double *s, double *t, int nbf1, int nbf2, int nbf3, int nbf4)
 
void permute_1234_to_2134 (double *s, double *t, int nbf1, int nbf2, int nbf3, int nbf4)
 
void permute_1234_to_2143 (double *s, double *t, int nbf1, int nbf2, int nbf3, int nbf4)
 
void permute_1234_to_3412 (double *s, double *t, int nbf1, int nbf2, int nbf3, int nbf4)
 
void permute_1234_to_4312 (double *s, double *t, int nbf1, int nbf2, int nbf3, int nbf4)
 
void permute_1234_to_3421 (double *s, double *t, int nbf1, int nbf2, int nbf3, int nbf4)
 
void permute_1234_to_4321 (double *s, double *t, int nbf1, int nbf2, int nbf3, int nbf4)
 
 TwoBodyAOInt (const IntegralFactory *intsfactory, int deriv=0)
 
 TwoBodyAOInt (const TwoBodyAOInt &rhs)
 
- Protected Attributes inherited from psi::TwoElectronInt
Libint_t libint_
 Libint object. More...
 
Libderiv_t libderiv_
 Libderiv object. More...
 
int max_cart_
 Maximum cartesian class size. More...
 
Fjtfjt_
 Computes the fundamental. More...
 
bool use_shell_pairs_
 Should we use shell pair information? More...
 
double * stack12_
 Stack memory pointer, used in init_shell_pairs, freed in destructor. More...
 
double * stack34_
 
ShellPair ** pairs12_
 Shell pair information. More...
 
ShellPair ** pairs34_
 
int osh1_
 Original shell index requested. More...
 
int osh2_
 
int osh3_
 
int osh4_
 
bool p13p24_
 Were the indices permuted? More...
 
bool p12_
 
bool p34_
 
- Protected Attributes inherited from psi::TwoBodyAOInt
const IntegralFactoryintegral_
 
const std::shared_ptr< BasisSetoriginal_bs1_
 
const std::shared_ptr< BasisSetoriginal_bs2_
 
const std::shared_ptr< BasisSetoriginal_bs3_
 
const std::shared_ptr< BasisSetoriginal_bs4_
 
std::shared_ptr< BasisSetbs1_
 
std::shared_ptr< BasisSetbs2_
 
std::shared_ptr< BasisSetbs3_
 
std::shared_ptr< BasisSetbs4_
 
double * target_full_
 Buffer to hold the final integrals. More...
 
double * target_
 Where to put the next integrals (should be part of target_full_) More...
 
int curr_buff_size_
 Number of integrals in the current buffer. More...
 
double * tformbuf_
 Buffer to hold the transformation intermediates. More...
 
double * source_full_
 Buffer to hold the initially computed integrals. More...
 
double * source_
 Where to put the next temporary integrals (should be part of source_full_) More...
 
int max_unique_quartets_
 Maximum number of unique quartets needed to compute a set of SO's. More...
 
int natom_
 Number of atoms. More...
 
int deriv_
 Derivative level. More...
 
bool force_cartesian_
 Whether to force integrals to be generated in the Cartesian (AO) basis;. More...
 
PermutedOrder permuted_order_
 How the shells were reordered for libint. More...
 
std::vector< ShellPairBlockblocks12_
 The blocking scheme used for the integrals. More...
 
std::vector< ShellPairBlockblocks34_
 

Detailed Description

Capable of computing two-electron repulsion integrals.

Constructor & Destructor Documentation

ERI::ERI ( const IntegralFactory integral,
int  deriv = 0,
bool  use_shell_pairs = false 
)
ERI::~ERI ( )
virtual

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