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
oneCenterSlaterIntegral.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_ONECENTERSLATERINTEGRAL_H
9 #define SPARROW_ONECENTERSLATERINTEGRAL_H
10 
11 #include <array>
12 #include <boost/math/special_functions/factorials.hpp>
13 
14 namespace Scine {
15 namespace Sparrow {
16 
17 namespace nddo {
18 
29  public:
30  OneCenterSlaterIntegral() = default;
31  void setPrincipal(int na, int nb, int nc, int nd);
32  void setAngular(int la, int lb, int lc, int ld);
33  void setExponents(double ea, double eb, double ec, double ed);
34 
35  double calculate(int l);
36 
37  private:
38  bool validLValue() const;
39  void computeHelperVariables();
40  double calculateFactor();
41  double calculateFirstTerm();
42  double calculateSecondTerm();
43  double calculateThirdTerm();
44  double calculateSecondSumTerm(int ll);
45  double calculateThirdSumTerm(int ll);
46 
47  int l_;
48  int na_, nb_, nc_, nd_;
49  int la_, lb_, lc_, ld_;
50  double ea_, eb_, ec_, ed_;
51  int n1_, n2_; // NB: double of value in Ref.
52  double e1_, e2_; // NB: double of value in Ref.
53 };
54 
55 } // namespace nddo
56 
57 } // namespace Sparrow
58 } // namespace Scine
59 #endif // SPARROW_ONECENTERSLATERINTEGRAL_H
Definition: oneCenterSlaterIntegral.h:28