00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 #ifndef IMD_SIM_BLOCKING_H__
00023 #define IMD_SIM_BLOCKING_H__
00024 
00025 #include "IMDSim.h"
00026 
00029 class IMDSimBlocking : public IMDSim {
00030 public:
00032   IMDSimBlocking(const char *, int);
00033   virtual ~IMDSimBlocking();
00034 
00036   virtual void update();
00037 
00038   virtual void get_next_ts(float *, IMDEnergies *);
00039   virtual void send_forces(int, int *, float *);
00040 
00041   virtual void pause();
00042   virtual void unpause();
00043     
00044   virtual void detach();
00045   virtual void kill();
00046   virtual void set_transrate(int);
00047 
00048 private:
00049   float *curpos;       
00050   IMDEnergies imdEnergies;
00051  
00052   void process_coordinates(int32);
00053   void process_energies(int32);
00054   void process_mdcomm(int32);
00055 };
00056 
00057 #endif
00058