Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

MigrateAtomsCombinedMsg Class Reference

#include <MigrateAtomsMsg.h>

List of all members.

Public Member Functions

 MigrateAtomsCombinedMsg (void)
 ~MigrateAtomsCombinedMsg (void)
void add (PatchID source, PatchID destination, MigrationList &m)
void distribute (void)

Static Public Member Functions

void * pack (MigrateAtomsCombinedMsg *msg)
MigrateAtomsCombinedMsgunpack (void *ptr)

Public Attributes

NodeID fromNodeID
ResizeArray< PatchIDsrcPatchID
ResizeArray< PatchIDdestPatchID
ResizeArray< int > numAtoms
int totalAtoms
MigrationList migrationList


Constructor & Destructor Documentation

MigrateAtomsCombinedMsg::MigrateAtomsCombinedMsg void   ) 
 

MigrateAtomsCombinedMsg::~MigrateAtomsCombinedMsg void   )  [inline]
 

Definition at line 56 of file MigrateAtomsMsg.h.

00056 { };


Member Function Documentation

void MigrateAtomsCombinedMsg::add PatchID  source,
PatchID  destination,
MigrationList m
 

Definition at line 47 of file MigrateAtomsMsg.C.

References ResizeArray< Elem >::add(), migrationList, MigrationList, numAtoms, ResizeArray< Elem >::size(), and totalAtoms.

Referenced by PatchMgr::sendMigrationMsgs().

00048 {
00049   srcPatchID.add(source);
00050   destPatchID.add(destination);
00051   int n = m.size();
00052   numAtoms.add(n);
00053   totalAtoms += n;
00054   for ( int i = 0; i < n; ++i )
00055   {
00056     migrationList.add(m[i]);
00057   }
00058 }

void MigrateAtomsCombinedMsg::distribute void   ) 
 

Definition at line 61 of file MigrateAtomsMsg.C.

References DebugM, HomePatch::depositMigration(), MigrateAtomsMsg::destPatchID, MigrateAtomsMsg::fromNodeID, PatchMap::homePatch(), j, migrationList, MigrateAtomsMsg::migrationList, numAtoms, PatchMap::Object(), ResizeArray< Elem >::resize(), ResizeArray< Elem >::size(), and MigrateAtomsMsg::srcPatchID.

Referenced by PatchMgr::recvMigrateAtomsCombined().

00062 {
00063   int n = srcPatchID.size();
00064   int m = 0;
00065   for ( int i = 0; i < n; ++i )
00066   {
00067     MigrateAtomsMsg *msg = new MigrateAtomsMsg;
00068     msg->fromNodeID = fromNodeID;
00069     msg->srcPatchID = srcPatchID[i];
00070     msg->destPatchID = destPatchID[i];
00071     int l = numAtoms[i];
00072     {
00073       DebugM(3,"Distributing " << l << " atoms to patch " << msg->destPatchID << "\n");
00074       msg->migrationList.resize(l);
00075       for ( int j = 0; j < l; ++j ) msg->migrationList[j] = migrationList[m+j];
00076       m += l;
00077     }
00078     PatchMap::Object()->homePatch(msg->destPatchID)->depositMigration(msg);
00079   }
00080 }

void* MigrateAtomsCombinedMsg::pack MigrateAtomsCombinedMsg msg  )  [static]
 

MigrateAtomsCombinedMsg* MigrateAtomsCombinedMsg::unpack void *  ptr  )  [static]
 


Member Data Documentation

ResizeArray<PatchID> MigrateAtomsCombinedMsg::destPatchID
 

Definition at line 50 of file MigrateAtomsMsg.h.

NodeID MigrateAtomsCombinedMsg::fromNodeID
 

Definition at line 48 of file MigrateAtomsMsg.h.

MigrationList MigrateAtomsCombinedMsg::migrationList
 

Definition at line 53 of file MigrateAtomsMsg.h.

Referenced by add(), and distribute().

ResizeArray<int> MigrateAtomsCombinedMsg::numAtoms
 

Definition at line 51 of file MigrateAtomsMsg.h.

Referenced by add(), and distribute().

ResizeArray<PatchID> MigrateAtomsCombinedMsg::srcPatchID
 

Definition at line 49 of file MigrateAtomsMsg.h.

Referenced by PatchMgr::recvMigrateAtomsCombined().

int MigrateAtomsCombinedMsg::totalAtoms
 

Definition at line 52 of file MigrateAtomsMsg.h.

Referenced by add().


The documentation for this class was generated from the following files:
Generated on Mon Nov 23 04:59:49 2009 for NAMD by  doxygen 1.3.9.1