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

Public Member Functions

 IndirectNeighbourCommunicationScheme (ZonalMethod *zonalMethod)
 
void exchangeMoleculesMPI (ParticleContainer *moleculeContainer, Domain *domain, MessageType msgType, bool removeRecvDuplicates, DomainDecompMPIBase *domainDecomp, bool doHaloPositionCheck=true) override
 
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
 
- 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 initExchangeMoleculesMPI1D (ParticleContainer *moleculeContainer, Domain *domain, MessageType msgType, bool removeRecvDuplicates, unsigned short d, DomainDecompMPIBase *domainDecomp)
 
void finalizeExchangeMoleculesMPI1D (ParticleContainer *moleculeContainer, Domain *domain, MessageType msgType, bool removeRecvDuplicates, unsigned short d, DomainDecompMPIBase *domainDecomp)
 
void exchangeMoleculesMPI1D (ParticleContainer *moleculeContainer, Domain *domain, MessageType msgType, bool removeRecvDuplicates, unsigned short d, DomainDecompMPIBase *domainDecomp)
 
void convert1StageTo3StageNeighbours (const std::vector< CommunicationPartner > &commPartners, std::vector< std::vector< CommunicationPartner >> &neighbours, HaloRegion &ownRegion, double cutoffRadius)
 
- 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 IndirectNeighbourCommunicationScheme::exchangeMoleculesMPI ( ParticleContainer moleculeContainer,
Domain domain,
MessageType  msgType,
bool  removeRecvDuplicates,
DomainDecompMPIBase domainDecomp,
bool  doHaloPositionCheck = true 
)
overridevirtual

◆ finishNonBlockingStageImpl()

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

◆ get3StageNeighbourRanks()

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

◆ initCommunicationPartners()

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

◆ prepareNonBlockingStageImpl()

void IndirectNeighbourCommunicationScheme::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: