00001 #ifndef DIFFUSIONWALKER_H 00002 #define DIFFUSIONWALKER_H 00003 00004 #include "walker.h" 00005 00009 class DiffusionWalker : public Walker 00010 { 00011 public: 00012 DiffusionWalker(Config *config, DiffusionWalker** otherWalkers, int nWalkersMax); 00013 bool aliveNew() { 00014 return m_aliveNew; 00015 } 00016 void setAliveNew(bool arg) { 00017 m_aliveNew = arg; 00018 } 00019 void setAliveOld(bool arg) { 00020 m_aliveOld = arg; 00021 } 00022 00023 bool aliveOld() { 00024 return m_aliveOld; 00025 } 00026 void setTimeStep(double arg) { 00027 timeStep = arg; 00028 } 00029 00030 double getTimeStep() { 00031 return timeStep; 00032 } 00033 00034 int acceptances() { 00035 return m_acceptances; 00036 } 00037 int rejections() { 00038 return m_rejections; 00039 } 00040 00041 void advance(double trialEnergy); 00042 private: 00043 DiffusionWalker** otherWalkers; 00044 int nWalkersMax; 00045 00046 double diffConstant; 00047 double timeStep; 00048 bool m_aliveNew; 00049 bool m_aliveOld; 00050 int m_acceptances; 00051 int m_rejections; 00052 }; 00053 00054 #endif // DIFFUSIONWALKER_H