Scine::Swoose  2.1.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
RepulsionEvaluator.h
Go to the documentation of this file.
1 
8 #ifndef MOLECULARMECHANICS_REPULSIONEVALUATOR_H
9 #define MOLECULARMECHANICS_REPULSIONEVALUATOR_H
10 
11 #include "RepulsionTerm.h"
12 #include <vector>
13 
14 namespace Scine {
15 
16 namespace Qmmm {
17 class InteractionTermEliminator;
18 } // namespace Qmmm
19 
20 namespace Utils {
21 class AtomCollection;
22 class FullSecondDerivativeCollection;
23 } // namespace Utils
24 
25 namespace MolecularMechanics {
26 
27 namespace Defaults {
28 // Default value optimized as described in the paper: J. Chem. Theory Comput. 2020, 16, 3, 1646-1665.
29 static constexpr double defaultBetaRepulsionParameter = 7.4;
30 } // namespace Defaults
31 
37  public:
39  explicit RepulsionEvaluator(const Utils::AtomCollection& structure);
46  double evaluate(Utils::FullSecondDerivativeCollection& derivatives, const Eigen::MatrixXd& R0);
50  void setRepulsionTerms(std::vector<RepulsionTerm>&& repulsionTerms);
54  void setBetaRepulsion(const double& betaRepulsion);
55 
56  private:
57  // friend class declaration
59  const Utils::AtomCollection& structure_;
60  std::vector<RepulsionTerm> repulsions_;
61  double betaRepulsion_ = Defaults::defaultBetaRepulsionParameter;
62 };
63 
64 } // namespace MolecularMechanics
65 } // namespace Scine
66 
67 #endif // MOLECULARMECHANICS_REPULSIONEVALUATOR_H
double evaluate(Utils::FullSecondDerivativeCollection &derivatives, const Eigen::MatrixXd &R0)
This function evaluates the Pauli repulsion energy and adds its the contribution to the derivatives...
Definition: RepulsionEvaluator.cpp:18
This class handles the elimination of MM interaction terms, which are already covered by the QM calcu...
Definition: InteractionTermEliminator.h:39
This class evaluates the Pauli repulsion part of the MM model.
Definition: RepulsionEvaluator.h:36
RepulsionEvaluator(const Utils::AtomCollection &structure)
Constructor.
Definition: RepulsionEvaluator.cpp:15
void setRepulsionTerms(std::vector< RepulsionTerm > &&repulsionTerms)
Sets all the repulsion terms.
Definition: RepulsionEvaluator.cpp:30
void setBetaRepulsion(const double &betaRepulsion)
Setter for the global Pauli repulsion parameter beta.
Definition: RepulsionEvaluator.cpp:34