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.