00001 /*************************************************************************** 00002 *cr 00003 *cr (C) Copyright 1995-2019 The Board of Trustees of the 00004 *cr University of Illinois 00005 *cr All Rights Reserved 00006 *cr 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * RCS INFORMATION: 00011 * 00012 * $RCSfile: IMDMgr.h,v $ 00013 * $Author: johns $ $Locker: $ $State: Exp $ 00014 * $Revision: 1.26 $ $Date: 2019/01/17 21:20:59 $ 00015 * 00016 *************************************************************************** 00017 * DESCRIPTION: 00018 * High level interactive MD simulation management and update routines. 00019 ***************************************************************************/ 00020 #ifndef IMD_MGR_H__ 00021 #define IMD_MGR_H__ 00022 00023 #include "UIObject.h" 00024 #include "imd.h" 00025 00026 class Molecule; 00027 class MoleculeIMD; 00028 class IMDSim; 00029 00031 class IMDMgr : public UIObject { 00032 public: 00033 IMDMgr(VMDApp *); 00034 ~IMDMgr(); 00035 00036 void set_trans_rate(int); 00037 int get_trans_rate() const {return Trate; } 00038 00039 void set_keep_rate(int); 00040 int get_keep_rate() const { return keep_rate; } 00041 00042 void set_copyunitcell(int); 00043 int get_copyunitcell() const { return copy_unit_cell; } 00044 00046 const char *gethost() const {return host; } 00047 int getport() const {return port;} 00048 int connected() {return sim != 0; } 00049 00051 Molecule *get_imdmol() {return mol; } 00052 00054 int connect(Molecule *, const char *, int); 00055 00057 int send_forces(int, const int *, const float *); 00058 00059 void pause(); 00060 void unpause(); 00061 void togglepause(); 00062 void detach(); 00063 void kill(); 00064 00065 int check_event(); 00066 00067 int act_on_command(int, Command *); 00068 00069 private: 00070 Molecule *mol; 00071 IMDSim *sim; 00072 IMDEnergies *energies; 00073 char *host; 00074 int port; 00075 int Trate; 00076 int keep_rate; 00077 int copy_unit_cell; 00078 int frames_received; 00079 }; 00080 00081 #endif 00082