00001 /*************************************************************************************************** 00002 ***** Copyright (C) 2005 John Schneiderman <JohnMS@member.fsf.org> ***** 00003 ***** ***** 00004 ***** This program is free software; you can redistribute it and/or modify ***** 00005 ***** it under the terms of the GNU General Public License as published by ***** 00006 ***** the Free Software Foundation; either version 2 of the License, or ***** 00007 ***** (at your option) any later version. ***** 00008 ***** ***** 00009 ***** This program is distributed in the hope that it will be useful, ***** 00010 ***** but WITHOUT ANY WARRANTY; without even the implied warranty of ***** 00011 ***** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ***** 00012 ***** GNU General Public License for more details. ***** 00013 ***** ***** 00014 ***** You should have received a copy of the GNU General Public License ***** 00015 ***** along with this program; if not, write to the Free Software ***** 00016 ***** Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ***** 00017 ***************************************************************************************************/ 00018 #ifndef _MDLJ_SIMULATION_ 00019 #define _MDLJ_SIMULATION_ 00020 #include "mdsimulation.h" 00021 00022 class ConfigurationDatabase; 00023 00030 class MDLJ_Simulation:public MD_Simulation 00031 { 00032 public: 00037 MDLJ_Simulation(const ConfigurationDatabase &conf); 00042 double reducedPotentialEnergy() const; 00047 double reducedKineticEnergy() const; 00052 double reducedTotalEnergy() const; 00062 virtual void run(Cluster &cluster, string currentRun, string prevRun); 00066 void clear(); 00067 00068 protected: 00073 void adjustPosCenMass(Cluster &cluster) const; 00078 void calculatePositions(Cluster &cluster) const; 00083 void calculateVelocities(Cluster &cluster) const; 00088 void calculateAccelerations(Cluster &cluster) const; 00094 virtual double findLastStep(string baseName) const; 00095 00096 private: 00098 double m_reducedPotentialEnergy; 00100 double m_reducedKineticEnergy; 00102 double m_reducedEnergyTotal; 00103 }; 00104 #endif