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
VuvB.h
Go to the documentation of this file.
1 
8 #ifndef SPARROW_VUVB_H
9 #define SPARROW_VUVB_H
10 
14 #include <Utils/Typenames.h>
15 #include <Eigen/Core>
16 
17 namespace Scine {
18 namespace Sparrow {
19 
20 namespace nddo {
21 
22 namespace multipole {
23 
29 class VuvB {
30  public:
31  using orb_index_t = Global2c2eMatrix::orb_index_t;
32  using orbPair_index_t = Global2c2eMatrix::orbPair_index_t;
33 
34  explicit VuvB(int l1) : g_(l1, 0, dist1_, dist2_, rho1_, rho2_) {
35  }
36  template<Utils::DerivativeOrder O>
37  void calculate(const Eigen::Vector3d& Rab, const ChargeSeparationParameter& D1, const KlopmanParameter& rho1,
38  double pcore, double ZB);
39  double get(orb_index_t o1, orb_index_t o2) const {
40  return -z_ * g_.get(o1, o2, static_cast<int>(GeneralTypes::orb_t::s), static_cast<int>(GeneralTypes::orb_t::s));
41  }
42  double get(orbPair_index_t op1) const {
43  return -z_ * g_.get(op1, static_cast<int>(GeneralTypes::twoElIntegral_t::s_s));
44  }
45  template<Utils::Derivative O>
46  Utils::AutomaticDifferentiation::DerivativeType<O> getDerivative(orb_index_t o1, orb_index_t o2) const {
47  return -z_ * g_.getDerivative<O>(o1, o2, static_cast<int>(GeneralTypes::orb_t::s),
48  static_cast<int>(GeneralTypes::orb_t::s));
49  }
50 
51  private:
52  ChargeSeparationParameter dist1_, dist2_;
53  KlopmanParameter rho1_, rho2_;
55  double z_{0.0};
56 };
57 
58 } // namespace multipole
59 
60 } // namespace nddo
61 
62 } // namespace Sparrow
63 } // namespace Scine
64 #endif // SPARROW_VUVB_H
Definition: Global2c2eMatrix.h:31
This class is the container for the Klopman-Ohno parameters used for the evaluation of the multipoles...
Definition: KlopmanParameter.h:29
Charge separation D of semi-empirical models. It describes the separation between two charges of oppo...
Definition: ChargeSeparationParameter.h:29