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

CollectionMgr Class Reference

#include <CollectionMgr.h>

Inheritance diagram for CollectionMgr:

BOCclass List of all members.

Public Member Functions

 CollectionMgr (SlaveInitMsg *msg)
 ~CollectionMgr (void)
void submitPositions (int seq, FullAtomList &a, Lattice l, int prec)
void submitVelocities (int seq, int zero, FullAtomList &a)
void sendDataStream (const char *)
void setCollectionMaster (SlaveInitMsg *msg)

Static Public Member Functions

CollectionMgrObject ()

Constructor & Destructor Documentation

CollectionMgr::CollectionMgr SlaveInitMsg msg  ) 
 

Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 by The Board of Trustees of the University of Illinois. All rights reserved.

Definition at line 18 of file CollectionMgr.C.

References DebugM.

00018                                               : master(msg->master)
00019 {
00020   delete msg;
00021   if (CkpvAccess(CollectionMgr_instance) == 0) {
00022     CkpvAccess(CollectionMgr_instance) = this;
00023   } else {
00024     DebugM(1, "CollectionMgr::CollectionMgr() - another instance of CollectionMgr exists!\n");
00025   }
00026 }

CollectionMgr::~CollectionMgr void   ) 
 

Definition at line 29 of file CollectionMgr.C.

00030 {
00031 }


Member Function Documentation

CollectionMgr* CollectionMgr::Object  )  [inline, static]
 

Definition at line 30 of file CollectionMgr.h.

Referenced by ComputeStir::doForce(), and datastream::endd().

00030                                  { 
00031     return CkpvAccess(CollectionMgr_instance); 
00032   }

void CollectionMgr::sendDataStream const char *   ) 
 

Definition at line 84 of file CollectionMgr.C.

References ResizeArray< Elem >::begin(), DataStreamMsg::data, and ResizeArray< Elem >::resize().

Referenced by ComputeStir::doForce(), and datastream::endd().

00084                                                    {
00085   DataStreamMsg *msg = new DataStreamMsg;
00086   msg->data.resize(strlen(data)+1);
00087   strcpy(msg->data.begin(),data);
00088   CProxy_CollectionMaster cm(master);
00089   cm.receiveDataStream(msg);
00090 }

void CollectionMgr::setCollectionMaster SlaveInitMsg msg  )  [inline]
 

Definition at line 125 of file CollectionMgr.h.

References SlaveInitMsg::master.

00125                                              { 
00126     master = msg->master; 
00127     delete msg;
00128   }

void CollectionMgr::submitPositions int  seq,
FullAtomList a,
Lattice  l,
int  prec
 

Definition at line 34 of file CollectionMgr.C.

References CollectionMgr::CollectVectorInstance::aid, CollectVectorMsg::aid, AtomIDList, CollectionMgr::CollectVectorInstance::data, CollectVectorMsg::data, CollectionMgr::CollectVectorInstance::fdata, CollectVectorMsg::fdata, CollectionMgr::CollectVectorInstance::free(), FullAtomList, Node::molecule, Node::Object(), PositionList, Lattice::reverse_transform(), CollectionMgr::CollectVectorInstance::seq, CollectVectorMsg::seq, ResizeArray< Elem >::size(), and CollectionMgr::CollectVectorSequence::submitData().

Referenced by Sequencer::submitCollections().

00036 {
00037   Molecule *mol = Node::Object()->molecule;
00038   int numAtoms = a.size();
00039   AtomIDList aid(numAtoms);
00040   PositionList d(numAtoms);
00041   for ( int i=0; i<numAtoms; ++i ) {
00042     aid[i] = a[i].id;
00043     d[i] = l.reverse_transform(a[i].position,a[i].transform);
00044   }
00045   CollectVectorInstance *c;
00046   if ( ( c = positions.submitData(seq,aid,d,prec) ) )
00047   {
00048     CollectVectorMsg * msg = new CollectVectorMsg;
00049     msg->seq = c->seq;
00050     msg->aid = c->aid;
00051     msg->data = c->data;
00052     msg->fdata = c->fdata;
00053     CProxy_CollectionMaster cm(master);
00054     cm.receivePositions(msg);
00055     c->free();
00056   }
00057 }

void CollectionMgr::submitVelocities int  seq,
int  zero,
FullAtomList a
 

Definition at line 60 of file CollectionMgr.C.

References CollectionMgr::CollectVectorInstance::aid, CollectVectorMsg::aid, AtomIDList, CollectionMgr::CollectVectorInstance::data, CollectVectorMsg::data, CollectionMgr::CollectVectorInstance::free(), FullAtomList, PositionList, CollectionMgr::CollectVectorInstance::seq, CollectVectorMsg::seq, ResizeArray< Elem >::size(), and CollectionMgr::CollectVectorSequence::submitData().

Referenced by Sequencer::submitCollections().

00061 {
00062   int numAtoms = a.size();
00063   AtomIDList aid(numAtoms);
00064   PositionList d(numAtoms);
00065   for ( int i=0; i<numAtoms; ++i ) {
00066     aid[i] = a[i].id;
00067     if ( zero ) d[i] = 0.;
00068     else d[i] = a[i].velocity;
00069   }
00070   CollectVectorInstance *c;
00071   if ( ( c = velocities.submitData(seq,aid,d) ) )
00072   {
00073     CollectVectorMsg * msg = new CollectVectorMsg;
00074     msg->seq = c->seq;
00075     msg->aid = c->aid;
00076     msg->data = c->data;
00077     CProxy_CollectionMaster cm(master);
00078     cm.receiveVelocities(msg);
00079     c->free();
00080   }
00081 }


The documentation for this class was generated from the following files:
Generated on Sat Nov 7 04:07:52 2009 for NAMD by  doxygen 1.3.9.1