29 return CkpvAccessOther(PatchMap_instance, CmiRankOf(pe));
34 double maxNumPatches,
int staticAtomAssignment,
35 int asplit,
int bsplit,
int csplit);
38 double maxNumPatches,
int staticAtomAssignment,
39 int replicaUniformPatchGrids,
int lcpo,
40 int asplit,
int bsplit,
int csplit);
50 CkpvAccess(PatchMap_patchMgr) = pmgr;
83 inline int pid(
int aIndex,
int bIndex,
int cIndex);
100 const PatchData &pd = patchData[
pid];
102 patchBounds_b[pd.bIndex*2+1],
103 patchBounds_c[pd.cIndex*2+1]);
114 inline int node(
int pid)
const {
return patchData[
pid].node; }
123 inline int cid(
int pid,
int i)
const {
return patchData[
pid].cids[i]; }
125 #ifdef MEM_OPT_VERSION 126 inline int numAtoms(
int pid)
const {
return patchData[
pid].numAtoms; }
127 inline void setNumAtoms(
int pid,
int num) { patchData[
pid].numAtoms = num; }
129 inline int numFixedAtoms(
int pid)
const {
return patchData[
pid].numFixedAtoms; }
130 inline void setNumFixedAtoms(
int pid,
int num) { patchData[
pid].numFixedAtoms = num; }
149 PatchID *downstream_ids = 0,
int *transform_ids = 0);
179 void pack(
char *buf,
int size);
188 short aIndex, bIndex, cIndex;
190 short numCidsAllocated;
192 #ifdef MEM_OPT_VERSION 195 unsigned short numAtoms;
196 unsigned short numFixedAtoms;
200 int nNodesWithPatches;
201 static int *nPatchesOnNode;
209 int aDim, bDim, cDim;
210 int aAway, bAway, cAway;
211 int aPeriodic, bPeriodic, cPeriodic;
212 int aMaxIndex, bMaxIndex, cMaxIndex;
213 BigReal aOrigin, bOrigin, cOrigin;
214 BigReal aLength, bLength, cLength;
221 std::vector<int> *tmpPatchAtomsList;
224 tmpPatchAtomsList =
new std::vector<int>[nPatches];
227 for(
int i=0; i<nPatches; i++){
228 tmpPatchAtomsList[i].clear();
230 delete [] tmpPatchAtomsList;
231 tmpPatchAtomsList = NULL;
234 return tmpPatchAtomsList;
251 return myHomePatch[
pid];
ScaledPosition center(int pid) const
int numNodesWithPatches(void)
PatchID assignToPatch(Position p, const Lattice &l)
int periodic_a(void) const
void initTmpPatchAtomsList()
BigReal max_a(int pid) const
static PatchMap * Object()
int periodic_c(void) const
void basePatchIDList(int pe, PatchIDList &)
HomePatchList * homePatchList()
int downstream(int pid1, int pid2)
int upstreamNeighbors(int pid, PatchID *neighbor_ids)
int index_a(int pid) const
int sizeGrid(ScaledPosition xmin, ScaledPosition xmax, const Lattice &lattice, BigReal patchSize, double maxNumPatches, int staticAtomAssignment, int asplit, int bsplit, int csplit)
Patch * patch(PatchID pid)
static PatchMap * ObjectOnPe(int pe)
HomePatch * homePatch(PatchID pid)
int gridsize_c(void) const
void unregisterPatch(PatchID pid, HomePatch *pptr)
void assignBaseNode(PatchID, NodeID)
void newCid(int pid, int cid)
int gridsize_a(void) const
int numPatches(void) const
int numCids(int pid) const
int oneAwayNeighbors(int pid, PatchID *neighbor_ids=0)
BigReal min_c(int pid) const
int numaway_c(void) const
void homePatchIDList(PatchIDList &)
int oneOrTwoAwayNeighbors(int pid, PatchID *neighbor_ids, PatchID *downstream_ids=0, int *transform_ids=0)
int index_b(int pid) const
std::vector< int > nbond_patchOrdering
std::vector< int > * getTmpPatchAtomsList()
int numaway_a(void) const
BigReal min_a(int pid) const
int periodic_b(void) const
void makePatches(ScaledPosition xmin, ScaledPosition xmax, const Lattice &lattice, BigReal patchSize, double maxNumPatches, int staticAtomAssignment, int replicaUniformPatchGrids, int lcpo, int asplit, int bsplit, int csplit)
int basenode(int pid) const
int index_c(int pid) const
int downstreamNeighbors(int pid, PatchID *neighbor_ids)
BigReal max_b(int pid) const
static void registerPatchMgr(PatchMgr *pmgr)
int pid(int aIndex, int bIndex, int cIndex)
int numaway_b(void) const
void assignNode(PatchID, NodeID)
BigReal max_c(int pid) const
int gridsize_b(void) const
int numPatchesOnNode(int node)
int cid(int pid, int i) const
void delTmpPatchAtomsList()
ScaledPosition origin(void) const
void registerPatch(PatchID pid, HomePatch *pptr)
void pack(char *buf, int size)
BigReal min_b(int pid) const
static PatchMap * Instance()
int getPatchesInOctet(int pid, PatchID *pids, int *transform_ids=0)