Implementation Documentation¶
This module contains information about the implementation of epiworld, and how you can extend it with your own modules and code.
Architecture and Design¶
- Library Architecture — modular structure of the
Agent,Entity, andModelclasses, the "bones and meat" pattern, and file organization. - Performance Optimization — profiling, memory layout, template inlining, and OpenMP parallelization.
- Queueing System — the
Queueclass that selectively activates agents for efficient per-step processing.
Extending Epiworld¶
- Extending the Library — custom agent behaviors, network rewiring, global events, and data collection strategies.
- Extending the Library with Models — creating new epidemiological models via inheritance from
Model.
Models and Simulation¶
- Core Simulation Models — pre-built model templates (SIS, SIR, SEIR, mixing, quarantine, and more).
- Mixing and Entity Distribution — contact matrices and entity distribution functions for structured group interactions.
- Sampling Contacts — binomial contact sampling optimization in mixing models.
- Quarantine, Isolation, and Contact Tracing — quarantine and isolation mechanisms and contact tracing modules.
- Virus and Tool Distribution Functions — distributing viruses and tools to agents.
Data and Analysis¶
- Data Collection and Analysis — the
DataBaseclass, recording during simulations, exporting data, and basic analysis. - Generation Interval and Reproductive Number Calculation — computing generation intervals and reproductive numbers.
Simulation Execution¶
- Reproducibility and
run_multiple— single and multiple simulation runs, seeding, and parallel execution. - Random Number Generation and Statistical Functions — RNG utilities, statistical distributions, and the LFMCMC module.
- Events and Multi-Event Handling — the event dispatch system and LIFO scheduling.