8 #ifndef MOLECULARMECHANICS_DISPERSIONTERM_H
9 #define MOLECULARMECHANICS_DISPERSIONTERM_H
20 class FullSecondDerivativeCollection;
23 namespace MolecularMechanics {
30 using AtomIndex = int;
38 DispersionTerm(AtomIndex firstAtom, AtomIndex secondAtom,
const Dispersion& dispersion, std::shared_ptr<double> cutoffRadius);
47 std::shared_ptr<Utils::Dftd3::Dftd3> d3, Eigen::MatrixXd& R0)
const;
56 AtomIndex firstAtom_, secondAtom_;
60 std::shared_ptr<double> cutoffRadius_;
65 #endif // MOLECULARMECHANICS_DISPERSIONTERM_H
~DispersionTerm()
Destructor.
DispersionTerm(AtomIndex firstAtom, AtomIndex secondAtom, const Dispersion &dispersion, std::shared_ptr< double > cutoffRadius)
Constructor.
Definition: DispersionTerm.cpp:14
Class treating a dispersion (D3-BJ) interaction, based solely on the bond length. (i...
Definition: Dispersion.h:20
int getFirstAtom() const
Getter for index of first atom.
Definition: DispersionTerm.cpp:58
Base class for all interaction terms.
Definition: InteractionTermBase.h:18
int getSecondAtom() const
Getter for index of second atom.
Definition: DispersionTerm.cpp:62
Class evaluating dispersion (D3-BJ) interaction between two atoms.
Definition: DispersionTerm.h:28
Dispersion getDispersion() const
Getter for the underlying instance of the Dispersion class.
Definition: DispersionTerm.cpp:66
double evaluateDispersionTerm(const std::vector< Utils::Dftd3::Dftd3Atom > &structureOfDftd3Atoms, Utils::FullSecondDerivativeCollection &derivatives, std::shared_ptr< Utils::Dftd3::Dftd3 > d3, Eigen::MatrixXd &R0) const
Evaluates energy contribution and adds the derivatives.
Definition: DispersionTerm.cpp:21