feedback_simulation.h Source File
|
CPP API
|
feedback_simulation.h
Go to the documentation of this file.
197 ParameterSet<ICUOccupancyHistory<FP>, GammaShapeParameter<FP>, GammaScaleParameter<FP>, GammaCutOff,
228 , m_perceived_risk(static_cast<Eigen::Index>(m_simulation.get_model().parameters.get_num_groups().get()))
231 , m_global_icu_occupancy(static_cast<Eigen::Index>(m_simulation.get_model().parameters.get_num_groups().get()))
316 size_t n = std::min(static_cast<size_t>(num_time_points), m_feedback_parameters.template get<GammaCutOff>());
322 const auto& blending_regional = m_feedback_parameters.template get<BlendingFactorRegional<FP>>();
416 const auto& contactReductionMax = m_feedback_parameters.template get<ContactReductionMax<FP>>();
417 const auto& contactReductionMin = m_feedback_parameters.template get<ContactReductionMin<FP>>();
430 // define a lambda function to create a damping sampling object given a reduction factor and location
433 return mio::DampingSampling(v, mio::DampingLevel(0), mio::DampingType(0), mio::SimulationTime<FP>(t),
439 // for each location, compute the effective contact reduction factor and add the corresponding damping sample
A generic feedback simulation extending existing simulations with a feedback mechanism.
Definition: feedback_simulation.h:214
auto & get_result()
Returns the simulation result.
Definition: feedback_simulation.h:266
FP calc_risk_perceived()
Calculates the perceived risk based on ICU occupancy data.
Definition: feedback_simulation.h:312
auto advance(const FP tmax, const FP dt_feedback=1.0)
Advances the simulation until tmax while applying feedback at fixed intervals.
Definition: feedback_simulation.h:249
mio::TimeSeries< FP > m_regional_icu_occupancy
The regional ICU occupancy time series.
Definition: feedback_simulation.h:465
void set_regional_icu_occupancy(const mio::TimeSeries< FP > &icu_regional)
Sets the regional ICU occupancy time series.
Definition: feedback_simulation.h:382
Sim m_simulation
The simulation instance.
Definition: feedback_simulation.h:461
FeedbackSimulationParameters< FP > m_feedback_parameters
The feedback parameters.
Definition: feedback_simulation.h:463
mio::TimeSeries< FP > m_perceived_risk
The perceived risk time series.
Definition: feedback_simulation.h:464
const auto & get_model() const
Definition: feedback_simulation.h:279
std::vector< size_t > m_icu_indices
The ICU compartment indices from the model.
Definition: feedback_simulation.h:462
void set_global_icu_occupancy(const mio::TimeSeries< FP > &icu_global)
Sets the global ICU occupancy time series.
Definition: feedback_simulation.h:392
auto & get_perceived_risk()
Definition: feedback_simulation.h:291
void add_icu_occupancy(FP t)
Adds the current (local) ICU occupancy into the parameter containing all historical ICU occupancy val...
Definition: feedback_simulation.h:362
mio::TimeSeries< FP > m_global_icu_occupancy
The global ICU occupancy time series.
Definition: feedback_simulation.h:466
FeedbackSimulation(Sim &&sim, const std::vector< size_t > &icu_indices)
Constructs the FeedbackSimulation by taking ownership of an existing simulation instance.
Definition: feedback_simulation.h:224
auto & get_parameters()
Returns the local feedback parameters.
Definition: feedback_simulation.h:299
auto & get_model()
Returns the model used in the simulation.
Definition: feedback_simulation.h:274
auto & get_perceived_risk() const
Returns the perceived risk time series.
Definition: feedback_simulation.h:287
void apply_feedback(FP t)
Transforms the perceived risk into a contact reduction factor and applies it to the contact patterns.
Definition: feedback_simulation.h:405
An Index with more than one template parameter combines several Index objects.
Definition: index.h:181
stores vectors of values at time points (or some other abstract variable) the value at each time poin...
Definition: time_series.h:58
Definition: ad.h:57
static min_max_return_type< ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 >, ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > >::type min(const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &a, const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &b)
Definition: ad.hpp:2599
ad::internal::binary_intermediate_aa< AD_TAPE_REAL, ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 >, ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 >, ad::operations::ad_pow_aa< AD_TAPE_REAL > > pow(const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &x1, const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &x2)
Definition: ad.hpp:1610
ad::internal::unary_intermediate< AD_TAPE_REAL, ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 >, ad::operations::ad_log< AD_TAPE_REAL > > log(const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &x1)
Definition: ad.hpp:1034
ad::internal::unary_intermediate< AD_TAPE_REAL, ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 >, ad::operations::ad_exp< AD_TAPE_REAL > > exp(const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &x1)
Definition: ad.hpp:990
int size(Comm comm)
Return the size of the given communicator.
Definition: miompi.cpp:75
A collection of classes to simplify handling of matrix shapes in meta programming.
Definition: models/abm/analyze_result.h:30
void log(LogLevel level, spdlog::string_view_t fmt, const Args &... args)
Definition: logging.h:128
constexpr std::tuple_element< I, std::tuple< Index< CategoryTags >... > >::type & get(Index< CategoryTags... > &i) noexcept
Retrieves the Index (by reference) at the Ith position of a MultiIndex.
Definition: index.h:294
Definition: io.h:94
The AgeGroup struct is used as a dynamically sized tag for all age dependent categories.
Definition: age_group.h:32
Blending factor for local ICU occupancy.
Definition: feedback_simulation.h:167
static Type get_default(AgeGroup)
Definition: feedback_simulation.h:169
Blending factor for regional ICU occupancy.
Definition: feedback_simulation.h:183
static Type get_default(AgeGroup)
Definition: feedback_simulation.h:185
Maximum allowed contact reduction factors per location.
Definition: feedback_simulation.h:102
static Type get_default(AgeGroup)
Definition: feedback_simulation.h:104
Minimum allowed contact reduction factors per location.
Definition: feedback_simulation.h:118
static Type get_default(AgeGroup)
Definition: feedback_simulation.h:120
Number of days in the past considered for the gamma distribution.
Definition: feedback_simulation.h:86
Scale parameter of the gamma distribution.
Definition: feedback_simulation.h:71
static Type get_default(AgeGroup)
Definition: feedback_simulation.h:73
Shape parameter of the gamma distribution.
Definition: feedback_simulation.h:55
static Type get_default(AgeGroup)
Definition: feedback_simulation.h:57
Daily local ICU occupancy per age group.
Definition: feedback_simulation.h:39
static Type get_default(AgeGroup size)
Definition: feedback_simulation.h:41
static Type get_default(AgeGroup)
Definition: feedback_simulation.h:152
Soft-plus curvature parameter for contact adjustment.
Definition: feedback_simulation.h:134
static Type get_default(AgeGroup)
Definition: feedback_simulation.h:136
Generated by