Difference for src/ProxyMgr.C from version 1.1058 to 1.1059

version 1.1058version 1.1059
Line 31
Line 31
   PACK_RESIZE(atomIDList);   PACK_RESIZE(atomIDList);
 ) )
  
  
 // DMK - Atom Separation (water vs. non-water) 
 #if NAMD_SeparateWaters != 0 
    
 PACK_MSG(ProxyDataMsg, 
   PACK(patch); 
   PACK(flags); 
   PACK_RESIZE(positionList); 
   if (packmsg_msg->flags.doMolly) PACK_RESIZE(avgPositionList); 
   PACK(numWaterAtoms); 
 ) 
  
 #else // NAMD_SeparateWaters == 0 
  
 PACK_MSG(ProxyDataMsg, 
   PACK(patch); 
   PACK(flags); 
   PACK_RESIZE(positionList); 
   if (packmsg_msg->flags.doMolly) PACK_RESIZE(avgPositionList); 
 ) 
  
 #endif 
  
  
 // DMK - Atom Separation (water vs. non-water) 
 #if NAMD_SeparateWaters != 0 
  
 #ifdef MEM_OPT_VERSION 
 PACK_MSG(ProxyAllMsg, 
   PACK(patch); 
   PACK(flags); 
   PACK_RESIZE(positionList); 
   if (packmsg_msg->flags.doMolly) PACK_RESIZE(avgPositionList); 
   PACK_RESIZE(extInfoList); 
   PACK(numWaterAtoms); 
 ) 
 #else 
 PACK_MSG(ProxyAllMsg, 
   PACK(patch); 
   PACK(flags); 
   PACK_RESIZE(positionList); 
   if (packmsg_msg->flags.doMolly) PACK_RESIZE(avgPositionList); 
   PACK(numWaterAtoms); 
 ) 
 #endif 
  
 #else // NAMD_SeparateWaters == 0 
  
 #ifdef MEM_OPT_VERSION 
 PACK_MSG(ProxyAllMsg, 
   PACK(patch); 
   PACK(flags); 
   PACK_RESIZE(positionList); 
   if (packmsg_msg->flags.doMolly) PACK_RESIZE(avgPositionList); 
   PACK_RESIZE(extInfoList); 
 ) 
 #else 
 PACK_MSG(ProxyAllMsg, 
   PACK(patch); 
   PACK(flags); 
   PACK_RESIZE(positionList); 
   if (packmsg_msg->flags.doMolly) PACK_RESIZE(avgPositionList); 
 ) 
 #endif 
  
 #endif 
  
  
 PACK_MSG(ProxySpanningTreeMsg, PACK_MSG(ProxySpanningTreeMsg,
   PACK(patch);   PACK(patch);
   PACK(node);   PACK(node);
Line 106
Line 38
 ) )
  
 void* ProxyResultMsg::pack(ProxyResultMsg *msg) { void* ProxyResultMsg::pack(ProxyResultMsg *msg) {
  
   int msg_size = 0;   int msg_size = 0;
   msg_size += sizeof(msg->node);   msg_size += sizeof(msg->node);
   msg_size += sizeof(msg->patch);   msg_size += sizeof(msg->patch);
Line 160
Line 93
 } }
  
 ProxyResultMsg* ProxyResultMsg::unpack(void *ptr) { ProxyResultMsg* ProxyResultMsg::unpack(void *ptr) {
  
   void *vmsg = CkAllocBuffer(ptr,sizeof(ProxyResultMsg));   void *vmsg = CkAllocBuffer(ptr,sizeof(ProxyResultMsg));
   ProxyResultMsg *msg = new (vmsg) ProxyResultMsg;   ProxyResultMsg *msg = new (vmsg) ProxyResultMsg;
   char *msg_cur = (char*)ptr;   char *msg_cur = (char*)ptr;
Line 894
Line 828
     int pids[proxySpanDim];     int pids[proxySpanDim];
     int npid = proxy->getSpanningTreeChild(pids);     int npid = proxy->getSpanningTreeChild(pids);
     if (npid) {     if (npid) {
       ProxyDataMsg *newmsg = new(PRIORITY_SIZE) ProxyDataMsg;         ProxyDataMsg *newmsg = (ProxyDataMsg *)CkCopyMsg((void **)&msg);     
       CkSetQueueing(newmsg, CK_QUEUEING_IFIFO); 
       *((int*) CkPriorityPtr(newmsg)) = *((int*) CkPriorityPtr(msg)); 
       newmsg->patch = msg->patch; 
       newmsg->flags = msg->flags; 
       newmsg->positionList = msg->positionList; 
       newmsg->avgPositionList = msg->avgPositionList; 
       //ProxyMgr::Object()->sendProxyData(newmsg,npid,pids); 
  
       //At the second level of the tree immediate messages are not needed       //At the second level of the tree immediate messages are not needed
       CProxy_ProxyMgr cp(CpvAccess(BOCclass_group).proxyMgr);       CProxy_ProxyMgr cp(CpvAccess(BOCclass_group).proxyMgr);
Line 914
Line 841
 } }
  
 void void
 ProxyMgr::sendProxyAll(ProxyAllMsg *msg, int pcnt, int *pids) { ProxyMgr::sendProxyAll(ProxyDataMsg *msg, int pcnt, int *pids) {
   CProxy_ProxyMgr cp(CpvAccess(BOCclass_group).proxyMgr);   CProxy_ProxyMgr cp(CpvAccess(BOCclass_group).proxyMgr);
   cp.recvImmediateProxyAll(msg,pcnt,pids);   cp.recvImmediateProxyAll(msg,pcnt,pids);
 } }
  
 void  void 
 ProxyMgr::recvProxyAll(ProxyAllMsg *msg) { ProxyMgr::recvProxyAll(ProxyDataMsg *msg) {
   ProxyPatch *proxy = (ProxyPatch *) PatchMap::Object()->patch(msg->patch);   ProxyPatch *proxy = (ProxyPatch *) PatchMap::Object()->patch(msg->patch);
   proxy->receiveAll(msg); // deleted in ProxyPatch::receiveAtoms()   proxy->receiveAll(msg); // deleted in ProxyPatch::receiveAtoms()
 } }
  
 void void
 ProxyMgr::recvImmediateProxyAll(ProxyAllMsg *msg) { ProxyMgr::recvImmediateProxyAll(ProxyDataMsg *msg) {
   ProxyPatch *proxy = (ProxyPatch *) PatchMap::Object()->patch(msg->patch);   ProxyPatch *proxy = (ProxyPatch *) PatchMap::Object()->patch(msg->patch);
   if (proxySendSpanning == 1) {   if (proxySendSpanning == 1) {
     // copy the message and send to spanning children     // copy the message and send to spanning children
     int pids[proxySpanDim];     int pids[proxySpanDim];
     int npid = proxy->getSpanningTreeChild(pids);     int npid = proxy->getSpanningTreeChild(pids);
     if (npid) {     if (npid) {
       ProxyAllMsg *newmsg = new(PRIORITY_SIZE) ProxyAllMsg;         ProxyDataMsg *newmsg = (ProxyDataMsg *)CkCopyMsg((void **)&msg);      
       CkSetQueueing(newmsg, CK_QUEUEING_IFIFO); 
       *((int*) CkPriorityPtr(newmsg)) = *((int*) CkPriorityPtr(msg)); 
       newmsg->patch = msg->patch; 
       newmsg->flags = msg->flags; 
       newmsg->positionList = msg->positionList; 
       newmsg->avgPositionList = msg->avgPositionList; 
 #ifdef MEM_OPT_VERSION 
       newmsg->extInfoList = msg->extInfoList; 
 #endif 
       ProxyMgr::Object()->sendProxyAll(newmsg,npid,pids);       ProxyMgr::Object()->sendProxyAll(newmsg,npid,pids);
     }     }
   }   }


Legend:
Removed in v.1.1058 
changed lines
 Added in v.1.1059



Made by using version 1.53 of cvs2html