|
Utopia 2
Framework for studying models of complex & adaptive systems.
|
#include <map>#include <set>#include <unordered_set>#include <random>#include <algorithm>#include <type_traits>#include <armadillo>#include <yaml-cpp/yaml.h>#include <spdlog/spdlog.h>#include "types.hh"#include "exceptions.hh"#include "entity.hh"#include "cell.hh"#include "agent.hh"#include "logging.hh"#include "../data_io/cfg_utils.hh"

Go to the source code of this file.
Classes | |
| struct | Utopia::is_cell_manager< M > |
| Metafunction to determine whether a Manager is a CellManager. More... | |
| struct | Utopia::is_agent_manager< M > |
| Metafunction to determine whether a Manager is an AgentManager. More... | |
Namespaces | |
| namespace | Utopia |
Enumerations | |
| enum class | Utopia::SelectionMode { Utopia::SelectionMode::condition = 0 , Utopia::SelectionMode::sample = 1 , Utopia::SelectionMode::probability = 2 , Utopia::SelectionMode::clustered_simple = 20 , Utopia::SelectionMode::position = 100 , Utopia::SelectionMode::boundary = 101 , Utopia::SelectionMode::lanes = 102 } |
| Possible selection modes; availability depends on choice of manager. More... | |
Functions | |
| std::string | Utopia::selection_mode_to_string (const SelectionMode &mode) |
| Given a SelectionMode enum value, return the corresponding string key. | |
| template<class Manager , class Container = EntityContainer<typename Manager::Entity>> | |
| Container | Utopia::select_entities (const Manager &mngr, const DataIO::Config &sel_cfg) |
| Select entities according to parameters specified in a configuration. | |
| template<SelectionMode mode, class Manager , class Container = EntityContainer<typename Manager::Entity>, class Condition = std::function<bool(const std::shared_ptr<typename Manager::Entity>&)>, typename std::enable_if_t< mode==SelectionMode::condition, int > = 0> | |
| Container | Utopia::select_entities (const Manager &mngr, const Condition &condition) |
| Return a container with entities that match the given condition. | |
| template<SelectionMode mode, class Manager , class Container = EntityContainer<typename Manager::Entity>, typename std::enable_if_t< mode==SelectionMode::sample, int > = 0> | |
| Container | Utopia::select_entities (const Manager &mngr, const int num_entities) |
| Select a sample of entities randomly. | |
| template<SelectionMode mode, class Manager , class Container = EntityContainer<typename Manager::Entity>, typename std::enable_if_t< mode==SelectionMode::probability, int > = 0> | |
| Container | Utopia::select_entities (const Manager &mngr, const double probability) |
| Select entities with a certain probability. | |
| template<SelectionMode mode, class Manager , class Container = EntityContainer<typename Manager::Entity>, typename std::enable_if_t< mode==SelectionMode::position, int > = 0> | |
| Container | Utopia::select_entities (const Manager &mngr, const std::vector< typename Manager::SpaceVec > &positions) |
| Selects cells at given positions in space. | |
| template<SelectionMode mode, class Manager , class Container = EntityContainer<typename Manager::Entity>, typename std::enable_if_t< mode==SelectionMode::boundary, int > = 0> | |
| Container | Utopia::select_entities (const Manager &mngr, const std::string &boundary) |
| Selects cells on a boundary. | |
| template<SelectionMode mode, class Manager , class Container = EntityContainer<typename Manager::Entity>, typename std::enable_if_t< mode==SelectionMode::lanes, int > = 0> | |
| Container | Utopia::select_entities (const Manager &mngr, const unsigned int num_vertical, const unsigned int num_horizontal, const std::pair< double, double > permeability={0., 0.}, const std::pair< unsigned int, unsigned int > gate_width={0, 0}) |
| Selects horizontal or vertical lanes of cells. | |
| template<SelectionMode mode, class Manager , class Container = EntityContainer<typename Manager::Entity>, typename std::enable_if_t< mode==SelectionMode::clustered_simple, int > = 0> | |
| Container | Utopia::select_entities (const Manager &mngr, const double p_seed, const double p_attach, const unsigned int num_passes) |
| Selects cells that are clustered using a simple clustering algorithm. | |
Variables | |
| const std::map< std::string, SelectionMode > | Utopia::selection_mode_map |
| A map from strings to Select enum values. | |