  Many multi-scale systems exhibit stochastic and deterministic dynamics.
Capturing these aspects in a compartmental model is challenging. Notably, low
occupancy compartments exhibit stochastic dynamics and high occupancy
compartments exhibit deterministic dynamics. Failing to account for
stochasticity in small populations can produce 'atto-foxes', e.g. in the
classic Lotka-Volterra ODE system. This can be resolved with discrete
stochastic models e.g. continuous time Markov chains (CTMCs). Unfortunately,
simulating CTMCs is infeasible for most realistic populations. We develop a
hybrid CTMC-ODE approach, 'Jump-Switch-Flow' (JSF), available as a Python
package. JSF couples CTMCs and ODEs, and depending on the state of the system,
individual compartments 'switch' between stochastic 'jumping' and deterministic
'flowing' representations. Consequently, compartments can reach extinct states,
thereby resolving atto-type problems. JSF has the desired behaviours of exact
CTMC simulation, but is substantially faster that existing alternatives. JSF's
value for inference problems, particularly multi-scale problems, is
demonstrated with a case-study using a particle filter. With existing data of
SARS-CoV-2 infections, we perform a novel analysis to quantify within-host
viral clearance. JSF offers a novel approach to compartmental model development
and simulation.
