NAMD
Public Member Functions | List of all members
PmePencilXYMap Class Reference

#include <PmeSolver.h>

Inheritance diagram for PmePencilXYMap:

Public Member Functions

 PmePencilXYMap (const std::vector< int > &pes)
 
int registerArray (CkArrayIndex &numElements, CkArrayID aid)
 
virtual int procNum (int, const CkArrayIndex &idx)
 
virtual void populateInitial (int, CkArrayOptions &, void *msg, CkArrMgr *mgr)
 

Detailed Description

Definition at line 72 of file PmeSolver.h.

Constructor & Destructor Documentation

◆ PmePencilXYMap()

PmePencilXYMap::PmePencilXYMap ( const std::vector< int > &  pes)
inline

Definition at line 74 of file PmeSolver.h.

74 : pes(pes) {}

Member Function Documentation

◆ populateInitial()

virtual void PmePencilXYMap::populateInitial ( int  ,
CkArrayOptions &  ,
void *  msg,
CkArrMgr *  mgr 
)
inlinevirtual

Definition at line 84 of file PmeSolver.h.

References NAMD_bug(), and procNum().

84  {
85  for (int i=0;i < pes.size();i++) {
86  if (pes[i] == CkMyPe()) {
87  if ( msg == NULL ) NAMD_bug("PmePencilXYMap::populateInitial, multiple pencils on a pe?");
88  CkArrayIndex3D ai(0,0,0);
89  ai.data()[2] = i;
90  if ( procNum(0,ai) != CkMyPe() ) NAMD_bug("PmePencilXYMap::populateInitial, map is inconsistent");
91  mgr->insertInitial(ai, msg);
92  msg = NULL;
93  }
94  }
95  mgr->doneInserting();
96  if (msg != NULL) CkFreeMsg(msg);
97  }
void NAMD_bug(const char *err_msg)
Definition: common.C:195
virtual int procNum(int, const CkArrayIndex &idx)
Definition: PmeSolver.h:78

◆ procNum()

virtual int PmePencilXYMap::procNum ( int  ,
const CkArrayIndex &  idx 
)
inlinevirtual

Definition at line 78 of file PmeSolver.h.

References NAMD_bug().

Referenced by populateInitial().

78  {
79  int ind = idx.data()[2];
80  if (ind < 0 || ind >= pes.size())
81  NAMD_bug("PmePencilXYMap::procNum, index out of bounds");
82  return pes[ind];
83  }
void NAMD_bug(const char *err_msg)
Definition: common.C:195

◆ registerArray()

int PmePencilXYMap::registerArray ( CkArrayIndex &  numElements,
CkArrayID  aid 
)
inline

Definition at line 75 of file PmeSolver.h.

75  {
76  return 0;
77  }

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