ls1-MarDyn
ls1-MarDyn molecular dynamics code
ALLLoadBalancer.h
Go to the documentation of this file.
1
7#pragma once
8#ifdef ENABLE_ALLLBL
9#include <ALL.hpp>
10#include "LoadBalancer.h"
11
13public:
14 ALLLoadBalancer(std::array<double, 3> boxMin, std::array<double, 3> boxMax, double gamma, MPI_Comm comm,
15 std::array<size_t, 3> globalSize, std::array<size_t, 3> localCoordinates,
16 std::array<double, 3> minimalPartitionSize);
17
18 ~~ALLLoadBalancer() override = default;
19 std::tuple<std::array<double, 3>, std::array<double, 3>> rebalance(double work) override;
20 void readXML(XMLfileUnits& xmlconfig) override {
21 // nothing yet.
22 }
23
24 std::array<bool, 3> getCoversWholeDomain() override { return _coversWholeDomain; }
25
26private:
27 ALL<double, double> _all;
28 using Point = ALL_Point<double>;
29 std::array<double, 3> _minimalPartitionSize{};
30 std::array<bool, 3> _coversWholeDomain{};
31};
32#endif
Definition: ALLLoadBalancer.h:12
std::array< bool, 3 > getCoversWholeDomain() override
Definition: ALLLoadBalancer.h:24
std::tuple< std::array< double, 3 >, std::array< double, 3 > > rebalance(double work) override
Definition: ALLLoadBalancer.cpp:27
void readXML(XMLfileUnits &xmlconfig) override
Definition: ALLLoadBalancer.h:20
Definition: LoadBalancer.h:15
XML file with unit attributes abstraction.
Definition: xmlfileUnits.h:25