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 AtomMap * Instance ()
 
static AtomMap * Object ()
 
static AtomMap * ObjectOnPe (int pe)
 

Protected Member Functions

 AtomMap (void)
 

Friends

class AtomMapper
 

Detailed Description

Definition at line 33 of file AtomMap.h.

Constructor & Destructor Documentation

◆ ~AtomMap()

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::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

◆ allocateMap()

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 }

◆ checkMap()

void AtomMap::checkMap ( void  )

Definition at line 145 of file AtomMap.C.

146 { }

◆ Instance()

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()

LocalID AtomMap::localID ( AtomID  id)
inline

◆ Object()

static AtomMap* AtomMap::Object ( )
inlinestatic

◆ ObjectOnPe()

static AtomMap* AtomMap::ObjectOnPe ( int  pe)
inlinestatic

Definition at line 38 of file AtomMap.h.

38  {
39  return CkpvAccessOther(AtomMap_instance, CmiRankOf(pe));
40  }

Friends And Related Function Documentation

◆ AtomMapper

friend class AtomMapper
friend

Definition at line 48 of file AtomMap.h.


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