![]() |
Construct version 5.4.2
An agent based modeling framework
|
A modification model which causes delays in the transmission of messages. More...
Public Member Functions | |
Mail (Construct &construct) | |
void | update (void) override |
For each message in Construct::interaction_message_queue the message is added the sender's entry in Mail::mailboxes with probability using the sender's index and communication index in Mail::mail_pref. If the message is moved into Mail::mailboxes, the message is removed from Construct::interaction_message_queue. Then each agent checks their mail with probability from Mail::mail_check_prob. If an agent checks their mail, their entry in Mail::mailboxes are added to Construct::interaction_message_queue and that entry in Mail::mailboxes is cleared. More... | |
![]() | |
Model (Construct &_construct) | |
Constructor for all models in Construct. More... | |
virtual | ~Model (void) |
Virtual Deconstructor. More... | |
virtual void | initialize (void) |
Function called once before any simulation cycles begin. More... | |
virtual void | think (void) |
First function called in a simulation cycle. More... | |
virtual void | update (void) |
Function called after the think functions in a simulation cycle. More... | |
virtual void | communicate (const InteractionMessage &msg) |
Function called after the update functions in a simulation cycle. More... | |
virtual void | cleanup (void) |
Function called after the Model::communicate functions in a simulation cycle. More... | |
void | add_base_model_to_model_manager (const std::string &base_model_name) |
Adds a derived model under the name of the base model and disables the model manager from calling its functions. | |
Public Attributes | |
Graph< float > & | mail_pref = graph_manager.load_optional(graph_names::mail_usage, 1.0f, nodeset_names::agents, sparse, nodeset_names::comm, sparse) |
Graph< float > & | mail_check_prob = graph_manager.load_optional(graph_names::mail_check_prob, 0.5f, nodeset_names::agents, sparse, nodeset_names::time, sparse) |
std::vector< InteractionMessageQueue > | mailboxes = std::vector<InteractionMessageQueue>(mail_pref.source_nodeset->size()) |
![]() | |
Construct & | construct |
GraphManager & | graph_manager |
NodesetManager & | ns_manager |
Random & | random |
bool | valid |
If member is false, the model's functions are not called. | |
A modification model which causes delays in the transmission of messages.
|
overridevirtual |
For each message in Construct::interaction_message_queue the message is added the sender's entry in Mail::mailboxes with probability using the sender's index and communication index in Mail::mail_pref. If the message is moved into Mail::mailboxes, the message is removed from Construct::interaction_message_queue. Then each agent checks their mail with probability from Mail::mail_check_prob. If an agent checks their mail, their entry in Mail::mailboxes are added to Construct::interaction_message_queue and that entry in Mail::mailboxes is cleared.
Reimplemented from Model.
Graph<float>& Mail::mail_check_prob = graph_manager.load_optional(graph_names::mail_check_prob, 0.5f, nodeset_names::agents, sparse, nodeset_names::time, sparse) |
summary>
Graph<float>& Mail::mail_pref = graph_manager.load_optional(graph_names::mail_usage, 1.0f, nodeset_names::agents, sparse, nodeset_names::comm, sparse) |
summary>
std::vector<InteractionMessageQueue> Mail::mailboxes = std::vector<InteractionMessageQueue>(mail_pref.source_nodeset->size()) |
summary>