NAMD
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
AtomMap Class Reference

#include <AtomMap.h>

Public Member Functions

 ~AtomMap (void)
 
void checkMap ()
 
void allocateMap (int nAtomIDs)
 
LocalID localID (AtomID id)
 

Static Public Member Functions

static AtomMapInstance ()
 
static AtomMapObject ()
 

Protected Member Functions

 AtomMap (void)
 

Friends

class AtomMapper
 

Detailed Description

Definition at line 32 of file AtomMap.h.

Constructor & Destructor Documentation

AtomMap::~AtomMap ( void  )

Definition at line 150 of file AtomMap.C.

151 {
152  delete [] localIDTable; // Delete on a NULL pointer should be ok
153 
154 #ifdef MEM_OPT_VERSION
155  delete [] entries;
156 #endif
157 }
AtomMap::AtomMap ( void  )
protected

Definition at line 133 of file AtomMap.C.

Referenced by Instance().

134 {
135  localIDTable = NULL;
136  tableSz = 0;
137 
138 #ifdef MEM_OPT_VERSION
139  entries = NULL;
140  onlyUseTbl = false;
141 #endif
142 }

Member Function Documentation

void AtomMap::allocateMap ( int  nAtomIDs)

Definition at line 161 of file AtomMap.C.

References notUsed.

Referenced by Node::resendMolecule2(), and Node::startup().

162 {
163 #ifdef MEM_OPT_VERSION
164  if ( nAtomIds > MAXNUMATOMS ) {
165  entries = new AtomMapEntry*[MAXNUMATOMS];
166  memset(entries,0,MAXNUMATOMS*sizeof(AtomMapEntry*));
167  return;
168  } // else use non-memopt strategy
169  onlyUseTbl = true;
170 #endif
171  if ( nAtomIds <= tableSz ) return;
172  LocalID *oldTable = localIDTable;
173  localIDTable = new LocalID[nAtomIds];
174  for(int i=0; i < tableSz; i++)
175  localIDTable[i] = oldTable[i];
176  for(int i=tableSz; i < nAtomIds; i++)
177  localIDTable[i].pid = localIDTable[i].index = notUsed;
178  delete [] oldTable;
179  tableSz = nAtomIds;
180 }
void AtomMap::checkMap ( void  )

Definition at line 145 of file AtomMap.C.

146 { }
AtomMap * AtomMap::Instance ( )
static

Definition at line 125 of file AtomMap.C.

References AtomMap().

Referenced by Node::Node().

125  {
126  if (CkpvAccess(AtomMap_instance) == 0) {
127  CkpvAccess(AtomMap_instance) = new AtomMap; // this is never deleted!
128  }
129  return CkpvAccess(AtomMap_instance);
130 }
AtomMap(void)
Definition: AtomMap.C:133
LocalID AtomMap::localID ( AtomID  id)
inline

Definition at line 74 of file AtomMap.h.

Referenced by ComputeHomeTuples< TholeElem, Thole, TholeValue >::loadTuples(), PatchMgr::moveAtom(), and ComputeGlobal::recvResults().

75 {
76  return localIDTable[id];
77 }
static AtomMap* AtomMap::Object ( )
inlinestatic

Friends And Related Function Documentation

friend class AtomMapper
friend

Definition at line 44 of file AtomMap.h.


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