parameters.h Source File

CPP API: parameters.h Source File
ode_secirvvs/parameters.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2020-2026 MEmilio
3 *
4 * Authors: Wadim Koslow, Daniel Abele, Martin J. Kühn
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 MIO_ODE_SECIRVVS_PARAMETERS_H
21 #define MIO_ODE_SECIRVVS_PARAMETERS_H
22 
30 
31 namespace mio
32 {
33 namespace osecirvvs
34 {
35 
42 template <typename FP>
43 struct StartDay {
44  using Type = FP;
46  {
47  return Type(0.0);
48  }
49  static std::string name()
50  {
51  return "StartDay";
52  }
53 };
54 
61 template <typename FP>
63  using Type = FP;
65  {
67  }
68  static std::string name()
69  {
70  return "StartDayNewVariant";
71  }
72 };
73 
79 template <typename FP>
80 struct Seasonality {
83  {
84  return Type(0.);
85  }
86  static std::string name()
87  {
88  return "Seasonality";
89  }
90 };
91 
95 template <typename FP>
96 struct ICUCapacity {
99  {
101  }
102  static std::string name()
103  {
104  return "ICUCapacity";
105  }
106 };
107 
111 template <typename FP>
115  {
117  }
118  static std::string name()
119  {
120  return "TestAndTraceCapacity";
121  }
122 };
123 
127 template <typename FP>
131  {
132  return Type(2.0);
133  }
134  static std::string name()
135  {
136  return "TestAndTraceCapacityMaxRiskNoSymptoms";
137  }
138 };
139 
143 template <typename FP>
147  {
148  return Type(15.0);
149  }
150  static std::string name()
151  {
152  return "TestAndTraceCapacityMaxRiskSymptoms";
153  }
154 };
155 
159 template <typename FP>
163  {
164  return Type(1, static_cast<Eigen::Index>((size_t)size));
165  }
166  static std::string name()
167  {
168  return "ContactPatterns";
169  }
170 };
171 
175 template <typename FP>
178  static Type get_default(AgeGroup /*size*/)
179  {
180  return {};
181  }
182  static std::string name()
183  {
184  return "DynamicNPIsInfectedSymptoms";
185  }
186 };
187 
191 template <typename FP>
194  static Type get_default(AgeGroup /*size*/)
195  {
196  return Type(0.0);
197  }
198  static std::string name()
199  {
200  return "DynamicNPIsImplementationDelay";
201  }
202 };
203 
207 template <typename FP>
208 struct TimeExposed {
211  {
212  return Type(size, 1.);
213  }
214  static std::string name()
215  {
216  return "TimeExposed";
217  }
218 };
219 
224 template <typename FP>
228  {
229  return Type(size, 1.);
230  }
231  static std::string name()
232  {
233  return "TimeInfectedNoSymptoms";
234  }
235 };
236 
241 template <typename FP>
245  {
246  return Type(size, 1.);
247  }
248  static std::string name()
249  {
250  return "TimeInfectedSymptoms";
251  }
252 };
253 
258 template <typename FP>
262  {
263  return Type(size, 1.);
264  }
265  static std::string name()
266  {
267  return "TimeInfectedSevere";
268  }
269 };
270 
275 template <typename FP>
279  {
280  return Type(size, 1.);
281  }
282  static std::string name()
283  {
284  return "TimeInfectedCritical";
285  }
286 };
287 
291 template <typename FP>
295  {
296  return Type(size, 1.);
297  }
298  static std::string name()
299  {
300  return "TransmissionProbabilityOnContact";
301  }
302 };
303 
307 template <typename FP>
311  {
312  return Type(size, 1.);
313  }
314  static std::string name()
315  {
316  return "RelativeTransmissionNoSymptoms";
317  }
318 };
319 
323 template <typename FP>
327  {
328  return Type(size, 0.);
329  }
330  static std::string name()
331  {
332  return "RecoveredPerInfectedNoSymptoms";
333  }
334 };
335 
339 template <typename FP>
343  {
344  return Type(size, 1.);
345  }
346  static std::string name()
347  {
348  return "RiskOfInfectionFromSymptomatic";
349  }
350 };
351 
355 template <typename FP>
359  {
360  return Type(size, 1.);
361  }
362  static std::string name()
363  {
364  return "MaxRiskOfInfectionFromSymptomatic";
365  }
366 };
367 
371 template <typename FP>
375  {
376  return Type(size, 0.);
377  }
378  static std::string name()
379  {
380  return "SeverePerInfectedSymptoms";
381  }
382 };
383 
387 template <typename FP>
391  {
392  return Type(size, 0.);
393  }
394  static std::string name()
395  {
396  return "CriticalPerSevere";
397  }
398 };
399 
405 template <typename FP>
409  {
410  return Type(size, 0.);
411  }
412  static std::string name()
413  {
414  return "DeathsPerSevere";
415  }
416 };
417 
421 template <typename FP>
425  {
426  return Type(size, 0.);
427  }
428  static std::string name()
429  {
430  return "DeathsPerCritical";
431  }
432 };
433 
437 template <typename FP>
441  {
442  return Type(size, 49.0);
443  }
444  static std::string name()
445  {
446  return "VaccinationGap";
447  }
448 };
449 
453 template <typename FP>
457  {
458  return Type(size, 14.0);
459  }
460  static std::string name()
461  {
462  return "DaysUntilEffectivePartialImmunity";
463  }
464 };
465 
469 template <typename FP>
473  {
474  return Type(size, 7.0);
475  }
476  static std::string name()
477  {
478  return "DaysUntilEffectiveImprovedImmunity";
479  }
480 };
481 
485 template <typename FP>
489  {
490  return Type({size, SimulationDay(0)});
491  }
492  static std::string name()
493  {
494  return "DailyPartialVaccinations";
495  }
496 };
497 
501 template <typename FP>
505  {
506  return Type({size, SimulationDay(0)});
507  }
508  static std::string name()
509  {
510  return "DailyFullVaccinations";
511  }
512 };
513 
517 template <typename FP>
521  {
522  return Type(size, 1.);
523  }
524  static std::string name()
525  {
526  return "ReducExposedPartialImmunity";
527  }
528 };
529 
533 template <typename FP>
537  {
538  return Type(size, 1.);
539  }
540  static std::string name()
541  {
542  return "ReducExposedImprovedImmunity";
543  }
544 };
545 
549 template <typename FP>
553  {
554  return Type(size, 1.);
555  }
556  static std::string name()
557  {
558  return "ReducInfectedSymptomsPartialImmunity";
559  }
560 };
561 
565 template <typename FP>
569  {
570  return Type(size, 1.);
571  }
572  static std::string name()
573  {
574  return "ReducInfectedSymptomsImprovedImmunity";
575  }
576 };
577 
582 template <typename FP>
586  {
587  return Type(size, 1.);
588  }
589  static std::string name()
590  {
591  return "ReducInfectedSevereCriticalDeadPartialImmunity";
592  }
593 };
594 
598 template <typename FP>
602  {
603  return Type(size, 1.);
604  }
605  static std::string name()
606  {
607  return "ReducInfectedSevereCriticalDeadImprovedImmunity";
608  }
609 };
610 
614 template <typename FP>
618  {
619  return Type(size, 0.5);
620  }
621  static std::string name()
622  {
623  return "ReducTimeInfectedMild";
624  }
625 };
626 
630 template <typename FP>
634  {
635  return Type(size, 1.0);
636  }
637  static std::string name()
638  {
639  return "InfectiousnessNewVariant";
640  }
641 };
642 
643 template <typename FP>
657 
661 template <typename FP>
662 class Parameters : public ParametersBase<FP>
663 {
664 public:
665  Parameters(AgeGroup num_agegroups)
666  : ParametersBase<FP>(num_agegroups)
667  , m_num_groups{num_agegroups}
668  {
669  }
670 
672  {
673  return m_num_groups;
674  }
675 
680  {
682  }
684  {
686  }
687 
692  {
694  }
695 
697  {
699  }
700 
705  {
707  }
708 
710  {
712  }
713 
718  {
719  return m_end_dynamic_npis;
720  }
722  {
723  return m_end_dynamic_npis;
724  }
725 
740  {
741  int corrected = false;
742  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
743  log_warning("Constraint check: Parameter Seasonality changed from {} to {}",
744  this->template get<Seasonality<FP>>(), 0);
745  this->template set<Seasonality<FP>>(0);
746  corrected = true;
747  }
748 
749  if (this->template get<ICUCapacity<FP>>() < 0.0) {
750  log_warning("Constraint check: Parameter ICUCapacity changed from {} to {}",
751  this->template get<ICUCapacity<FP>>(), 0);
752  this->template set<ICUCapacity<FP>>(0);
753  corrected = true;
754  }
755 
756  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
757  log_warning("Constraint check: Parameter TestAndTraceCapacity changed from {} to {}",
758  this->template get<TestAndTraceCapacity<FP>>(), 0);
759  this->template set<TestAndTraceCapacity<FP>>(0);
760  corrected = true;
761  }
762 
763  if (this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>() < 0.0) {
764  log_warning("Constraint check: Parameter TestAndTraceCapacityMaxRiskSymptoms changed from {} to {}",
765  this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>(), 0);
766  this->template set<TestAndTraceCapacityMaxRiskSymptoms<FP>>(0);
767  corrected = true;
768  }
769 
770  if (this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>() < 0.0) {
771  log_warning("Constraint check: Parameter TestAndTraceCapacityMaxRiskNoSymptoms changed from {} to {}",
772  this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>(), 0);
773  this->template set<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>(0);
774  corrected = true;
775  }
776 
777  if (this->template get<DynamicNPIsImplementationDelay<FP>>() < 0.0) {
778  log_warning("Constraint check: Parameter DynamicNPIsImplementationDelay changed from {} to {}",
779  this->template get<DynamicNPIsImplementationDelay<FP>>(), 0);
780  this->template set<DynamicNPIsImplementationDelay<FP>>(0);
781  corrected = true;
782  }
783 
784  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
785 
786  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
787  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
788  log_warning("Constraint check: Parameter TimeExposed changed from {} to {}. Please "
789  "note that unreasonably small compartment stays lead to massively increased run time. "
790  "Consider to cancel and reset parameters.",
791  this->template get<TimeExposed<FP>>()[i], tol_times);
792  this->template get<TimeExposed<FP>>()[i] = tol_times;
793  corrected = true;
794  }
795 
796  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
797  log_warning("Constraint check: Parameter TimeInfectedNoSymptoms changed from {} to {}. Please "
798  "note that unreasonably small compartment stays lead to massively increased run time. "
799  "Consider to cancel and reset parameters.",
800  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
801  this->template get<TimeInfectedNoSymptoms<FP>>()[i] = tol_times;
802  corrected = true;
803  }
804 
805  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
806  log_warning("Constraint check: Parameter TimeInfectedSymptoms changed from {} to {}. Please "
807  "note that unreasonably small compartment stays lead to massively increased run time. "
808  "Consider to cancel and reset parameters.",
809  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
810  this->template get<TimeInfectedSymptoms<FP>>()[i] = tol_times;
811  corrected = true;
812  }
813 
814  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
815  log_warning("Constraint check: Parameter TimeInfectedSevere changed from {} to {}. Please "
816  "note that unreasonably small compartment stays lead to massively increased run time. "
817  "Consider to cancel and reset parameters.",
818  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
819  this->template get<TimeInfectedSevere<FP>>()[i] = tol_times;
820  corrected = true;
821  }
822 
823  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
824  log_warning("Constraint check: Parameter TimeInfectedCritical changed from {} to {}. Please "
825  "note that unreasonably small compartment stays lead to massively increased run time. "
826  "Consider to cancel and reset parameters.",
827  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
828  this->template get<TimeInfectedCritical<FP>>()[i] = tol_times;
829  corrected = true;
830  }
831 
832  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
833  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
834  log_warning("Constraint check: Parameter TransmissionProbabilityOnContact changed from {} to {} ",
835  this->template get<TransmissionProbabilityOnContact<FP>>()[i], 0.0);
836  this->template get<TransmissionProbabilityOnContact<FP>>()[i] = 0.0;
837  corrected = true;
838  }
839 
840  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
841  log_warning("Constraint check: Parameter RelativeTransmissionNoSymptoms changed from {} to {} ",
842  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i], 0);
843  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] = 0;
844  corrected = true;
845  }
846 
847  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
848  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
849  log_warning("Constraint check: Parameter RecoveredPerInfectedNoSymptoms changed from {} to {} ",
850  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i], 0);
851  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] = 0;
852  corrected = true;
853  }
854 
855  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
856  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
857  log_warning("Constraint check: Parameter RiskOfInfectionFromSymptomatic changed from {} to {}",
858  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i], 0);
859  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] = 0;
860  corrected = true;
861  }
862 
863  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
864  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
865  log_warning("Constraint check: Parameter SeverePerInfectedSymptoms changed from {} to {}",
866  this->template get<SeverePerInfectedSymptoms<FP>>()[i], 0);
867  this->template get<SeverePerInfectedSymptoms<FP>>()[i] = 0;
868  corrected = true;
869  }
870 
871  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
872  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
873  log_warning("Constraint check: Parameter CriticalPerSevere changed from {} to {}",
874  this->template get<CriticalPerSevere<FP>>()[i], 0);
875  this->template get<CriticalPerSevere<FP>>()[i] = 0;
876  corrected = true;
877  }
878 
879  if (this->template get<DeathsPerSevere<FP>>()[i] < 0.0 ||
880  this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
881  log_warning("Constraint check: Parameter DeathsPerSevere changed from {} to {}",
882  this->template get<DeathsPerSevere<FP>>()[i], 0);
883  this->template get<DeathsPerSevere<FP>>()[i] = 0;
884  corrected = true;
885  }
886 
887  if (this->template get<CriticalPerSevere<FP>>()[i] + this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
888  log_warning("Constraint check: CriticalPerSevere + DeathsPerSevere exceed 1.0 for age group {}. "
889  "DeathsPerSevere changed from {} to 0.",
890  static_cast<size_t>(i), this->template get<DeathsPerSevere<FP>>()[i]);
891  this->template get<DeathsPerSevere<FP>>()[i] = 0;
892  corrected = true;
893  }
894 
895  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
896  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
897  log_warning("Constraint check: Parameter DeathsPerCritical changed from {} to {}",
898  this->template get<DeathsPerCritical<FP>>()[i], 0);
899  this->template get<DeathsPerCritical<FP>>()[i] = 0;
900  corrected = true;
901  }
902 
903  if (this->template get<DaysUntilEffectivePartialImmunity<FP>>()[i] < 0.0) {
904  log_warning("Constraint check: Parameter DaysUntilEffectivePartialImmunity changed from {} to {}",
905  this->template get<DaysUntilEffectivePartialImmunity<FP>>()[i], 0);
906  this->template get<DaysUntilEffectivePartialImmunity<FP>>()[i] = 0;
907  corrected = true;
908  }
909  if (this->template get<DaysUntilEffectiveImprovedImmunity<FP>>()[i] < 0.0) {
910  log_warning("Constraint check: Parameter DaysUntilEffectiveImprovedImmunity changed from {} to {}",
911  this->template get<DaysUntilEffectiveImprovedImmunity<FP>>()[i], 0);
912  this->template get<DaysUntilEffectiveImprovedImmunity<FP>>()[i] = 0;
913  corrected = true;
914  }
915 
916  if (this->template get<ReducExposedPartialImmunity<FP>>()[i] <= 0.0 ||
917  this->template get<ReducExposedPartialImmunity<FP>>()[i] > 1.0) {
918  log_warning("Constraint check: Parameter ReducExposedPartialImmunity changed from {} to {}",
919  this->template get<ReducExposedPartialImmunity<FP>>()[i], 1);
920  this->template get<ReducExposedPartialImmunity<FP>>()[i] = 1;
921  corrected = true;
922  }
923  if (this->template get<ReducExposedImprovedImmunity<FP>>()[i] <= 0.0 ||
924  this->template get<ReducExposedImprovedImmunity<FP>>()[i] > 1.0) {
925  log_warning("Constraint check: Parameter ReducExposedImprovedImmunity changed from {} to {}",
926  this->template get<ReducExposedImprovedImmunity<FP>>()[i], 1);
927  this->template get<ReducExposedImprovedImmunity<FP>>()[i] = 1;
928  corrected = true;
929  }
930  if (this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] <= 0.0 ||
931  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] > 1.0) {
932  log_warning("Constraint check: Parameter ReducInfectedSymptomsPartialImmunity changed from {} to {}",
933  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i], 1);
934  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] = 1;
935  corrected = true;
936  }
937  if (this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] <= 0.0 ||
938  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] > 1.0) {
939  log_warning("Constraint check: Parameter ReducInfectedSymptomsImprovedImmunity changed from {} to {}",
940  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i], 1.0);
941  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] = 1.0;
942  corrected = true;
943  }
944  if (this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] <= 0.0 ||
945  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] > 1.0) {
946  log_warning("Constraint check: Parameter ReducInfectedSevereCriticalDeadPartialImmunity changed from "
947  "{} to {}",
948  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i], 1.0);
949  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] = 1.0;
950  corrected = true;
951  }
952  if (this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] <= 0.0 ||
953  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] > 1.0) {
954  log_warning("Constraint check: Parameter ReducInfectedSevereCriticalDeadImprovedImmunity changed from "
955  "{} to {}",
956  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i], 1.0);
957  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] = 1.0;
958  corrected = true;
959  }
960  if (this->template get<ReducTimeInfectedMild<FP>>()[i] <= 0.0 ||
961  this->template get<ReducTimeInfectedMild<FP>>()[i] > 1.0) {
962  log_warning("Constraint check: Parameter ReducTimeInfectedMild changed from {} to {}",
963  this->template get<ReducTimeInfectedMild<FP>>()[i], 1.0);
964  this->template get<ReducTimeInfectedMild<FP>>()[i] = 1.0;
965  corrected = true;
966  }
967  if (this->template get<InfectiousnessNewVariant<FP>>()[i] < 0.0) {
968  log_warning("Constraint check: Parameter InfectiousnessNewVariant changed from {} to {}",
969  this->template get<InfectiousnessNewVariant<FP>>()[i], 1.0);
970  this->template get<InfectiousnessNewVariant<FP>>()[i] = 1.0;
971  corrected = true;
972  }
973  if (this->template get<VaccinationGap<FP>>()[i] < 0.0) {
974  log_warning("Constraint check: Parameter VaccinationGap changed from {} to {}",
975  this->template get<VaccinationGap<FP>>()[i], 0);
976  this->template get<VaccinationGap<FP>>()[i] = 0;
977  corrected = true;
978  }
979  }
980  return corrected;
981  }
982 
988  bool check_constraints() const
989  {
990  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
991  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
992  log_error("Constraint check: Parameter Seasonality smaller {} or larger {}", 0, 0.5);
993  return true;
994  }
995 
996  if (this->template get<ICUCapacity<FP>>() < 0.0) {
997  log_error("Constraint check: Parameter ICUCapacity smaller {}", 0);
998  return true;
999  }
1000 
1001  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
1002  log_error("Constraint check: Parameter TestAndTraceCapacity smaller {}", 0);
1003  return true;
1004  }
1005 
1006  if (this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>() < 0.0) {
1007  log_error("Constraint check: Parameter TestAndTraceCapacityMaxRiskSymptoms smaller {}", 0);
1008  return true;
1009  }
1010 
1011  if (this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>() < 0.0) {
1012  log_error("Constraint check: Parameter TestAndTraceCapacityMaxRiskNoSymptoms smaller {}", 0);
1013  return true;
1014  }
1015 
1016  if (this->template get<DynamicNPIsImplementationDelay<FP>>() < 0.0) {
1017  log_error("Constraint check: Parameter DynamicNPIsImplementationDelay smaller {}", 0);
1018  return true;
1019  }
1020 
1021  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
1022 
1023  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
1024  log_error("Constraint check: Parameter TimeExposed {} smaller {}. Please "
1025  "note that unreasonably small compartment stays lead to massively increased run time. "
1026  "Consider to cancel and reset parameters.",
1027  this->template get<TimeExposed<FP>>()[i], tol_times);
1028  return true;
1029  }
1030 
1031  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
1032  log_error("Constraint check: Parameter TimeInfectedNoSymptoms {} smaller {}. Please "
1033  "note that unreasonably small compartment stays lead to massively increased run time. "
1034  "Consider to cancel and reset parameters.",
1035  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
1036  return true;
1037  }
1038 
1039  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
1040  log_error("Constraint check: Parameter TimeInfectedSymptoms {} smaller {}. Please "
1041  "note that unreasonably small compartment stays lead to massively increased run time. "
1042  "Consider to cancel and reset parameters.",
1043  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
1044  return true;
1045  }
1046 
1047  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
1048  log_error("Constraint check: Parameter TimeInfectedSevere {} smaller {}. Please "
1049  "note that unreasonably small compartment stays lead to massively increased run time. "
1050  "Consider to cancel and reset parameters.",
1051  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
1052  return true;
1053  }
1054 
1055  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
1056  log_error("Constraint check: Parameter TimeInfectedCritical {} smaller {}. Please "
1057  "note that unreasonably small compartment stays lead to massively increased run time. "
1058  "Consider to cancel and reset parameters.",
1059  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
1060  return true;
1061  }
1062 
1063  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
1064  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
1065  log_error("Constraint check: Parameter TransmissionProbabilityOnContact smaller {} or larger {}", 0, 1);
1066  return true;
1067  }
1068 
1069  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
1070  log_error("Constraint check: Parameter RelativeTransmissionNoSymptoms smaller {}", 0);
1071  return true;
1072  }
1073 
1074  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
1075  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
1076  log_error("Constraint check: Parameter RecoveredPerInfectedNoSymptoms smaller {} or larger {}", 0, 1);
1077  return true;
1078  }
1079 
1080  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
1081  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
1082  log_error("Constraint check: Parameter RiskOfInfectionFromSymptomatic smaller {} or larger {}", 0, 1);
1083  return true;
1084  }
1085 
1086  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
1087  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
1088  log_error("Constraint check: Parameter SeverePerInfectedSymptoms smaller {} or larger {}", 0, 1);
1089  return true;
1090  }
1091 
1092  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
1093  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
1094  log_error("Constraint check: Parameter CriticalPerSevere smaller {} or larger {}", 0, 1);
1095  return true;
1096  }
1097 
1098  if (this->template get<DeathsPerSevere<FP>>()[i] < 0.0 ||
1099  this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
1100  log_error("Constraint check: Parameter DeathsPerSevere smaller {} or larger {}", 0, 1);
1101  return true;
1102  }
1103 
1104  if (this->template get<CriticalPerSevere<FP>>()[i] + this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
1105  log_error("Constraint check: CriticalPerSevere + DeathsPerSevere exceed 1.0 for age group {}.",
1106  static_cast<size_t>(i));
1107  return true;
1108  }
1109 
1110  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
1111  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
1112  log_error("Constraint check: Parameter DeathsPerCritical smaller {} or larger {}", 0, 1);
1113  return true;
1114  }
1115 
1116  if (this->template get<VaccinationGap<FP>>()[i] < 1) {
1117  log_error("Constraint check: Parameter VaccinationGap smaller {}", 1);
1118  return true;
1119  }
1120 
1121  if (this->template get<DaysUntilEffectivePartialImmunity<FP>>()[i] < 0.0) {
1122  log_error("Constraint check: Parameter DaysUntilEffectivePartialImmunity smaller {}", 0);
1123  return true;
1124  }
1125  if (this->template get<DaysUntilEffectiveImprovedImmunity<FP>>()[i] < 0.0) {
1126  log_error("Constraint check: Parameter DaysUntilEffectiveImprovedImmunity smaller {}", 0);
1127  return true;
1128  }
1129 
1130  if (this->template get<ReducExposedPartialImmunity<FP>>()[i] <= 0.0 ||
1131  this->template get<ReducExposedPartialImmunity<FP>>()[i] > 1.0) {
1132  log_error("Constraint check: Parameter ReducExposedPartialImmunity smaller {} or larger {}", 0, 1);
1133  return true;
1134  }
1135  if (this->template get<ReducExposedImprovedImmunity<FP>>()[i] <= 0.0 ||
1136  this->template get<ReducExposedImprovedImmunity<FP>>()[i] > 1.0) {
1137  log_error("Constraint check: Parameter ReducExposedImprovedImmunity smaller {} or larger {}", 0, 1);
1138  return true;
1139  }
1140  if (this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] <= 0.0 ||
1141  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] > 1.0) {
1142  log_error("Constraint check: Parameter ReducInfectedSymptomsPartialImmunity smaller {} or larger {}", 0,
1143  1);
1144  return true;
1145  }
1146  if (this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] <= 0.0 ||
1147  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] > 1.0) {
1148  log_error("Constraint check: Parameter ReducInfectedSymptomsImprovedImmunity smaller {} or larger {}",
1149  0, 1);
1150  return true;
1151  }
1152  if (this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] <= 0.0 ||
1153  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] > 1.0) {
1154  log_error("Constraint check: Parameter ReducInfectedSevereCriticalDeadPartialImmunity smaller {} or "
1155  "larger {}",
1156  0, 1);
1157  return true;
1158  }
1159  if (this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] <= 0.0 ||
1160  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] > 1.0) {
1161  log_error("Constraint check: Parameter ReducInfectedSevereCriticalDeadImprovedImmunity smaller {} or "
1162  "larger {}",
1163  0, 1);
1164  return true;
1165  }
1166  if (this->template get<ReducTimeInfectedMild<FP>>()[i] <= 0.0 ||
1167  this->template get<ReducTimeInfectedMild<FP>>()[i] > 1.0) {
1168  log_error("Constraint check: Parameter ReducTimeInfectedMild smaller {} or larger {}", 0, 1);
1169  return true;
1170  }
1171  if (this->template get<InfectiousnessNewVariant<FP>>()[i] < 0.0) {
1172  log_error("Constraint check: Parameter InfectiousnessNewVariant smaller {}", 0);
1173  return true;
1174  }
1175  }
1176  return false;
1177  }
1178 
1179 private:
1181  : ParametersBase<FP>(std::move(base))
1182  , m_num_groups(this->template get<ContactPatterns<FP>>().get_cont_freq_mat().get_num_groups())
1183  {
1184  }
1185 
1186 public:
1191  template <class IOContext>
1192  static IOResult<Parameters> deserialize(IOContext& io)
1193  {
1194  BOOST_OUTCOME_TRY(auto&& base, ParametersBase<FP>::deserialize(io));
1195  return success(Parameters(std::move(base)));
1196  }
1197 
1198 private:
1204 };
1205 
1206 } // namespace osecirvvs
1207 } // namespace mio
1208 
1209 #endif // MIO_ODE_SECIRVVS_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
Represents the simulation time as an integer index.
Definition: simulation_day.h:32
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 with paths for partial and improved immunity throu...
Definition: ode_secirvvs/parameters.h:663
Parameters(AgeGroup num_agegroups)
Definition: ode_secirvvs/parameters.h:665
FP & get_start_commuter_detection()
Time in simulation before which no infected commuters are detected.
Definition: ode_secirvvs/parameters.h:691
bool apply_constraints()
Checks whether all Parameters satisfy their corresponding constraints and applies them,...
Definition: ode_secirvvs/parameters.h:739
FP m_commuter_nondetection
Definition: ode_secirvvs/parameters.h:1200
FP & get_end_dynamic_npis()
Time in simulation after which no dynamic NPIs are applied.
Definition: ode_secirvvs/parameters.h:717
FP m_end_commuter_detection
Definition: ode_secirvvs/parameters.h:1202
FP & get_end_commuter_detection()
Time in simulation after which no infected commuters are detected.
Definition: ode_secirvvs/parameters.h:704
FP m_end_dynamic_npis
Definition: ode_secirvvs/parameters.h:1203
bool check_constraints() const
Checks whether all Parameters satisfy their corresponding constraints and logs an error if constraint...
Definition: ode_secirvvs/parameters.h:988
Parameters(ParametersBase< FP > &&base)
Definition: ode_secirvvs/parameters.h:1180
FP get_end_dynamic_npis() const
Definition: ode_secirvvs/parameters.h:721
FP get_start_commuter_detection() const
Definition: ode_secirvvs/parameters.h:696
FP get_commuter_nondetection() const
Definition: ode_secirvvs/parameters.h:683
AgeGroup get_num_groups() const
Definition: ode_secirvvs/parameters.h:671
FP & get_commuter_nondetection()
Percentage of infected commuters that are not detected.
Definition: ode_secirvvs/parameters.h:679
static IOResult< Parameters > deserialize(IOContext &io)
deserialize an object of this class.
Definition: ode_secirvvs/parameters.h:1192
AgeGroup m_num_groups
Definition: ode_secirvvs/parameters.h:1199
FP m_start_commuter_detection
Definition: ode_secirvvs/parameters.h:1201
FP get_end_commuter_detection() const
Definition: ode_secirvvs/parameters.h:709
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
Typesafe index representing an age group.
Definition: age_group.h:40
the contact patterns within the society are modelled using an UncertainContactMatrix
Definition: ode_secirvvs/parameters.h:160
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:162
UncertainContactMatrix< FP > Type
Definition: ode_secirvvs/parameters.h:161
static std::string name()
Definition: ode_secirvvs/parameters.h:166
the percentage of ICU patients per hospitalized patients in the SECIR model
Definition: ode_secirvvs/parameters.h:388
static std::string name()
Definition: ode_secirvvs/parameters.h:394
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:389
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:390
Total number of full vaccinations up to the given day.
Definition: ode_secirvvs/parameters.h:502
static std::string name()
Definition: ode_secirvvs/parameters.h:508
CustomIndexArray< FP, AgeGroup, SimulationDay > Type
Definition: ode_secirvvs/parameters.h:503
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:504
Total number of first vaccinations up to the given day.
Definition: ode_secirvvs/parameters.h:486
static std::string name()
Definition: ode_secirvvs/parameters.h:492
CustomIndexArray< FP, AgeGroup, SimulationDay > Type
Definition: ode_secirvvs/parameters.h:487
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:488
Time in days until second vaccine dose takes full effect.
Definition: ode_secirvvs/parameters.h:470
static std::string name()
Definition: ode_secirvvs/parameters.h:476
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:472
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:471
Time in days until first vaccine dose takes full effect.
Definition: ode_secirvvs/parameters.h:454
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:455
static std::string name()
Definition: ode_secirvvs/parameters.h:460
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:456
the percentage of dead patients per ICU patients in the SECIR model
Definition: ode_secirvvs/parameters.h:422
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:424
static std::string name()
Definition: ode_secirvvs/parameters.h:428
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:423
the percentage of dead patients per hospitalized patients.
Definition: ode_secirvvs/parameters.h:406
static std::string name()
Definition: ode_secirvvs/parameters.h:412
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:408
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:407
The delay with which DynamicNPIs are implemented and enforced after exceedance of threshold.
Definition: ode_secirvvs/parameters.h:192
static std::string name()
Definition: ode_secirvvs/parameters.h:198
UncertainValue< FP > Type
Definition: ode_secirvvs/parameters.h:193
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:194
the NPIs that are enforced if certain infection thresholds are exceeded.
Definition: ode_secirvvs/parameters.h:176
static std::string name()
Definition: ode_secirvvs/parameters.h:182
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:178
the icu capacity in the SECIR model
Definition: ode_secirvvs/parameters.h:96
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:98
UncertainValue< FP > Type
Definition: ode_secirvvs/parameters.h:97
static std::string name()
Definition: ode_secirvvs/parameters.h:102
Represents the relative infectiousness of a new variant.
Definition: ode_secirvvs/parameters.h:631
CustomIndexArray< FP, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:632
static std::string name()
Definition: ode_secirvvs/parameters.h:637
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:633
risk of infection from symptomatic cases increases as test and trace capacity is exceeded.
Definition: ode_secirvvs/parameters.h:356
static std::string name()
Definition: ode_secirvvs/parameters.h:362
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:357
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:358
the percentage of asymptomatic cases in the SECIR model
Definition: ode_secirvvs/parameters.h:324
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:326
static std::string name()
Definition: ode_secirvvs/parameters.h:330
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:325
Factor to reduce infection risk for persons with improved immunity.
Definition: ode_secirvvs/parameters.h:534
static std::string name()
Definition: ode_secirvvs/parameters.h:540
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:535
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:536
Factor to reduce infection risk for persons with partial immunity.
Definition: ode_secirvvs/parameters.h:518
static std::string name()
Definition: ode_secirvvs/parameters.h:524
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:520
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:519
Factor to reduce risk of hospitalization for persons with improved immunity.
Definition: ode_secirvvs/parameters.h:599
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:600
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:601
static std::string name()
Definition: ode_secirvvs/parameters.h:605
Factor to reduce risk of hospitalization for persons with partial immunity.
Definition: ode_secirvvs/parameters.h:583
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:585
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:584
static std::string name()
Definition: ode_secirvvs/parameters.h:589
Factor to reduce risk of developing symptoms for persons with improved immunity.
Definition: ode_secirvvs/parameters.h:566
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:568
static std::string name()
Definition: ode_secirvvs/parameters.h:572
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:567
Factor to reduce risk of developing symptoms for persons with partial immunity.
Definition: ode_secirvvs/parameters.h:550
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:551
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:552
static std::string name()
Definition: ode_secirvvs/parameters.h:556
Factor to reduce infectious time of persons with partial or improved immunity.
Definition: ode_secirvvs/parameters.h:615
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:617
static std::string name()
Definition: ode_secirvvs/parameters.h:621
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:616
the relative InfectedNoSymptoms infectability
Definition: ode_secirvvs/parameters.h:308
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:310
static std::string name()
Definition: ode_secirvvs/parameters.h:314
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:309
the risk of infection from symptomatic cases in the SECIR model
Definition: ode_secirvvs/parameters.h:340
static std::string name()
Definition: ode_secirvvs/parameters.h:346
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:341
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:342
the seasonality in the SECIR model the seasonality is given as (1+k*sin()) where the sine curve is be...
Definition: ode_secirvvs/parameters.h:80
UncertainValue< FP > Type
Definition: ode_secirvvs/parameters.h:81
static std::string name()
Definition: ode_secirvvs/parameters.h:86
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:82
the percentage of hospitalized patients per infected patients in the SECIR model
Definition: ode_secirvvs/parameters.h:372
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:373
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:374
static std::string name()
Definition: ode_secirvvs/parameters.h:378
the start day of a new variant in the SECIRVVS model The start day of the new variant defines in whic...
Definition: ode_secirvvs/parameters.h:62
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:64
FP Type
Definition: ode_secirvvs/parameters.h:63
static std::string name()
Definition: ode_secirvvs/parameters.h:68
the start day in the SECIRVVS model The start day defines in which season the simulation can be start...
Definition: ode_secirvvs/parameters.h:43
static std::string name()
Definition: ode_secirvvs/parameters.h:49
FP Type
Definition: ode_secirvvs/parameters.h:44
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:45
Multiplier for the test and trace capacity to determine when it is considered overloaded from cases w...
Definition: ode_secirvvs/parameters.h:128
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:130
static std::string name()
Definition: ode_secirvvs/parameters.h:134
UncertainValue< FP > Type
Definition: ode_secirvvs/parameters.h:129
Multiplier for the test and trace capacity to determine when it is considered overloaded by symptomat...
Definition: ode_secirvvs/parameters.h:144
UncertainValue< FP > Type
Definition: ode_secirvvs/parameters.h:145
static std::string name()
Definition: ode_secirvvs/parameters.h:150
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:146
capacity to test and trace contacts of infected for quarantine per day.
Definition: ode_secirvvs/parameters.h:112
static Type get_default(AgeGroup)
Definition: ode_secirvvs/parameters.h:114
static std::string name()
Definition: ode_secirvvs/parameters.h:118
UncertainValue< FP > Type
Definition: ode_secirvvs/parameters.h:113
the (mean) latent time in day unit
Definition: ode_secirvvs/parameters.h:208
static std::string name()
Definition: ode_secirvvs/parameters.h:214
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:209
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:210
the time people are treated by ICU before returning home in the SECIR model in day unit
Definition: ode_secirvvs/parameters.h:276
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:277
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:278
static std::string name()
Definition: ode_secirvvs/parameters.h:282
the (mean) time in day unit for asymptomatic cases that are infected but have not yet developed sympt...
Definition: ode_secirvvs/parameters.h:225
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:226
static std::string name()
Definition: ode_secirvvs/parameters.h:231
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:227
the time people are 'simply' hospitalized before returning home in the SECIR model in day unit
Definition: ode_secirvvs/parameters.h:259
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:260
static std::string name()
Definition: ode_secirvvs/parameters.h:265
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:261
the infectious time for symptomatic cases that are infected but who do not need to be hospitalized in...
Definition: ode_secirvvs/parameters.h:242
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:244
static std::string name()
Definition: ode_secirvvs/parameters.h:248
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:243
probability of getting infected from a contact
Definition: ode_secirvvs/parameters.h:292
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:294
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:293
static std::string name()
Definition: ode_secirvvs/parameters.h:298
Time in days between first and second vaccine dose.
Definition: ode_secirvvs/parameters.h:438
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:439
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:440
static std::string name()
Definition: ode_secirvvs/parameters.h:444