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
Local2c2eMatrix.h
Go to the documentation of this file.
1 
8 #ifndef LOCAL2C2EMATRIX_H
9 #define LOCAL2C2EMATRIX_H
10 
12 #include <Eigen/Core>
13 
14 namespace Scine {
15 namespace Sparrow {
16 
17 namespace nddo {
18 
19 namespace multipole {
20 
26 template<Utils::DerivativeOrder O>
28  public:
29  Local2c2eMatrix(int l1, int l2, const ChargeSeparationParameter& D1, const ChargeSeparationParameter& D2,
30  const KlopmanParameter& r1, const KlopmanParameter& r2);
31  void setSymmetric(bool sym) {
32  sameElement_ = sym;
33  }
34  void calculate(double R);
36  void calculateSym(double R);
38  void calculateAsym(double R);
39  const Utils::AutomaticDifferentiation::Value1DType<O>& operator()(unsigned int i, unsigned int j) const {
40  return mat(i, j);
41  }
42 
43  private:
44  void buildSSMatrix(double R);
45  void buildSPMatrix(double R);
46  void buildPSMatrix(double R);
47  void buildPPMatrix(double R);
48  void buildSDMatrix(double R);
49  void buildDSMatrix(double R);
50  void buildPDMatrix(double R);
51  void buildDPMatrix(double R);
52  void buildDDMatrix(double R);
53  void buildPPMatrixSym(double R);
54  void buildDDMatrixSym(double R);
55  void buildPSMatrixSym(double R);
56  void buildDSMatrixSym(double R);
57  void buildDPMatrixSym(double R);
58 
59  const int l1_, l2_;
60  bool sameElement_;
61  const ChargeSeparationParameter &dist1, &dist2;
62  const KlopmanParameter &rho1, &rho2;
63  Local2c2eIntegralCalculator calculator_;
64  Eigen::Matrix<Utils::AutomaticDifferentiation::Value1DType<O>, Eigen::Dynamic, Eigen::Dynamic> mat;
65 };
66 
67 } // namespace multipole
68 
69 } // namespace nddo
70 
71 } // namespace Sparrow
72 } // namespace Scine
73 #endif // LOCAL2C2EMATRIX_H
Definition: Local2c2eMatrix.h:27
void calculateSym(double R)
Calculates the two-center two-electron matrix for two identical elements.
Definition: Local2c2eMatrix.cpp:39
This class is the container for the Klopman-Ohno parameters used for the evaluation of the multipoles...
Definition: KlopmanParameter.h:29
This class is responsible for the calculation of the 2-center-2-electron integrals in the local coord...
Definition: Local2c2eIntegralCalculator.h:31
void calculateAsym(double R)
Calculates the two-center two-electron matrix for two different elements.
Definition: Local2c2eMatrix.cpp:60
Charge separation D of semi-empirical models. It describes the separation between two charges of oppo...
Definition: ChargeSeparationParameter.h:29