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>
192 struct TimeExposed {
195  {
196  return Type(size, 1.);
197  }
198  static std::string name()
199  {
200  return "TimeExposed";
201  }
202 };
203 
208 template <typename FP>
212  {
213  return Type(size, 1.);
214  }
215  static std::string name()
216  {
217  return "TimeInfectedNoSymptoms";
218  }
219 };
220 
225 template <typename FP>
229  {
230  return Type(size, 1.);
231  }
232  static std::string name()
233  {
234  return "TimeInfectedSymptoms";
235  }
236 };
237 
242 template <typename FP>
246  {
247  return Type(size, 1.);
248  }
249  static std::string name()
250  {
251  return "TimeInfectedSevere";
252  }
253 };
254 
259 template <typename FP>
263  {
264  return Type(size, 1.);
265  }
266  static std::string name()
267  {
268  return "TimeInfectedCritical";
269  }
270 };
271 
275 template <typename FP>
279  {
280  return Type(size, 1.);
281  }
282  static std::string name()
283  {
284  return "TransmissionProbabilityOnContact";
285  }
286 };
287 
291 template <typename FP>
295  {
296  return Type(size, 1.);
297  }
298  static std::string name()
299  {
300  return "RelativeTransmissionNoSymptoms";
301  }
302 };
303 
307 template <typename FP>
311  {
312  return Type(size, 0.);
313  }
314  static std::string name()
315  {
316  return "RecoveredPerInfectedNoSymptoms";
317  }
318 };
319 
323 template <typename FP>
327  {
328  return Type(size, 1.);
329  }
330  static std::string name()
331  {
332  return "RiskOfInfectionFromSymptomatic";
333  }
334 };
335 
339 template <typename FP>
343  {
344  return Type(size, 1.);
345  }
346  static std::string name()
347  {
348  return "MaxRiskOfInfectionFromSymptomatic";
349  }
350 };
351 
355 template <typename FP>
359  {
360  return Type(size, 0.);
361  }
362  static std::string name()
363  {
364  return "SeverePerInfectedSymptoms";
365  }
366 };
367 
371 template <typename FP>
375  {
376  return Type(size, 0.);
377  }
378  static std::string name()
379  {
380  return "CriticalPerSevere";
381  }
382 };
383 
389 template <typename FP>
393  {
394  return Type(size, 0.);
395  }
396  static std::string name()
397  {
398  return "DeathsPerSevere";
399  }
400 };
401 
405 template <typename FP>
409  {
410  return Type(size, 0.);
411  }
412  static std::string name()
413  {
414  return "DeathsPerCritical";
415  }
416 };
417 
421 template <typename FP>
425  {
426  return Type(size, 49.0);
427  }
428  static std::string name()
429  {
430  return "VaccinationGap";
431  }
432 };
433 
437 template <typename FP>
441  {
442  return Type(size, 14.0);
443  }
444  static std::string name()
445  {
446  return "DaysUntilEffectivePartialImmunity";
447  }
448 };
449 
453 template <typename FP>
457  {
458  return Type(size, 7.0);
459  }
460  static std::string name()
461  {
462  return "DaysUntilEffectiveImprovedImmunity";
463  }
464 };
465 
469 template <typename FP>
473  {
474  return Type({size, SimulationDay(0)});
475  }
476  static std::string name()
477  {
478  return "DailyPartialVaccinations";
479  }
480 };
481 
485 template <typename FP>
489  {
490  return Type({size, SimulationDay(0)});
491  }
492  static std::string name()
493  {
494  return "DailyFullVaccinations";
495  }
496 };
497 
501 template <typename FP>
505  {
506  return Type(size, 1.);
507  }
508  static std::string name()
509  {
510  return "ReducExposedPartialImmunity";
511  }
512 };
513 
517 template <typename FP>
521  {
522  return Type(size, 1.);
523  }
524  static std::string name()
525  {
526  return "ReducExposedImprovedImmunity";
527  }
528 };
529 
533 template <typename FP>
537  {
538  return Type(size, 1.);
539  }
540  static std::string name()
541  {
542  return "ReducInfectedSymptomsPartialImmunity";
543  }
544 };
545 
549 template <typename FP>
553  {
554  return Type(size, 1.);
555  }
556  static std::string name()
557  {
558  return "ReducInfectedSymptomsImprovedImmunity";
559  }
560 };
561 
566 template <typename FP>
570  {
571  return Type(size, 1.);
572  }
573  static std::string name()
574  {
575  return "ReducInfectedSevereCriticalDeadPartialImmunity";
576  }
577 };
578 
582 template <typename FP>
586  {
587  return Type(size, 1.);
588  }
589  static std::string name()
590  {
591  return "ReducInfectedSevereCriticalDeadImprovedImmunity";
592  }
593 };
594 
598 template <typename FP>
602  {
603  return Type(size, 0.5);
604  }
605  static std::string name()
606  {
607  return "ReducTimeInfectedMild";
608  }
609 };
610 
614 template <typename FP>
618  {
619  return Type(size, 1.0);
620  }
621  static std::string name()
622  {
623  return "InfectiousnessNewVariant";
624  }
625 };
626 
627 template <typename FP>
640 
644 template <typename FP>
645 class Parameters : public ParametersBase<FP>
646 {
647 public:
648  Parameters(AgeGroup num_agegroups)
649  : ParametersBase<FP>(num_agegroups)
650  , m_num_groups{num_agegroups}
651  {
652  }
653 
655  {
656  return m_num_groups;
657  }
658 
663  {
665  }
667  {
669  }
670 
675  {
677  }
678 
680  {
682  }
683 
688  {
690  }
691 
693  {
695  }
696 
711  {
712  int corrected = false;
713  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
714  log_warning("Constraint check: Parameter Seasonality changed from {} to {}",
715  this->template get<Seasonality<FP>>(), 0);
716  this->template set<Seasonality<FP>>(0);
717  corrected = true;
718  }
719 
720  if (this->template get<ICUCapacity<FP>>() < 0.0) {
721  log_warning("Constraint check: Parameter ICUCapacity changed from {} to {}",
722  this->template get<ICUCapacity<FP>>(), 0);
723  this->template set<ICUCapacity<FP>>(0);
724  corrected = true;
725  }
726 
727  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
728  log_warning("Constraint check: Parameter TestAndTraceCapacity changed from {} to {}",
729  this->template get<TestAndTraceCapacity<FP>>(), 0);
730  this->template set<TestAndTraceCapacity<FP>>(0);
731  corrected = true;
732  }
733 
734  if (this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>() < 0.0) {
735  log_warning("Constraint check: Parameter TestAndTraceCapacityMaxRiskSymptoms changed from {} to {}",
736  this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>(), 0);
737  this->template set<TestAndTraceCapacityMaxRiskSymptoms<FP>>(0);
738  corrected = true;
739  }
740 
741  if (this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>() < 0.0) {
742  log_warning("Constraint check: Parameter TestAndTraceCapacityMaxRiskNoSymptoms changed from {} to {}",
743  this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>(), 0);
744  this->template set<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>(0);
745  corrected = true;
746  }
747 
748  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
749 
750  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
751  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
752  log_warning("Constraint check: Parameter TimeExposed changed from {} to {}. Please "
753  "note that unreasonably small compartment stays lead to massively increased run time. "
754  "Consider to cancel and reset parameters.",
755  this->template get<TimeExposed<FP>>()[i], tol_times);
756  this->template get<TimeExposed<FP>>()[i] = tol_times;
757  corrected = true;
758  }
759 
760  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
761  log_warning("Constraint check: Parameter TimeInfectedNoSymptoms changed from {} to {}. Please "
762  "note that unreasonably small compartment stays lead to massively increased run time. "
763  "Consider to cancel and reset parameters.",
764  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
765  this->template get<TimeInfectedNoSymptoms<FP>>()[i] = tol_times;
766  corrected = true;
767  }
768 
769  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
770  log_warning("Constraint check: Parameter TimeInfectedSymptoms changed from {} to {}. Please "
771  "note that unreasonably small compartment stays lead to massively increased run time. "
772  "Consider to cancel and reset parameters.",
773  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
774  this->template get<TimeInfectedSymptoms<FP>>()[i] = tol_times;
775  corrected = true;
776  }
777 
778  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
779  log_warning("Constraint check: Parameter TimeInfectedSevere changed from {} to {}. Please "
780  "note that unreasonably small compartment stays lead to massively increased run time. "
781  "Consider to cancel and reset parameters.",
782  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
783  this->template get<TimeInfectedSevere<FP>>()[i] = tol_times;
784  corrected = true;
785  }
786 
787  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
788  log_warning("Constraint check: Parameter TimeInfectedCritical 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<TimeInfectedCritical<FP>>()[i], tol_times);
792  this->template get<TimeInfectedCritical<FP>>()[i] = tol_times;
793  corrected = true;
794  }
795 
796  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
797  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
798  log_warning("Constraint check: Parameter TransmissionProbabilityOnContact changed from {} to {} ",
799  this->template get<TransmissionProbabilityOnContact<FP>>()[i], 0.0);
800  this->template get<TransmissionProbabilityOnContact<FP>>()[i] = 0.0;
801  corrected = true;
802  }
803 
804  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
805  log_warning("Constraint check: Parameter RelativeTransmissionNoSymptoms changed from {} to {} ",
806  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i], 0);
807  this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] = 0;
808  corrected = true;
809  }
810 
811  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
812  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
813  log_warning("Constraint check: Parameter RecoveredPerInfectedNoSymptoms changed from {} to {} ",
814  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i], 0);
815  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] = 0;
816  corrected = true;
817  }
818 
819  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
820  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
821  log_warning("Constraint check: Parameter RiskOfInfectionFromSymptomatic changed from {} to {}",
822  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i], 0);
823  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] = 0;
824  corrected = true;
825  }
826 
827  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
828  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
829  log_warning("Constraint check: Parameter SeverePerInfectedSymptoms changed from {} to {}",
830  this->template get<SeverePerInfectedSymptoms<FP>>()[i], 0);
831  this->template get<SeverePerInfectedSymptoms<FP>>()[i] = 0;
832  corrected = true;
833  }
834 
835  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
836  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
837  log_warning("Constraint check: Parameter CriticalPerSevere changed from {} to {}",
838  this->template get<CriticalPerSevere<FP>>()[i], 0);
839  this->template get<CriticalPerSevere<FP>>()[i] = 0;
840  corrected = true;
841  }
842 
843  if (this->template get<DeathsPerSevere<FP>>()[i] < 0.0 ||
844  this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
845  log_warning("Constraint check: Parameter DeathsPerSevere changed from {} to {}",
846  this->template get<DeathsPerSevere<FP>>()[i], 0);
847  this->template get<DeathsPerSevere<FP>>()[i] = 0;
848  corrected = true;
849  }
850 
851  if (this->template get<CriticalPerSevere<FP>>()[i] + this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
852  log_warning("Constraint check: CriticalPerSevere + DeathsPerSevere exceed 1.0 for age group {}. "
853  "DeathsPerSevere changed from {} to 0.",
854  static_cast<size_t>(i), this->template get<DeathsPerSevere<FP>>()[i]);
855  this->template get<DeathsPerSevere<FP>>()[i] = 0;
856  corrected = true;
857  }
858 
859  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
860  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
861  log_warning("Constraint check: Parameter DeathsPerCritical changed from {} to {}",
862  this->template get<DeathsPerCritical<FP>>()[i], 0);
863  this->template get<DeathsPerCritical<FP>>()[i] = 0;
864  corrected = true;
865  }
866 
867  if (this->template get<DaysUntilEffectivePartialImmunity<FP>>()[i] < 0.0) {
868  log_warning("Constraint check: Parameter DaysUntilEffectivePartialImmunity changed from {} to {}",
869  this->template get<DaysUntilEffectivePartialImmunity<FP>>()[i], 0);
870  this->template get<DaysUntilEffectivePartialImmunity<FP>>()[i] = 0;
871  corrected = true;
872  }
873  if (this->template get<DaysUntilEffectiveImprovedImmunity<FP>>()[i] < 0.0) {
874  log_warning("Constraint check: Parameter DaysUntilEffectiveImprovedImmunity changed from {} to {}",
875  this->template get<DaysUntilEffectiveImprovedImmunity<FP>>()[i], 0);
876  this->template get<DaysUntilEffectiveImprovedImmunity<FP>>()[i] = 0;
877  corrected = true;
878  }
879 
880  if (this->template get<ReducExposedPartialImmunity<FP>>()[i] <= 0.0 ||
881  this->template get<ReducExposedPartialImmunity<FP>>()[i] > 1.0) {
882  log_warning("Constraint check: Parameter ReducExposedPartialImmunity changed from {} to {}",
883  this->template get<ReducExposedPartialImmunity<FP>>()[i], 1);
884  this->template get<ReducExposedPartialImmunity<FP>>()[i] = 1;
885  corrected = true;
886  }
887  if (this->template get<ReducExposedImprovedImmunity<FP>>()[i] <= 0.0 ||
888  this->template get<ReducExposedImprovedImmunity<FP>>()[i] > 1.0) {
889  log_warning("Constraint check: Parameter ReducExposedImprovedImmunity changed from {} to {}",
890  this->template get<ReducExposedImprovedImmunity<FP>>()[i], 1);
891  this->template get<ReducExposedImprovedImmunity<FP>>()[i] = 1;
892  corrected = true;
893  }
894  if (this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] <= 0.0 ||
895  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] > 1.0) {
896  log_warning("Constraint check: Parameter ReducInfectedSymptomsPartialImmunity changed from {} to {}",
897  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i], 1);
898  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] = 1;
899  corrected = true;
900  }
901  if (this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] <= 0.0 ||
902  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] > 1.0) {
903  log_warning("Constraint check: Parameter ReducInfectedSymptomsImprovedImmunity changed from {} to {}",
904  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i], 1.0);
905  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] = 1.0;
906  corrected = true;
907  }
908  if (this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] <= 0.0 ||
909  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] > 1.0) {
910  log_warning("Constraint check: Parameter ReducInfectedSevereCriticalDeadPartialImmunity changed from "
911  "{} to {}",
912  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i], 1.0);
913  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] = 1.0;
914  corrected = true;
915  }
916  if (this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] <= 0.0 ||
917  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] > 1.0) {
918  log_warning("Constraint check: Parameter ReducInfectedSevereCriticalDeadImprovedImmunity changed from "
919  "{} to {}",
920  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i], 1.0);
921  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] = 1.0;
922  corrected = true;
923  }
924  if (this->template get<ReducTimeInfectedMild<FP>>()[i] <= 0.0 ||
925  this->template get<ReducTimeInfectedMild<FP>>()[i] > 1.0) {
926  log_warning("Constraint check: Parameter ReducTimeInfectedMild changed from {} to {}",
927  this->template get<ReducTimeInfectedMild<FP>>()[i], 1.0);
928  this->template get<ReducTimeInfectedMild<FP>>()[i] = 1.0;
929  corrected = true;
930  }
931  if (this->template get<InfectiousnessNewVariant<FP>>()[i] < 0.0) {
932  log_warning("Constraint check: Parameter InfectiousnessNewVariant changed from {} to {}",
933  this->template get<InfectiousnessNewVariant<FP>>()[i], 1.0);
934  this->template get<InfectiousnessNewVariant<FP>>()[i] = 1.0;
935  corrected = true;
936  }
937  if (this->template get<VaccinationGap<FP>>()[i] < 0.0) {
938  log_warning("Constraint check: Parameter VaccinationGap changed from {} to {}",
939  this->template get<VaccinationGap<FP>>()[i], 0);
940  this->template get<VaccinationGap<FP>>()[i] = 0;
941  corrected = true;
942  }
943  }
944  return corrected;
945  }
946 
952  bool check_constraints() const
953  {
954  const FP tol_times = 1e-1; // accepted tolerance for compartment stays
955  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
956  log_error("Constraint check: Parameter Seasonality smaller {} or larger {}", 0, 0.5);
957  return true;
958  }
959 
960  if (this->template get<ICUCapacity<FP>>() < 0.0) {
961  log_error("Constraint check: Parameter ICUCapacity smaller {}", 0);
962  return true;
963  }
964 
965  if (this->template get<TestAndTraceCapacity<FP>>() < 0.0) {
966  log_error("Constraint check: Parameter TestAndTraceCapacity smaller {}", 0);
967  return true;
968  }
969 
970  if (this->template get<TestAndTraceCapacityMaxRiskSymptoms<FP>>() < 0.0) {
971  log_error("Constraint check: Parameter TestAndTraceCapacityMaxRiskSymptoms smaller {}", 0);
972  return true;
973  }
974 
975  if (this->template get<TestAndTraceCapacityMaxRiskNoSymptoms<FP>>() < 0.0) {
976  log_error("Constraint check: Parameter TestAndTraceCapacityMaxRiskNoSymptoms smaller {}", 0);
977  return true;
978  }
979 
980  for (auto i = AgeGroup(0); i < AgeGroup(m_num_groups); ++i) {
981 
982  if (this->template get<TimeExposed<FP>>()[i] < tol_times) {
983  log_error("Constraint check: Parameter TimeExposed {} smaller {}. Please "
984  "note that unreasonably small compartment stays lead to massively increased run time. "
985  "Consider to cancel and reset parameters.",
986  this->template get<TimeExposed<FP>>()[i], tol_times);
987  return true;
988  }
989 
990  if (this->template get<TimeInfectedNoSymptoms<FP>>()[i] < tol_times) {
991  log_error("Constraint check: Parameter TimeInfectedNoSymptoms {} smaller {}. Please "
992  "note that unreasonably small compartment stays lead to massively increased run time. "
993  "Consider to cancel and reset parameters.",
994  this->template get<TimeInfectedNoSymptoms<FP>>()[i], tol_times);
995  return true;
996  }
997 
998  if (this->template get<TimeInfectedSymptoms<FP>>()[i] < tol_times) {
999  log_error("Constraint check: Parameter TimeInfectedSymptoms {} smaller {}. Please "
1000  "note that unreasonably small compartment stays lead to massively increased run time. "
1001  "Consider to cancel and reset parameters.",
1002  this->template get<TimeInfectedSymptoms<FP>>()[i], tol_times);
1003  return true;
1004  }
1005 
1006  if (this->template get<TimeInfectedSevere<FP>>()[i] < tol_times) {
1007  log_error("Constraint check: Parameter TimeInfectedSevere {} smaller {}. Please "
1008  "note that unreasonably small compartment stays lead to massively increased run time. "
1009  "Consider to cancel and reset parameters.",
1010  this->template get<TimeInfectedSevere<FP>>()[i], tol_times);
1011  return true;
1012  }
1013 
1014  if (this->template get<TimeInfectedCritical<FP>>()[i] < tol_times) {
1015  log_error("Constraint check: Parameter TimeInfectedCritical {} smaller {}. Please "
1016  "note that unreasonably small compartment stays lead to massively increased run time. "
1017  "Consider to cancel and reset parameters.",
1018  this->template get<TimeInfectedCritical<FP>>()[i], tol_times);
1019  return true;
1020  }
1021 
1022  if (this->template get<TransmissionProbabilityOnContact<FP>>()[i] < 0.0 ||
1023  this->template get<TransmissionProbabilityOnContact<FP>>()[i] > 1.0) {
1024  log_error("Constraint check: Parameter TransmissionProbabilityOnContact smaller {} or larger {}", 0, 1);
1025  return true;
1026  }
1027 
1028  if (this->template get<RelativeTransmissionNoSymptoms<FP>>()[i] < 0.0) {
1029  log_error("Constraint check: Parameter RelativeTransmissionNoSymptoms smaller {}", 0);
1030  return true;
1031  }
1032 
1033  if (this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] < 0.0 ||
1034  this->template get<RecoveredPerInfectedNoSymptoms<FP>>()[i] > 1.0) {
1035  log_error("Constraint check: Parameter RecoveredPerInfectedNoSymptoms smaller {} or larger {}", 0, 1);
1036  return true;
1037  }
1038 
1039  if (this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] < 0.0 ||
1040  this->template get<RiskOfInfectionFromSymptomatic<FP>>()[i] > 1.0) {
1041  log_error("Constraint check: Parameter RiskOfInfectionFromSymptomatic smaller {} or larger {}", 0, 1);
1042  return true;
1043  }
1044 
1045  if (this->template get<SeverePerInfectedSymptoms<FP>>()[i] < 0.0 ||
1046  this->template get<SeverePerInfectedSymptoms<FP>>()[i] > 1.0) {
1047  log_error("Constraint check: Parameter SeverePerInfectedSymptoms smaller {} or larger {}", 0, 1);
1048  return true;
1049  }
1050 
1051  if (this->template get<CriticalPerSevere<FP>>()[i] < 0.0 ||
1052  this->template get<CriticalPerSevere<FP>>()[i] > 1.0) {
1053  log_error("Constraint check: Parameter CriticalPerSevere smaller {} or larger {}", 0, 1);
1054  return true;
1055  }
1056 
1057  if (this->template get<DeathsPerSevere<FP>>()[i] < 0.0 ||
1058  this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
1059  log_error("Constraint check: Parameter DeathsPerSevere smaller {} or larger {}", 0, 1);
1060  return true;
1061  }
1062 
1063  if (this->template get<CriticalPerSevere<FP>>()[i] + this->template get<DeathsPerSevere<FP>>()[i] > 1.0) {
1064  log_error("Constraint check: CriticalPerSevere + DeathsPerSevere exceed 1.0 for age group {}.",
1065  static_cast<size_t>(i));
1066  return true;
1067  }
1068 
1069  if (this->template get<DeathsPerCritical<FP>>()[i] < 0.0 ||
1070  this->template get<DeathsPerCritical<FP>>()[i] > 1.0) {
1071  log_error("Constraint check: Parameter DeathsPerCritical smaller {} or larger {}", 0, 1);
1072  return true;
1073  }
1074 
1075  if (this->template get<VaccinationGap<FP>>()[i] < 1) {
1076  log_error("Constraint check: Parameter VaccinationGap smaller {}", 1);
1077  return true;
1078  }
1079 
1080  if (this->template get<DaysUntilEffectivePartialImmunity<FP>>()[i] < 0.0) {
1081  log_error("Constraint check: Parameter DaysUntilEffectivePartialImmunity smaller {}", 0);
1082  return true;
1083  }
1084  if (this->template get<DaysUntilEffectiveImprovedImmunity<FP>>()[i] < 0.0) {
1085  log_error("Constraint check: Parameter DaysUntilEffectiveImprovedImmunity smaller {}", 0);
1086  return true;
1087  }
1088 
1089  if (this->template get<ReducExposedPartialImmunity<FP>>()[i] <= 0.0 ||
1090  this->template get<ReducExposedPartialImmunity<FP>>()[i] > 1.0) {
1091  log_error("Constraint check: Parameter ReducExposedPartialImmunity smaller {} or larger {}", 0, 1);
1092  return true;
1093  }
1094  if (this->template get<ReducExposedImprovedImmunity<FP>>()[i] <= 0.0 ||
1095  this->template get<ReducExposedImprovedImmunity<FP>>()[i] > 1.0) {
1096  log_error("Constraint check: Parameter ReducExposedImprovedImmunity smaller {} or larger {}", 0, 1);
1097  return true;
1098  }
1099  if (this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] <= 0.0 ||
1100  this->template get<ReducInfectedSymptomsPartialImmunity<FP>>()[i] > 1.0) {
1101  log_error("Constraint check: Parameter ReducInfectedSymptomsPartialImmunity smaller {} or larger {}", 0,
1102  1);
1103  return true;
1104  }
1105  if (this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] <= 0.0 ||
1106  this->template get<ReducInfectedSymptomsImprovedImmunity<FP>>()[i] > 1.0) {
1107  log_error("Constraint check: Parameter ReducInfectedSymptomsImprovedImmunity smaller {} or larger {}",
1108  0, 1);
1109  return true;
1110  }
1111  if (this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] <= 0.0 ||
1112  this->template get<ReducInfectedSevereCriticalDeadPartialImmunity<FP>>()[i] > 1.0) {
1113  log_error("Constraint check: Parameter ReducInfectedSevereCriticalDeadPartialImmunity smaller {} or "
1114  "larger {}",
1115  0, 1);
1116  return true;
1117  }
1118  if (this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] <= 0.0 ||
1119  this->template get<ReducInfectedSevereCriticalDeadImprovedImmunity<FP>>()[i] > 1.0) {
1120  log_error("Constraint check: Parameter ReducInfectedSevereCriticalDeadImprovedImmunity smaller {} or "
1121  "larger {}",
1122  0, 1);
1123  return true;
1124  }
1125  if (this->template get<ReducTimeInfectedMild<FP>>()[i] <= 0.0 ||
1126  this->template get<ReducTimeInfectedMild<FP>>()[i] > 1.0) {
1127  log_error("Constraint check: Parameter ReducTimeInfectedMild smaller {} or larger {}", 0, 1);
1128  return true;
1129  }
1130  if (this->template get<InfectiousnessNewVariant<FP>>()[i] < 0.0) {
1131  log_error("Constraint check: Parameter InfectiousnessNewVariant smaller {}", 0);
1132  return true;
1133  }
1134  }
1135  return false;
1136  }
1137 
1138 private:
1140  : ParametersBase<FP>(std::move(base))
1141  , m_num_groups(this->template get<ContactPatterns<FP>>().get_cont_freq_mat().get_num_groups())
1142  {
1143  }
1144 
1145 public:
1150  template <class IOContext>
1151  static IOResult<Parameters> deserialize(IOContext& io)
1152  {
1153  BOOST_OUTCOME_TRY(auto&& base, ParametersBase<FP>::deserialize(io));
1154  return success(Parameters(std::move(base)));
1155  }
1156 
1157 private:
1162 };
1163 
1164 } // namespace osecirvvs
1165 } // namespace mio
1166 
1167 #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:37
a set of parameters defined at compile time
Definition: parameter_set.h:205
const ParameterTagTraits< Tag >::Type & get() const
get value of a parameter
Definition: parameter_set.h:262
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:646
Parameters(AgeGroup num_agegroups)
Definition: ode_secirvvs/parameters.h:648
FP & get_start_commuter_detection()
Time in simulation before which no infected commuters are detected.
Definition: ode_secirvvs/parameters.h:674
bool apply_constraints()
Checks whether all Parameters satisfy their corresponding constraints and applies them,...
Definition: ode_secirvvs/parameters.h:710
FP m_commuter_nondetection
Definition: ode_secirvvs/parameters.h:1159
FP m_end_commuter_detection
Definition: ode_secirvvs/parameters.h:1161
FP & get_end_commuter_detection()
Time in simulation after which no infected commuters are detected.
Definition: ode_secirvvs/parameters.h:687
bool check_constraints() const
Checks whether all Parameters satisfy their corresponding constraints and logs an error if constraint...
Definition: ode_secirvvs/parameters.h:952
Parameters(ParametersBase< FP > &&base)
Definition: ode_secirvvs/parameters.h:1139
FP get_start_commuter_detection() const
Definition: ode_secirvvs/parameters.h:679
FP get_commuter_nondetection() const
Definition: ode_secirvvs/parameters.h:666
AgeGroup get_num_groups() const
Definition: ode_secirvvs/parameters.h:654
FP & get_commuter_nondetection()
Percentage of infected commuters that are not detected.
Definition: ode_secirvvs/parameters.h:662
static IOResult< Parameters > deserialize(IOContext &io)
deserialize an object of this class.
Definition: ode_secirvvs/parameters.h:1151
AgeGroup m_num_groups
Definition: ode_secirvvs/parameters.h:1158
FP m_start_commuter_detection
Definition: ode_secirvvs/parameters.h:1160
FP get_end_commuter_detection() const
Definition: ode_secirvvs/parameters.h:692
static min_max_return_type< ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 >, ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > >::type max(const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &a, const ad::internal::active_type< AD_TAPE_REAL, DATA_HANDLER_1 > &b)
Definition: ad.hpp:2596
int size(Comm comm)
Return the size of the given communicator.
Definition: miompi.cpp:75
A collection of classes to simplify handling of matrix shapes in meta programming.
Definition: models/abm/analyze_result.h:30
auto i
Definition: io.h:810
void log_warning(spdlog::string_view_t fmt, const Args &... args)
Definition: logging.h:126
auto success()
Create an object that is implicitly convertible to a succesful IOResult<void>.
Definition: io.h:360
void log_error(spdlog::string_view_t fmt, const Args &... args)
Definition: logging.h:114
boost::outcome_v2::unchecked< T, IOStatus > IOResult
Value-or-error type for operations that return a value but can fail.
Definition: io.h:354
Definition: io.h:95
Typesafe index representing an age group.
Definition: age_group.h:40
the contact patterns within the society are modelled using an UncertainContactMatrix
Definition: ode_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:372
static std::string name()
Definition: ode_secirvvs/parameters.h:378
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:373
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:374
Total number of full 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
Total number of first vaccinations up to the given day.
Definition: ode_secirvvs/parameters.h:470
static std::string name()
Definition: ode_secirvvs/parameters.h:476
CustomIndexArray< FP, AgeGroup, SimulationDay > Type
Definition: ode_secirvvs/parameters.h:471
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:472
Time in days until second vaccine dose takes full effect.
Definition: ode_secirvvs/parameters.h:454
static std::string name()
Definition: ode_secirvvs/parameters.h:460
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:456
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:455
Time in days until first vaccine dose takes full effect.
Definition: ode_secirvvs/parameters.h:438
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:439
static std::string name()
Definition: ode_secirvvs/parameters.h:444
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:440
the percentage of dead patients per ICU patients in the SECIR model
Definition: ode_secirvvs/parameters.h:406
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:408
static std::string name()
Definition: ode_secirvvs/parameters.h:412
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:407
the percentage of dead patients per hospitalized patients.
Definition: ode_secirvvs/parameters.h:390
static std::string name()
Definition: ode_secirvvs/parameters.h:396
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:392
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:391
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:615
CustomIndexArray< FP, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:616
static std::string name()
Definition: ode_secirvvs/parameters.h:621
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:617
risk of infection from symptomatic cases increases as test and trace capacity is exceeded.
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 percentage of asymptomatic cases in the SECIR model
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
Factor to reduce infection risk for persons with improved immunity.
Definition: ode_secirvvs/parameters.h:518
static std::string name()
Definition: ode_secirvvs/parameters.h:524
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:519
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:520
Factor to reduce infection risk for persons with partial immunity.
Definition: ode_secirvvs/parameters.h:502
static std::string name()
Definition: ode_secirvvs/parameters.h:508
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:504
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:503
Factor to reduce risk of hospitalization for persons with improved immunity.
Definition: ode_secirvvs/parameters.h:583
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:584
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:585
static std::string name()
Definition: ode_secirvvs/parameters.h:589
Factor to reduce risk of hospitalization for persons with partial immunity.
Definition: ode_secirvvs/parameters.h:567
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:569
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:568
static std::string name()
Definition: ode_secirvvs/parameters.h:573
Factor to reduce risk of developing symptoms for persons with improved immunity.
Definition: ode_secirvvs/parameters.h:550
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:552
static std::string name()
Definition: ode_secirvvs/parameters.h:556
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:551
Factor to reduce risk of developing symptoms for persons with partial immunity.
Definition: ode_secirvvs/parameters.h:534
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:535
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:536
static std::string name()
Definition: ode_secirvvs/parameters.h:540
Factor to reduce infectious time of persons with partial or improved immunity.
Definition: ode_secirvvs/parameters.h:599
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:601
static std::string name()
Definition: ode_secirvvs/parameters.h:605
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:600
the relative InfectedNoSymptoms infectability
Definition: ode_secirvvs/parameters.h:292
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:294
static std::string name()
Definition: ode_secirvvs/parameters.h:298
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:293
the risk of infection from symptomatic cases in the SECIR model
Definition: ode_secirvvs/parameters.h:324
static std::string name()
Definition: ode_secirvvs/parameters.h:330
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:325
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:326
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:356
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:357
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:358
static std::string name()
Definition: ode_secirvvs/parameters.h:362
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:192
static std::string name()
Definition: ode_secirvvs/parameters.h:198
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:193
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:194
the time people are treated by ICU before returning home in the SECIR model in day unit
Definition: ode_secirvvs/parameters.h:260
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:261
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:262
static std::string name()
Definition: ode_secirvvs/parameters.h:266
the (mean) time in day unit for asymptomatic cases that are infected but have not yet developed sympt...
Definition: ode_secirvvs/parameters.h:209
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:210
static std::string name()
Definition: ode_secirvvs/parameters.h:215
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:211
the time people are 'simply' hospitalized before returning home in the SECIR model in day unit
Definition: ode_secirvvs/parameters.h:243
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:244
static std::string name()
Definition: ode_secirvvs/parameters.h:249
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:245
the infectious time for symptomatic cases that are infected but who do not need to be hospitalized in...
Definition: ode_secirvvs/parameters.h:226
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:228
static std::string name()
Definition: ode_secirvvs/parameters.h:232
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:227
probability of getting infected from a contact
Definition: ode_secirvvs/parameters.h:276
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:278
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:277
static std::string name()
Definition: ode_secirvvs/parameters.h:282
Time in days between first and second vaccine dose.
Definition: ode_secirvvs/parameters.h:422
CustomIndexArray< UncertainValue< FP >, AgeGroup > Type
Definition: ode_secirvvs/parameters.h:423
static Type get_default(AgeGroup size)
Definition: ode_secirvvs/parameters.h:424
static std::string name()
Definition: ode_secirvvs/parameters.h:428