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 
293 template <typename FP>
297  {
298  return Type(size, 0.);
299  }
300  static std::string name()
301  {
302  return "DeathsPerSevere";
303  }
304 };
305 
309 template <typename FP>
313  {
314  return Type(size, 0.);
315  }
316  static std::string name()
317  {
318  return "DeathsPerCritical";
319  }
320 };
321 
325 template <typename FP>
329  {
330  return Type(1, static_cast<Eigen::Index>((size_t)size));
331  }
332  static std::string name()
333  {
334  return "ContactPatterns";
335  }
336 };
337 
341 template <typename FP>
344  static Type get_default(AgeGroup /*size*/)
345  {
346  return {};
347  }
348  static std::string name()
349  {
350  return "DynamicNPIsInfectedSymptoms";
351  }
352 };
353 
357 template <typename FP>
361  {
363  }
364  static std::string name()
365  {
366  return "TestAndTraceCapacity";
367  }
368 };
369 
373 template <typename FP>
377  {
378  return Type(5.0);
379  }
380  static std::string name()
381  {
382  return "TestAndTraceCapacityMaxRisk";
383  }
384 };
385 
386 template <typename FP>
395 
399 template <typename FP>
400 class Parameters : public ParametersBase<FP>
401 {
402 public:
403  Parameters(AgeGroup num_agegroups)
404  : ParametersBase<FP>(num_agegroups)
405  , m_num_groups{num_agegroups}
406  {
407  }
408 
410  {
411  return m_num_groups;
412  }
413 
418  {
420  }
422  {
424  }
425 
430  {
432  }
433 
435  {
437  }
438 
443  {
445  }
446 
448  {
450  }
451 
466  {
467  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
468 
469  int corrected = false;
470  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
471  log_warning("Constraint check: Parameter Seasonality changed from {} to {}",
472  this->template get<Seasonality<FP>>(), 0);
473  this->template set<Seasonality<FP>>(0);
474  corrected = true;
475  }
476 
477  if (this->template get<ICUCapacity<FP>>() < 0.0) {
478  log_warning("Constraint check: Parameter ICUCapacity changed from {} to {}",
479  this->template get<ICUCapacity<FP>>(), 0);
480  this->template set<ICUCapacity<FP>>(0);
481  corrected = true;
482  }
483 
484  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
485  log_warning("Constraint check: Parameter TestAndTraceCapacity changed from {} to {}",
486  this->template get<TestAndTraceCapacity<FP>>(), 0);
487  this->template get<TestAndTraceCapacity<FP>>() = 0;
488  corrected = true;
489  }
490 
491  if (this->template get<TestAndTraceCapacityMaxRisk<FP>>() < 0.0) {
492  log_warning("Constraint check: Parameter TestAndTraceCapacityMaxRisk changed from {} to {}",
493  this->template get<TestAndTraceCapacityMaxRisk<FP>>(), 0);
494  this->template get<TestAndTraceCapacityMaxRisk<FP>>() = 0;
495  corrected = true;
496  }
497 
498  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
499  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
500  log_warning("Constraint check: Parameter TimeExposed changed from {} to {}. Please "
501  "note that unreasonably small compartment stays lead to massively increased run time. "
502  "Consider to cancel and reset parameters.",
503  this->template get<TimeExposed<FP>>()[i], tol_times);
504  this->template get<TimeExposed<FP>>()[i] = tol_times;
505  corrected = true;
506  }
507 
508  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
509  log_warning("Constraint check: Parameter TimeInfectedNoSymptoms changed from {} to {}. Please "
510  "note that unreasonably small compartment stays lead to massively increased run time. "
511  "Consider to cancel and reset parameters.",
512  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
513  this->template get<TimeInfectedNoSymptoms<FP>>()[i] = tol_times;
514  corrected = true;
515  }
516 
517  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
518  log_warning("Constraint check: Parameter TimeInfectedSymptoms changed from {} to {}. Please "
519  "note that unreasonably small compartment stays lead to massively increased run time. "
520  "Consider to cancel and reset parameters.",
521  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
522  this->template get<TimeInfectedSymptoms<FP>>()[i] = tol_times;
523  corrected = true;
524  }
525 
526  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
527  log_warning("Constraint check: Parameter TimeInfectedSevere changed from {} to {}. Please note "
528  "that unreasonably small compartment stays lead to massively increased run time. Consider "
529  "to cancel and reset parameters.",
530  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
531  this->template get<TimeInfectedSevere<FP>>()[i] = tol_times;
532  corrected = true;
533  }
534 
535  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
536  log_warning("Constraint check: Parameter TimeInfectedCritical changed from {} to {}. Please "
537  "note that unreasonably small compartment stays lead to massively increased run time. "
538  "Consider to cancel and reset parameters.",
539  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
540  this->template get<TimeInfectedCritical<FP>>()[i] = tol_times;
541  corrected = true;
542  }
543 
544  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
545  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
546  log_warning("Constraint check: Parameter TransmissionProbabilityOnContact changed from {} to {} ",
547  this->template get<TransmissionProbabilityOnContact<FP>>()[i], 0);
548  this->template get<TransmissionProbabilityOnContact<FP>>()[i] = 0.0;
549  corrected = true;
550  }
551 
552  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
553  log_warning("Constraint check: Parameter RelativeTransmissionNoSymptoms changed from {} to {} ",
554  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i], 0);
555  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] = 0;
556  corrected = true;
557  }
558 
559  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
560  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
561  log_warning("Constraint check: Parameter RecoveredPerInfectedNoSymptoms changed from {} to {} ",
562  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i], 0);
563  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] = 0;
564  corrected = true;
565  }
566 
567  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
568  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
569  log_warning("Constraint check: Parameter RiskOfInfectionFromSymptomatic changed from {} to {}",
570  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i], 0);
571  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] = 0;
572  corrected = true;
573  }
574 
575  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
576  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
577  log_warning("Constraint check: Parameter SeverePerInfectedSymptoms changed from {} to {}",
578  this->template get<SeverePerInfectedSymptoms<FP>>()[i], 0);
579  this->template get<SeverePerInfectedSymptoms<FP>>()[i] = 0;
580  corrected = true;
581  }
582 
583  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
584  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
585  log_warning("Constraint check: Parameter CriticalPerSevere changed from {} to {}",
586  this->template get<CriticalPerSevere<FP>>()[i], 0);
587  this->template get<CriticalPerSevere<FP>>()[i] = 0;
588  corrected = true;
589  }
590 
591  if (this->template get<DeathsPerSevere<FP>>()[i] < 0.0 ||
592  this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
593  log_warning("Constraint check: Parameter DeathsPerSevere changed from {} to {}",
594  this->template get<DeathsPerSevere<FP>>()[i], 0);
595  this->template get<DeathsPerSevere<FP>>()[i] = 0;
596  corrected = true;
597  }
598 
599  if (this->template get<CriticalPerSevere<FP>>()[i] + this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
600  log_warning("Constraint check: CriticalPerSevere + DeathsPerSevere exceed 1.0 for age group {}. "
601  "DeathsPerSevere changed from {} to 0.",
602  static_cast<size_t>(i), this->template get<DeathsPerSevere<FP>>()[i]);
603  this->template get<DeathsPerSevere<FP>>()[i] = 0;
604  corrected = true;
605  }
606 
607  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
608  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
609  log_warning("Constraint check: Parameter DeathsPerCritical changed from {} to {}",
610  this->template get<DeathsPerCritical<FP>>()[i], 0);
611  this->template get<DeathsPerCritical<FP>>()[i] = 0;
612  corrected = true;
613  }
614  }
615  return corrected;
616  }
617 
623  bool check_constraints() const
624  {
625  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
626  log_error("Constraint check: Parameter Seasonality smaller {} or larger {}", 0, 0.5);
627  return true;
628  }
629 
630  if (this->template get<ICUCapacity<FP>>() < 0.0) {
631  log_error("Constraint check: Parameter ICUCapacity smaller {}", 0);
632  return true;
633  }
634 
635  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
636  log_error("Constraint check: Parameter TestAndTraceCapacity smaller {}", 0);
637  return true;
638  }
639 
640  if (this->template get<TestAndTraceCapacityMaxRisk<FP>>() < 0.0) {
641  log_error("Constraint check: Parameter TestAndTraceCapacityMaxRisk smaller {}", 0);
642  return true;
643  }
644 
645  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
646 
647  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
648  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
649  log_error("Constraint check: Parameter TimeExposed {} smaller {}. Please "
650  "note that unreasonably small compartment stays lead to massively increased run time. "
651  "Consider to cancel and reset parameters.",
652  this->template get<TimeExposed<FP>>()[i], tol_times);
653  return true;
654  }
655 
656  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
657  log_error("Constraint check: Parameter TimeInfectedNoSymptoms {} smaller {}. Please "
658  "note that unreasonably small compartment stays lead to massively increased run time. "
659  "Consider to cancel and reset parameters.",
660  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
661  return true;
662  }
663 
664  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
665  log_error("Constraint check: Parameter TimeInfectedSymptoms {} smaller {}. Please "
666  "note that unreasonably small compartment stays lead to massively increased run time. "
667  "Consider to cancel and reset parameters.",
668  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
669  return true;
670  }
671 
672  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
673  log_error("Constraint check: Parameter TimeInfectedSevere {} smaller {}. Please "
674  "note that unreasonably small compartment stays lead to massively increased run time. "
675  "Consider to cancel and reset parameters.",
676  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
677  return true;
678  }
679 
680  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
681  log_error("Constraint check: Parameter TimeInfectedCritical {} smaller {}. Please "
682  "note that unreasonably small compartment stays lead to massively increased run time. "
683  "Consider to cancel and reset parameters.",
684  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
685  return true;
686  }
687 
688  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
689  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
690  log_error("Constraint check: Parameter TransmissionProbabilityOnContact smaller {} or larger {}", 0, 1);
691  return true;
692  }
693 
694  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
695  log_error("Constraint check: Parameter RelativeTransmissionNoSymptoms smaller {}", 0);
696  return true;
697  }
698 
699  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
700  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
701  log_error("Constraint check: Parameter RecoveredPerInfectedNoSymptoms smaller {} or larger {}", 0, 1);
702  return true;
703  }
704 
705  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
706  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
707  log_error("Constraint check: Parameter RiskOfInfectionFromSymptomatic smaller {} or larger {}", 0, 1);
708  return true;
709  }
710 
711  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
712  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
713  log_error("Constraint check: Parameter SeverePerInfectedSymptoms smaller {} or larger {}", 0, 1);
714  return true;
715  }
716 
717  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
718  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
719  log_error("Constraint check: Parameter CriticalPerSevere smaller {} or larger {}", 0, 1);
720  return true;
721  }
722 
723  if (this->template get<DeathsPerSevere<FP>>()[i] < 0.0 ||
724  this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
725  log_error("Constraint check: Parameter DeathsPerSevere smaller {} or larger {}", 0, 1);
726  return true;
727  }
728 
729  if (this->template get<CriticalPerSevere<FP>>()[i] + this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
730  log_error("Constraint check: CriticalPerSevere + DeathsPerSevere exceed 1.0 for age group {}.",
731  static_cast<size_t>(i));
732  return true;
733  }
734 
735  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
736  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
737  log_error("Constraint check: Parameter DeathsPerCritical smaller {} or larger {}", 0, 1);
738  return true;
739  }
740  }
741  return false;
742  }
743 
744 private:
746  : ParametersBase<FP>(std::move(base))
747  , m_num_groups(this->template get<ContactPatterns<FP>>().get_cont_freq_mat().get_num_groups())
748  {
749  }
750 
751 public:
756  template <class IOContext>
757  static IOResult<Parameters> deserialize(IOContext& io)
758  {
759  BOOST_OUTCOME_TRY(auto&& base, ParametersBase<FP>::deserialize(io));
760  return success(Parameters(std::move(base)));
761  }
762 
763 private:
768 };
769 
773 //FP get_reprod_rate(Parameters const& params, FP t, std::vector<FP> const& yt);
774 
775 } // namespace osecir
776 } // namespace mio
777 
778 #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:37
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:401
AgeGroup m_num_groups
Definition: ode_secir/parameters.h:764
FP & get_commuter_nondetection()
Percentage of infected commuters that are not detected.
Definition: ode_secir/parameters.h:417
FP m_commuter_nondetection
Definition: ode_secir/parameters.h:765
FP get_commuter_nondetection() const
Definition: ode_secir/parameters.h:421
AgeGroup get_num_groups() const
Definition: ode_secir/parameters.h:409
FP & get_end_commuter_detection()
Time in simulation after which no infected commuters are detected.
Definition: ode_secir/parameters.h:442
FP get_end_commuter_detection() const
Definition: ode_secir/parameters.h:447
FP m_start_commuter_detection
Definition: ode_secir/parameters.h:766
FP m_end_commuter_detection
Definition: ode_secir/parameters.h:767
Parameters(AgeGroup num_agegroups)
Definition: ode_secir/parameters.h:403
FP & get_start_commuter_detection()
Time in simulation before which no infected commuters are detected.
Definition: ode_secir/parameters.h:429
Parameters(ParametersBase< FP > &&base)
Definition: ode_secir/parameters.h:745
bool apply_constraints()
Checks whether all Parameters satisfy their corresponding constraints and applies them,...
Definition: ode_secir/parameters.h:465
bool check_constraints() const
Checks whether all Parameters satisfy their corresponding constraints and logs an error if constraint...
Definition: ode_secir/parameters.h:623
FP get_start_commuter_detection() const
Definition: ode_secir/parameters.h:434
static IOResult< Parameters > deserialize(IOContext &io)
deserialize an object of this class.
Definition: ode_secir/parameters.h:757
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:810
void log_warning(spdlog::string_view_t fmt, const Args &... args)
Definition: logging.h:126
auto success()
Create an object that is implicitly convertible to a succesful IOResult<void>.
Definition: io.h:360
void log_error(spdlog::string_view_t fmt, const Args &... args)
Definition: logging.h:114
boost::outcome_v2::unchecked< T, IOStatus > IOResult
Value-or-error type for operations that return a value but can fail.
Definition: io.h:354
Definition: io.h:95
Typesafe index representing an age group.
Definition: age_group.h:40
the contact patterns within the society are modelled using an UncertainContactMatrix
Definition: ode_secir/parameters.h:326
static std::string name()
Definition: ode_secir/parameters.h:332
UncertainContactMatrix< FP > Type
Definition: ode_secir/parameters.h:327
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:328
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:310
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:312
static std::string name()
Definition: ode_secir/parameters.h:316
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:311
the percentage of dead patients per hospitalized patients.
Definition: ode_secir/parameters.h:294
static Type get_default(AgeGroup size)
Definition: ode_secir/parameters.h:296
static std::string name()
Definition: ode_secir/parameters.h:300
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secir/parameters.h:295
the NPIs that are enforced if certain infection thresholds are exceeded.
Definition: ode_secir/parameters.h:342
static std::string name()
Definition: ode_secir/parameters.h:348
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:344
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:374
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:376
UncertainValue< FP > Type
Definition: ode_secir/parameters.h:375
static std::string name()
Definition: ode_secir/parameters.h:380
capacity to test and trace contacts of infected for quarantine per day.
Definition: ode_secir/parameters.h:358
static std::string name()
Definition: ode_secir/parameters.h:364
UncertainValue< FP > Type
Definition: ode_secir/parameters.h:359
static Type get_default(AgeGroup)
Definition: ode_secir/parameters.h:360
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