How scicompmod/memilio works
MEmilio is a modular infectious-disease modeling and simulation platform, with C++ model and numerical runtimes, Python-facing simulation tools, epidemiological data utilities, and surrogate-model capabilities. Its principal workflow is to prepare epidemiological inputs, configure a model and mobility scenario, run a simulation, and inspect results. The README documents the model families and modular mobility support; sampled excerpts are limited, so links between unsampled subsystems are omitted where their wiring is unclear.
Main entry points: bindings Python bindings · ode_secir ODE models · compartments Compartment framework · epidata Epidata utilities
Components 20
Data preparation
- Epidata utilities
pycode/memilio-epidata/memilio/epidata - Data and result I/O
cpp/memilio/io
Simulation engine
- Compartment framework
cpp/memilio/compartments - Numerical solvers
cpp/memilio/math - Epidemiology components
cpp/memilio/epidemiology - Mobility modeling
cpp/memilio/mobility
Epidemic models
- ODE models
cpp/models/ode_secir - IDE models
cpp/models/ide_secir - Linear-chain models
cpp/models/lct_secir - Agent-based models
cpp/models/abm - Hybrid models
cpp/models/hybrid - Graph ODE models
cpp/models/ode_seir_metapop
Python tools
- Python simulation API
pycode/memilio-simulation/memilio/simulation - Python bindings
pycode/memilio-simulation/memilio/simulation/bindings - Model generator
pycode/memilio-generation/memilio/generation - Plotting utilities
pycode/memilio-plot/memilio/plot
Surrogate models
- Surrogate training
pycode/memilio-surrogatemodel/memilio/surrogatemodel
Other components
- Modeler
- Epidemiological sources
- Simulation results
Connections 25
- Epidemiological sources → Epidata utilities: provides data
- Modeler → Epidata utilities: prepares inputs
- Modeler → Python simulation API: configures run
- Epidata utilities → Python simulation API: supplies inputs
- Python simulation API → Python bindings: dispatches calls
- Python bindings → ODE models: invokes model
- Python bindings → Agent-based models: invokes model
- Python bindings → IDE models: invokes model
- Python bindings → Linear-chain models: invokes model
- ODE models → Compartment framework: uses framework
- IDE models → Compartment framework: uses framework
- Linear-chain models → Compartment framework: uses framework
- Agent-based models → Numerical solvers: uses numerical methods
- Compartment framework → Numerical solvers: integrates states
- ODE models → Epidemiology components: uses parameters
- ODE models → Mobility modeling: combines mobility
- Graph ODE models → Mobility modeling: uses mobility
- Hybrid models → Agent-based models: combines model scales
- Modeler → Model generator: generates model
- Modeler → Surrogate training: trains surrogate
- Surrogate training → Simulation results: produces predictions
- Modeler → Data and result I/O: loads or saves
- Data and result I/O → Simulation results: writes outputs
- Modeler → Plotting utilities: visualizes results
- Simulation results → Plotting utilities: provides series