Airborne spread module now loops over only the units in infectious_units. Shorter than scanning the whole list for Infectious Subclinical or Infectious Clinical units. Part of the "Shorter Loops" speedup described at https://github.com/NAVADMC/SpreadModel/wiki/Benchmarking-and-Profiling
Unit state monitor now loops over only the units in infectious_units when calculating the "average prevalence" output. Shorter than scanning the whole list of units for Latent, Infectious Subclinical, or Infectious Clinical units. Part of the "Shorter Loops" speedup described at https://github.com/NAVADMC/SpreadModel/wiki/Benchmarking-and-Profiling
Detection module now uses the information in UnitStateChange events to track a list of units currently detectable by self-reporting. The variable that tracked the set of "detected" units is gone, replaced by a variable that tracks the set of "detectable" units. Part of the "Shorter Loops" speedup described at https://github.com/NAVADMC/SpreadModel/wiki/Benchmarking-and-Profiling
Two changes to population module. 1) No longer does a "reset" of all units before the first iteration. That operation is needed *between* iterations, but not before the first iteration, when all the units are already in their starting state. 2) Now tracks the set of all units currently in the disease cycle (Susc -> Lat -> Subc -> Clin -> NImm -> Susc) or the vaccine cycle (Susc -> VImm -> Susc). Only these units have the "step" function called at Midnight to advance their state by 1 day. Previously the "step" function was called on all units, most of which didn't need it. Part of the "Shorter Loops" speedup described at https://github.com/NAVADMC/SpreadModel/wiki/Benchmarking-and-Profiling
Small improvement to avoid an extra function call in cases where the search area is too big to use the R-tree.