NAMD
Public Member Functions | List of all members
PmePencilMap Class Reference
Inheritance diagram for PmePencilMap:

Public Member Functions

 PmePencilMap (int i_a, int i_b, int n_b, int n, int *d)
 
virtual int registerArray (CkArrayIndexMax &, CkArrayID)
 
virtual int procNum (int, const CkArrayIndex &i)
 
virtual void populateInitial (int, CkArrayIndexMax &, void *msg, CkArrMgr *mgr)
 

Detailed Description

Definition at line 198 of file ComputePme.C.

Constructor & Destructor Documentation

◆ PmePencilMap()

PmePencilMap::PmePencilMap ( int  i_a,
int  i_b,
int  n_b,
int  n,
int *  d 
)
inline

Definition at line 200 of file ComputePme.C.

201  : ia(i_a), ib(i_b), nb(n_b),
202  size(n), data(newcopyint(n,d)) {
203  }

Member Function Documentation

◆ populateInitial()

virtual void PmePencilMap::populateInitial ( int  ,
CkArrayIndexMax &  ,
void *  msg,
CkArrMgr *  mgr 
)
inlinevirtual

Definition at line 212 of file ComputePme.C.

References NAMD_bug().

212  {
213  int mype = CkMyPe();
214  for ( int i=0; i < size; ++i ) {
215  if ( data[i] == mype ) {
216  CkArrayIndex3D ai(0,0,0);
217  ai.data()[ia] = i / nb;
218  ai.data()[ib] = i % nb;
219  if ( procNum(0,ai) != mype ) NAMD_bug("PmePencilMap is inconsistent");
220  if ( ! msg ) NAMD_bug("PmePencilMap multiple pencils on a pe?");
221  mgr->insertInitial(ai,msg);
222  msg = 0;
223  }
224  }
225  mgr->doneInserting();
226  if ( msg ) CkFreeMsg(msg);
227  }
void NAMD_bug(const char *err_msg)
Definition: common.C:195
virtual int procNum(int, const CkArrayIndex &i)
Definition: ComputePme.C:208

◆ procNum()

virtual int PmePencilMap::procNum ( int  ,
const CkArrayIndex &  i 
)
inlinevirtual

Definition at line 208 of file ComputePme.C.

208  {
209  //Return the home processor number for this element of this array
210  return data[ i.data()[ia] * nb + i.data()[ib] ];
211  }

◆ registerArray()

virtual int PmePencilMap::registerArray ( CkArrayIndexMax &  ,
CkArrayID   
)
inlinevirtual

Definition at line 204 of file ComputePme.C.

204  {
205  //Return an ``arrayHdl'', given some information about the array
206  return 0;
207  }

The documentation for this class was generated from the following file: