![]() |
fpmas 1.6
|
#include <spatial_model.h>


Public Types | |
| typedef _CellType | CellType |
Public Member Functions | |
| virtual void | add (CellType *cell)=0 |
| virtual std::vector< CellType * > | cells ()=0 |
| virtual AgentGroup & | cellGroup ()=0 |
| virtual const AgentGroup & | cellGroup () const =0 |
| virtual MoveAgentGroup< CellType > & | buildMoveGroup (GroupId id, const Behavior &behavior)=0 |
Public Member Functions inherited from fpmas::api::model::Model | |
| virtual AgentGraph & | graph ()=0 |
| virtual const AgentGraph & | graph () const =0 |
| virtual api::scheduler::Scheduler & | scheduler ()=0 |
| virtual const api::scheduler::Scheduler & | scheduler () const =0 |
| virtual api::runtime::Runtime & | runtime ()=0 |
| virtual const api::runtime::Runtime & | runtime () const =0 |
| virtual const api::scheduler::Job & | loadBalancingJob () const =0 |
| virtual AgentGroup & | buildGroup (GroupId id)=0 |
| virtual AgentGroup & | buildGroup (GroupId id, const Behavior &behavior)=0 |
| virtual void | removeGroup (AgentGroup &group)=0 |
| virtual AgentGroup & | getGroup (GroupId id) const =0 |
| virtual const std::unordered_map< GroupId, AgentGroup * > & | groups () const =0 |
| virtual AgentEdge * | link (Agent *src_agent, Agent *tgt_agent, api::graph::LayerId layer)=0 |
| virtual void | unlink (AgentEdge *edge)=0 |
| virtual api::communication::MpiCommunicator & | getMpiCommunicator ()=0 |
| virtual const api::communication::MpiCommunicator & | getMpiCommunicator () const =0 |
| virtual void | clear ()=0 |
Additional Inherited Members | |
Protected Member Functions inherited from fpmas::api::model::Model | |
| virtual void | insert (GroupId id, AgentGroup *group)=0 |
Model API extension to handle SpatialAgents.
| typedef _CellType fpmas::api::model::SpatialModel< _CellType >::CellType |
Type of Cell on which SpatialAgents are moving.
|
pure virtual |
Adds a Cell to this model.
Cells added to the model constitute the "Cell network", on which SpatialAgents, added to groups created with buildMoveGroup(), will be able to move.
| cell | cell to add to the model |
|
pure virtual |
Returns the list of LOCAL cells on the current process.
Such Cells have necessarily been added to the model using add(), but might have migrate across processes during load-balancing operations.
Implemented in fpmas::model::SpatialModel< SyncMode, CellType, EndCondition >.
|
pure virtual |
Returns the AgentGroup containing all Cells in the current SpatialModel.
Implemented in fpmas::model::SpatialModel< SyncMode, CellType, EndCondition >.
|
pure virtual |
Returns the AgentGroup containing all Cells in the current SpatialModel.
Implemented in fpmas::model::SpatialModel< SyncMode, CellType, EndCondition >.
|
pure virtual |
Builds an agent group that automatically includes the DistributedMoveAlgorithm execution.
The specified behavior is assumed to include some SpatialAgent::moveTo() operations, even if it's not required. Contrary to the Model::buildGroup() method, the returned group is such that in addition to the execution of the behavior for each agent of the group, the AgentGroup::jobs() list also includes the DistributedMoveAlgorithm::jobs() list, built properly from cells() in the model and agents contained in the AgentGroup.
| id | unique group id |
| behavior | agent behavior |
Implemented in fpmas::model::SpatialModel< SyncMode, CellType, EndCondition >.