NAMD
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
MigrateAtomsCombinedMsg Class Reference

#include <MigrateAtomsMsg.h>

Inheritance diagram for MigrateAtomsCombinedMsg:

Public Member Functions

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

Static Public Member Functions

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

Public Attributes

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

Detailed Description

Definition at line 44 of file MigrateAtomsMsg.h.

Constructor & Destructor Documentation

◆ MigrateAtomsCombinedMsg()

MigrateAtomsCombinedMsg::MigrateAtomsCombinedMsg ( void  )

◆ ~MigrateAtomsCombinedMsg()

MigrateAtomsCombinedMsg::~MigrateAtomsCombinedMsg ( void  )
inline

Definition at line 55 of file MigrateAtomsMsg.h.

55 { };

Member Function Documentation

◆ add()

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

Definition at line 40 of file MigrateAtomsMsg.C.

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

Referenced by PatchMgr::sendMigrationMsgs().

41 {
42  srcPatchID.add(source);
43  destPatchID.add(destination);
44  int n = m.size();
45  numAtoms.add(n);
46  totalAtoms += n;
47  for ( int i = 0; i < n; ++i )
48  {
49  migrationList.add(m[i]);
50  }
51 }
ResizeArray< int > numAtoms
ResizeArray< PatchID > destPatchID
int size(void) const
Definition: ResizeArray.h:131
int add(const Elem &elem)
Definition: ResizeArray.h:101
ResizeArray< PatchID > srcPatchID
MigrationList migrationList

◆ distribute()

void MigrateAtomsCombinedMsg::distribute ( void  )

Definition at line 54 of file MigrateAtomsMsg.C.

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

Referenced by PatchMgr::recvMigrateAtomsCombined().

55 {
56  int n = srcPatchID.size();
57  int m = 0;
58  for ( int i = 0; i < n; ++i )
59  {
61  msg->fromNodeID = fromNodeID;
62  msg->srcPatchID = srcPatchID[i];
63  msg->destPatchID = destPatchID[i];
64  int l = numAtoms[i];
65  {
66  DebugM(3,"Distributing " << l << " atoms to patch " << msg->destPatchID << "\n");
67  msg->migrationList.resize(l);
68  for ( int j = 0; j < l; ++j ) msg->migrationList[j] = migrationList[m+j];
69  m += l;
70  }
72  }
73  if ( m != totalAtoms ) NAMD_bug("MigrateAtomsCombinedMsg::distribute bad atom count");
74 }
void depositMigration(MigrateAtomsMsg *)
Definition: HomePatch.C:5956
ResizeArray< int > numAtoms
ResizeArray< PatchID > destPatchID
int size(void) const
Definition: ResizeArray.h:131
static PatchMap * Object()
Definition: PatchMap.h:27
MigrationList migrationList
#define DebugM(x, y)
Definition: Debug.h:75
HomePatch * homePatch(PatchID pid)
Definition: PatchMap.h:249
void resize(int i)
Definition: ResizeArray.h:84
void NAMD_bug(const char *err_msg)
Definition: common.C:195
ResizeArray< PatchID > srcPatchID
MigrationList migrationList

◆ pack()

static void* MigrateAtomsCombinedMsg::pack ( MigrateAtomsCombinedMsg msg)
static

◆ unpack()

static MigrateAtomsCombinedMsg* MigrateAtomsCombinedMsg::unpack ( void *  ptr)
static

Member Data Documentation

◆ destPatchID

ResizeArray<PatchID> MigrateAtomsCombinedMsg::destPatchID

Definition at line 49 of file MigrateAtomsMsg.h.

Referenced by add(), and distribute().

◆ fromNodeID

NodeID MigrateAtomsCombinedMsg::fromNodeID

Definition at line 47 of file MigrateAtomsMsg.h.

Referenced by distribute().

◆ migrationList

MigrationList MigrateAtomsCombinedMsg::migrationList

Definition at line 52 of file MigrateAtomsMsg.h.

Referenced by add(), and distribute().

◆ numAtoms

ResizeArray<int> MigrateAtomsCombinedMsg::numAtoms

Definition at line 50 of file MigrateAtomsMsg.h.

Referenced by add(), and distribute().

◆ srcPatchID

ResizeArray<PatchID> MigrateAtomsCombinedMsg::srcPatchID

Definition at line 48 of file MigrateAtomsMsg.h.

Referenced by add(), distribute(), and PatchMgr::recvMigrateAtomsCombined().

◆ totalAtoms

int MigrateAtomsCombinedMsg::totalAtoms

Definition at line 51 of file MigrateAtomsMsg.h.

Referenced by add(), and distribute().


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