BALL
1.4.1
|
00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: microCanonicalMD.h,v 1.25 2005/12/23 17:01:53 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_MOLMEC_MDSIMULATION_MICROCANONICALMD_H 00008 #define BALL_MOLMEC_MDSIMULATION_MICROCANONICALMD_H 00009 00010 #ifndef BALL_MOLMEC_MDSIMULATION_MOLECULARDYNAMICS_H 00011 # include <BALL/MOLMEC/MDSIMULATION/molecularDynamics.h> 00012 #endif 00013 00014 namespace BALL 00015 { 00024 class BALL_EXPORT MicroCanonicalMD : public MolecularDynamics 00025 { 00026 00027 public: 00028 00031 struct AuxFactors 00032 { 00033 double factor1,factor2; 00034 }; 00035 00039 00040 BALL_CREATE(MicroCanonicalMD) 00041 00042 00044 MicroCanonicalMD(); 00045 00049 MicroCanonicalMD(ForceField &myforcefield); 00050 00054 MicroCanonicalMD(ForceField &myforcefield, SnapShotManager *ssm); 00055 00059 MicroCanonicalMD(ForceField &myforcefield, SnapShotManager *ssm, 00060 const Options &myoptions); 00061 00063 MicroCanonicalMD(const MicroCanonicalMD& rhs); 00064 00066 virtual ~MicroCanonicalMD(); 00067 00069 00072 00074 MicroCanonicalMD &operator=(const MicroCanonicalMD &rhs); 00075 00077 00080 00083 virtual bool setup(ForceField &myforcefield, SnapShotManager *ssm); 00084 00087 virtual bool setup(ForceField &myforcefield, SnapShotManager *ssm, 00088 const Options &myoptions); 00089 00093 virtual bool specificSetup(); 00094 00096 00099 00102 virtual void setTimeStep(double step); 00103 00109 virtual bool simulateIterations(Size number, bool restart = false); 00110 00112 00113 protected: 00114 00115 /*_ @name Protected methods 00116 */ 00117 //_@{ 00118 00119 /*_ A protected method for calculating some 00120 factors that are needed all the time 00121 */ 00122 void calculateFactors(); 00123 00124 //_@} 00125 /*_ @name Protected Attributes 00126 */ 00127 //_@{ 00128 00129 /*_ This vector contains special, precomputed factors 00130 */ 00131 vector<AuxFactors> mass_factor_; 00132 00133 //_@} 00134 00135 }; // end of class MicroCanonicalMD 00136 } // end of namespace BALL 00137 00138 #endif // BALL_MOLMEC_MDSIMULATION_MICROCANONICALMD_H