Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

NodePmeMgr Class Reference

List of all members.

Public Member Functions

 NodePmeMgr ()
 ~NodePmeMgr ()
void initialize ()
void recvTrans (PmeTransMsg *)
void recvUntrans (PmeUntransMsg *)
void registerXPencil (CkArrayIndex3D, PmeXPencil *)
void registerYPencil (CkArrayIndex3D, PmeYPencil *)
void registerZPencil (CkArrayIndex3D, PmeZPencil *)
void recvXTrans (PmeTransMsg *)
void recvYTrans (PmeTransMsg *)
void recvYUntrans (PmeUntransMsg *)
void recvZGrid (PmeGridMsg *)
void recvZUntrans (PmeUntransMsg *)
void recvPencilMapProxies (CProxy_PmePencilMap _xm, CProxy_PmePencilMap _ym, CProxy_PmePencilMap _zm)

Public Attributes

CProxy_PmePencilMap xm
CProxy_PmePencilMap ym
CProxy_PmePencilMap zm

Friends

class ComputePmeMgr

Constructor & Destructor Documentation

NodePmeMgr::NodePmeMgr  ) 
 

Definition at line 483 of file ComputePme.C.

00483                        {
00484   mgrObjects = new ComputePmeMgr*[CkMyNodeSize()];
00485 }

NodePmeMgr::~NodePmeMgr  ) 
 

Definition at line 487 of file ComputePme.C.

00487                         {
00488   delete [] mgrObjects;
00489 }


Member Function Documentation

void NodePmeMgr::initialize  ) 
 

Definition at line 491 of file ComputePme.C.

00491                             {
00492   CProxy_ComputePmeMgr proxy = CkpvAccess(BOCclass_group).computePmeMgr;
00493   mgrObjects[CkMyRank()] = proxy.ckLocalBranch();
00494   if ( CkMyRank() == 0 ) {
00495     mgrProxy = proxy;
00496     mgrObject = proxy.ckLocalBranch();
00497   }
00498 }

void NodePmeMgr::recvPencilMapProxies CProxy_PmePencilMap  _xm,
CProxy_PmePencilMap  _ym,
CProxy_PmePencilMap  _zm
[inline]
 

Definition at line 464 of file ComputePme.C.

References xm, ym, and zm.

00464                                                                                                       {
00465       xm=_xm; ym=_ym; zm=_zm;
00466   }

void NodePmeMgr::recvTrans PmeTransMsg  ) 
 

Definition at line 500 of file ComputePme.C.

References ComputePmeMgr::fwdSharedTrans().

00500                                            {
00501   mgrObject->fwdSharedTrans(msg);
00502 }

void NodePmeMgr::recvUntrans PmeUntransMsg  ) 
 

Definition at line 504 of file ComputePme.C.

References ComputePmeMgr::fwdSharedUntrans().

00504                                                {
00505   mgrObject->fwdSharedUntrans(msg);
00506 }

void NodePmeMgr::recvXTrans PmeTransMsg  ) 
 

Definition at line 3720 of file ComputePme.C.

References PmeTransMsg::destElem, and PmeXPencil::node_process_trans().

03720                                             {
03721   //  CkPrintf("[%d] NodePmeMgr recvXTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
03722   PmeXPencil *target=xPencilObj.get(msg->destElem);
03723 #if DEBUG_NODE_PAR_RECV
03724   if(target == NULL)
03725     CkAbort("xpencil in recvXTrans not found, debug registeration");
03726 #endif  
03727     target->node_process_trans(msg);
03728   delete msg;
03729 }

void NodePmeMgr::recvYTrans PmeTransMsg  ) 
 

Definition at line 3732 of file ComputePme.C.

References PmeTransMsg::destElem, and PmeYPencil::node_process_trans().

03732                                             {
03733   //  CkPrintf("[%d] NodePmeMgr recvYTrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
03734   PmeYPencil *target=yPencilObj.get(msg->destElem);
03735 #if DEBUG_NODE_PAR_RECV
03736   if(target == NULL)
03737     CkAbort("ypencil in recvYTrans not found, debug registeration");
03738 #endif  
03739     target->node_process_trans(msg);
03740   delete msg;
03741  }

void NodePmeMgr::recvYUntrans PmeUntransMsg  ) 
 

Definition at line 3742 of file ComputePme.C.

References PmeUntransMsg::destElem, and PmeYPencil::node_process_untrans().

03742                                                 {
03743   //  CkPrintf("[%d] NodePmeMgr recvYUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
03744   PmeYPencil *target=yPencilObj.get(msg->destElem);
03745 #if DEBUG_NODE_PAR_RECV  
03746   if(target == NULL)
03747     CkAbort("ypencil in recvYUntrans not found, debug registeration");
03748 #endif  
03749     target->node_process_untrans(msg);
03750   delete msg;
03751  }

void NodePmeMgr::recvZGrid PmeGridMsg  ) 
 

Definition at line 3763 of file ComputePme.C.

References PmeGridMsg::destElem, and PmeZPencil::node_process_grid().

03763                                           {
03764   //CkPrintf("[%d] NodePmeMgr %p recvGrid for %d %d %d\n",CkMyPe(),this,msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
03765   PmeZPencil *target=zPencilObj.get(msg->destElem);
03766 #if DEBUG_NODE_PAR_RECV
03767   if(target == NULL){
03768     CkAbort("zpencil in recvZGrid not found, debug registeration");
03769   }
03770 #endif
03771   target->node_process_grid(msg); //msg is stored inside node_proces_grid
03772 }

void NodePmeMgr::recvZUntrans PmeUntransMsg  ) 
 

Definition at line 3752 of file ComputePme.C.

References PmeUntransMsg::destElem, and PmeZPencil::node_process_untrans().

03752                                                 {
03753   //CkPrintf("[%d] NodePmeMgr recvZUntrans for %d %d %d\n",CkMyPe(),msg->destElem.index[0],msg->destElem.index[1],msg->destElem.index[2]);
03754   PmeZPencil *target=zPencilObj.get(msg->destElem);
03755 #if DEBUG_NODE_PAR_RECV
03756   if(target == NULL)
03757     CkAbort("zpencil in recvZUntrans not found, debug registeration");
03758 #endif
03759   target->node_process_untrans(msg);
03760   delete msg;
03761 }

void NodePmeMgr::registerXPencil CkArrayIndex3D  ,
PmeXPencil
 

Definition at line 508 of file ComputePme.C.

00509 {
00510   CmiLock(ComputePmeMgr::fftw_plan_lock);
00511   xPencilObj.put(idx)=obj;
00512   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00513 }

void NodePmeMgr::registerYPencil CkArrayIndex3D  ,
PmeYPencil
 

Definition at line 514 of file ComputePme.C.

00515 {
00516   CmiLock(ComputePmeMgr::fftw_plan_lock);
00517   yPencilObj.put(idx)=obj;
00518   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00519 }

void NodePmeMgr::registerZPencil CkArrayIndex3D  ,
PmeZPencil
 

Definition at line 520 of file ComputePme.C.

00521 {
00522   CmiLock(ComputePmeMgr::fftw_plan_lock);
00523   zPencilObj.put(idx)=obj;
00524   CmiUnlock(ComputePmeMgr::fftw_plan_lock);
00525 }


Friends And Related Function Documentation

friend class ComputePmeMgr [friend]
 

Definition at line 449 of file ComputePme.C.


Member Data Documentation

CProxy_PmePencilMap NodePmeMgr::xm
 

Definition at line 467 of file ComputePme.C.

Referenced by recvPencilMapProxies().

CProxy_PmePencilMap NodePmeMgr::ym
 

Definition at line 468 of file ComputePme.C.

Referenced by recvPencilMapProxies().

CProxy_PmePencilMap NodePmeMgr::zm
 

Definition at line 469 of file ComputePme.C.

Referenced by recvPencilMapProxies(), and ComputePme::sendPencils().


The documentation for this class was generated from the following file:
Generated on Fri May 25 04:07:23 2012 for NAMD by  doxygen 1.3.9.1