# vorlon83/extending-multilayerabm-covid-19-patras architecture

> Architecture diagram of the GitHub repository vorlon83/extending-multilayerabm-covid-19-patras, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vorlon83/extending-multilayerabm-covid-19-patras
- Repository: https://github.com/vorlon83/extending-multilayerabm-covid-19-patras

## Overview

This is a Python/Mesa research package for simulating COVID-19 in a synthetic Patras population and producing paper results. The main workflow runs intervention scenarios through the SEIRD model, whose agents interact across seven social layers; repeated runs are summarized and visualized. Separate scripts provide audits and exploratory analyses, including transmission-tree measures, hospitalization, network statistics, and layer ablations. The graph follows documented and indexed relationships; unsampled script internals are not assumed to call one another.

Main entry points: [`model.py`](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/model.py) (SEIRD model), [`run_simulation.py`](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/run_simulation.py) (Simulation CLI), [`synthetic_population.py`](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/synthetic_population.py) (Synthetic population), [`run_experiments.py`](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/run_experiments.py) (Scenario experiments)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_simulation["Population and simulation"]
  node_cli["Simulation CLI<br/>[run_simulation.py]"]
  node_model["SEIRD model<br/>[model.py]"]
  node_population["Synthetic population"]
  node_agent["Person agent<br/>[agent.py]"]
end

subgraph group_experiments["Paper experiments"]
  node_main_experiment["Scenario experiments<br/>[run_experiments.py]"]
  node_church_sensitivity["Church sensitivity"]
  node_ablation["Layer ablation<br/>[ablation_study.py]"]
  node_weighted_church["Age-weighted church"]
end

subgraph group_analysis["Analyses and checks"]
  node_transmission["Transmission analysis"]
  node_hospitalization["Hospitalization analysis"]
  node_network["Network statistics<br/>[network_stats.py]"]
  node_replications["Extra replications"]
  node_audit["Simulation audit<br/>[audit.py]"]
end

subgraph group_outputs["Results and figures"]
  node_figures["Publication figures<br/>[nice_figures.py]"]
  node_results["Archived results"]
end

node_user(("Researcher"))

node_user -->|"runs scenarios"| node_cli
node_cli -->|"runs model"| node_model
node_model -->|"generates population"| node_population
node_model -->|"creates agents"| node_agent
node_agent -->|"reads model state"| node_model
node_main_experiment -->|"runs scenarios"| node_cli
node_main_experiment -->|"writes summaries"| node_results
node_figures -->|"averages runs"| node_cli
node_figures -->|"writes figures"| node_results
node_church_sensitivity -->|"runs scenarios"| node_cli
node_ablation -->|"runs variants"| node_model
node_weighted_church -->|"compares assignments"| node_population
node_weighted_church -->|"runs comparison"| node_model
node_transmission -->|"analyzes transmissions"| node_model
node_hospitalization -->|"analyzes runs"| node_cli
node_network -->|"analyzes layers"| node_population
node_replications -->|"runs scenarios"| node_cli
node_audit -->|"checks runs"| node_cli
node_audit -->|"checks model"| node_model

click node_cli "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/run_simulation.py"
click node_model "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/model.py"
click node_population "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/synthetic_population.py"
click node_agent "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/agent.py"
click node_main_experiment "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/run_experiments.py"
click node_church_sensitivity "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/church_sensitivity.py"
click node_ablation "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/ablation_study.py"
click node_weighted_church "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/church_weighted_comparison.py"
click node_transmission "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/transmission_analysis.py"
click node_hospitalization "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/hospitalization_analysis.py"
click node_network "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/network_stats.py"
click node_replications "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/extra_replications.py"
click node_audit "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/audit.py"
click node_figures "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/nice_figures.py"
click node_results "https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/tree/main/results"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_model,node_population,node_agent toneBlue
class node_main_experiment,node_church_sensitivity,node_ablation,node_weighted_church toneAmber
class node_transmission,node_hospitalization,node_network,node_replications,node_audit toneMint
class node_figures,node_results toneRose
class node_user toneIndigo
```

## Components

### Population and simulation

- [Simulation CLI](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/run_simulation.py): `run_simulation.py`
- [SEIRD model](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/model.py): `model.py`
- [Synthetic population](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/synthetic_population.py): `synthetic_population.py`
- [Person agent](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/agent.py): `agent.py`

### Paper experiments

- [Scenario experiments](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/run_experiments.py): `run_experiments.py`
- [Church sensitivity](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/church_sensitivity.py): `church_sensitivity.py`
- [Layer ablation](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/ablation_study.py): `ablation_study.py`
- [Age-weighted church](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/church_weighted_comparison.py): `church_weighted_comparison.py`

### Analyses and checks

- [Transmission analysis](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/transmission_analysis.py): `transmission_analysis.py`
- [Hospitalization analysis](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/hospitalization_analysis.py): `hospitalization_analysis.py`
- [Network statistics](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/network_stats.py): `network_stats.py`
- [Extra replications](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/extra_replications.py): `extra_replications.py`
- [Simulation audit](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/audit.py): `audit.py`

### Results and figures

- [Publication figures](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/blob/main/nice_figures.py): `nice_figures.py`
- [Archived results](https://github.com/vorlon83/extending-multilayerabm-covid-19-patras/tree/main/results): `results`

### Other components

- **Researcher**

## Connections

- Researcher → Simulation CLI: runs scenarios (evidence: `README.md`)
- Simulation CLI → SEIRD model: runs model (evidence: `run_simulation.py`)
- SEIRD model → Synthetic population: generates population (evidence: `model.py`)
- SEIRD model → Person agent: creates agents (evidence: `model.py`)
- Person agent → SEIRD model: reads model state (evidence: `agent.py`)
- Scenario experiments → Simulation CLI: runs scenarios (evidence: `run_experiments.py`)
- Scenario experiments → Archived results: writes summaries (evidence: `README.md`)
- Publication figures → Simulation CLI: averages runs (evidence: `nice_figures.py`)
- Publication figures → Archived results: writes figures (evidence: `README.md`)
- Church sensitivity → Simulation CLI: runs scenarios (evidence: `church_sensitivity.py`)
- Layer ablation → SEIRD model: runs variants (evidence: `ablation_study.py`)
- Age-weighted church → Synthetic population: compares assignments (evidence: `church_weighted_comparison.py`)
- Age-weighted church → SEIRD model: runs comparison (evidence: `church_weighted_comparison.py`)
- Transmission analysis → SEIRD model: analyzes transmissions (evidence: `transmission_analysis.py`)
- Hospitalization analysis → Simulation CLI: analyzes runs (evidence: `hospitalization_analysis.py`)
- Network statistics → Synthetic population: analyzes layers (evidence: `network_stats.py`)
- Extra replications → Simulation CLI: runs scenarios (evidence: `extra_replications.py`)
- Simulation audit → Simulation CLI: checks runs (evidence: `audit.py`)
- Simulation audit → SEIRD model: checks model (evidence: `audit.py`)
