#include <PmeSolver.h>
|
| PmePencilXMap (int ia, int ib, int width, 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) |
|
Definition at line 35 of file PmeSolver.h.
◆ PmePencilXMap()
PmePencilXMap::PmePencilXMap |
( |
int |
ia, |
|
|
int |
ib, |
|
|
int |
width, |
|
|
const std::vector< int > & |
pes |
|
) |
| |
|
inline |
Definition at line 37 of file PmeSolver.h.
37 : ia(ia), ib(ib), width(width), pes(pes) {}
◆ populateInitial()
virtual void PmePencilXMap::populateInitial |
( |
int |
, |
|
|
CkArrayOptions & |
, |
|
|
void * |
msg, |
|
|
CkArrMgr * |
mgr |
|
) |
| |
|
inlinevirtual |
Definition at line 47 of file PmeSolver.h.
References NAMD_bug(), and procNum().
48 for (
int i=0;i < pes.size();i++) {
49 if (pes[i] == CkMyPe()) {
50 if ( msg == NULL )
NAMD_bug(
"PmePencilXMap::populateInitial, multiple pencils on a pe?");
51 CkArrayIndex3D ai(0,0,0);
52 ai.data()[ib] = i / width;
53 ai.data()[ia] = i % width;
55 if (
procNum(0,ai) != CkMyPe() )
NAMD_bug(
"PmePencilXMap::populateInitial, map is inconsistent");
56 mgr->insertInitial(ai,msg);
61 if (msg != NULL) CkFreeMsg(msg);
virtual int procNum(int, const CkArrayIndex &idx)
void NAMD_bug(const char *err_msg)
◆ procNum()
virtual int PmePencilXMap::procNum |
( |
int |
, |
|
|
const CkArrayIndex & |
idx |
|
) |
| |
|
inlinevirtual |
Definition at line 41 of file PmeSolver.h.
References NAMD_bug().
Referenced by populateInitial().
42 int ind = idx.data()[ia] + idx.data()[ib] * width;
43 if (ind < 0 || ind >= pes.size())
44 NAMD_bug(
"PmePencilXMap::procNum, index out of bounds");
void NAMD_bug(const char *err_msg)
◆ registerArray()
int PmePencilXMap::registerArray |
( |
CkArrayIndex & |
numElements, |
|
|
CkArrayID |
aid |
|
) |
| |
|
inline |
The documentation for this class was generated from the following file: