Mathematical Reference

This page summarizes the core equations. The stochastic implementation uses integer-valued daily transitions, typically drawn from Poisson processes and capped by compartment counts.

Force Of Infection

For susceptible age group (i), the force of infection is:

\[\lambda_i(t) = \beta_i(t) \sum_j C_{ij} \frac{I_j^\ast(t)}{N}\]

where:

  • (C_{ij}) is the contact matrix from susceptible age group (i) to infectious age group (j);

  • (N) is node population;

  • (I_j^\ast) is the weighted infectious population in age group (j);

  • (\beta_i(t)) is the baseline beta after NPI modification.

For SEITRS:

\[I_j^\ast = I_j + \rho_T T_j\]

where (\rho_T =) rel_inf_T_to_I.

SEIRS Daily Transitions

For SEIRS:

\[S \rightarrow E,\quad E \rightarrow I,\quad I \rightarrow R,\quad R \rightarrow S\]

with rates:

\[\sigma = \frac{1}{\text{latent period}}, \quad \gamma = \frac{1}{\text{infectious period}}, \quad \omega = \frac{1}{\text{immune period}}.\]

SEITRS Daily Transitions

SEITRS disease progression is:

\[S \rightarrow E,\quad E \rightarrow I,\quad I \rightarrow R,\quad T \rightarrow R,\quad R \rightarrow S.\]

The antiviral stockpile model creates treatment transitions:

\[E \xrightarrow{\text{dose available}} T,\quad I \xrightarrow{\text{dose available}} T.\]

This keeps treatment resource-constrained. If no antiviral stockpile is released, the treatment transition count is zero.

Competing Clocks

When a compartment has competing exits and the desired realized fraction is (p_i), the simulator adjusts branch multipliers (\pi_i) so:

\[\frac{\pi_i r_i}{\sum_j \pi_j r_j} = p_i.\]

The implemented solution is:

\[\pi_i = \frac{p_i / r_i}{\sum_j p_j / r_j}.\]

For two branches, this reduces to the helper DiseaseModel.adjust_two_way_split_proportion.