Emdee
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Processor Class Reference

The Processor class holds information about the current processor and neighboring processors. Its implementation depends on whether the program is compiled with MPI or not. More...

#include <processor_mpi.h>

Collaboration diagram for Processor:
Collaboration graph
[legend]

Public Member Functions

 Processor (MoleculeSystem *moleculeSystem)
 
void setupProcessors ()
 
int rank ()
 
void communicateAtoms ()
 
const vector
< MoleculeSystemCell * > & 
localCells () const
 
const vector
< MoleculeSystemCell * > & 
localAndGhostCells () const
 
bool shouldSendFirst (const irowvec &direction)
 
int nAtoms ()
 
int nProcessors ()
 
void clearForcesInNeighborCells ()
 
 Processor (MoleculeSystem *moleculeSystem)
 
void setupProcessors ()
 
int rank ()
 
void communicateAtoms ()
 
const vector
< MoleculeSystemCell * > & 
localCells () const
 
const vector
< MoleculeSystemCell * > & 
localAndGhostCells () const
 
bool shouldSendFirst (const irowvec &direction)
 
int nAtoms ()
 
int nProcessors ()
 
void communicateForces ()
 
void clearForcesInNeighborCells ()
 

Protected Member Functions

void receiveAtomsFromNeighbor (const ProcessorNeighbor &neighbor)
 
void sendAtomsToNeighbor (const ProcessorNeighbor &neighbor)
 

Protected Attributes

MoleculeSystemm_moleculeSystem
 
int m_nProcessors
 
int m_nProcessorsX
 
int m_nProcessorsY
 
int m_nProcessorsZ
 
int m_coordinateX
 
int m_coordinateY
 
int m_coordinateZ
 
Range m_cellRangeX
 
Range m_cellRangeY
 
Range m_cellRangeZ
 
vector< MoleculeSystemCell * > m_localCells
 
vector< MoleculeSystemCell * > m_localAndGhostCells
 
double m_totalCommunicationTime
 
double m_pureCommunicationTime
 
vector< ProcessorNeighborm_sendNeighbors
 
vector< ProcessorNeighborm_receiveNeighbors
 
vector< ProcessorNeighborforceSendNeighbors
 
vector< ProcessorNeighborforceReceiveNeighbors
 
vector< irowvec > m_directions
 
vector< irowvec > forceDirections
 
vector< irowvec > directions
 

Detailed Description

The Processor class holds information about the current processor and neighboring processors. Its implementation depends on whether the program is compiled with MPI or not.

Constructor & Destructor Documentation

Processor::Processor ( MoleculeSystem moleculeSystem)
Processor::Processor ( MoleculeSystem moleculeSystem)

Member Function Documentation

void Processor::clearForcesInNeighborCells ( )
void Processor::clearForcesInNeighborCells ( )
void Processor::communicateAtoms ( )
void Processor::communicateAtoms ( )
void Processor::communicateForces ( )
const vector<MoleculeSystemCell *>& Processor::localAndGhostCells ( ) const
const vector< MoleculeSystemCell * > & Processor::localAndGhostCells ( ) const
inline
const vector<MoleculeSystemCell *>& Processor::localCells ( ) const
const vector< MoleculeSystemCell * > & Processor::localCells ( ) const
inline
int Processor::nAtoms ( )
int Processor::nAtoms ( )
int Processor::nProcessors ( )
int Processor::nProcessors ( )
int Processor::rank ( )
int Processor::rank ( )
void Processor::receiveAtomsFromNeighbor ( const ProcessorNeighbor neighbor)
protected
void Processor::sendAtomsToNeighbor ( const ProcessorNeighbor neighbor)
protected
void Processor::setupProcessors ( )
void Processor::setupProcessors ( )
bool Processor::shouldSendFirst ( const irowvec &  direction)
bool Processor::shouldSendFirst ( const irowvec &  direction)

Member Data Documentation

vector<irowvec> Processor::directions
protected
vector< irowvec > Processor::forceDirections
protected
vector<ProcessorNeighbor> Processor::forceReceiveNeighbors
protected
vector<ProcessorNeighbor> Processor::forceSendNeighbors
protected
Range Processor::m_cellRangeX
protected
Range Processor::m_cellRangeY
protected
Range Processor::m_cellRangeZ
protected
int Processor::m_coordinateX
protected
int Processor::m_coordinateY
protected
int Processor::m_coordinateZ
protected
vector<irowvec> Processor::m_directions
protected
vector< MoleculeSystemCell * > Processor::m_localAndGhostCells
protected
vector< MoleculeSystemCell * > Processor::m_localCells
protected
MoleculeSystem * Processor::m_moleculeSystem
protected
int Processor::m_nProcessors
protected
int Processor::m_nProcessorsX
protected
int Processor::m_nProcessorsY
protected
int Processor::m_nProcessorsZ
protected
double Processor::m_pureCommunicationTime
protected
vector<ProcessorNeighbor> Processor::m_receiveNeighbors
protected
vector<ProcessorNeighbor> Processor::m_sendNeighbors
protected
double Processor::m_totalCommunicationTime
protected

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