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
KlopmanParameter.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_KLOPMANPARAMETER_H
9 #define SPARROW_KLOPMANPARAMETER_H
10 
12 #include <array>
13 
14 namespace Scine {
15 namespace Sparrow {
16 namespace nddo {
17 namespace multipole {
18 
30  public:
35 
37  void reset();
38 
41  void set(MultipolePair type, double value) {
42  K_.at(static_cast<unsigned>(type)) = value;
43  }
44 
46  double get(MultipolePair type) const {
47  return K_.at(static_cast<unsigned>(type));
48  }
49 
56  void generateUpToS(double gss);
75  void generateUpToP(double gss, double hsp, double D1sp, double hpp, double D2pp);
109  void generateUpToD(double gss, double hsp, double D1sp, double hpp, double D2pp, double F0dd, double G1pd,
110  double D1pd, double G2sd, double D2sd, double F2dd, double D2dd);
111 
112  private:
113  double findRootVar1(double D, double shift);
114  double findRootVar2(double D, double shift);
117  double findRootVar2Wrong(double D, double shift);
118 
119  static_assert(static_cast<std::underlying_type<MultipolePair>::type>(MultipolePair::dd0) == 7,
120  "Multipole pair type enum has changed value layout");
121  std::array<double, 8> K_;
122 };
123 
124 } // namespace multipole
125 } // namespace nddo
126 } // namespace Sparrow
127 } // namespace Scine
128 
129 #endif // SPARROW_KLOPMANPARAMETER_H
This class is the container for the Klopman-Ohno parameters used for the evaluation of the multipoles...
Definition: KlopmanParameter.h:29
KlopmanParameter()
Constructor, calls the reset() function.
Definition: KlopmanParameter.cpp:16
void generateUpToP(double gss, double hsp, double D1sp, double hpp, double D2pp)
generates the Klopman–Ohno parameters up to the p orbitals
Definition: KlopmanParameter.cpp:32
void generateUpToS(double gss)
generates the Klopman–Ohno parameters up to the s orbitals
Definition: KlopmanParameter.cpp:26
void generateUpToD(double gss, double hsp, double D1sp, double hpp, double D2pp, double F0dd, double G1pd, double D1pd, double G2sd, double D2sd, double F2dd, double D2dd)
generates the Klopman–Ohno parameters up to the d orbitals
Definition: KlopmanParameter.cpp:40
void set(MultipolePair type, double value)
stores the value of the Klopman–Ohno parameter for a multipole type at the index given by the cast Mu...
Definition: KlopmanParameter.h:41
void reset()
Sets the values to zero.
Definition: KlopmanParameter.cpp:20