|
fpmas-metamodel 1.0
|
#include "yaml-cpp/yaml.h"#include "fpmas/api/scheduler/scheduler.h"#include "fpmas/api/model/spatial/grid.h"#include "fpmas/utils/macros.h"

Go to the source code of this file.
Classes | |
| struct | Attractor |
| struct | GridAttractor |
| struct | TestCaseConfig |
| struct | GraphConfig |
| struct | ModelConfig |
Macros | |
| #define | AGENT_GROUP MOVE_GROUP |
Enumerations | |
| enum class | Environment { GRID , RANDOM , CLUSTERED , SMALL_WORLD } |
| enum class | Utility { UNIFORM , LINEAR , INVERSE , STEP } |
| enum class | MovePolicy { RANDOM , MAX } |
| enum class | LbAlgorithm { SCHEDULED_LB , ZOLTAN_LB , GRID_LB , ZOLTAN_CELL_LB , STATIC_ZOLTAN_CELL_LB , RANDOM_LB } |
| enum class | AgentInteractions { LOCAL , CONTACTS } |
| enum class | Interactions { NONE , READ_ALL , READ_ONE , WRITE_ALL , WRITE_ONE , READ_ALL_WRITE_ONE , READ_ALL_WRITE_ALL } |
| enum class | SyncMode { GHOST_MODE , GLOBAL_GHOST_MODE , HARD_SYNC_MODE } |
Functions | |
| FPMAS_DEFINE_GROUPS (RELATIONS_FROM_NEIGHBORS_GROUP, RELATIONS_FROM_CONTACTS_GROUP, HANDLE_NEW_CONTACTS_GROUP, MOVE_GROUP, UPDATE_CELL_EDGE_WEIGHTS_GROUP, CELL_GROUP) | |
| FPMAS_DEFINE_LAYERS (CONTACT, NEW_CONTACT) | |
Configuration features.
| #define AGENT_GROUP MOVE_GROUP |
MOVE_GROUP alias, since all SpatialAgents and only them are contained in the MOVE_GROUP AgentGroup.
|
strong |
Environment type.
| Enumerator | |
|---|---|
| GRID | A regular grid.
|
| RANDOM | An uniform random graph.
|
| CLUSTERED | A random graph with a high clustering coefficient.
|
| SMALL_WORLD | A Small-World graph.
|
|
strong |
Shape of utility of Cells. Currently only available for Environment::GRID.
| Enumerator | |
|---|---|
| UNIFORM | All cells have the same utility.
|
| LINEAR | Utility decreases linearly from the center of attraction to the radius.
|
| INVERSE | Utility decreases from the center of attraction according to an inverse function.
|
| STEP | A high uniform step until radius, and then decreases using an inverse function.
|
|
strong |
Agents move policy.
| Enumerator | |
|---|---|
| RANDOM | Go to a random cell, with a random distribution consistent with utilities of cells.
|
| MAX | Go to the cell with the maximum utility.
|
|
strong |
Load balancing algorithms.
| Enumerator | |
|---|---|
| SCHEDULED_LB | A load balancing algorithm that applies Zoltan, taking into account the agent scheduling. Very costly and not efficient.
|
| ZOLTAN_LB | Raw Zoltan load balancing.
|
| GRID_LB | Grid based load balancing.
|
| ZOLTAN_CELL_LB | Zoltan applied only to the cell network, and agent assigned to the same process as their location. The Zoltan load balancing is applied to the cell network at each iteration.
|
| STATIC_ZOLTAN_CELL_LB | Same as ZOLTAN_CELL_LB, but the Zoltan algorithm is only applied to the cell network the first time the algorithm is applied.
|
| RANDOM_LB | Completely random load balancing. Not recommended.
|
|
strong |
Defines the agent interactions graph.
| Enumerator | |
|---|---|
| LOCAL | Agents only interact with agents in their geographical perception field. |
| CONTACTS | Same as LOCAL, but also maintains a list of distant contacts.
|
|
strong |
Agent interactions scheme.
Note that write operations can be handled properly only with SyncMode::HARD_SYNC_MODE.
|
strong |
Synchronization modes.
| Enumerator | |
|---|---|
| GHOST_MODE | Distant agents are read from a ghost copy. No write.
|
| GLOBAL_GHOST_MODE | All agents are read from a ghost copy. No write.
|
| HARD_SYNC_MODE | Agents are read and written directly from distant processes, allowing concurrent read and write operations.
|
| FPMAS_DEFINE_GROUPS | ( | RELATIONS_FROM_NEIGHBORS_GROUP | , |
| RELATIONS_FROM_CONTACTS_GROUP | , | ||
| HANDLE_NEW_CONTACTS_GROUP | , | ||
| MOVE_GROUP | , | ||
| UPDATE_CELL_EDGE_WEIGHTS_GROUP | , | ||
| CELL_GROUP | |||
| ) |
Defines AgentGroup ids used internally by the MetaModel.
| FPMAS_DEFINE_LAYERS | ( | CONTACT | , |
| NEW_CONTACT | |||
| ) |
Defines layer ids used internally by the MetaModel.