Utopia  2
Framework for studying models of complex & adaptive systems.
Classes | Typedefs | Enumerations | Variables
Model

The Model framework is the foundation for your future model. More...

Collaboration diagram for Model:

Classes

struct  Utopia::ModelTypes< RNGType, data_write_mode, SpaceType, ConfigType, DataGroupType, DataSetType, TimeType, MonitorType, MonitorManagerType >
 Wrapper struct for defining model class data types. More...
 
class  Utopia::Model< Derived, ModelTypes >
 Base class interface for Models using the CRT Pattern. More...
 
class  Utopia::PseudoParent< RNG >
 A class to use at the top level of the model hierarchy as a mock parent. More...
 
struct  Utopia::Space< num_dims >
 The Space bundles properties about the physical space a model resides in. More...
 

Typedefs

using Utopia::DefaultSpace = Space< 2 >
 The default Space object to be used throughout Utopia. More...
 

Enumerations

enum class  Utopia::WriteMode { Utopia::basic , Utopia::managed , Utopia::manual , Utopia::off }
 How to write data in the models. More...
 

Variables

constexpr WriteMode Utopia::DefaultWriteMode = WriteMode::basic
 Alias for the default write mode. More...
 

Detailed Description

The Model framework is the foundation for your future model.

By deriving from Utopia::Model, you have access to many infrastructure features and can place your model into a hierarchy of models.

Typedef Documentation

◆ DefaultSpace

using Utopia::DefaultSpace = typedef Space<2>

The default Space object to be used throughout Utopia.

Enumeration Type Documentation

◆ WriteMode

enum Utopia::WriteMode
strong

How to write data in the models.

Enumerator
basic 

Basic writing features: write_start, write_every.

This leads to write_data being invoked the first time at time write_start and henceforth every write_every steps. If write_start is 0, this means that write_data is called after the model constructor finished and before perform_step is called the first time.

managed 

Use the DataManager to handle output.

The DataManager is invoked before the initial iteration and then once after each iteration; it decides itself whether data is to be written or not. Note that the write_start and write_every arguments are ignored; such functionality has to be implemented via the DataManager's interface.

manual 

Fully manual: write_data method is always called.

More accurately: write_data will be called after the model constructor finished (and before perform_step is called for the first time) and henceforth every time after perform_step finished and the time was incremented. There are no further checks and the write_start and write_every arguments are not needed.

off 

The write_data method is never called.

Variable Documentation

◆ DefaultWriteMode

constexpr WriteMode Utopia::DefaultWriteMode = WriteMode::basic
constexpr

Alias for the default write mode.