/* * Berendsen.hpp * * Created on: Aug 20, 2010 * Author: crueger */ #ifndef BERENDSEN_HPP_ #define BERENDSEN_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "Thermostats/Thermostat.hpp" class Berendsen : public Thermostat { public: Berendsen(double); Berendsen(); virtual ~Berendsen(); virtual double scaleAtoms(unsigned int step,double ActualTemp,ATOMSET(std::list) atoms); virtual double scaleAtoms(unsigned int step,double ActualTemp,ATOMSET(std::vector) atoms); virtual double scaleAtoms(unsigned int step,double ActualTemp,ATOMSET(std::set) atoms); virtual std::string name(); virtual std::string writeParams(); private: template double doScaleAtoms(unsigned int step,double ActualTemp,ForwardIterator begin, ForwardIterator end); double TempFrequency; }; template <> struct ThermostatTraits : public ThermostatTraits { virtual Thermostat *make(class ConfigFileBuffer * const fb); virtual std::string getName(); static const char* name; }; #endif /* BERENDSEN_HPP_ */