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

Compute Class Reference

#include <Compute.h>

Inheritance diagram for Compute:

ComputeHomePatch ComputeHomePatches ComputeHomeTuples< T, S, P > ComputeHomeTuples< AngleElem, Angle, AngleValue > ComputeHomeTuples< AngleElem, Angle, AngleValue > ComputeHomeTuples< BondElem, Bond, BondValue > ComputeHomeTuples< CrosstermElem, Crossterm, CrosstermValue > ComputeHomeTuples< CrosstermElem, Crossterm, CrosstermValue > ComputeHomeTuples< DihedralElem, Dihedral, DihedralValue > ComputeHomeTuples< DihedralElem, Dihedral, DihedralValue > ComputeHomeTuples< ImproperElem, Improper, ImproperValue > ComputePatch ComputePatchPair List of all members.

Public Member Functions

 Compute (ComputeID)
int type ()
virtual ~Compute ()
void setNumPatches (int n)
int getNumPatches ()
virtual void initialize ()
virtual void atomUpdate ()
virtual void patchReady (PatchID, int doneMigration, int seq)
virtual int noWork ()
virtual void doWork ()
int sequence (void)
virtual int priority (void)

Public Attributes

const ComputeID cid
LocalWorkMsg *const localWorkMsg

Protected Member Functions

void enqueueWork ()

Protected Attributes

int basePriority

Constructor & Destructor Documentation

Compute::Compute ComputeID   ) 
 

Definition at line 32 of file Compute.C.

References ComputeMap::Object(), PRIORITY_SIZE, and ComputeMap::type().

00032                             : basePriority(0), cid(c),
00033         localWorkMsg(new (PRIORITY_SIZE) LocalWorkMsg) { 
00034   doAtomUpdate = false;
00035   computeType = ComputeMap::Object()->type(c);
00036 }

Compute::~Compute  )  [virtual]
 

Definition at line 38 of file Compute.C.

00038                   {
00039   delete localWorkMsg;
00040 }


Member Function Documentation

virtual void Compute::atomUpdate void   )  [inline, virtual]
 

Reimplemented in ComputeHomePatch, ComputeHomePatches, ComputeHomeTuples< T, S, P >, ComputePatch, ComputePatchPair, ComputeHomeTuples< AngleElem, Angle, AngleValue >, ComputeHomeTuples< CrosstermElem, Crossterm, CrosstermValue >, ComputeHomeTuples< DihedralElem, Dihedral, DihedralValue >, ComputeHomeTuples< DihedralElem, Dihedral, DihedralValue >, ComputeHomeTuples< AngleElem, Angle, AngleValue >, ComputeHomeTuples< ImproperElem, Improper, ImproperValue >, ComputeHomeTuples< CrosstermElem, Crossterm, CrosstermValue >, and ComputeHomeTuples< BondElem, Bond, BondValue >.

Definition at line 56 of file Compute.h.

Referenced by ComputeHomePatches::atomUpdate(), and patchReady().

00056 {};

void Compute::doWork  )  [virtual]
 

Reimplemented in ComputeEwald, ComputeExt, ComputeFullDirect, ComputeGlobal, ComputeHomePatch, ComputeHomeTuples< T, S, P >, ComputePatch, ComputePatchPair, ComputePme, ComputeSelfTuples< T, S, P >, ComputeTclBC, ComputeHomeTuples< AngleElem, Angle, AngleValue >, ComputeHomeTuples< CrosstermElem, Crossterm, CrosstermValue >, ComputeHomeTuples< DihedralElem, Dihedral, DihedralValue >, ComputeHomeTuples< DihedralElem, Dihedral, DihedralValue >, ComputeHomeTuples< AngleElem, Angle, AngleValue >, ComputeHomeTuples< ImproperElem, Improper, ImproperValue >, ComputeHomeTuples< CrosstermElem, Crossterm, CrosstermValue >, ComputeHomeTuples< BondElem, Bond, BondValue >, ComputeSelfTuples< AngleElem, Angle, AngleValue >, ComputeSelfTuples< DihedralElem, Dihedral, DihedralValue >, ComputeSelfTuples< ImproperElem, Improper, ImproperValue >, ComputeSelfTuples< BondElem, Bond, BondValue >, and ComputeSelfTuples< CrosstermElem, Crossterm, CrosstermValue >.

Definition at line 80 of file Compute.C.

References DebugM.

Referenced by WorkDistrib::enqueueAngles(), WorkDistrib::enqueueBonds(), WorkDistrib::enqueueCrossterms(), WorkDistrib::enqueueDihedrals(), WorkDistrib::enqueueImpropers(), WorkDistrib::enqueuePme(), WorkDistrib::enqueueSelfA(), WorkDistrib::enqueueSelfB(), WorkDistrib::enqueueWork(), WorkDistrib::enqueueWorkA(), WorkDistrib::enqueueWorkB(), WorkDistrib::enqueueWorkC(), and WorkDistrib::messageEnqueueWork().

00080                      {
00081     DebugM(5,"Default Compute::doWork() called.\n");
00082 }

void Compute::enqueueWork  )  [protected]
 

Definition at line 42 of file Compute.C.

References DebugM, WorkDistrib::messageEnqueueWork(), and noWork().

Referenced by WorkDistrib::messageEnqueueWork(), and patchReady().

00042                           {
00043   if (!this) { DebugM(4,"This Compute is NULL!!!\n"); }
00044   if ( ! noWork() )
00045   {
00046     WorkDistrib::messageEnqueueWork(this);  // should be in ComputeMgr?
00047   }
00048 }

int Compute::getNumPatches  )  [inline]
 

Definition at line 50 of file Compute.h.

00050 { return (numPatches); };

virtual void Compute::initialize void   )  [inline, virtual]
 

Reimplemented in ComputeHomePatch, ComputeHomePatches, ComputeHomeTuples< T, S, P >, ComputeNonbondedPair, ComputeNonbondedSelf, ComputePatch, ComputePatchPair, ComputeSelfTuples< T, S, P >, ComputeHomeTuples< AngleElem, Angle, AngleValue >, ComputeHomeTuples< CrosstermElem, Crossterm, CrosstermValue >, ComputeHomeTuples< DihedralElem, Dihedral, DihedralValue >, ComputeHomeTuples< DihedralElem, Dihedral, DihedralValue >, ComputeHomeTuples< AngleElem, Angle, AngleValue >, ComputeHomeTuples< ImproperElem, Improper, ImproperValue >, ComputeHomeTuples< CrosstermElem, Crossterm, CrosstermValue >, ComputeHomeTuples< BondElem, Bond, BondValue >, ComputeSelfTuples< AngleElem, Angle, AngleValue >, ComputeSelfTuples< DihedralElem, Dihedral, DihedralValue >, ComputeSelfTuples< ImproperElem, Improper, ImproperValue >, ComputeSelfTuples< BondElem, Bond, BondValue >, and ComputeSelfTuples< CrosstermElem, Crossterm, CrosstermValue >.

Definition at line 53 of file Compute.h.

Referenced by ComputePatchPair::initialize(), ComputePatch::initialize(), and ComputeHomePatch::initialize().

00053 {};

int Compute::noWork  )  [virtual]
 

Reimplemented in ComputeNonbondedPair.

Definition at line 76 of file Compute.C.

Referenced by enqueueWork().

00076                     {
00077   return 0;
00078 }

void Compute::patchReady PatchID  ,
int  doneMigration,
int  seq
[virtual]
 

Definition at line 55 of file Compute.C.

References atomUpdate(), DebugM, and enqueueWork().

Referenced by Patch::positionsReady().

00055                                                                     { 
00056   if (doneMigration) { // If any patch has done migration - we must remap
00057     doAtomUpdate = true; 
00058   }
00059   sequenceNumber = seq;
00060 
00061   if (numPatches <= 0) {
00062       DebugM(5,"Compute::patchReady("<<patchID<<")-call not valid!\n");
00063   } else {
00064     if (! --patchReadyCounter) {
00065       patchReadyCounter = numPatches;
00066       if (doAtomUpdate) {
00067         atomUpdate();
00068         doAtomUpdate = false;
00069       }
00070       enqueueWork();
00071     }
00072   }
00073 }

virtual int Compute::priority void   )  [inline, virtual]
 

Definition at line 61 of file Compute.h.

Referenced by WorkDistrib::messageEnqueueWork().

00061 { return basePriority; }

int Compute::sequence void   )  [inline]
 

Definition at line 60 of file Compute.h.

Referenced by WorkDistrib::messageEnqueueWork(), ComputePme::sendData(), and ComputePme::sendPencils().

00060 { return sequenceNumber; }

void Compute::setNumPatches int  n  )  [inline]
 

Definition at line 49 of file Compute.h.

Referenced by ComputeHomePatch::ComputeHomePatch(), ComputePatch::ComputePatch(), ComputePatchPair::ComputePatchPair(), ComputeSelfTuples< CrosstermElem, Crossterm, CrosstermValue >::initialize(), ComputeHomeTuples< BondElem, Bond, BondValue >::initialize(), and ComputeHomePatches::initialize().

00049 { patchReadyCounter = numPatches = n; }

int Compute::type  )  [inline]
 

Definition at line 45 of file Compute.h.

Referenced by WorkDistrib::messageEnqueueWork().

00045 { return computeType; };


Member Data Documentation

int Compute::basePriority [protected]
 

Definition at line 37 of file Compute.h.

const ComputeID Compute::cid
 

Definition at line 41 of file Compute.h.

Referenced by ComputeMap::checkMap().

LocalWorkMsg* const Compute::localWorkMsg
 

Definition at line 43 of file Compute.h.

Referenced by WorkDistrib::enqueueAngles(), WorkDistrib::enqueueBonds(), WorkDistrib::enqueueCrossterms(), WorkDistrib::enqueueDihedrals(), WorkDistrib::enqueueImpropers(), WorkDistrib::enqueuePme(), WorkDistrib::enqueueSelfA(), WorkDistrib::enqueueSelfB(), WorkDistrib::enqueueWork(), WorkDistrib::enqueueWorkA(), WorkDistrib::enqueueWorkB(), WorkDistrib::enqueueWorkC(), and WorkDistrib::messageEnqueueWork().


The documentation for this class was generated from the following files:
Generated on Thu Jul 24 04:07:43 2008 for NAMD by  doxygen 1.3.9.1