Scine::Sparrow  5.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
zeroLocal2c2eIntegrals.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_ZEROLOCAL2C2EINTEGRALS_H
9 #define SPARROW_ZEROLOCAL2C2EINTEGRALS_H
10 
11 #include "multipoleTypes.h"
12 #include <array>
13 
14 namespace Scine {
15 namespace Sparrow {
16 
17 namespace nddo {
18 
19 namespace multipole {
20 
26  public:
33  static bool isZero(GeneralTypes::twoElIntegral_t t1, GeneralTypes::twoElIntegral_t t2);
34 
35  private:
36  constexpr static int numberTwoElectronIntegrals = 40;
37  using Array = std::array<std::array<bool, numberTwoElectronIntegrals>, numberTwoElectronIntegrals>;
38 
39  static Array getArrayForZeroIntegrals();
40  static void setElementToNonZero(Array& array, GeneralTypes::twoElIntegral_t t1, GeneralTypes::twoElIntegral_t t2);
41 };
42 
43 } // namespace multipole
44 
45 } // namespace nddo
46 
47 } // namespace Sparrow
48 } // namespace Scine
49 #endif // SPARROW_ZEROLOCAL2C2EINTEGRALS_H
Class that specifies which local two-center two-electron integrals are equal to zero in the semi-empi...
Definition: zeroLocal2c2eIntegrals.h:25
static bool isZero(GeneralTypes::twoElIntegral_t t1, GeneralTypes::twoElIntegral_t t2)
Returns whether the two two electron integral types have as result 0 because of the NDDO approximatio...
Definition: zeroLocal2c2eIntegrals.cpp:18