epiverse-trace / epidemics

A library of published compartmental epidemic models, and classes to represent demographic structure, non-pharmaceutical interventions, and vaccination regimes, to compose epidemic scenarios.
https://epiverse-trace.github.io/epidemics/
Other
8 stars 2 forks source link

Vaccination counts lead to negative susceptibles #226

Closed pratikunterwegs closed 4 months ago

pratikunterwegs commented 5 months ago

This issue is a subset of #224, where simulating vaccination leads to negative numbers of susceptibles as per-day vaccination counts may be greater than available susceptibles towards the end of an outbreak.

One solution would be the use of a stepper that is more suitable for stiff ODE systems. It should especially be able to handle > 1% instantaneous changes as these are expected in vaccination scenarios. Issue #224 shows that integration fails and produces negative values for the current fixed size stepper used. Options from Boost are listed here, and some guidance on related functionality is here.

An alternative solution is to build on PR #202 and add a simple if else check which sets vaccinations to the lesser of either available doses or susceptibles.

pratikunterwegs commented 4 months ago

A few thoughts on this issue:

The workable solution is probably to manually change the number of vaccinations so that the $S \rightarrow V$ flow is always $\leq S$.

Happy to hear solutions on this that could work for this situation.