parameters.h Source File

CPP API: parameters.h Source File
ode_secir/parameters.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2020-2026 MEmilio
3 *
4 * Authors: Daniel Abele, Jan Kleinert, Martin J. Kuehn
5 *
6 * Contact: Martin J. Kuehn <Martin.Kuehn@DLR.de>
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 */
20 #ifndef SECIR_PARAMETERS_H
21 #define SECIR_PARAMETERS_H
22 
29 #include <limits>
30 
31 namespace mio
32 {
33 namespace osecir
34 {
35 
36 /*******************************************
37  * Define Parameters of the SECIHURD model *
38  *******************************************/
39 
46 template <typename FP>
47 struct StartDay {
48  using Type = FP;
50  {
51  return Type(0.0);
52  }
53  static std::string name()
54  {
55  return "StartDay";
56  }
57 };
63 template <typename FP>
64 struct Seasonality {
67  {
68  return Type(0.);
69  }
70  static std::string name()
71  {
72  return "Seasonality";
73  }
74 };
75 
79 template <typename FP>
80 struct ICUCapacity {
83  {
85  }
86  static std::string name()
87  {
88  return "ICUCapacity";
89  }
90 };
91 
95 template <typename FP>
96 struct TimeExposed {
99  {
100  return Type(size, 1.);
101  }
102  static std::string name()
103  {
104  return "TimeExposed";
105  }
106 };
107 
112 template <typename FP>
116  {
117  return Type(size, 1.);
118  }
119  static std::string name()
120  {
121  return "TimeInfectedNoSymptoms";
122  }
123 };
124 
129 template <typename FP>
133  {
134  return Type(size, 1.);
135  }
136  static std::string name()
137  {
138  return "TimeInfectedSymptoms";
139  }
140 };
141 
146 template <typename FP>
150  {
151  return Type(size, 1.);
152  }
153  static std::string name()
154  {
155  return "TimeInfectedSevere";
156  }
157 };
158 
163 template <typename FP>
167  {
168  return Type(size, 1.);
169  }
170  static std::string name()
171  {
172  return "TimeInfectedCritical";
173  }
174 };
175 
179 template <typename FP>
183  {
184  return Type(size, 1.);
185  }
186  static std::string name()
187  {
188  return "TransmissionProbabilityOnContact";
189  }
190 };
191 
195 template <typename FP>
199  {
200  return Type(size, 1.);
201  }
202  static std::string name()
203  {
204  return "RelativeTransmissionNoSymptoms";
205  }
206 };
207 
211 template <typename FP>
215  {
216  return Type(size, 0.);
217  }
218  static std::string name()
219  {
220  return "RecoveredPerInfectedNoSymptoms";
221  }
222 };
223 
227 template <typename FP>
231  {
232  return Type(size, 1.);
233  }
234  static std::string name()
235  {
236  return "RiskOfInfectionFromSymptomatic";
237  }
238 };
239 
243 template <typename FP>
247  {
248  return Type(size, 1.);
249  }
250  static std::string name()
251  {
252  return "MaxRiskOfInfectionFromSymptomatic";
253  }
254 };
255 
259 template <typename FP>
263  {
264  return Type(size, 0.);
265  }
266  static std::string name()
267  {
268  return "SeverePerInfectedSymptoms";
269  }
270 };
271 
275 template <typename FP>
279  {
280  return Type(size, 0.);
281  }
282  static std::string name()
283  {
284  return "CriticalPerSevere";
285  }
286 };
287 
291 template <typename FP>
295  {
296  return Type(size, 0.);
297  }
298  static std::string name()
299  {
300  return "DeathsPerCritical";
301  }
302 };
303 
307 template <typename FP>
311  {
312  return Type(1, static_cast<Eigen::Index>((size_t)size));
313  }
314  static std::string name()
315  {
316  return "ContactPatterns";
317  }
318 };
319 
323 template <typename FP>
326  static Type get_default(AgeGroup /*size*/)
327  {
328  return {};
329  }
330  static std::string name()
331  {
332  return "DynamicNPIsInfectedSymptoms";
333  }
334 };
335 
339 template <typename FP>
342  static Type get_default(AgeGroup /*size*/)
343  {
344  return Type(0.0);
345  }
346  static std::string name()
347  {
348  return "DynamicNPIsImplementationDelay";
349  }
350 };
351 
355 template <typename FP>
359  {
361  }
362  static std::string name()
363  {
364  return "TestAndTraceCapacity";
365  }
366 };
367 
371 template <typename FP>
375  {
376  return Type(5.0);
377  }
378  static std::string name()
379  {
380  return "TestAndTraceCapacityMaxRisk";
381  }
382 };
383 
384 template <typename FP>
393 
397 template <typename FP>
398 class Parameters : public ParametersBase<FP>
399 {
400 public:
401  Parameters(AgeGroup num_agegroups)
402  : ParametersBase<FP>(num_agegroups)
403  , m_num_groups{num_agegroups}
404  {
405  }
406 
408  {
409  return m_num_groups;
410  }
411 
416  {
418  }
420  {
422  }
423 
428  {
430  }
431 
433  {
435  }
436 
441  {
443  }
444 
446  {
448  }
449 
454  {
455  return m_end_dynamic_npis;
456  }
458  {
459  return m_end_dynamic_npis;
460  }
461 
476  {
477  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
478 
479  int corrected = false;
480  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
481  log_warning("Constraint check: Parameter Seasonality changed from {} to {}",
482  this->template get<Seasonality<FP>>(), 0);
483  this->template set<Seasonality<FP>>(0);
484  corrected = true;
485  }
486 
487  if (this->template get<ICUCapacity<FP>>() < 0.0) {
488  log_warning("Constraint check: Parameter ICUCapacity changed from {} to {}",
489  this->template get<ICUCapacity<FP>>(), 0);
490  this->template set<ICUCapacity<FP>>(0);
491  corrected = true;
492  }
493 
494  if (this->template get<DynamicNPIsImplementationDelay<FP>>() < 0.0) {
495  log_warning("Constraint check: Parameter DynamicNPIsImplementationDelay changed from {} to {}",
496  this->template get<DynamicNPIsImplementationDelay<FP>>(), 0);
497  this->template set<DynamicNPIsImplementationDelay<FP>>(0);
498  corrected = true;
499  }
500 
501  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
502  log_warning("Constraint check: Parameter TestAndTraceCapacity changed from {} to {}",
503  this->template get<TestAndTraceCapacity<FP>>(), 0);
504  this->template get<TestAndTraceCapacity<FP>>() = 0;
505  corrected = true;
506  }
507 
508  if (this->template get<TestAndTraceCapacityMaxRisk<FP>>() < 0.0) {
509  log_warning("Constraint check: Parameter TestAndTraceCapacityMaxRisk changed from {} to {}",
510  this->template get<TestAndTraceCapacityMaxRisk<FP>>(), 0);
511  this->template get<TestAndTraceCapacityMaxRisk<FP>>() = 0;
512  corrected = true;
513  }
514 
515  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
516  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
517  log_warning("Constraint check: Parameter TimeExposed changed from {} to {}. Please "
518  "note that unreasonably small compartment stays lead to massively increased run time. "
519  "Consider to cancel and reset parameters.",
520  this->template get<TimeExposed<FP>>()[i], tol_times);
521  this->template get<TimeExposed<FP>>()[i] = tol_times;
522  corrected = true;
523  }
524 
525  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
526  log_warning("Constraint check: Parameter TimeInfectedNoSymptoms changed from {} to {}. Please "
527  "note that unreasonably small compartment stays lead to massively increased run time. "
528  "Consider to cancel and reset parameters.",
529  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
530  this->template get<TimeInfectedNoSymptoms<FP>>()[i] = tol_times;
531  corrected = true;
532  }
533 
534  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
535  log_warning("Constraint check: Parameter TimeInfectedSymptoms changed from {} to {}. Please "
536  "note that unreasonably small compartment stays lead to massively increased run time. "
537  "Consider to cancel and reset parameters.",
538  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
539  this->template get<TimeInfectedSymptoms<FP>>()[i] = tol_times;
540  corrected = true;
541  }
542 
543  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
544  log_warning("Constraint check: Parameter TimeInfectedSevere changed from {} to {}. Please note "
545  "that unreasonably small compartment stays lead to massively increased run time. Consider "
546  "to cancel and reset parameters.",
547  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
548  this->template get<TimeInfectedSevere<FP>>()[i] = tol_times;
549  corrected = true;
550  }
551 
552  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
553  log_warning("Constraint check: Parameter TimeInfectedCritical changed from {} to {}. Please "
554  "note that unreasonably small compartment stays lead to massively increased run time. "
555  "Consider to cancel and reset parameters.",
556  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
557  this->template get<TimeInfectedCritical<FP>>()[i] = tol_times;
558  corrected = true;
559  }
560 
561  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
562  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
563  log_warning("Constraint check: Parameter TransmissionProbabilityOnContact changed from {} to {} ",
564  this->template get<TransmissionProbabilityOnContact<FP>>()[i], 0);
565  this->template get<TransmissionProbabilityOnContact<FP>>()[i] = 0.0;
566  corrected = true;
567  }
568 
569  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
570  log_warning("Constraint check: Parameter RelativeTransmissionNoSymptoms changed from {} to {} ",
571  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i], 0);
572  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] = 0;
573  corrected = true;
574  }
575 
576  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
577  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
578  log_warning("Constraint check: Parameter RecoveredPerInfectedNoSymptoms changed from {} to {} ",
579  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i], 0);
580  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] = 0;
581  corrected = true;
582  }
583 
584  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
585  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
586  log_warning("Constraint check: Parameter RiskOfInfectionFromSymptomatic changed from {} to {}",
587  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i], 0);
588  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] = 0;
589  corrected = true;
590  }
591 
592  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
593  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
594  log_warning("Constraint check: Parameter SeverePerInfectedSymptoms changed from {} to {}",
595  this->template get<SeverePerInfectedSymptoms<FP>>()[i], 0);
596  this->template get<SeverePerInfectedSymptoms<FP>>()[i] = 0;
597  corrected = true;
598  }
599 
600  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
601  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
602  log_warning("Constraint check: Parameter CriticalPerSevere changed from {} to {}",
603  this->template get<CriticalPerSevere<FP>>()[i], 0);
604  this->template get<CriticalPerSevere<FP>>()[i] = 0;
605  corrected = true;
606  }
607 
608  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
609  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
610  log_warning("Constraint check: Parameter DeathsPerCritical changed from {} to {}",
611  this->template get<DeathsPerCritical<FP>>()[i], 0);
612  this->template get<DeathsPerCritical<FP>>()[i] = 0;
613  corrected = true;
614  }
615  }
616  return corrected;
617  }
618 
624  bool check_constraints() const
625  {
626  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
627  log_error("Constraint check: Parameter Seasonality smaller {} or larger {}", 0, 0.5);
628  return true;
629  }
630 
631  if (this->template get<ICUCapacity<FP>>() < 0.0) {
632  log_error("Constraint check: Parameter ICUCapacity smaller {}", 0);
633  return true;
634  }
635 
636  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
637  log_error("Constraint check: Parameter TestAndTraceCapacity smaller {}", 0);
638  return true;
639  }
640 
641  if (this->template get<TestAndTraceCapacityMaxRisk<FP>>() < 0.0) {
642  log_error("Constraint check: Parameter TestAndTraceCapacityMaxRisk smaller {}", 0);
643  return true;
644  }
645 
646  if (this->template get<DynamicNPIsImplementationDelay<FP>>() < 0.0) {
647  log_error("Constraint check: Parameter DynamicNPIsImplementationDelay smaller {}", 0);
648  return true;
649  }
650 
651  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
652 
653  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
654  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
655  log_error("Constraint check: Parameter TimeExposed {} smaller {}. Please "
656  "note that unreasonably small compartment stays lead to massively increased run time. "
657  "Consider to cancel and reset parameters.",
658  this->template get<TimeExposed<FP>>()[i], tol_times);
659  return true;
660  }
661 
662  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
663  log_error("Constraint check: Parameter TimeInfectedNoSymptoms {} smaller {}. Please "
664  "note that unreasonably small compartment stays lead to massively increased run time. "
665  "Consider to cancel and reset parameters.",
666  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
667  return true;
668  }
669 
670  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
671  log_error("Constraint check: Parameter TimeInfectedSymptoms {} smaller {}. Please "
672  "note that unreasonably small compartment stays lead to massively increased run time. "
673  "Consider to cancel and reset parameters.",
674  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
675  return true;
676  }
677 
678  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
679  log_error("Constraint check: Parameter TimeInfectedSevere {} smaller {}. Please "
680  "note that unreasonably small compartment stays lead to massively increased run time. "
681  "Consider to cancel and reset parameters.",
682  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
683  return true;
684  }
685 
686  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
687  log_error("Constraint check: Parameter TimeInfectedCritical {} smaller {}. Please "
688  "note that unreasonably small compartment stays lead to massively increased run time. "
689  "Consider to cancel and reset parameters.",
690  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
691  return true;
692  }
693 
694  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
695  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
696  log_error("Constraint check: Parameter TransmissionProbabilityOnContact smaller {} or larger {}", 0, 1);
697  return true;
698  }
699 
700  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
701  log_error("Constraint check: Parameter RelativeTransmissionNoSymptoms smaller {}", 0);
702  return true;
703  }
704 
705  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
706  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
707  log_error("Constraint check: Parameter RecoveredPerInfectedNoSymptoms smaller {} or larger {}", 0, 1);
708  return true;
709  }
710 
711  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
712  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
713  log_error("Constraint check: Parameter RiskOfInfectionFromSymptomatic smaller {} or larger {}", 0, 1);
714  return true;
715  }
716 
717  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
718  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
719  log_error("Constraint check: Parameter SeverePerInfectedSymptoms smaller {} or larger {}", 0, 1);
720  return true;
721  }
722 
723  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
724  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
725  log_error("Constraint check: Parameter CriticalPerSevere smaller {} or larger {}", 0, 1);
726  return true;
727  }
728 
729  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
730  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
731  log_error("Constraint check: Parameter DeathsPerCritical smaller {} or larger {}", 0, 1);
732  return true;
733  }
734  }
735  return false;
736  }
737 
738 private:
740  : ParametersBase<FP>(std::move(base))
741  , m_num_groups(this->template get<ContactPatterns<FP>>().get_cont_freq_mat().get_num_groups())
742  {
743  }
744 
745 public:
750  template <class IOContext>
751  static IOResult<Parameters> deserialize(IOContext& io)
752  {
753  BOOST_OUTCOME_TRY(auto&& base, ParametersBase<FP>::deserialize(io));
754  return success(Parameters(std::move(base)));
755  }
756 
757 private:
763 };
764 
768 //FP get_reprod_rate(Parameters const& params, FP t, std::vector<FP> const& yt);
769 
770 } // namespace osecir
771 } // namespace mio
772 
773 #endif // SECIR_PARAMETERS_H
A class template for an array with custom indices.
Definition: custom_index_array.h:136
represents non-pharmaceutical interventions (NPI) that are activated during the simulation if some va...
Definition: dynamic_npis.h:35
a set of parameters defined at compile time
Definition: parameter_set.h:205
const ParameterTagTraits< Tag >::Type & get() const
get value of a parameter
Definition: parameter_set.h:262
The UncertainContactMatrix class consists of a ContactMatrix with fixed baseline and uncertain Dampin...
Definition: uncertain_matrix.h:43
Parameters of an age-resolved SECIR/SECIHURD model.
Definition: ode_secir/parameters.h:399
AgeGroup m_num_groups
Definition: ode_secir/parameters.h:758
FP & get_commuter_nondetection()
Percentage of infected commuters that are not detected.
Definition: ode_secir/parameters.h:415
FP m_commuter_nondetection
Definition: ode_secir/parameters.h:759
FP get_commuter_nondetection() const
Definition: ode_secir/parameters.h:419
AgeGroup get_num_groups() const
Definition: ode_secir/parameters.h:407
FP get_end_dynamic_npis() const
Definition: ode_secir/parameters.h:457
FP & get_end_commuter_detection()
Time in simulation after which no infected commuters are detected.
Definition: ode_secir/parameters.h:440
FP get_end_commuter_detection() const
Definition: ode_secir/parameters.h:445
FP m_start_commuter_detection
Definition: ode_secir/parameters.h:760
FP m_end_commuter_detection
Definition: ode_secir/parameters.h:761
Parameters(AgeGroup num_agegroups)
Definition: ode_secir/parameters.h:401
FP & get_start_commuter_detection()
Time in simulation before which no infected commuters are detected.
Definition: ode_secir/parameters.h:427
Parameters(ParametersBase< FP > &&base)
Definition: ode_secir/parameters.h:739
bool apply_constraints()
Checks whether all Parameters satisfy their corresponding constraints and applies them,...
Definition: ode_secir/parameters.h:475
FP m_end_dynamic_npis
Definition: ode_secir/parameters.h:762
bool check_constraints() const
Checks whether all Parameters satisfy their corresponding constraints and logs an error if constraint...
Definition: ode_secir/parameters.h:624
FP & get_end_dynamic_npis()
Time in simulation after which no dynamic NPIs are applied.
Definition: ode_secir/parameters.h:453
FP get_start_commuter_detection() const
Definition: ode_secir/parameters.h:432
static IOResult< Parameters > deserialize(IOContext &io)
deserialize an object of this class.
Definition: ode_secir/parameters.h:751
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 max(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:2596
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
auto i
Definition: io.h:809
void log_warning(spdlog::string_view_t fmt, const Args &... args)
Definition: logging.h:112
auto success()
Create an object that is implicitly convertible to a succesful IOResult<void>.
Definition: io.h:359
void log_error(spdlog::string_view_t fmt, const Args &... args)
Definition: logging.h:100
boost::outcome_v2::unchecked< T, IOStatus > IOResult
Value-or-error type for operations that return a value but can fail.
Definition: io.h:353
Definition: io.h:94
The AgeGroup struct is used as a dynamically sized tag for all age dependent categories.
Definition: age_group.h:32
the contact patterns within the society are modelled using an UncertainContactMatrix
Definition: ode_secir/parameters.h:308
static std::string name()
Definition: ode_secir/parameters.h:314
UncertainContactMatrix< FP > Type
Definition: ode_secir/parameters.h:309
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:310
the percentage of ICU patients per hospitalized patients in the SECIR model
Definition: ode_secir/parameters.h:276
static std::string name()
Definition: ode_secir/parameters.h:282
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:277
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:278
the percentage of dead patients per ICU patients in the SECIR model
Definition: ode_secir/parameters.h:292
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:294
static std::string name()
Definition: ode_secir/parameters.h:298
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:293
The delay with which DynamicNPIs are implemented and enforced after exceedance of threshold.
Definition: ode_secir/parameters.h:340
UncertainValue< FP > Type
Definition: ode_secir/parameters.h:341
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:342
static std::string name()
Definition: ode_secir/parameters.h:346
the NPIs that are enforced if certain infection thresholds are exceeded.
Definition: ode_secir/parameters.h:324
static std::string name()
Definition: ode_secir/parameters.h:330
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:326
the icu capacity in the SECIR model
Definition: ode_secir/parameters.h:80
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:82
UncertainValue< FP > Type
Definition: ode_secir/parameters.h:81
static std::string name()
Definition: ode_secir/parameters.h:86
risk of infection from symptomatic cases increases as test and trace capacity is exceeded.
Definition: ode_secir/parameters.h:244
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:245
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:246
static std::string name()
Definition: ode_secir/parameters.h:250
the percentage of asymptomatic cases in the SECIR model
Definition: ode_secir/parameters.h:212
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:214
static std::string name()
Definition: ode_secir/parameters.h:218
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:213
the relative InfectedNoSymptoms infectability
Definition: ode_secir/parameters.h:196
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:197
static std::string name()
Definition: ode_secir/parameters.h:202
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:198
the risk of infection from symptomatic cases in the SECIR model
Definition: ode_secir/parameters.h:228
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:230
static std::string name()
Definition: ode_secir/parameters.h:234
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:229
the seasonality in the SECIR model the seasonality is given as (1+k*sin()) where the sine curve is be...
Definition: ode_secir/parameters.h:64
static std::string name()
Definition: ode_secir/parameters.h:70
UncertainValue< FP > Type
Definition: ode_secir/parameters.h:65
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:66
the percentage of hospitalized patients per infected patients in the SECIR model
Definition: ode_secir/parameters.h:260
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:262
static std::string name()
Definition: ode_secir/parameters.h:266
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:261
the start day in the SECIR model The start day defines in which season the simulation can be started ...
Definition: ode_secir/parameters.h:47
FP Type
Definition: ode_secir/parameters.h:48
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:49
static std::string name()
Definition: ode_secir/parameters.h:53
Multiplier for the test and trace capacity to determine when it is considered overloaded.
Definition: ode_secir/parameters.h:372
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:374
UncertainValue< FP > Type
Definition: ode_secir/parameters.h:373
static std::string name()
Definition: ode_secir/parameters.h:378
capacity to test and trace contacts of infected for quarantine per day.
Definition: ode_secir/parameters.h:356
static std::string name()
Definition: ode_secir/parameters.h:362
UncertainValue< FP > Type
Definition: ode_secir/parameters.h:357
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:358
the (mean) latent time in day unit
Definition: ode_secir/parameters.h:96
static std::string name()
Definition: ode_secir/parameters.h:102
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:97
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:98
the time people are treated by ICU before returning home in the SECIR model in day unit
Definition: ode_secir/parameters.h:164
static std::string name()
Definition: ode_secir/parameters.h:170
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:166
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:165
the (mean) time in day unit for asymptomatic cases that are infectious but have not yet developed sym...
Definition: ode_secir/parameters.h:113
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:115
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:114
static std::string name()
Definition: ode_secir/parameters.h:119
the time people are 'simply' hospitalized before returning home in the SECIR model in day unit
Definition: ode_secir/parameters.h:147
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:149
static std::string name()
Definition: ode_secir/parameters.h:153
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:148
the infectious time for symptomatic cases that are infected but who do not need to be hsopitalized in...
Definition: ode_secir/parameters.h:130
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:131
static std::string name()
Definition: ode_secir/parameters.h:136
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:132
probability of getting infected from a contact
Definition: ode_secir/parameters.h:180
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:181
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:182
static std::string name()
Definition: ode_secir/parameters.h:186