1#ifndef DOMAINDECOMPOSITION_H_
2#define DOMAINDECOMPOSITION_H_
4#include "DomainDecompMPIBase.h"
52 std::vector<int> getNeighbourRanks()
override;
58 std::vector<std::vector<std::vector<int>>> getAllRanks();
64 unsigned int stageNumber)
override;
69 unsigned int stageNumber)
override;
74 std::vector<CommunicationPartner> getNeighboursFromHaloRegion(
Domain* domain,
const HaloRegion& haloRegion,
double cutoff)
override;
77 void initMPIGridDims();
79 int _gridSize[DIMgeom];
Definition: DomainDecompMPIBase.h:30
Basic domain decomposition based parallelisation, dividing the domain into #procs equal sized cuboids...
Definition: DomainDecomposition.h:20
void finishNonBlockingStage(bool forceRebalancing, ParticleContainer *moleculeContainer, Domain *domain, unsigned int stageNumber) override
Definition: DomainDecomposition.cpp:68
void readXML(XMLfileUnits &xmlconfig) override
Read in XML configuration for DomainDecomposition and all its included objects.
Definition: DomainDecomposition.cpp:102
DomainDecomposition()
The constructor has to determine the own rank and the number of neighbours and sets up the topology.
Definition: DomainDecomposition.cpp:15
bool queryBalanceAndExchangeNonBlocking(bool forceRebalancing, ParticleContainer *moleculeContainer, Domain *domain, double etime) override
Checks whether the balance and exchange step can be performed non-blocking.
Definition: DomainDecomposition.cpp:81
std::vector< int > getNeighbourRanksFullShell() override
Definition: DomainDecomposition.cpp:144
void balanceAndExchange(double lastTraversalTime, bool forceRebalancing, ParticleContainer *moleculeContainer, Domain *domain) override
balance the load (and optimize communication) and exchange boundary particles
Definition: DomainDecomposition.cpp:86
double getBoundingBoxMin(int dimension, Domain *domain) override
get the minimum of the bounding box of this process' domain in the given dimension (0,...
Definition: DomainDecomposition.cpp:114
void prepareNonBlockingStage(bool forceRebalancing, ParticleContainer *moleculeContainer, Domain *domain, unsigned int stageNumber) override
Definition: DomainDecomposition.cpp:54
double getBoundingBoxMax(int dimension, Domain *domain) override
get the maximum of the bounding box of this process' domain in the given dimension (0,...
Definition: DomainDecomposition.cpp:118
This class is used to read in the phasespace and to handle macroscopic values.
Definition: Domain.h:47
This Interface is used to get access to particles and pairs of particles.
Definition: ParticleContainer.h:69
XML file with unit attributes abstraction.
Definition: xmlfileUnits.h:25
Definition: HaloRegion.h:10