Scine::Swoose  2.1.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
DispersionEvaluator.h
Go to the documentation of this file.
1 
8 #ifndef MOLECULARMECHANICS_DISPERSIONEVALUATOR_H
9 #define MOLECULARMECHANICS_DISPERSIONEVALUATOR_H
10 
11 #include "DispersionTerm.h"
12 
13 namespace Scine {
14 
15 namespace Qmmm {
16 class InteractionTermEliminator;
17 } // namespace Qmmm
18 
19 namespace Utils {
20 class AtomCollection;
21 class FullSecondDerivativeCollection;
22 } // namespace Utils
23 
24 namespace MolecularMechanics {
25 
31  public:
33  explicit DispersionEvaluator(const Utils::AtomCollection& structure);
41  double evaluate(Utils::FullSecondDerivativeCollection& derivatives, std::shared_ptr<Utils::Dftd3::Dftd3> d3,
42  Eigen::MatrixXd& R0);
46  void setDispersionTerms(std::vector<DispersionTerm>&& dispersionTerms);
47 
49  static double getA1();
51  static double getS8();
53  static double getA2();
54 
58  void setD3Parameters(std::vector<double> d3Parameters);
59 
60  private:
61  // friend class declaration
63  const Utils::AtomCollection& structure_;
64  std::vector<DispersionTerm> dispersions_;
65  Eigen::MatrixXd dC6_dCN_;
66  Eigen::MatrixXd dCN_drij_;
67  // The three D3 parameters
68  static double a1_;
69  static double s8_;
70  static double a2_;
71 };
72 
73 } // namespace MolecularMechanics
74 } // namespace Scine
75 
76 #endif // MOLECULARMECHANICS_DISPERSIONEVALUATOR_H
static double getA1()
Getter for the D3 parameter a1.
Definition: DispersionEvaluator.cpp:52
double evaluate(Utils::FullSecondDerivativeCollection &derivatives, std::shared_ptr< Utils::Dftd3::Dftd3 > d3, Eigen::MatrixXd &R0)
This function evaluates and returns the energy for all dispersion interactions and updates the deriva...
Definition: DispersionEvaluator.cpp:16
void setDispersionTerms(std::vector< DispersionTerm > &&dispersionTerms)
Sets a vector of instances of the DispersionTerm class.
Definition: DispersionEvaluator.cpp:38
static double getA2()
Getter for the D3 parameter a2.
Definition: DispersionEvaluator.cpp:60
DispersionEvaluator(const Utils::AtomCollection &structure)
Constructor.
Definition: DispersionEvaluator.cpp:13
void setD3Parameters(std::vector< double > d3Parameters)
Setter for the D3 parameters a1, s8 and a2.
Definition: DispersionEvaluator.cpp:45
This class handles the elimination of MM interaction terms, which are already covered by the QM calcu...
Definition: InteractionTermEliminator.h:39
DispersionEvaluator DispersionEvaluator.h.
Definition: DispersionEvaluator.h:30
static double getS8()
Getter for the D3 parameter s8.
Definition: DispersionEvaluator.cpp:56