00001 00007 #ifndef COMPUTEGLOBALMSGS_H 00008 #define COMPUTEGLOBALMSGS_H 00009 00010 #include "charm++.h" 00011 00012 #include "NamdTypes.h" 00013 #include "ComputeMgr.decl.h" 00014 00015 class ComputeGlobalConfigMsg : public CMessage_ComputeGlobalConfigMsg { 00016 public: 00017 // data members 00018 AtomIDList aid; 00019 AtomIDList gdef; // group definitions 00020 00021 // constructor and destructor 00022 ComputeGlobalConfigMsg(void); 00023 ~ComputeGlobalConfigMsg(void); 00024 00025 // pack and unpack functions 00026 static void* pack(ComputeGlobalConfigMsg *msg); 00027 static ComputeGlobalConfigMsg* unpack(void *ptr); 00028 }; 00029 00030 00031 class ComputeGlobalDataMsg : public CMessage_ComputeGlobalDataMsg { 00032 public: 00033 // data members 00034 int step; 00035 AtomIDList aid; 00036 PositionList p; 00037 PositionList gcom; // group center of mass 00038 AtomIDList fid; 00039 ForceList tf; 00040 00041 // constructor and destructor 00042 ComputeGlobalDataMsg(void); 00043 ~ComputeGlobalDataMsg(void); 00044 00045 // pack and unpack functions 00046 static void* pack(ComputeGlobalDataMsg *msg); 00047 static ComputeGlobalDataMsg* unpack(void *ptr); 00048 }; 00049 00050 00051 class ComputeGlobalResultsMsg : public CMessage_ComputeGlobalResultsMsg { 00052 public: 00053 // data members 00054 AtomIDList aid; 00055 ForceList f; 00056 ForceList gforce; // force on group 00057 00058 int reconfig; 00059 00060 /* If <resendCoordinates> is 1, this message indicates a request for 00061 another set of coordinates (a ComputeGlobalDataMessage) during 00062 this timestep. It may be 1 even if reconfig was not set, 00063 though there is no particular reason to do that. A 1 here also 00064 indicates that the ComputeGlobal should ignore any forces 00065 included in this message, and wait instead for the next Results 00066 Message to come in. */ 00067 int resendCoordinates; 00068 00069 AtomIDList newaid; 00070 AtomIDList newgdef; 00071 00072 // constructor and destructor 00073 ComputeGlobalResultsMsg(void); 00074 ~ComputeGlobalResultsMsg(void); 00075 00076 // pack and unpack functions 00077 static void* pack(ComputeGlobalResultsMsg *msg); 00078 static ComputeGlobalResultsMsg* unpack(void *ptr); 00079 00080 }; 00081 00082 00083 #endif 00084
1.3.9.1