|
Utopia 2
Framework for studying models of complex & adaptive systems.
|
The Opinionet model class. More...
#include <Opinionet.hh>


Public Types | |
| using | Base = Model< Opinionet, OpinionetTypes > |
| The base model type. | |
| using | Config = typename Base::Config |
| Data type that holds the configuration. | |
| using | DataGroup = typename Base::DataGroup |
| Data type of the group to write model data to, holding datasets. | |
| using | DataSet = typename Base::DataSet |
| Data type for a dataset. | |
| using | RNG = typename Base::RNG |
| Data type of the shared RNG. | |
Public Types inherited from Utopia::Model< Derived, ModelTypes > | |
| using | Config = typename ModelTypes::Config |
| Data type that holds the configuration. | |
| using | DataManager = DataIO::Default::DefaultDataManager< Derived > |
| The data manager to use, specialized with the derived model. | |
| using | DataGroup = typename ModelTypes::DataGroup |
| Data type that is used for storing datasets. | |
| using | DataSet = typename ModelTypes::DataSet |
| Data type that is used for storing data. | |
| using | RNG = typename ModelTypes::RNG |
| Data type of the shared RNG. | |
| using | Space = typename ModelTypes::Space |
| Data type of the space this model resides in. | |
| using | Time = typename ModelTypes::Time |
| Data type for the model time. | |
| using | Monitor = typename ModelTypes::Monitor |
| Data type for the monitor. | |
| using | MonitorManager = typename ModelTypes::MonitorManager |
| Data type for the monitor manager. | |
| using | Level = typename ModelTypes::Level |
| Data type for the hierarchical level. | |
Public Member Functions | |
| template<class ParentModel > | |
| Opinionet (const std::string name, ParentModel &parent) | |
| Construct the Opinionet model. | |
| void | perform_step () |
| Iterate a single step Each step consists of an opinion update and edge rewiring. | |
| void | monitor () |
| Monitor model information. | |
| void | write_data () |
| Write data. | |
Public Member Functions inherited from Utopia::Model< Derived, ModelTypes > | |
| template<class ParentModel , class... WriterArgs> | |
| Model (const std::string &name, const ParentModel &parent_model, const Config &custom_cfg={}, std::tuple< WriterArgs... > w_args={}, const DataIO::Default::DefaultDecidermap< Derived > &w_deciders=DataIO::Default::default_deciders< Derived >, const DataIO::Default::DefaultTriggermap< Derived > &w_triggers=DataIO::Default::default_triggers< Derived >) | |
| Constructs a Model instance. | |
| const std::shared_ptr< Space > & | get_space () const |
| Return the space this model resides in. | |
| Time | get_time () const |
| Return the current time of this model. | |
| Time | get_time_max () const |
| Return the maximum time possible for this model. | |
| Config | get_cfg () const |
| Return the config node of this model. | |
| std::string | get_name () const |
| Return the name of this model instance. | |
| std::string | get_full_name () const |
| Return the full name of this model within the model hierarchy. | |
| std::shared_ptr< DataGroup > | get_hdfgrp () const |
| Return a pointer to the HDF group this model stores data in. | |
| Time | get_write_start () const |
| Return the parameter that controls when write_data is called first. | |
| Time | get_write_every () const |
| Return the parameter that controls how often write_data is called. | |
| DataManager | get_datamanager () const |
| return the datamanager | |
| hsize_t | get_remaining_num_writes () const |
Return the number of remaining write_data calls this model will make. | |
| std::shared_ptr< RNG > | get_rng () const |
| Return a pointer to the shared RNG. | |
| std::shared_ptr< spdlog::logger > | get_logger () const |
| Return a pointer to the logger of this model. | |
| Monitor | get_monitor () const |
| Return the monitor of this model. | |
| std::shared_ptr< MonitorManager > | get_monitor_manager () const |
| Get the monitor manager of the root model. | |
| Level | get_level () const |
| Return the hierarchical level within the model hierarchy. | |
| virtual void | prolog () |
| A function that is called before starting model iteration. | |
| virtual void | epilog () |
| A function that is called after the last iteration of a model. | |
| void | iterate () |
| Iterate one (time) step of this model. | |
| void | run () |
| Run the model from the current time to the maximum time. | |
| std::shared_ptr< DataSet > | create_dset (const std::string name, const std::shared_ptr< DataGroup > &hdfgrp, std::vector< hsize_t > add_write_shape, const std::size_t compression_level=1, const std::vector< hsize_t > chunksize={}) |
| Create a new dataset within the given group. | |
| std::shared_ptr< DataSet > | create_dset (const std::string name, const std::vector< hsize_t > add_write_shape, const std::size_t compression_level=1, const std::vector< hsize_t > chunksize={}) |
| Create a new dataset within the model's base data group. | |
| template<class CellManager > | |
| std::shared_ptr< DataSet > | create_cm_dset (const std::string name, const CellManager &cm, const std::size_t compression_level=1, const std::vector< hsize_t > chunksize={}) |
| Create a dataset storing data from a CellManager. | |
| template<class AgentManager > | |
| std::shared_ptr< DataSet > | create_am_dset (const std::string name, const AgentManager &am, const std::size_t compression_level=1, const std::vector< hsize_t > chunksize={}) |
| Create a dataset storing data from a AgentManager. | |
Private Member Functions | |
| Interaction_type | initialize_interaction () |
| Opinion_space_type | initialize_opinion_space () |
| Rewiring | initialize_rewiring () |
| void | initialize_properties () |
| NWType | initialize_nw () const |
| std::shared_ptr< DataSet > | create_edge_weight_dset () |
Private Attributes | |
| const Interaction_type | _interaction |
| Modes. | |
| const Opinion_space_type | _opinion_space |
| const Rewiring | _rewire |
| NWType | _nw |
| Network and model dynamics parameters. | |
| const double | _tolerance |
| const double | _susceptibility |
| const double | _weighting |
| std::uniform_real_distribution< double > | _uniform_prob_distr |
| A uniform probability distribution. | |
| const std::shared_ptr< DataGroup > | _dgrp_nw |
| const std::shared_ptr< DataSet > | _dset_opinion |
| const std::shared_ptr< DataSet > | _dset_edge_weights |
Additional Inherited Members | |
Protected Member Functions inherited from Utopia::Model< Derived, ModelTypes > | |
| void | __perform_step () |
| Perform the computation of a step. | |
| void | __monitor () |
| Monitor information in the terminal. | |
| void | __write_data () |
| Write data; calls the implementation's write_data method. | |
| void | __write_initial_state () |
| Write the initial state. | |
| void | increment_time (const Time dt=1) |
| Increment time. | |
| void | __prolog () |
| The default prolog of a model. | |
| void | __epilog () |
| The default epilog of a model. | |
| Derived & | impl () |
| cast to the derived class | |
| const Derived & | impl () const |
| const cast to the derived interface | |
Protected Attributes inherited from Utopia::Model< Derived, ModelTypes > | |
| const std::string | _name |
| Name of the model instance. | |
| const std::string | _full_name |
| The full name within the model hierarchy. | |
| const Level | _level |
| The level within the model hierarchy. | |
| const Config | _cfg |
| Config node belonging to this model instance. | |
| const std::shared_ptr< RNG > | _rng |
| The RNG shared between models. | |
| const std::shared_ptr< spdlog::logger > | _log |
| The (model) logger. | |
| std::shared_ptr< Space > | _space |
| The space this model resides in. | |
| Time | _time |
| Model-internal current time stamp. | |
| const Time | _time_max |
| Model-internal maximum time stamp. | |
| const std::shared_ptr< DataGroup > | _hdfgrp |
| The HDF group this model instance should write its data to. | |
| const Time | _write_start |
| First time at which write_data is called. | |
| const Time | _write_every |
| How often to call write_data from iterate. | |
| Monitor | _monitor |
| The monitor. | |
| DataManager | _datamanager |
| Manager object for handling data output; see DataManager. | |
Static Protected Attributes inherited from Utopia::Model< Derived, ModelTypes > | |
| static constexpr WriteMode | _write_mode = ModelTypes::write_mode |
| Which data-writing mode the base model should use. | |
The Opinionet model class.
This is a 1d opinion dynamics model with interactions based on bounded confidence.
The base model type.
| using Utopia::Models::Opinionet::Opinionet< NWType >::Config = typename Base::Config |
Data type that holds the configuration.
| using Utopia::Models::Opinionet::Opinionet< NWType >::DataGroup = typename Base::DataGroup |
Data type of the group to write model data to, holding datasets.
| using Utopia::Models::Opinionet::Opinionet< NWType >::DataSet = typename Base::DataSet |
Data type for a dataset.
Data type of the shared RNG.
|
inline |
Construct the Opinionet model.
| name | Name of this model instance |
| parent | The parent model this model instance resides in |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
Monitor model information.
Here, functions and values can be supplied to the monitor that are then available to the frontend. The monitor() function is only called if a certain emit interval has passed; thus, the performance hit is small.
|
inline |
Iterate a single step Each step consists of an opinion update and edge rewiring.
Opinion update: Apply the interaction function to a randomly chosen vertex.
Rewiring, if enabled: Rewire a random edge based on selective exposure.
|
inline |
Write data.
|
private |
|
private |
|
private |
|
private |
|
private |
Network and model dynamics parameters.
|
private |
|
private |
|
private |
|
private |
|
private |
A uniform probability distribution.
|
private |