Architecture
The main entry point is src/simulator.py.
At a high level:
InputPropertiesreads the JSON input.ModelParametersloads shared parameter dictionaries and data files.Networkcreates nodes and dynamic compartment indices.Treatment models distribute vaccines and antivirals.
Disease models advance compartment states.
Travel models move exposure pressure across nodes.
Writeremits daily outputs and metadata.
Model Families
Disease models live in
src/models/disease/.Travel models live in
src/models/travel/.Treatment and intervention models live in
src/models/treatments/.Base classes and shared data structures live in
src/baseclasses/.
Dynamic Compartments
The active Compartments enum is created from the input JSON compartment list.
This makes the same population storage work for SEIRS, SEITRS, SEIHRD, and
future compartment sets. Code that accesses compartments should use
Compartments.S.value, Compartments.T.value, and similar labels rather than
hard-coded indices.