13namespace fpmas {
namespace model {
14 using api::model::DiscretePoint;
43 : origin(origin), extent(extent) {
73 return extent.
x - origin.
x;
80 return extent.
y - origin.
y;
133 std::vector<GridDimensions> process_grid_dimensions;
152 std::vector<Node*> childs;
179 void split_node(std::list<Node*>& leafs);
184 void delete_node(Node* node);
245 std::map<DiscreteCoordinate, int> process_bounds;
246 std::vector<GridDimensions> process_grid_dimensions;
289 std::vector<GridDimensions> process_grid_dimensions;
290 std::vector<std::vector<int>> process_map;
Definition: communication.h:251
Definition: load_balancing.h:92
Definition: grid_load_balancing.h:287
int n() const
Definition: grid_load_balancing.cpp:209
int p() const
Definition: grid_load_balancing.cpp:213
FastProcessMapping(DiscreteCoordinate width, DiscreteCoordinate height, api::communication::MpiCommunicator &comm)
Definition: grid_load_balancing.cpp:160
int process(DiscretePoint point) const override
Definition: grid_load_balancing.cpp:205
GridDimensions gridDimensions(int process) const override
Definition: grid_load_balancing.cpp:217
Definition: grid_load_balancing.h:30
DiscreteCoordinate height() const
Definition: grid_load_balancing.h:79
void setExtent(const DiscretePoint &point)
Definition: grid_load_balancing.h:66
DiscreteCoordinate width() const
Definition: grid_load_balancing.h:72
void setOrigin(const DiscretePoint &point)
Definition: grid_load_balancing.h:57
GridDimensions()
Definition: grid_load_balancing.h:48
DiscretePoint getOrigin() const
Definition: grid_load_balancing.h:53
GridDimensions(DiscretePoint origin, DiscretePoint extent)
Definition: grid_load_balancing.h:42
DiscretePoint getExtent() const
Definition: grid_load_balancing.h:62
Definition: grid_load_balancing.h:364
GridLoadBalancing(DiscreteCoordinate width, DiscreteCoordinate height, api::communication::MpiCommunicator &comm)
Definition: grid_load_balancing.cpp:221
api::graph::PartitionMap balance(api::graph::NodeMap< api::model::AgentPtr > nodes) override
Definition: grid_load_balancing.cpp:235
Definition: grid_load_balancing.h:91
virtual GridDimensions gridDimensions(int process) const =0
virtual int process(DiscretePoint point) const =0
Definition: grid_load_balancing.h:229
GridDimensions gridDimensions(int process) const override
Definition: grid_load_balancing.cpp:156
StripProcessMapping(DiscreteCoordinate width, DiscreteCoordinate height, api::communication::MpiCommunicator &comm)
Definition: grid_load_balancing.cpp:113
int process(DiscretePoint point) const override
Definition: grid_load_balancing.cpp:140
Definition: grid_load_balancing.h:125
GridDimensions gridDimensions(int process) const override
Definition: grid_load_balancing.cpp:109
TreeProcessMapping(DiscreteCoordinate width, DiscreteCoordinate height, api::communication::MpiCommunicator &comm)
Definition: grid_load_balancing.cpp:8
std::unordered_map< DistributedId, int, api::graph::IdHash< DistributedId > > PartitionMap
Definition: load_balancing.h:19
PartitionMode
Definition: load_balancing.h:30
typename graph::Graph< graph::DistributedNode< T >, graph::DistributedEdge< T > >::NodeMap NodeMap
Definition: load_balancing.h:25
long DiscreteCoordinate
Definition: grid.h:15
DiscreteCoordinate x
Definition: grid.h:25
DiscreteCoordinate y
Definition: grid.h:29