Utopia 2
Framework for studying models of complex & adaptive systems.
|
An interface to build and use cellular automata. More...
Classes | |
class | Utopia::Cell< Traits > |
A cell is a slightly specialized state container. More... | |
class | Utopia::CellManager< CellTraits, Model > |
Manages a physical space, its grid discretization, and cells on that grid. More... | |
class | Utopia::Grid< Space > |
The base class for all grid discretizations used by the CellManager. More... | |
class | Utopia::HexagonalGrid< Space > |
A grid discretization using hexagonal cells. More... | |
class | Utopia::SquareGrid< Space > |
A grid discretization using square cells. More... | |
class | Utopia::TriangularGrid< Space > |
A grid discretization using triangular cells. More... | |
Typedefs | |
template<typename StateType , Update update_mode, bool use_def_state_constr = false, typename CellTags = EmptyTag, template< class > class CustomLinkContainers = NoCustomLinks> | |
using | Utopia::CellTraits = EntityTraits< StateType, update_mode, use_def_state_constr, CellTags, CustomLinkContainers > |
CellTraits are just another name for Utopia::EntityTraits. | |
template<class Grid > | |
using | Utopia::NBFuncID = std::function< IndexContainer(const IndexType)> |
Type of the neighborhood calculating function. | |
Enumerations | |
enum class | Utopia::GridStructure { Utopia::GridStructure::square , Utopia::GridStructure::triangular , Utopia::GridStructure::hexagonal } |
Available grid implementations. More... | |
enum class | Utopia::NBMode { Utopia::NBMode::empty = 0 , Utopia::NBMode::vonNeumann = 1 , Utopia::NBMode::Moore = 2 , Utopia::NBMode::hexagonal = 3 } |
Possible neighborhood types; availability depends on choice of grid. More... | |
Functions | |
std::string | Utopia::grid_structure_to_string (const GridStructure &structure) |
Given an GridStructure enum value, return the corresponding string key. | |
std::string | Utopia::nb_mode_to_string (const NBMode &nb_mode) |
Given an NBMode enum value, return the corresponding string key. | |
Variables | |
const std::map< std::string, GridStructure > | Utopia::grid_structure_map |
A map from strings to grid structure enum values. | |
const std::map< std::string, NBMode > | Utopia::nb_mode_map |
A map from strings to neighborhood enum values. | |
An interface to build and use cellular automata.
The Utopia::CellManager and associated constructs allow convenient use of discretizations of physical space into rectangular, hexagonal, or triangular grids.
using Utopia::CellTraits = typedef EntityTraits<StateType, update_mode, use_def_state_constr, CellTags, CustomLinkContainers> |
CellTraits are just another name for Utopia::EntityTraits.
using Utopia::NBFuncID = typedef std::function<IndexContainer(const IndexType)> |
Type of the neighborhood calculating function.
|
strong |
Available grid implementations.
Enumerator | |
---|---|
square | A square lattice grid. |
triangular | A triangular lattice grid. |
hexagonal | A hexagonal lattice grid. |
|
strong |
Possible neighborhood types; availability depends on choice of grid.
std::string Utopia::grid_structure_to_string | ( | const GridStructure & | structure | ) |
Given an GridStructure enum value, return the corresponding string key.
This iterates over the grid_structure_map and returns the first key that matches the given enum value.
Given an NBMode enum value, return the corresponding string key.
This iterates over the nb_mode_map and returns the first key that matches the given enum value.
const std::map<std::string, GridStructure> Utopia::grid_structure_map |
A map from strings to grid structure enum values.
A map from strings to neighborhood enum values.