parameters.h Source File

CPP API: parameters.h Source File
ode_secirts/parameters.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2020-2026 MEmilio
3 *
4 * Authors: Henrik Zunker, 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_SECIRTS_PARAMETERS_H
21 #define MIO_ODE_SECIRTS_PARAMETERS_H
22 
23 #include "memilio/math/eigen.h"
25 #include "memilio/math/adapt_rk.h"
32 
33 #include <vector>
34 
35 namespace mio
36 {
37 namespace osecirts
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 };
58 
65 template <typename FP>
67  using Type = FP;
69  {
71  }
72  static std::string name()
73  {
74  return "StartDayNewVariant";
75  }
76 };
77 
84 template <typename FP>
85 struct Seasonality {
88  {
89  return Type(0.);
90  }
91  static std::string name()
92  {
93  return "Seasonality";
94  }
95 };
96 
101 template <typename FP>
102 struct ICUCapacity {
105  {
107  }
108  static std::string name()
109  {
110  return "ICUCapacity";
111  }
112 };
113 
118 template <typename FP>
122  {
124  }
125  static std::string name()
126  {
127  return "TestAndTraceCapacity";
128  }
129 };
130 
134 template <typename FP>
138  {
139  return Type(2.0);
140  }
141  static std::string name()
142  {
143  return "TestAndTraceCapacityMaxRiskNoSymptoms";
144  }
145 };
146 
150 template <typename FP>
154  {
155  return Type(15.0);
156  }
157  static std::string name()
158  {
159  return "TestAndTraceCapacityMaxRiskSymptoms";
160  }
161 };
162 
167 template <typename FP>
171  {
172  return Type(1, static_cast<Eigen::Index>((size_t)size));
173  }
174  static std::string name()
175  {
176  return "ContactPatterns";
177  }
178 };
179 
184 template <typename FP>
187  static Type get_default(AgeGroup /*size*/)
188  {
189  return {};
190  }
191  static std::string name()
192  {
193  return "DynamicNPIsInfectedSymptoms";
194  }
195 };
196 
201 template <typename FP>
202 struct TimeExposed {
205  {
206  return Type(size, 1.);
207  }
208  static std::string name()
209  {
210  return "TimeExposed";
211  }
212 };
213 
219 template <typename FP>
223  {
224  return Type(size, 1.);
225  }
226  static std::string name()
227  {
228  return "TimeInfectedNoSymptoms";
229  }
230 };
231 
237 template <typename FP>
241  {
242  return Type(size, 1.);
243  }
244  static std::string name()
245  {
246  return "TimeInfectedSymptoms";
247  }
248 };
249 
255 template <typename FP>
259  {
260  return Type(size, 1.);
261  }
262  static std::string name()
263  {
264  return "TimeInfectedSevere";
265  }
266 };
267 
273 template <typename FP>
277  {
278  return Type(size, 1.);
279  }
280  static std::string name()
281  {
282  return "TimeInfectedCritical";
283  }
284 };
285 
290 template <typename FP>
294  {
295  return Type(size, 90.0);
296  }
297  static std::string name()
298  {
299  return "TimeWaningPartialImmunity";
300  }
301 };
302 
307 template <typename FP>
311  {
312  return Type(size, 90.0);
313  }
314  static std::string name()
315  {
316  return "TimeWaningImprovedImmunity";
317  }
318 };
319 
325 template <typename FP>
329  {
330  return Type(size, 1.);
331  }
332  static std::string name()
333  {
334  return "TimeTemporaryImmunityPI";
335  }
336 };
337 
343 template <typename FP>
347  {
348  return Type(size, 1.);
349  }
350  static std::string name()
351  {
352  return "TimeTemporaryImmunityII";
353  }
354 };
359 template <typename FP>
363  {
364  return Type(size, 1.);
365  }
366  static std::string name()
367  {
368  return "TransmissionProbabilityOnContact";
369  }
370 };
371 
376 template <typename FP>
380  {
381  return Type(size, 1.);
382  }
383  static std::string name()
384  {
385  return "RelativeTransmissionNoSymptoms";
386  }
387 };
388 
393 template <typename FP>
397  {
398  return Type(size, 0.);
399  }
400  static std::string name()
401  {
402  return "RecoveredPerInfectedNoSymptoms";
403  }
404 };
405 
410 template <typename FP>
414  {
415  return Type(size, 1.);
416  }
417  static std::string name()
418  {
419  return "RiskOfInfectionFromSymptomatic";
420  }
421 };
422 
427 template <typename FP>
431  {
432  return Type(size, 1.);
433  }
434  static std::string name()
435  {
436  return "MaxRiskOfInfectionFromSymptomatic";
437  }
438 };
439 
444 template <typename FP>
448  {
449  return Type(size, 0.);
450  }
451  static std::string name()
452  {
453  return "SeverePerInfectedSymptoms";
454  }
455 };
456 
461 template <typename FP>
465  {
466  return Type(size, 0.);
467  }
468  static std::string name()
469  {
470  return "CriticalPerSevere";
471  }
472 };
473 
478 template <typename FP>
482  {
483  return Type(size, 0.);
484  }
485  static std::string name()
486  {
487  return "DeathsPerCritical";
488  }
489 };
490 
495 template <typename FP>
499  {
500  return Type(size, 14.0);
501  }
502  static std::string name()
503  {
504  return "DaysUntilEffectivePartialVaccination";
505  }
506 };
507 
512 template <typename FP>
516  {
517  return Type(size, 7.0);
518  }
519  static std::string name()
520  {
521  return "DaysUntilEffectiveImprovedVaccination";
522  }
523 };
524 
529 template <typename FP>
533  {
534  return Type(size, 7.0);
535  }
536  static std::string name()
537  {
538  return "DaysUntilEffectiveBoosterImmunity";
539  }
540 };
541 
546 template <typename FP>
550  {
551  return Type({size, SimulationDay(0)});
552  }
553  static std::string name()
554  {
555  return "DailyPartialVaccinations";
556  }
557 };
558 
563 template <typename FP>
567  {
568  return Type({size, SimulationDay(0)});
569  }
570  static std::string name()
571  {
572  return "DailyFullVaccinations";
573  }
574 };
575 
580 template <typename FP>
584  {
585  return Type({size, SimulationDay(0)});
586  }
587  static std::string name()
588  {
589  return "DailyBoosterVaccinations";
590  }
591 };
592 
597 template <typename FP>
601  {
602  return Type(size, 1.);
603  }
604  static std::string name()
605  {
606  return "ReducExposedPartialImmunity";
607  }
608 };
609 
614 template <typename FP>
618  {
619  return Type(size, 1.);
620  }
621  static std::string name()
622  {
623  return "ReducExposedImprovedImmunity";
624  }
625 };
626 
631 template <typename FP>
635  {
636  return Type(size, 1.);
637  }
638  static std::string name()
639  {
640  return "ReducInfectedSymptomsPartialImmunity";
641  }
642 };
643 
648 template <typename FP>
652  {
653  return Type(size, 1.);
654  }
655  static std::string name()
656  {
657  return "ReducInfectedSymptomsImprovedImmunity";
658  }
659 };
660 
666 template <typename FP>
670  {
671  return Type(size, 1.);
672  }
673  static std::string name()
674  {
675  return "ReducInfectedSevereCriticalDeadPartialImmunity";
676  }
677 };
678 
683 template <typename FP>
687  {
688  return Type(size, 1.);
689  }
690  static std::string name()
691  {
692  return "ReducInfectedSevereCriticalDeadImprovedImmunity";
693  }
694 };
695 
700 template <typename FP>
704  {
705  return Type(size, 0.5);
706  }
707  static std::string name()
708  {
709  return "ReducTimeInfectedMild";
710  }
711 };
712 
717 template <typename FP>
721  {
722  return Type(size, 1.0);
723  }
724  static std::string name()
725  {
726  return "InfectiousnessNewVariant";
727  }
728 };
729 
733 template <typename FP>
736  static Type get_default(AgeGroup /*size*/)
737  {
738  return Type(0.0);
739  }
740  static std::string name()
741  {
742  return "DynamicNPIsImplementationDelay";
743  }
744 };
745 
746 template <typename FP>
762 
767 template <typename FP>
768 class Parameters : public ParametersBase<FP>
769 {
770 public:
771  Parameters(AgeGroup num_agegroups)
772  : ParametersBase<FP>(num_agegroups)
773  , m_num_groups{num_agegroups}
774  {
775  }
776 
778  {
779  return m_num_groups;
780  }
781 
786  {
788  }
790  {
792  }
793 
798  {
800  }
801 
803  {
805  }
806 
811  {
813  }
814 
816  {
818  }
819 
824  {
825  return m_end_dynamic_npis;
826  }
828  {
829  return m_end_dynamic_npis;
830  }
831 
846  {
847  int corrected = false;
848  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
849  log_warning("Constraint check: Parameter Seasonality changed from {} to {}",
850  this->template get<Seasonality<FP>>(), 0);
851  this->template set<Seasonality<FP>>(0);
852  corrected = true;
853  }
854 
855  if (this->template get<ICUCapacity<FP>>() < 0.0) {
856  log_warning("Constraint check: Parameter ICUCapacity changed from {} to {}",
857  this->template get<ICUCapacity<FP>>(), 0);
858  this->template set<ICUCapacity<FP>>(0);
859  corrected = true;
860  }
861 
862  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
863  log_warning("Constraint check: Parameter TestAndTraceCapacity changed from {} to {}",
864  this->template get<TestAndTraceCapacity<FP>>(), 0);
865  this->template set<TestAndTraceCapacity<FP>>(0);
866  corrected = true;
867  }
868 
869  if (this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>() < 0.0) {
870  log_warning("Constraint check: Parameter TestAndTraceCapacityMaxRiskSymptoms changed from {} to {}",
871  this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>(), 0);
872  this->template set<TestAndTraceCapacityMaxRiskSymptoms<FP>>(0);
873  corrected = true;
874  }
875 
876  if (this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>() < 0.0) {
877  log_warning("Constraint check: Parameter TestAndTraceCapacityMaxRiskNoSymptoms changed from {} to {}",
878  this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>(), 0);
879  this->template set<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>(0);
880  corrected = true;
881  }
882 
883  if (this->template get<DynamicNPIsImplementationDelay<FP>>() < 0.0) {
884  log_warning("Constraint check: Parameter DynamicNPIsImplementationDelay changed from {} to {}",
885  this->template get<DynamicNPIsImplementationDelay<FP>>(), 0);
886  this->template set<DynamicNPIsImplementationDelay<FP>>(0);
887  corrected = true;
888  }
889 
890  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
891 
892  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
893 
894  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
895  log_warning("Constraint check: Parameter TimeExposed changed from {} to {}. Please "
896  "note that unreasonably small compartment stays lead to massively increased run time. "
897  "Consider to cancel and reset parameters.",
898  this->template get<TimeExposed<FP>>()[i], tol_times);
899  this->template get<TimeExposed<FP>>()[i] = tol_times;
900  corrected = true;
901  }
902 
903  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
904  log_warning("Constraint check: Parameter TimeInfectedNoSymptoms changed from {} to {}. Please "
905  "note that unreasonably small compartment stays lead to massively increased run time. "
906  "Consider to cancel and reset parameters.",
907  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
908  this->template get<TimeInfectedNoSymptoms<FP>>()[i] = tol_times;
909  corrected = true;
910  }
911 
912  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
913  log_warning("Constraint check: Parameter TimeInfectedSymptoms changed from {} to {}. Please "
914  "note that unreasonably small compartment stays lead to massively increased run time. "
915  "Consider to cancel and reset parameters.",
916  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
917  this->template get<TimeInfectedSymptoms<FP>>()[i] = tol_times;
918  corrected = true;
919  }
920 
921  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
922  log_warning("Constraint check: Parameter TimeInfectedSevere changed from {} to {}. Please "
923  "note that unreasonably small compartment stays lead to massively increased run time. "
924  "Consider to cancel and reset parameters.",
925  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
926  this->template get<TimeInfectedSevere<FP>>()[i] = tol_times;
927  corrected = true;
928  }
929 
930  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
931  log_warning("Constraint check: Parameter TimeInfectedCritical changed from {} to {}. Please "
932  "note that unreasonably small compartment stays lead to massively increased run time. "
933  "Consider to cancel and reset parameters.",
934  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
935  this->template get<TimeInfectedCritical<FP>>()[i] = tol_times;
936  corrected = true;
937  }
938 
939  if (this->template get<TimeTemporaryImmunityPI<FP>>()[i] < tol_times) {
940  log_warning("Constraint check: Parameter TimeTemporaryImmunityPI changed from {} to {}. Please "
941  "note that unreasonably small compartment stays lead to massively increased run time. "
942  "Consider to cancel and reset parameters.",
943  this->template get<TimeTemporaryImmunityPI<FP>>()[i], tol_times);
944  this->template get<TimeTemporaryImmunityPI<FP>>()[i] = tol_times;
945  corrected = true;
946  }
947 
948  if (this->template get<TimeTemporaryImmunityII<FP>>()[i] < tol_times) {
949  log_warning("Constraint check: Parameter TimeTemporaryImmunityII changed from {} to {}. Please "
950  "note that unreasonably small compartment stays lead to massively increased run time. "
951  "Consider to cancel and reset parameters.",
952  this->template get<TimeTemporaryImmunityII<FP>>()[i], tol_times);
953  this->template get<TimeTemporaryImmunityII<FP>>()[i] = tol_times;
954  corrected = true;
955  }
956 
957  if (this->template get<TimeWaningPartialImmunity<FP>>()[i] < tol_times) {
958  log_warning("Constraint check: Parameter TimeWaningPartialImmunity changed from {} to {}. Please "
959  "note that unreasonably small compartment stays lead to massively increased run time. "
960  "Consider to cancel and reset parameters.",
961  this->template get<TimeWaningPartialImmunity<FP>>()[i], tol_times);
962  this->template get<TimeWaningPartialImmunity<FP>>()[i] = tol_times;
963  corrected = true;
964  }
965 
966  if (this->template get<TimeWaningImprovedImmunity<FP>>()[i] < tol_times) {
967  log_warning("Constraint check: Parameter TimeWaningImprovedImmunity changed from {} to {}. Please "
968  "note that unreasonably small compartment stays lead to massively increased run time. "
969  "Consider to cancel and reset parameters.",
970  this->template get<TimeWaningImprovedImmunity<FP>>()[i], tol_times);
971  this->template get<TimeWaningImprovedImmunity<FP>>()[i] = tol_times;
972  corrected = true;
973  }
974 
975  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
976  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
977  log_warning("Constraint check: Parameter TransmissionProbabilityOnContact changed from {} to {} ",
978  this->template get<TransmissionProbabilityOnContact<FP>>()[i], 0.0);
979  this->template get<TransmissionProbabilityOnContact<FP>>()[i] = 0.0;
980  corrected = true;
981  }
982 
983  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
984  log_warning("Constraint check: Parameter RelativeTransmissionNoSymptoms changed from {} to {} ",
985  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i], 0);
986  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] = 0;
987  corrected = true;
988  }
989 
990  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
991  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
992  log_warning("Constraint check: Parameter RecoveredPerInfectedNoSymptoms changed from {} to {} ",
993  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i], 0);
994  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] = 0;
995  corrected = true;
996  }
997 
998  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
999  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
1000  log_warning("Constraint check: Parameter RiskOfInfectionFromSymptomatic changed from {} to {}",
1001  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i], 0);
1002  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] = 0;
1003  corrected = true;
1004  }
1005 
1006  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
1007  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
1008  log_warning("Constraint check: Parameter SeverePerInfectedSymptoms changed from {} to {}",
1009  this->template get<SeverePerInfectedSymptoms<FP>>()[i], 0);
1010  this->template get<SeverePerInfectedSymptoms<FP>>()[i] = 0;
1011  corrected = true;
1012  }
1013 
1014  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
1015  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
1016  log_warning("Constraint check: Parameter CriticalPerSevere changed from {} to {}",
1017  this->template get<CriticalPerSevere<FP>>()[i], 0);
1018  this->template get<CriticalPerSevere<FP>>()[i] = 0;
1019  corrected = true;
1020  }
1021 
1022  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
1023  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
1024  log_warning("Constraint check: Parameter DeathsPerCritical changed from {} to {}",
1025  this->template get<DeathsPerCritical<FP>>()[i], 0);
1026  this->template get<DeathsPerCritical<FP>>()[i] = 0;
1027  corrected = true;
1028  }
1029 
1030  if (this->template get<DaysUntilEffectivePartialVaccination<FP>>()[i] < 0.0) {
1031  log_warning("Constraint check: Parameter DeathsPerCritical changed from {} to {}",
1032  this->template get<DaysUntilEffectivePartialVaccination<FP>>()[i], 0);
1033  this->template get<DaysUntilEffectivePartialVaccination<FP>>()[i] = 0;
1034  corrected = true;
1035  }
1036 
1037  if (this->template get<DaysUntilEffectiveImprovedVaccination<FP>>()[i] < 0.0) {
1038  log_warning("Constraint check: Parameter DaysUntilEffectiveImprovedVaccination changed from {} to {}",
1039  this->template get<DaysUntilEffectiveImprovedVaccination<FP>>()[i], 0);
1040  this->template get<DaysUntilEffectiveImprovedVaccination<FP>>()[i] = 0;
1041  corrected = true;
1042  }
1043 
1044  if (this->template get<DaysUntilEffectiveBoosterImmunity<FP>>()[i] < 0.0) {
1045  log_warning("Constraint check: Parameter DaysUntilEffectiveBoosterImmunity changed from {} to {}",
1046  this->template get<DaysUntilEffectiveBoosterImmunity<FP>>()[i], 0);
1047  this->template get<DaysUntilEffectiveBoosterImmunity<FP>>()[i] = 0;
1048  corrected = true;
1049  }
1050 
1051  if (this->template get<ReducExposedPartialImmunity<FP>>()[i] <= 0.0 ||
1052  this->template get<ReducExposedPartialImmunity<FP>>()[i] > 1.0) {
1053  log_warning("Constraint check: Parameter ReducExposedPartialImmunity changed from {} to {}",
1054  this->template get<ReducExposedPartialImmunity<FP>>()[i], 1);
1055  this->template get<ReducExposedPartialImmunity<FP>>()[i] = 1;
1056  corrected = true;
1057  }
1058  if (this->template get<ReducExposedImprovedImmunity<FP>>()[i] <= 0.0 ||
1059  this->template get<ReducExposedImprovedImmunity<FP>>()[i] > 1.0) {
1060  log_warning("Constraint check: Parameter ReducExposedImprovedImmunity changed from {} to {}",
1061  this->template get<ReducExposedImprovedImmunity<FP>>()[i], 1);
1062  this->template get<ReducExposedImprovedImmunity<FP>>()[i] = 1;
1063  corrected = true;
1064  }
1065  if (this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] <= 0.0 ||
1066  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] > 1.0) {
1067  log_warning("Constraint check: Parameter ReducInfectedSymptomsPartialImmunity changed from {} to {}",
1068  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i], 1);
1069  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] = 1;
1070  corrected = true;
1071  }
1072  if (this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] <= 0.0 ||
1073  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] > 1.0) {
1074  log_warning("Constraint check: Parameter ReducInfectedSymptomsImprovedImmunity changed from {} to {}",
1075  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i], 1.0);
1076  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] = 1.0;
1077  corrected = true;
1078  }
1079  if (this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] <= 0.0 ||
1080  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] > 1.0) {
1081  log_warning("Constraint check: Parameter ReducInfectedSevereCriticalDeadPartialImmunity changed from "
1082  "{} to {}",
1083  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i], 1.0);
1084  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] = 1.0;
1085  corrected = true;
1086  }
1087  if (this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] <= 0.0 ||
1088  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] > 1.0) {
1089  log_warning("Constraint check: Parameter ReducInfectedSevereCriticalDeadImprovedImmunity changed from "
1090  "{} to {}",
1091  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i], 1.0);
1092  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] = 1.0;
1093  corrected = true;
1094  }
1095  if (this->template get<ReducTimeInfectedMild<FP>>()[i] <= 0.0 ||
1096  this->template get<ReducTimeInfectedMild<FP>>()[i] > 1.0) {
1097  log_warning("Constraint check: Parameter ReducTimeInfectedMild changed from {} to {}",
1098  this->template get<ReducTimeInfectedMild<FP>>()[i], 1.0);
1099  this->template get<ReducTimeInfectedMild<FP>>()[i] = 1.0;
1100  corrected = true;
1101  }
1102  if (this->template get<InfectiousnessNewVariant<FP>>()[i] < 0.0) {
1103  log_warning("Constraint check: Parameter InfectiousnessNewVariant changed from {} to {}",
1104  this->template get<InfectiousnessNewVariant<FP>>()[i], 1.0);
1105  this->template get<InfectiousnessNewVariant<FP>>()[i] = 1.0;
1106  corrected = true;
1107  }
1108  }
1109  return corrected;
1110  }
1111 
1117  bool check_constraints() const
1118  {
1119  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
1120  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
1121  log_error("Constraint check: Parameter m_seasonality smaller {} or larger {}", 0, 0.5);
1122  return true;
1123  }
1124 
1125  if (this->template get<ICUCapacity<FP>>() < 0.0) {
1126  log_error("Constraint check: Parameter m_icu_capacity smaller {}", 0);
1127  return true;
1128  }
1129 
1130  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
1131  log_error("Constraint check: Parameter TestAndTraceCapacity smaller {}", 0);
1132  return true;
1133  }
1134 
1135  if (this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>() < 0.0) {
1136  log_error("Constraint check: Parameter TestAndTraceCapacityMaxRiskSymptoms smaller {}", 0);
1137  return true;
1138  }
1139 
1140  if (this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>() < 0.0) {
1141  log_error("Constraint check: Parameter TestAndTraceCapacityMaxRiskNoSymptoms smaller {}", 0);
1142  return true;
1143  }
1144 
1145  if (this->template get<DynamicNPIsImplementationDelay<FP>>() < 0.0) {
1146  log_error("Constraint check: Parameter DynamicNPIsImplementationDelay smaller {}", 0);
1147  return true;
1148  }
1149 
1150  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
1151 
1152  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
1153  log_error("Constraint check: Parameter TimeExposed {} smaller {}. Please "
1154  "note that unreasonably small compartment stays lead to massively increased run time. "
1155  "Consider to cancel and reset parameters.",
1156  this->template get<TimeExposed<FP>>()[i], tol_times);
1157  return true;
1158  }
1159 
1160  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
1161  log_error("Constraint check: Parameter TimeInfectedNoSymptoms {} smaller {}. Please "
1162  "note that unreasonably small compartment stays lead to massively increased run time. "
1163  "Consider to cancel and reset parameters.",
1164  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
1165  return true;
1166  }
1167 
1168  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
1169  log_error("Constraint check: Parameter TimeInfectedSymptoms {} smaller {}. Please "
1170  "note that unreasonably small compartment stays lead to massively increased run time. "
1171  "Consider to cancel and reset parameters.",
1172  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
1173  return true;
1174  }
1175 
1176  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
1177  log_error("Constraint check: Parameter TimeInfectedSevere {} smaller {}. Please "
1178  "note that unreasonably small compartment stays lead to massively increased run time. "
1179  "Consider to cancel and reset parameters.",
1180  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
1181  return true;
1182  }
1183 
1184  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
1185  log_error("Constraint check: Parameter TimeInfectedCritical {} smaller {}. Please "
1186  "note that unreasonably small compartment stays lead to massively increased run time. "
1187  "Consider to cancel and reset parameters.",
1188  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
1189  return true;
1190  }
1191 
1192  if (this->template get<TimeTemporaryImmunityPI<FP>>()[i] < tol_times) {
1193  log_error("Constraint check: Parameter TimeTemporaryImmunityPI {} smaller {}. Please "
1194  "note that unreasonably small compartment stays lead to massively increased run time. "
1195  "Consider to cancel and reset parameters.",
1196  this->template get<TimeTemporaryImmunityPI<FP>>()[i], tol_times);
1197  return true;
1198  }
1199 
1200  if (this->template get<TimeTemporaryImmunityII<FP>>()[i] < tol_times) {
1201  log_error("Constraint check: Parameter TimeTemporaryImmunityII {} smaller {}. Please "
1202  "note that unreasonably small compartment stays lead to massively increased run time. "
1203  "Consider to cancel and reset parameters.",
1204  this->template get<TimeTemporaryImmunityII<FP>>()[i], tol_times);
1205  return true;
1206  }
1207 
1208  if (this->template get<TimeWaningPartialImmunity<FP>>()[i] < tol_times) {
1209  log_error("Constraint check: Parameter TimeWaningPartialImmunity {} smaller {}. Please "
1210  "note that unreasonably small compartment stays lead to massively increased run time. "
1211  "Consider to cancel and reset parameters.",
1212  this->template get<TimeWaningPartialImmunity<FP>>()[i], tol_times);
1213  return true;
1214  }
1215 
1216  if (this->template get<TimeWaningImprovedImmunity<FP>>()[i] < tol_times) {
1217  log_error("Constraint check: Parameter TimeWaningImprovedImmunity {} smaller {}. Please "
1218  "note that unreasonably small compartment stays lead to massively increased run time. "
1219  "Consider to cancel and reset parameters.",
1220  this->template get<TimeWaningImprovedImmunity<FP>>()[i], tol_times);
1221  return true;
1222  }
1223 
1224  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
1225  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
1226  log_error("Constraint check: Parameter TransmissionProbabilityOnContact smaller {} or larger {}", 0, 1);
1227  return true;
1228  }
1229 
1230  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
1231  log_error("Constraint check: Parameter RelativeTransmissionNoSymptoms smaller {}", 0);
1232  return true;
1233  }
1234 
1235  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
1236  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
1237  log_error("Constraint check: Parameter RecoveredPerInfectedNoSymptoms smaller {} or larger {}", 0, 1);
1238  return true;
1239  }
1240 
1241  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
1242  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
1243  log_error("Constraint check: Parameter RiskOfInfectionFromSymptomatic smaller {} or larger {}", 0, 1);
1244  return true;
1245  }
1246 
1247  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
1248  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
1249  log_error("Constraint check: Parameter SeverePerInfectedSymptoms smaller {} or larger {}", 0, 1);
1250  return true;
1251  }
1252 
1253  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
1254  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
1255  log_error("Constraint check: Parameter CriticalPerSevere smaller {} or larger {}", 0, 1);
1256  return true;
1257  }
1258 
1259  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
1260  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
1261  log_error("Constraint check: Parameter DeathsPerCritical smaller {} or larger {}", 0, 1);
1262  return true;
1263  }
1264 
1265  if (this->template get<DaysUntilEffectivePartialVaccination<FP>>()[i] < 0.0) {
1266  log_error("Constraint check: Parameter DaysUntilEffectivePartialVaccination smaller {}", 0);
1267  return true;
1268  }
1269 
1270  if (this->template get<DaysUntilEffectiveImprovedVaccination<FP>>()[i] < 0.0) {
1271  log_error("Constraint check: Parameter DaysUntilEffectiveImprovedVaccination smaller {}", 0);
1272  return true;
1273  }
1274 
1275  if (this->template get<DaysUntilEffectiveBoosterImmunity<FP>>()[i] < 0.0) {
1276  log_error("Constraint check: Parameter DaysUntilEffectiveImprovedVaccination smaller {}", 0);
1277  return true;
1278  }
1279 
1280  if (this->template get<ReducExposedPartialImmunity<FP>>()[i] <= 0.0 ||
1281  this->template get<ReducExposedPartialImmunity<FP>>()[i] > 1.0) {
1282  log_error("Constraint check: Parameter ReducExposedPartialImmunity smaller {} or larger {}", 0, 1);
1283  return true;
1284  }
1285  if (this->template get<ReducExposedImprovedImmunity<FP>>()[i] <= 0.0 ||
1286  this->template get<ReducExposedImprovedImmunity<FP>>()[i] > 1.0) {
1287  log_error("Constraint check: Parameter ReducExposedImprovedImmunity smaller {} or larger {}", 0, 1);
1288  return true;
1289  }
1290  if (this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] <= 0.0 ||
1291  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] > 1.0) {
1292  log_error("Constraint check: Parameter ReducInfectedSymptomsPartialImmunity smaller {} or larger {}", 0,
1293  1);
1294  return true;
1295  }
1296  if (this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] <= 0.0 ||
1297  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] > 1.0) {
1298  log_error("Constraint check: Parameter ReducInfectedSymptomsImprovedImmunity smaller {} or larger {}",
1299  0, 1);
1300  return true;
1301  }
1302  if (this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] <= 0.0 ||
1303  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] > 1.0) {
1304  log_error("Constraint check: Parameter ReducInfectedSevereCriticalDeadPartialImmunity smaller {} or "
1305  "larger {}",
1306  0, 1);
1307  return true;
1308  }
1309  if (this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] <= 0.0 ||
1310  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] > 1.0) {
1311  log_error("Constraint check: Parameter ReducInfectedSevereCriticalDeadImprovedImmunity smaller {} or "
1312  "larger {}",
1313  0, 1);
1314  return true;
1315  }
1316  if (this->template get<ReducTimeInfectedMild<FP>>()[i] <= 0.0 ||
1317  this->template get<ReducTimeInfectedMild<FP>>()[i] > 1.0) {
1318  log_error("Constraint check: Parameter ReducTimeInfectedMild smaller {} or larger {}", 0, 1);
1319  return true;
1320  }
1321  if (this->template get<InfectiousnessNewVariant<FP>>()[i] < 0.0) {
1322  log_error("Constraint check: Parameter InfectiousnessNewVariant smaller {}", 0);
1323  return true;
1324  }
1325  }
1326  return false;
1327  }
1328 
1329 private:
1331  : ParametersBase<FP>(std::move(base))
1332  , m_num_groups(this->template get<ContactPatterns<FP>>().get_cont_freq_mat().get_num_groups())
1333  {
1334  }
1335 
1336 public:
1341  template <class IOContext>
1342  static IOResult<Parameters> deserialize(IOContext& io)
1343  {
1344  BOOST_OUTCOME_TRY(auto&& base, ParametersBase<FP>::deserialize(io));
1345  return success(Parameters(std::move(base)));
1346  }
1347 
1348 private:
1354 };
1355 
1356 } // namespace osecirts
1357 } // namespace mio
1358 
1359 #endif // MIO_ODE_SECIRTS_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 the age-resolved SECIRS-type model with high temporary immunity upon immunization and w...
Definition: ode_secirts/parameters.h:769
static IOResult< Parameters > deserialize(IOContext &io)
deserialize an object of this class.
Definition: ode_secirts/parameters.h:1342
FP & get_end_commuter_detection()
Time in simulation after which no infected commuters are detected.
Definition: ode_secirts/parameters.h:810
FP get_end_dynamic_npis() const
Definition: ode_secirts/parameters.h:827
Parameters(AgeGroup num_agegroups)
Definition: ode_secirts/parameters.h:771
FP & get_end_dynamic_npis()
Time in simulation after which no dynamic NPIs are applied.
Definition: ode_secirts/parameters.h:823
FP m_start_commuter_detection
Definition: ode_secirts/parameters.h:1351
Parameters(ParametersBase< FP > &&base)
Definition: ode_secirts/parameters.h:1330
FP m_end_commuter_detection
Definition: ode_secirts/parameters.h:1352
FP m_commuter_nondetection
Definition: ode_secirts/parameters.h:1350
FP get_end_commuter_detection() const
Definition: ode_secirts/parameters.h:815
AgeGroup get_num_groups() const
Definition: ode_secirts/parameters.h:777
bool apply_constraints()
Checks whether all Parameters satisfy their corresponding constraints and applies them,...
Definition: ode_secirts/parameters.h:845
FP & get_start_commuter_detection()
Time in simulation before which no infected commuters are detected.
Definition: ode_secirts/parameters.h:797
bool check_constraints() const
Checks whether all Parameters satisfy their corresponding constraints and logs an error if constraint...
Definition: ode_secirts/parameters.h:1117
FP get_commuter_nondetection() const
Definition: ode_secirts/parameters.h:789
AgeGroup m_num_groups
Definition: ode_secirts/parameters.h:1349
FP get_start_commuter_detection() const
Definition: ode_secirts/parameters.h:802
FP m_end_dynamic_npis
Definition: ode_secirts/parameters.h:1353
FP & get_commuter_nondetection()
Percentage of infected commuters that are not detected.
Definition: ode_secirts/parameters.h:785
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_secirts/parameters.h:168
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:170
UncertainContactMatrix< FP > Type
Definition: ode_secirts/parameters.h:169
static std::string name()
Definition: ode_secirts/parameters.h:174
The percentage of ICU patients per hospitalized patients in the SECIRTS model.
Definition: ode_secirts/parameters.h:462
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:463
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:464
static std::string name()
Definition: ode_secirts/parameters.h:468
Total number of booster vaccinations up to the given day.
Definition: ode_secirts/parameters.h:581
CustomIndexArray< FP, AgeGroup, SimulationDay > Type
Definition: ode_secirts/parameters.h:582
static std::string name()
Definition: ode_secirts/parameters.h:587
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:583
Total number of full vaccinations up to the given day.
Definition: ode_secirts/parameters.h:564
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:566
static std::string name()
Definition: ode_secirts/parameters.h:570
CustomIndexArray< FP, AgeGroup, SimulationDay > Type
Definition: ode_secirts/parameters.h:565
Total number of first vaccinations up to the given day.
Definition: ode_secirts/parameters.h:547
static std::string name()
Definition: ode_secirts/parameters.h:553
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:549
CustomIndexArray< FP, AgeGroup, SimulationDay > Type
Definition: ode_secirts/parameters.h:548
Time in days until booster vaccine dose takes full effect.
Definition: ode_secirts/parameters.h:530
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:531
static std::string name()
Definition: ode_secirts/parameters.h:536
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:532
Time in days until second vaccine dose takes full effect.
Definition: ode_secirts/parameters.h:513
static std::string name()
Definition: ode_secirts/parameters.h:519
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:515
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:514
Time in days until first vaccine dose takes full effect.
Definition: ode_secirts/parameters.h:496
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:498
static std::string name()
Definition: ode_secirts/parameters.h:502
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:497
The percentage of dead patients per ICU patients in the SECIRTS model.
Definition: ode_secirts/parameters.h:479
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:481
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:480
static std::string name()
Definition: ode_secirts/parameters.h:485
The delay with which DynamicNPIs are implemented and enforced after exceedance of threshold.
Definition: ode_secirts/parameters.h:734
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:736
static std::string name()
Definition: ode_secirts/parameters.h:740
UncertainValue< FP > Type
Definition: ode_secirts/parameters.h:735
The NPIs that are enacted if certain infection thresholds are exceeded.
Definition: ode_secirts/parameters.h:185
static std::string name()
Definition: ode_secirts/parameters.h:191
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:187
Represents the icu capacity in the SECIRTS model.
Definition: ode_secirts/parameters.h:102
UncertainValue< FP > Type
Definition: ode_secirts/parameters.h:103
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:104
static std::string name()
Definition: ode_secirts/parameters.h:108
Represents the relative infectiousness of a new variant.
Definition: ode_secirts/parameters.h:718
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:720
static std::string name()
Definition: ode_secirts/parameters.h:724
CustomIndexArray< FP, AgeGroup > Type
Definition: ode_secirts/parameters.h:719
Risk of infection from symptomatic cases increases if test and trace capacity is exceeded.
Definition: ode_secirts/parameters.h:428
static std::string name()
Definition: ode_secirts/parameters.h:434
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:430
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:429
The percentage of asymptomatic cases in the SECIRTS model.
Definition: ode_secirts/parameters.h:394
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:395
static std::string name()
Definition: ode_secirts/parameters.h:400
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:396
Factor to reduce infection risk for persons with improved immunity.
Definition: ode_secirts/parameters.h:615
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:616
static std::string name()
Definition: ode_secirts/parameters.h:621
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:617
Factor to reduce infection risk for persons with partial immunity.
Definition: ode_secirts/parameters.h:598
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:600
static std::string name()
Definition: ode_secirts/parameters.h:604
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:599
Factor to reduce risk of hospitalization for persons with improved immunity.
Definition: ode_secirts/parameters.h:684
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:686
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:685
static std::string name()
Definition: ode_secirts/parameters.h:690
Factor to reduce risk of hospitalization for persons with partial immunity.
Definition: ode_secirts/parameters.h:667
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:668
static std::string name()
Definition: ode_secirts/parameters.h:673
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:669
Factor to reduce risk of developing symptoms for persons with improved immunity.
Definition: ode_secirts/parameters.h:649
static std::string name()
Definition: ode_secirts/parameters.h:655
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:651
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:650
Factor to reduce risk of developing symptoms for persons with partial immunity.
Definition: ode_secirts/parameters.h:632
static std::string name()
Definition: ode_secirts/parameters.h:638
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:634
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:633
Factor to reduce infectious time of persons with partial or improved immunity.
Definition: ode_secirts/parameters.h:701
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:702
static std::string name()
Definition: ode_secirts/parameters.h:707
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:703
The relative infectability from individuals located in the InfectedNoSymptoms infection state.
Definition: ode_secirts/parameters.h:377
static std::string name()
Definition: ode_secirts/parameters.h:383
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:379
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:378
The risk of infection from symptomatic cases in the SECIRTS model.
Definition: ode_secirts/parameters.h:411
static std::string name()
Definition: ode_secirts/parameters.h:417
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:413
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:412
The seasonality in the SECIRTS-type model.
Definition: ode_secirts/parameters.h:85
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:87
UncertainValue< FP > Type
Definition: ode_secirts/parameters.h:86
static std::string name()
Definition: ode_secirts/parameters.h:91
The percentage of hospitalized patients per infected patients in the SECIRTS model.
Definition: ode_secirts/parameters.h:445
static std::string name()
Definition: ode_secirts/parameters.h:451
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:447
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:446
The start day of a new variant in the SECIRTS-type model.
Definition: ode_secirts/parameters.h:66
static std::string name()
Definition: ode_secirts/parameters.h:72
FP Type
Definition: ode_secirts/parameters.h:67
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:68
The start day in the SECIRTS-type model.
Definition: ode_secirts/parameters.h:47
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:49
static std::string name()
Definition: ode_secirts/parameters.h:53
FP Type
Definition: ode_secirts/parameters.h:48
Multiplier for the test and trace capacity to determine when it is considered overloaded from cases w...
Definition: ode_secirts/parameters.h:135
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:137
static std::string name()
Definition: ode_secirts/parameters.h:141
UncertainValue< FP > Type
Definition: ode_secirts/parameters.h:136
Multiplier for the test and trace capacity to determine when it is considered overloaded by symptomat...
Definition: ode_secirts/parameters.h:151
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:153
UncertainValue< FP > Type
Definition: ode_secirts/parameters.h:152
static std::string name()
Definition: ode_secirts/parameters.h:157
The Capacity to test and trace contacts of infected for quarantine per day.
Definition: ode_secirts/parameters.h:119
UncertainValue< FP > Type
Definition: ode_secirts/parameters.h:120
static std::string name()
Definition: ode_secirts/parameters.h:125
static Type get_default(AgeGroup)
Definition: ode_secirts/parameters.h:121
Represents the mean latent time in days for different age groups.
Definition: ode_secirts/parameters.h:202
static std::string name()
Definition: ode_secirts/parameters.h:208
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:203
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:204
The time people are treated by ICU before returning home in the SECIRTS model in day unit.
Definition: ode_secirts/parameters.h:274
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:275
static std::string name()
Definition: ode_secirts/parameters.h:280
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:276
The (mean) time in day unit for asymptomatic cases that are infected but have not yet developed sympt...
Definition: ode_secirts/parameters.h:220
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:222
static std::string name()
Definition: ode_secirts/parameters.h:226
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:221
The time people are 'simply' hospitalized before returning home in the SECIRTS model in day unit.
Definition: ode_secirts/parameters.h:256
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:257
static std::string name()
Definition: ode_secirts/parameters.h:262
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:258
The infectious time for symptomatic cases that are infected but who do not need to be hospitalized in...
Definition: ode_secirts/parameters.h:238
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:239
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:240
static std::string name()
Definition: ode_secirts/parameters.h:244
The time people stays immune after infection or vaccination located in the partial or improved immuni...
Definition: ode_secirts/parameters.h:344
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:345
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:346
static std::string name()
Definition: ode_secirts/parameters.h:350
The time people stays immune after infection or vaccination located in naive immunity layer in day un...
Definition: ode_secirts/parameters.h:326
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:327
static std::string name()
Definition: ode_secirts/parameters.h:332
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:328
Time in days to describe waning immunity to get susceptible from improved to partial immunity layer.
Definition: ode_secirts/parameters.h:308
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:310
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:309
static std::string name()
Definition: ode_secirts/parameters.h:314
Time in days to describe waning immunity to get susceptible from partial to naive immunity layer.
Definition: ode_secirts/parameters.h:291
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:293
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:292
static std::string name()
Definition: ode_secirts/parameters.h:297
The probability of getting infected from a single contact.
Definition: ode_secirts/parameters.h:360
static Type get_default(AgeGroup size)
Definition: ode_secirts/parameters.h:362
static std::string name()
Definition: ode_secirts/parameters.h:366
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirts/parameters.h:361