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
AnalyticalDipoleIntegralOverGTOsCalculator.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_ANALYTICALDIPOLEINTEGRALOVERGTOSCALCULATOR_H
9 #define SPARROW_ANALYTICALDIPOLEINTEGRALOVERGTOSCALCULATOR_H
10 
11 #include <Eigen/Core>
12 #include <array>
13 
14 namespace Scine {
15 namespace Sparrow {
16 
18  public:
19  AnalyticalDipoleIntegralOverGTOsCalculator(int angularMomentumA, int angulatMomentumB, double expA, double expB,
20  const Eigen::Vector3d& Ra, const Eigen::Vector3d& Rb,
21  const Eigen::Vector3d& evaluationCoordinate);
22  std::array<double, 3> calculateAnalyticalDipoleElement();
23 
24  private:
25  const double exponentA_, exponentB_;
26  double expSum_;
27  const int angularMomentumA_, angularMomentumB_;
28  const Eigen::Vector3d Ra_;
29  const Eigen::Vector3d Rb_;
30  const Eigen::Vector3d evaluationCoordinate_;
31  Eigen::Vector3d Rab_, weightedSum_;
32  double dipoleSS(int dimension);
33  double dipoleSP(double expA, double Ra, double Rb, int dimension);
34  double dipoleSD(double expA, double expB, double Ra, double Rb, double evaluationCoordinate);
35  double dipolePP(double expA, double expB, double Ra, double Rb, double evaluationCoordinate);
36  double dipolePD(double expA, double expB, double Ra, double Rb, double evaluationCoordinate);
37  double dipoleDD(double expA, double expB, double Ra, double Rb, double evaluationCoordinate);
38 };
39 
40 } // namespace Sparrow
41 } // namespace Scine
42 
43 #endif // SPARROW_ANALYTICALDIPOLEINTEGRALOVERGTOSCALCULATOR_H
Definition: AnalyticalDipoleIntegralOverGTOsCalculator.h:17