8 #ifndef MOLECULARMECHANICS_ELECTROSTATICTERM_H
9 #define MOLECULARMECHANICS_ELECTROSTATICTERM_H
20 class FullSecondDerivativeCollection;
23 namespace MolecularMechanics {
30 using AtomIndex = int;
36 std::shared_ptr<double> cutoffRadius);
42 const std::vector<double>& atomicCharges,
const double& scalingFactorForEachCharge)
const;
50 AtomIndex firstAtom_, secondAtom_;
54 std::shared_ptr<double> cutoffRadius_;
60 #endif // MOLECULARMECHANICS_ELECTROSTATICTERM_H
Class evaluating electrostatic interaction between two atoms.
Definition: ElectrostaticTerm.h:28
double evaluateElectrostaticTerm(const Utils::PositionCollection &positions, Utils::FullSecondDerivativeCollection &derivatives, const std::vector< double > &atomicCharges, const double &scalingFactorForEachCharge) const
Evaluates energy contribution and adds the derivatives.
Definition: ElectrostaticTerm.cpp:19
Base class for all interaction terms.
Definition: InteractionTermBase.h:18
Class treating non-bonded electrostatic interaction, based solely on the bond length. (i.e. in 1 dimension)
Definition: Electrostatic.h:19
ElectrostaticTerm(AtomIndex firstAtom, AtomIndex secondAtom, const Electrostatic &electrostatic, std::shared_ptr< double > cutoffRadius)
Constructor from two atom indices and an instance of the Electrostatic class.
Definition: ElectrostaticTerm.cpp:14
int getSecondAtom() const
Getter for index of second atom.
Definition: ElectrostaticTerm.cpp:45
int getFirstAtom() const
Getter for index of first atom.
Definition: ElectrostaticTerm.cpp:41