microCanonicalMD.h

Go to the documentation of this file.
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