canonicalMD.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: canonicalMD.h,v 1.27 2005/12/23 17:01:52 amoll Exp $
00005 //
00006 
00007 #ifndef BALL_MOLMEC_MDSIMULATION_CANONICALMD_H   
00008 #define BALL_MOLMEC_MDSIMULATION_CANONICALMD_H   
00009 
00010 #ifndef BALL_MOLMEC_MDSIMULATION_MOLECULARDYNAMICS_H
00011 # include <BALL/MOLMEC/MDSIMULATION/molecularDynamics.h>
00012 #endif
00013 
00014 namespace BALL 
00015 {
00030   class BALL_EXPORT CanonicalMD 
00031     : public MolecularDynamics
00032   {
00033     public: 
00034 
00035     BALL_CREATE(CanonicalMD)
00036 
00037     
00040 
00041 
00042     
00043     CanonicalMD() ;
00044 
00049     CanonicalMD(ForceField& myforcefield) ;
00050 
00057     CanonicalMD(ForceField& force_field, SnapShotManager* ssm) ;
00058 
00066     CanonicalMD(ForceField& myforcefield, SnapShotManager* ssm, 
00067                 const Options& options) ;
00068 
00070     CanonicalMD(const CanonicalMD& rhs) ;
00071 
00073     virtual ~CanonicalMD() ;
00075 
00078 
00080     CanonicalMD &operator = (const CanonicalMD& rhs) ;
00082 
00086 
00091     virtual bool setup(ForceField& force_field, SnapShotManager* ssm = 0)
00092       ;
00093 
00097     virtual bool setup(ForceField& force_field, SnapShotManager* ssm,
00098                       const Options& options)
00099       ;
00100 
00104     virtual bool specificSetup() ;
00106 
00110 
00117     void setBathRelaxationTime(double time) ;
00118 
00122     double getBathRelaxationTime() const ;
00123 
00126     virtual void setTimeStep(double time) ;
00127 
00135     virtual bool simulateIterations(Size number, bool restart = false) ;
00136 
00138 
00139     protected:
00140     
00142     struct AuxFactors
00143     {
00144       double factor1;
00145       double factor2; 
00146     }; 
00147     
00150 
00153     void calculateFactors_() ;
00155 
00158 
00160     double bath_relaxation_time_; 
00161 
00163     std::vector<AuxFactors> mass_factor_; 
00164     //_@} 
00165 
00166   };  //class CanonicalMD  
00167 
00168 } // namespace BALL 
00169 
00170 #endif // BALL_MOLMEC_MDSIMULATION_CANONICALMD_H