fpmas-metamodel 1.0
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions
config.h File Reference
#include "yaml-cpp/yaml.h"
#include "fpmas/api/scheduler/scheduler.h"
#include "fpmas/api/model/spatial/grid.h"
#include "fpmas/utils/macros.h"
Include dependency graph for config.h:
This graph shows which files directly or indirectly include this file:

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)
 

Detailed Description

Configuration features.

Macro Definition Documentation

◆ AGENT_GROUP

#define AGENT_GROUP   MOVE_GROUP

MOVE_GROUP alias, since all SpatialAgents and only them are contained in the MOVE_GROUP AgentGroup.

Enumeration Type Documentation

◆ Environment

enum class Environment
strong

Environment type.

Enumerator
GRID 

A regular grid.

See also
MooreGridBuilder
RANDOM 

An uniform random graph.

See also
UniformGraphBuilder
CLUSTERED 

A random graph with a high clustering coefficient.

See also
ClusteredGraphBuilder
SMALL_WORLD 

A Small-World graph.

See also
SmallWorldGraphBuilder

◆ Utility

enum class Utility
strong

Shape of utility of Cells. Currently only available for Environment::GRID.

Enumerator
UNIFORM 

All cells have the same utility.

See also
UniformUtility
LINEAR 

Utility decreases linearly from the center of attraction to the radius.

See also
LinearUtility
INVERSE 

Utility decreases from the center of attraction according to an inverse function.

See also
InverseUtility
STEP 

A high uniform step until radius, and then decreases using an inverse function.

See also
StepUtility

◆ MovePolicy

enum class MovePolicy
strong

Agents move policy.

Enumerator
RANDOM 

Go to a random cell, with a random distribution consistent with utilities of cells.

See also
RandomMovePolicy
MAX 

Go to the cell with the maximum utility.

See also
MaxMovePolicy

◆ LbAlgorithm

enum class LbAlgorithm
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.

See also
ScheduledLoadBalancing
ZOLTAN_LB 

Raw Zoltan load balancing.

See also
ZoltanLoadBalancing
GRID_LB 

Grid based load balancing.

See also
GridLoadBalancing
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.

See also
CellLoadBalancing
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.

See also
StaticCellLoadBalancing
RANDOM_LB 

Completely random load balancing. Not recommended.

See also
RandomLoadBalancing

◆ AgentInteractions

enum class AgentInteractions
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.

See also
MetaAgent

◆ Interactions

enum class Interactions
strong

Agent interactions scheme.

Note that write operations can be handled properly only with SyncMode::HARD_SYNC_MODE.

Enumerator
NONE 

No interaction.

READ_ALL 

Performs a read on all neighbors.

READ_ONE 

Performs a read on a randomly selected neighbor.

WRITE_ALL 

Performs a write on all neighbors.

WRITE_ONE 

Performs a write on a randomly selected neighbor.

READ_ALL_WRITE_ONE 

Performs a read on all neighbors, and then performs a write on a randomly selected neighbor.

READ_ALL_WRITE_ALL 

Performs a read on all neighbors, and then performs a write on all neighbors.

◆ SyncMode

enum class SyncMode
strong

Synchronization modes.

Enumerator
GHOST_MODE 

Distant agents are read from a ghost copy. No write.

See also
GhostMode
GLOBAL_GHOST_MODE 

All agents are read from a ghost copy. No write.

See also
GlobalGhostMode
HARD_SYNC_MODE 

Agents are read and written directly from distant processes, allowing concurrent read and write operations.

See also
HardSyncModeWithGhostLink

Function Documentation

◆ FPMAS_DEFINE_GROUPS()

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()

FPMAS_DEFINE_LAYERS ( CONTACT  ,
NEW_CONTACT   
)

Defines layer ids used internally by the MetaModel.