3#include "yaml-cpp/yaml.h"
4#include "fpmas/api/scheduler/scheduler.h"
5#include "fpmas/api/model/spatial/grid.h"
6#include "fpmas/utils/macros.h"
17 RELATIONS_FROM_NEIGHBORS_GROUP,
18 RELATIONS_FROM_CONTACTS_GROUP,
19 HANDLE_NEW_CONTACTS_GROUP,
21 UPDATE_CELL_EDGE_WEIGHTS_GROUP,
27#define AGENT_GROUP MOVE_GROUP
373 std::string field_name, T& target, YAML::Node node,
374 std::string type_name,
const T& default_value) {
375 if(node.IsDefined()) {
377 target = node.as<T>();
378 }
catch (
const YAML::TypedBadConversion<T>& e) {
379 this->is_valid =
false;
381 "[FATAL ERROR] Bad " + field_name +
" field parsing. "
382 "Expected type: " + type_name
386 target = default_value;
400 std::string field_name, T& target, YAML::Node node,
401 std::string type_name
403 if(!node.IsDefined()) {
405 "[FATAL ERROR] Missing configuration field: " + field_name +
406 " (" + type_name +
")"
408 this->is_valid =
false;
411 target = node.as<T>();
412 }
catch (
const YAML::TypedBadConversion<T>& e) {
413 this->is_valid =
false;
415 "[FATAL ERROR] Bad " + field_name +
" field parsing. "
416 "Expected type: " + type_name
513 static bool decode(
const Node& node,
Environment& graph_type);
518 static Node encode(
const Utility& rhs);
519 static bool decode(
const Node& node,
Utility& rhs);
525 static bool decode(
const Node& node,
MovePolicy& rhs);
531 static bool decode(
const Node& node,
LbAlgorithm& rhs);
543 static bool decode(
const Node& node,
Interactions& rhs);
548 static Node encode(
const SyncMode& rhs);
549 static bool decode(
const Node& node,
SyncMode& rhs);
554 static Node encode(
const Attractor& rhs);
555 static bool decode(
const Node& node,
Attractor& rhs);
SyncMode
Definition: config.h:221
Utility
Definition: config.h:67
FPMAS_DEFINE_GROUPS(RELATIONS_FROM_NEIGHBORS_GROUP, RELATIONS_FROM_CONTACTS_GROUP, HANDLE_NEW_CONTACTS_GROUP, MOVE_GROUP, UPDATE_CELL_EDGE_WEIGHTS_GROUP, CELL_GROUP)
LbAlgorithm
Definition: config.h:118
Interactions
Definition: config.h:185
MovePolicy
Definition: config.h:99
AgentInteractions
Definition: config.h:166
Environment
Definition: config.h:37
FPMAS_DEFINE_LAYERS(CONTACT, NEW_CONTACT)
float radius
Definition: config.h:252
void load_config(std::string field_name, T &target, YAML::Node node, std::string type_name)
Definition: config.h:399
std::size_t output_degree
Definition: config.h:315
GraphConfig(YAML::Node config)
float cell_weight
Definition: config.h:327
bool json_output
Definition: config.h:347
float p
Definition: config.h:323
Utility utility
Definition: config.h:331
float zoltan_imbalance_tol
Definition: config.h:342
int json_output_period
Definition: config.h:354
bool dot_output
Definition: config.h:359
std::vector< GridAttractor > grid_attractors
Definition: config.h:336
void load_config_optional(std::string field_name, T &target, YAML::Node node, std::string type_name, const T &default_value)
Definition: config.h:372
Environment environment
Definition: config.h:297
std::size_t num_cells
Definition: config.h:310
std::size_t grid_width
Definition: config.h:301
std::size_t grid_height
Definition: config.h:305
bool is_valid
Definition: config.h:292
fpmas::api::model::DiscretePoint center
Definition: config.h:263
std::size_t cell_size
Definition: config.h:468
bool dynamic_cell_edge_weights
Definition: config.h:458
float agent_weight
Definition: config.h:472
AgentInteractions agent_interactions
Definition: config.h:446
fpmas::api::scheduler::TimeStep refresh_local_contacts
Definition: config.h:479
fpmas::api::scheduler::TimeStep num_steps
Definition: config.h:442
float occupation_rate
Definition: config.h:438
fpmas::api::scheduler::TimeStep refresh_distant_contacts
Definition: config.h:486
ModelConfig(YAML::Node config)
SyncMode sync_mode
Definition: config.h:462
ModelConfig(const GraphConfig &graph_config)
Interactions cell_interactions
Definition: config.h:452
std::vector< TestCaseConfig > test_cases
Definition: config.h:491
std::vector< fpmas::api::scheduler::TimeStep > lb_periods
Definition: config.h:280
LbAlgorithm algorithm
Definition: config.h:276