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

#include <siminteri.h>

Inheritance diagram for psi::SimintERI:
psi::SimintTwoElectronInt psi::TwoBodyAOInt

Public Member Functions

virtual bool cloneable () const override
 Return true if the clone member can be called. By default returns false. More...
 
virtual SimintERIclone () const override
 Returns a clone of this object. By default throws an exception. More...
 
 SimintERI (const IntegralFactory *integral, int deriv=0, bool use_shell_pairs=false)
 
- Public Member Functions inherited from psi::SimintTwoElectronInt
 SimintTwoElectronInt (const IntegralFactory *integral, int deriv=0, bool use_shell_pairs=false)
 
virtual ~SimintTwoElectronInt ()
 
virtual size_t compute_shell (const AOShellCombinationsIterator &) override
 Compute ERIs between 4 shells. Result is stored in buffer. More...
 
virtual size_t compute_shell (int, int, int, int) override
 Compute the integrals. More...
 
virtual void compute_shell_blocks (int shellpair1, int shellpair2, int npair1=-1, int npair2=-1) override
 
virtual size_t compute_shell_deriv1 (int, int, int, int)
 Compute the first derivatives. More...
 
virtual size_t compute_shell_deriv2 (int, int, int, int)
 Compute the second derivatives. 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 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...
 
void pure_transform (int, int, int, int, int nchunk, bool copy_to_source=true)
 Results go back to buffer_. More...
 

Protected Member Functions

 SimintERI (const SimintERI &rhs)
 
- Protected Member Functions inherited from psi::SimintTwoElectronInt
 SimintTwoElectronInt (const SimintTwoElectronInt &rhs)
 
- 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)
 

Additional Inherited Members

- Public Types inherited from psi::SimintTwoElectronInt
typedef std::vector
< simint_multi_shellpair > 
ShellPairVec
 
typedef std::vector< simint_shell > ShellVec
 
- 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_
 

Constructor & Destructor Documentation

psi::SimintERI::SimintERI ( const SimintERI rhs)
protected
psi::SimintERI::SimintERI ( const IntegralFactory integral,
int  deriv = 0,
bool  use_shell_pairs = false 
)

Member Function Documentation

virtual SimintERI* psi::SimintERI::clone ( void  ) const
inlineoverridevirtual

Returns a clone of this object. By default throws an exception.

Reimplemented from psi::TwoBodyAOInt.

virtual bool psi::SimintERI::cloneable ( ) const
inlineoverridevirtual

Return true if the clone member can be called. By default returns false.

Reimplemented from psi::TwoBodyAOInt.


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