ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | Protected Member Functions | Friends | List of all members
DirectNeighbourCommunicationScheme Class Reference
Inheritance diagram for DirectNeighbourCommunicationScheme:
NeighbourCommunicationScheme

Public Member Functions

 DirectNeighbourCommunicationScheme (ZonalMethod *zonalMethod, bool pushPull)
 
void initCommunicationPartners (double cutoffRadius, Domain *domain, DomainDecompMPIBase *domainDecomp, ParticleContainer *moleculeContainer) override
 
std::vector< int > get3StageNeighbourRanks () override
 
void prepareNonBlockingStageImpl (ParticleContainer *moleculeContainer, Domain *domain, unsigned int stageNumber, MessageType msgType, bool removeRecvDuplicates, DomainDecompMPIBase *domainDecomp) override
 
void finishNonBlockingStageImpl (ParticleContainer *moleculeContainer, Domain *domain, unsigned int stageNumber, MessageType msgType, bool removeRecvDuplicates, DomainDecompMPIBase *domainDecomp) override
 
void exchangeMoleculesMPI (ParticleContainer *moleculeContainer, Domain *domain, MessageType msgType, bool removeRecvDuplicates, DomainDecompMPIBase *domainDecomp, bool doHaloPositionCheck=true) override
 
- Public Member Functions inherited from NeighbourCommunicationScheme
unsigned int getCommDims ()
 
 NeighbourCommunicationScheme (unsigned int commDimms, ZonalMethod *zonalMethod, bool pushPull)
 
 NeighbourCommunicationScheme (NeighbourCommunicationScheme const &)=delete
 
void operator= (NeighbourCommunicationScheme const &other)=delete
 
void setCoverWholeDomain (unsigned int d, bool covers)
 
virtual std::vector< int > getFullShellNeighbourRanks ()
 
virtual size_t getDynamicSize ()
 
void printCommunicationPartners (std::string filename) const
 
void setSequentialFallback (bool useSequentialFallback)
 

Protected Member Functions

void finalizeExchangeMoleculesMPI (ParticleContainer *moleculeContainer, Domain *, MessageType, bool removeRecvDuplicates, DomainDecompMPIBase *domainDecomp)
 
void initExchangeMoleculesMPI (ParticleContainer *moleculeContainer, Domain *, MessageType msgType, bool, DomainDecompMPIBase *domainDecomp, bool doHaloPositionCheck)
 
- Protected Member Functions inherited from NeighbourCommunicationScheme
void selectNeighbours (MessageType msgType, bool import)
 

Friends

class NeighbourCommunicationSchemeTest
 

Additional Inherited Members

- Protected Attributes inherited from NeighbourCommunicationScheme
std::vector< std::vector< CommunicationPartner > > * _neighbours
 vector of neighbours. The first dimension should be of size getCommDims().
 
std::vector< std::vector< CommunicationPartner > > * _haloExportForceImportNeighbours
 
std::vector< std::vector< CommunicationPartner > > * _haloImportForceExportNeighbours
 
std::vector< std::vector< CommunicationPartner > > * _leavingExportNeighbours
 
std::vector< std::vector< CommunicationPartner > > * _leavingImportNeighbours
 
bool _coversWholeDomain [3]
 
unsigned int _commDimms
 
ZonalMethod_zonalMethod
 zonal method (FullShell, HalfShell, ...)
 
std::vector< CommunicationPartner_fullShellNeighbours
 list of all neighbours (non-squeezed)
 
bool _pushPull
 
bool _useSequentialFallback {true}
 

Member Function Documentation

◆ exchangeMoleculesMPI()

void DirectNeighbourCommunicationScheme::exchangeMoleculesMPI ( ParticleContainer moleculeContainer,
Domain domain,
MessageType  msgType,
bool  removeRecvDuplicates,
DomainDecompMPIBase domainDecomp,
bool  doHaloPositionCheck = true 
)
overridevirtual

◆ finishNonBlockingStageImpl()

void DirectNeighbourCommunicationScheme::finishNonBlockingStageImpl ( ParticleContainer moleculeContainer,
Domain domain,
unsigned int  stageNumber,
MessageType  msgType,
bool  removeRecvDuplicates,
DomainDecompMPIBase domainDecomp 
)
overridevirtual

◆ get3StageNeighbourRanks()

std::vector<int> DirectNeighbourCommunicationScheme::get3StageNeighbourRanks ( )
inlineoverridevirtual

◆ initCommunicationPartners()

void DirectNeighbourCommunicationScheme::initCommunicationPartners ( double  cutoffRadius,
Domain domain,
DomainDecompMPIBase domainDecomp,
ParticleContainer moleculeContainer 
)
overridevirtual

◆ prepareNonBlockingStageImpl()

void DirectNeighbourCommunicationScheme::prepareNonBlockingStageImpl ( ParticleContainer moleculeContainer,
Domain domain,
unsigned int  stageNumber,
MessageType  msgType,
bool  removeRecvDuplicates,
DomainDecompMPIBase domainDecomp 
)
overridevirtual

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