Crate ixa

Source
Expand description

A framework for building discrete-event simulations

Ixa is a framework designed to support the creation of large-scale discrete event simulations. The primary use case is the construction of agent-based models for disease transmission, but the approach is applicable in a wide array of circumstances.

The central object of an Ixa simulation is the Context that is responsible for managing all the behavior of the simulation. All of the simulation-specific logic is embedded in modules that rely on the Context for core services such as:

  • Maintaining a notion of time for the simulation
  • Scheduling events to occur at some point in the future and executing them at that time
  • Holding module-specific data so that the module and other modules can access it

In practice, a simulation usually consists of a set of modules that work together to provide all of the functions of the simulation. For instance, For instance, a simple disease transmission model might consist of the following modules:

  • A population loader that initializes the set of people represented by the simulation.
  • An infection seeder that introduces the pathogen into the population.
  • A disease progression manager that transitions infected people through stages of disease until recovery.
  • A transmission manager that models the process of an infected person trying to infect susceptible people in the population.

Re-exports§

Modules§

  • A manager for the state of a discrete-event simulation
  • Provides IxaError and wraps other errors.
  • A generic mechanism for storing context-wide data.
  • The log module defines an interface to Ixa’s internal logging facilities. Logging messages about internal behavior of Ixa. This is not to be confused with reporting, which is model-level concept for Ixa users to record data about running models.
  • A module for modeling contact networks.
  • A generic mechanism for representing people and associated data.
  • A priority queue that stores arbitrary data sorted by time and priority

Macros§

Enums§

  • An enum representing the available verbosity level filters of the logger.

Traits§

  • Provides API parity with std::collections::HashMap.
  • Provides API parity with std::collections::HashSet.

Type Aliases§

  • Type alias for a hash map that uses the Fx hashing algorithm.
  • Type alias for a hash set that uses the Fx hashing algorithm.