/* * PairPotential_Harmonic.hpp * * Created on: Sep 26, 2012 * Author: heber */ #ifndef PAIRPOTENTIAL_HARMONIC_HPP_ #define PAIRPOTENTIAL_HARMONIC_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "Potentials/EmpiricalPotential.hpp" /** This is the implementation of a harmonic pair potential. * * This evaluates \f$ k \cdot (r -r_0)^2 \f$. * */ class PairPotential_Harmonic : public EmpiricalPotential { public: PairPotential_Harmonic( const double _spring_constant, const double _equilibrium_distance) : spring_constant(_spring_constant), equilibrium_distance(_equilibrium_distance) {} virtual ~PairPotential_Harmonic() {} /** Evaluates the harmonic potential function for the given arguments. * * @param arguments single distance * @return value of the potential function */ result_t operator()(const arguments_t &arguments) const; /** Evaluates the derivative of the potential function. * * @param arguments single distance * @return vector with derivative with respect to the input degrees of freedom */ derivative_components_t derivative(const arguments_t &arguments) const; private: //!> the spring constant for the harmonic potential const double spring_constant; //!> the equilibrium distance indicating the potential minimum const double equilibrium_distance; }; #endif /* PAIRPOTENTIAL_HARMONIC_HPP_ */