Utopia  2
Framework for studying models of complex & adaptive systems.
Modules
Core

Interface definitions and utility functions for building models. More...

Collaboration diagram for Core:

Modules

 Rules on Entities
 Algorithms for conveniently applying function objects on entities.
 
 Output Logging
 Utility functions for all logging output based on the spdlog backend.
 
 Model
 The Model framework is the foundation for your future model.
 
 CellManager
 An interface to build and use cellular automata.
 
 AgentManager
 An interface for agent-based models.
 
 Entity
 The base class for managed entities, e.g. cells or agents.
 
 Iteration Utilities
 Collection of classes and functions for custom iteration over ranges.
 
 Test Tools
 Gathers useful tools for writing tests in the Boost.Test framework.
 
 Metaprogramming and type restrictions
 Metafunctions to classify types, in order to be able to restrict template parameters, and some other helpers for type computation.
 
 Output stream operators
 Pretty-print types like containers, tuples and various others to std::ostream or std::ofstream. To use them, put a using Utopia::Utils::operator<< before the first call. Then you can do std::cout << many << funny << things << std::endl; as always.
 
 Multithreading
 Facilities for parallel execution based on runtime configuration.
 
 Entity Selection
 An interface to select a subset of entities from a manager.
 

Detailed Description

Interface definitions and utility functions for building models.

Core contains the main structures for building and running models. Most importantly, it defines the Model base interface every model needs to implement in order to be used within Utopia.