parameters.h Source File

CPP API: parameters.h Source File
lct_secir_2_diseases/parameters.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2020-2026 MEmilio
3 *
4 * Authors: Annika Jungklaus, Lena Ploetzke
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 
21 #ifndef LCT_SECIR_2_DISEASES_PARAMS_H
22 #define LCT_SECIR_2_DISEASES_PARAMS_H
23 
24 #include "memilio/config.h"
25 #include "memilio/math/eigen.h"
27 #include "memilio/utils/logging.h"
30 
31 namespace mio
32 {
33 namespace lsecir2d
34 {
35 
36 /*********************************************************
37 * Define Parameters of the LCT-SECIHURD-2-DISEASES model *
38 **********************************************************/
39 
40 // We define all parameters for diseases a and b separately as they can differ between the two different diseases.
41 // Each parameter is a vector with length equal to the number of groups.
42 // The contact patterns are given by a matrix with dimension (number of groups)*(number of groups)
43 // The default number of groups is 1.
44 
48 template <typename FP>
49 struct TimeExposed_a {
50  using Type = Eigen::VectorX<UncertainValue<FP>>;
51  static Type get_default(size_t size)
52  {
53  return Type::Constant(size, 1, 1.);
54  }
55  static std::string name()
56  {
57  return "TimeExposed_a";
58  }
59 };
60 
65 template <typename FP>
67  using Type = Eigen::VectorX<UncertainValue<FP>>;
68  static Type get_default(size_t size)
69  {
70  return Type::Constant(size, 1, 1.);
71  }
72  static std::string name()
73  {
74  return "TimeInfectedNoSymptoms_a";
75  }
76 };
77 
82 template <typename FP>
84  using Type = Eigen::VectorX<UncertainValue<FP>>;
85  static Type get_default(size_t size)
86  {
87  return Type::Constant(size, 1, 1.);
88  }
89  static std::string name()
90  {
91  return "TimeInfectedNoSymptoms_a";
92  }
93 };
94 
98 template <typename FP>
100  using Type = Eigen::VectorX<UncertainValue<FP>>;
101  static Type get_default(size_t size)
102  {
103  return Type::Constant(size, 1, 1.);
104  }
105  static std::string name()
106  {
107  return "TimeInfectedSevere_a";
108  }
109 };
110 
114 template <typename FP>
116  using Type = Eigen::VectorX<UncertainValue<FP>>;
117  static Type get_default(size_t size)
118  {
119  return Type::Constant(size, 1, 1.);
120  }
121  static std::string name()
122  {
123  return "TimeInfectedCritical_a";
124  }
125 };
126 
130 template <typename FP>
132  using Type = Eigen::VectorX<UncertainValue<FP>>;
133  static Type get_default(size_t size)
134  {
135  return Type::Constant(size, 1, 1.);
136  }
137  static std::string name()
138  {
139  return "TransmissionProbabilityOnContact_a";
140  }
141 };
142 
146 template <typename FP>
148  using Type = Eigen::VectorX<UncertainValue<FP>>;
149  static Type get_default(size_t size)
150  {
151  return Type::Constant(size, 1, 1.);
152  }
153  static std::string name()
154  {
155  return "TimeExposed_b";
156  }
157 };
158 
163 template <typename FP>
165  using Type = Eigen::VectorX<UncertainValue<FP>>;
166  static Type get_default(size_t size)
167  {
168  return Type::Constant(size, 1, 1.);
169  }
170  static std::string name()
171  {
172  return "TimeInfectedNoSymptoms_b";
173  }
174 };
175 
180 template <typename FP>
182  using Type = Eigen::VectorX<UncertainValue<FP>>;
183  static Type get_default(size_t size)
184  {
185  return Type::Constant(size, 1, 1.);
186  }
187  static std::string name()
188  {
189  return "TimeInfectedNoSymptoms_b";
190  }
191 };
192 
196 template <typename FP>
198  using Type = Eigen::VectorX<UncertainValue<FP>>;
199  static Type get_default(size_t size)
200  {
201  return Type::Constant(size, 1, 1.);
202  }
203  static std::string name()
204  {
205  return "TimeInfectedSevere_b";
206  }
207 };
208 
212 template <typename FP>
214  using Type = Eigen::VectorX<UncertainValue<FP>>;
215  static Type get_default(size_t size)
216  {
217  return Type::Constant(size, 1, 1.);
218  }
219  static std::string name()
220  {
221  return "TimeInfectedCritical_b";
222  }
223 };
224 
228 template <typename FP>
230  using Type = Eigen::VectorX<UncertainValue<FP>>;
231  static Type get_default(size_t size)
232  {
233  return Type::Constant(size, 1, 1.);
234  }
235  static std::string name()
236  {
237  return "TransmissionProbabilityOnContact_b";
238  }
239 };
240 
244 template <typename FP>
247 
248  static Type get_default(size_t size)
249  {
250  mio::ContactMatrixGroup<FP> contact_matrix(1, (Eigen::Index)size);
251  contact_matrix[0] =
252  mio::ContactMatrix<FP>(Eigen::MatrixX<FP>::Constant((Eigen::Index)size, (Eigen::Index)size, 10.));
253  return Type(contact_matrix);
254  }
255  static std::string name()
256  {
257  return "ContactPatterns";
258  }
259 };
260 
264 template <typename FP>
266  using Type = Eigen::VectorX<UncertainValue<FP>>;
267  static Type get_default(size_t size)
268  {
269  return Type::Constant(size, 1, 1.);
270  }
271  static std::string name()
272  {
273  return "RelativeTransmissionNoSymptoms_a";
274  }
275 };
276 
280 template <typename FP>
282  using Type = Eigen::VectorX<UncertainValue<FP>>;
283  static Type get_default(size_t size)
284  {
285  return Type::Constant(size, 1, 1.);
286  }
287  static std::string name()
288  {
289  return "RiskOfInfectionFromSymptomatic_a";
290  }
291 };
292 
296 template <typename FP>
298  using Type = Eigen::VectorX<UncertainValue<FP>>;
299  static Type get_default(size_t size)
300  {
301  return Type::Constant(size, 1, 1.);
302  }
303  static std::string name()
304  {
305  return "RelativeTransmissionNoSymptoms_b";
306  }
307 };
308 
312 template <typename FP>
314  using Type = Eigen::VectorX<UncertainValue<FP>>;
315  static Type get_default(size_t size)
316  {
317  return Type::Constant(size, 1, 1.);
318  }
319  static std::string name()
320  {
321  return "RiskOfInfectionFromSymptomatic_b";
322  }
323 };
324 
328 template <typename FP>
330  using Type = Eigen::VectorX<UncertainValue<FP>>;
331  static Type get_default(size_t size)
332  {
333  return Type::Constant(size, 1, 0.5);
334  }
335  static std::string name()
336  {
337  return "RecoveredPerInfectedNoSymptoms_a";
338  }
339 };
340 
344 template <typename FP>
346  using Type = Eigen::VectorX<UncertainValue<FP>>;
347  static Type get_default(size_t size)
348  {
349  return Type::Constant(size, 1, 0.5);
350  }
351  static std::string name()
352  {
353  return "SeverePerInfectedSymptoms_a";
354  }
355 };
356 
360 template <typename FP>
362  using Type = Eigen::VectorX<UncertainValue<FP>>;
363  static Type get_default(size_t size)
364  {
365  return Type::Constant(size, 1, 0.5);
366  }
367  static std::string name()
368  {
369  return "CriticalPerSevere_a";
370  }
371 };
372 
376 template <typename FP>
378  using Type = Eigen::VectorX<UncertainValue<FP>>;
379  static Type get_default(size_t size)
380  {
381  return Type::Constant(size, 1, 0.);
382  }
383  static std::string name()
384  {
385  return "DeathsPerSevere_a";
386  }
387 };
388 
392 template <typename FP>
394  using Type = Eigen::VectorX<UncertainValue<FP>>;
395  static Type get_default(size_t size)
396  {
397  return Type::Constant(size, 1, 0.1);
398  }
399  static std::string name()
400  {
401  return "DeathsPerCritical_a";
402  }
403 };
404 
408 template <typename FP>
410  using Type = Eigen::VectorX<UncertainValue<FP>>;
411  static Type get_default(size_t size)
412  {
413  return Type::Constant(size, 1, 0.5);
414  }
415  static std::string name()
416  {
417  return "RecoveredPerInfectedNoSymptoms_b";
418  }
419 };
420 
424 template <typename FP>
426  using Type = Eigen::VectorX<UncertainValue<FP>>;
427  static Type get_default(size_t size)
428  {
429  return Type::Constant(size, 1, 0.5);
430  }
431  static std::string name()
432  {
433  return "SeverePerInfectedSymptoms_b";
434  }
435 };
436 
440 template <typename FP>
442  using Type = Eigen::VectorX<UncertainValue<FP>>;
443  static Type get_default(size_t size)
444  {
445  return Type::Constant(size, 1, 0.5);
446  }
447  static std::string name()
448  {
449  return "CriticalPerSevere_b";
450  }
451 };
452 
456 template <typename FP>
458  using Type = Eigen::VectorX<UncertainValue<FP>>;
459  static Type get_default(size_t size)
460  {
461  return Type::Constant(size, 1, 0.);
462  }
463  static std::string name()
464  {
465  return "DeathsPerSevere_b";
466  }
467 };
468 
472 template <typename FP>
474  using Type = Eigen::VectorX<UncertainValue<FP>>;
475  static Type get_default(size_t size)
476  {
477  return Type::Constant(size, 1, 0.1);
478  }
479  static std::string name()
480  {
481  return "DeathsPerCritical_b";
482  }
483 };
484 
491 template <typename FP>
492 struct StartDay {
493  using Type = FP;
494  static Type get_default(size_t)
495  {
496  return 0.;
497  }
498  static std::string name()
499  {
500  return "StartDay";
501  }
502 };
503 
509 template <typename FP>
510 struct Seasonality {
511  using Type = FP;
512  static Type get_default(size_t)
513  {
514  return 0.;
515  }
516  static std::string name()
517  {
518  return "Seasonality";
519  }
520 };
521 
522 template <typename FP>
532 
536 template <typename FP>
537 class Parameters : public ParametersBase<FP>
538 {
539 public:
544  Parameters(size_t num_groups)
545  : ParametersBase<FP>(num_groups)
546  , m_num_groups{num_groups}
547  {
548  }
549 
550  size_t get_num_groups() const
551  {
552  return m_num_groups;
553  }
554 
559  bool check_constraints() const
560  {
561  for (size_t i = 0; i < m_num_groups; ++i) {
562  if (this->template get<Seasonality<FP>>() < 0.0 || this->template get<Seasonality<FP>>() > 0.5) {
563  log_warning("Constraint check: Parameter Seasonality should lie between {:0.4f} and {:.4f}", 0.0, 0.5);
564  return true;
565  }
566 
567  if (this->template get<TimeExposed_a<FP>>()[i] < 1.0) {
568  log_error("Constraint check: Parameter TimeExposed_a is smaller than {:.4f}", 1.0);
569  return true;
570  }
571 
572  if (this->template get<TimeExposed_b<FP>>()[i] < 1.0) {
573  log_error("Constraint check: Parameter TimeExposed_b is smaller than {:.4f}", 1.0);
574  return true;
575  }
576 
577  if (this->template get<TimeInfectedNoSymptoms_a<FP>>()[i] < 1.0) {
578  log_error("Constraint check: Parameter TimeInfectedNoSymptoms_a is smaller than {:.4f}", 1.0);
579  return true;
580  }
581 
582  if (this->template get<TimeInfectedNoSymptoms_b<FP>>()[i] < 1.0) {
583  log_error("Constraint check: Parameter TimeInfectedNoSymptoms_b is smaller than {:.4f}", 1.0);
584  return true;
585  }
586 
587  if (this->template get<TimeInfectedSymptoms_a<FP>>()[i] < 1.0) {
588  log_error("Constraint check: Parameter TimeInfectedSymptoms_a is smaller than {:.4f}", 1.0);
589  return true;
590  }
591 
592  if (this->template get<TimeInfectedSymptoms_b<FP>>()[i] < 1.0) {
593  log_error("Constraint check: Parameter TimeInfectedSymptoms_b is smaller than {:.4f}", 1.0);
594  return true;
595  }
596 
597  if (this->template get<TimeInfectedSevere_a<FP>>()[i] < 1.0) {
598  log_error("Constraint check: Parameter TimeInfectedSevere_a is smaller than {:.4f}", 1.0);
599  return true;
600  }
601 
602  if (this->template get<TimeInfectedSevere_b<FP>>()[i] < 1.0) {
603  log_error("Constraint check: Parameter TimeInfectedSevere_b is smaller than {:.4f}", 1.0);
604  return true;
605  }
606 
607  if (this->template get<TimeInfectedCritical_a<FP>>()[i] < 1.0) {
608  log_error("Constraint check: Parameter TimeInfectedCritical_a is smaller than {:.4f}", 1.0);
609  return true;
610  }
611 
612  if (this->template get<TimeInfectedCritical_b<FP>>()[i] < 1.0) {
613  log_error("Constraint check: Parameter TimeInfectedCritical_b is smaller than {:.4f}", 1.0);
614  return true;
615  }
616 
617  if (this->template get<TransmissionProbabilityOnContact_a<FP>>()[i] < 0.0 ||
618  this->template get<TransmissionProbabilityOnContact_a<FP>>()[i] > 1.0) {
619  log_error("Constraint check: Parameter TransmissionProbabilityOnContact_a smaller {:d} or larger {:d}",
620  0, 1);
621  return true;
622  }
623 
624  if (this->template get<TransmissionProbabilityOnContact_b<FP>>()[i] < 0.0 ||
625  this->template get<TransmissionProbabilityOnContact_b<FP>>()[i] > 1.0) {
626  log_error("Constraint check: Parameter TransmissionProbabilityOnContact_b smaller {:d} or larger {:d}",
627  0, 1);
628  return true;
629  }
630 
631  if (this->template get<RelativeTransmissionNoSymptoms_a<FP>>()[i] < 0.0 ||
632  this->template get<RelativeTransmissionNoSymptoms_a<FP>>()[i] > 1.0) {
633  log_error("Constraint check: Parameter RelativeTransmissionNoSymptoms_a smaller {:d} or larger {:d}", 0,
634  1);
635  return true;
636  }
637 
638  if (this->template get<RelativeTransmissionNoSymptoms_b<FP>>()[i] < 0.0 ||
639  this->template get<RelativeTransmissionNoSymptoms_b<FP>>()[i] > 1.0) {
640  log_error("Constraint check: Parameter RelativeTransmissionNoSymptoms_b smaller {:d} or larger {:d}", 0,
641  1);
642  return true;
643  }
644 
645  if (this->template get<RiskOfInfectionFromSymptomatic_a<FP>>()[i] < 0.0 ||
646  this->template get<RiskOfInfectionFromSymptomatic_a<FP>>()[i] > 1.0) {
647  log_error("Constraint check: Parameter RiskOfInfectionFromSymptomatic_a smaller {:d} or larger {:d}",
648  0, 1);
649  return true;
650  }
651 
652  if (this->template get<RiskOfInfectionFromSymptomatic_b<FP>>()[i] < 0.0 ||
653  this->template get<RiskOfInfectionFromSymptomatic_b<FP>>()[i] > 1.0) {
654  log_error("Constraint check: Parameter RiskOfInfectionFromSymptomatic_b smaller {:d} or larger {:d}",
655  0, 1);
656  return true;
657  }
658 
659  if (this->template get<RecoveredPerInfectedNoSymptoms_a<FP>>()[i] < 0.0 ||
660  this->template get<RecoveredPerInfectedNoSymptoms_a<FP>>()[i] > 1.0) {
661  log_error("Constraint check: Parameter RecoveredPerInfectedNoSymptoms_a smaller {:d} or larger {:d}", 0,
662  1);
663  return true;
664  }
665 
666  if (this->template get<RecoveredPerInfectedNoSymptoms_b<FP>>()[i] < 0.0 ||
667  this->template get<RecoveredPerInfectedNoSymptoms_b<FP>>()[i] > 1.0) {
668  log_error("Constraint check: Parameter RecoveredPerInfectedNoSymptoms_b smaller {:d} or larger {:d}", 0,
669  1);
670  return true;
671  }
672 
673  if (this->template get<SeverePerInfectedSymptoms_a<FP>>()[i] < 0.0 ||
674  this->template get<SeverePerInfectedSymptoms_a<FP>>()[i] > 1.0) {
675  log_error("Constraint check: Parameter SeverePerInfectedSymptoms_a smaller {:d} or larger {:d}", 0, 1);
676  return true;
677  }
678 
679  if (this->template get<SeverePerInfectedSymptoms_b<FP>>()[i] < 0.0 ||
680  this->template get<SeverePerInfectedSymptoms_b<FP>>()[i] > 1.0) {
681  log_error("Constraint check: Parameter SeverePerInfectedSymptoms_b smaller {:d} or larger {:d}", 0, 1);
682  return true;
683  }
684 
685  if (this->template get<CriticalPerSevere_a<FP>>()[i] < 0.0 ||
686  this->template get<CriticalPerSevere_a<FP>>()[i] > 1.0) {
687  log_error("Constraint check: Parameter CriticalPerSevere_a smaller {:d} or larger {:d}", 0, 1);
688  return true;
689  }
690 
691  if (this->template get<CriticalPerSevere_b<FP>>()[i] < 0.0 ||
692  this->template get<CriticalPerSevere_b<FP>>()[i] > 1.0) {
693  log_error("Constraint check: Parameter CriticalPerSevere_b smaller {:d} or larger {:d}", 0, 1);
694  return true;
695  }
696 
697  if (this->template get<DeathsPerSevere_a<FP>>()[i] < 0.0 ||
698  this->template get<DeathsPerSevere_a<FP>>()[i] > 1.0) {
699  log_error("Constraint check: Parameter DeathsPerSevere_a smaller {:d} or larger {:d}", 0, 1);
700  return true;
701  }
702 
703  if (this->template get<DeathsPerSevere_b<FP>>()[i] < 0.0 ||
704  this->template get<DeathsPerSevere_b<FP>>()[i] > 1.0) {
705  log_error("Constraint check: Parameter DeathsPerSevere_b smaller {:d} or larger {:d}", 0, 1);
706  return true;
707  }
708 
709  if (this->template get<CriticalPerSevere_a<FP>>()[i] + this->template get<DeathsPerSevere_a<FP>>()[i] >
710  1.0) {
711  log_error("Constraint check: CriticalPerSevere_a + DeathsPerSevere_a exceed 1.0 for age group {}.",
712  static_cast<size_t>(i));
713  return true;
714  }
715 
716  if (this->template get<CriticalPerSevere_b<FP>>()[i] + this->template get<DeathsPerSevere_b<FP>>()[i] >
717  1.0) {
718  log_error("Constraint check: CriticalPerSevere_b + DeathsPerSevere_b exceed 1.0 for age group {}.",
719  static_cast<size_t>(i));
720  return true;
721  }
722 
723  if (this->template get<DeathsPerCritical_a<FP>>()[i] < 0.0 ||
724  this->template get<DeathsPerCritical_a<FP>>()[i] > 1.0) {
725  log_error("Constraint check: Parameter DeathsPerCritical_a smaller {:d} or larger {:d}", 0, 1);
726  return true;
727  }
728 
729  if (this->template get<DeathsPerCritical_b<FP>>()[i] < 0.0 ||
730  this->template get<DeathsPerCritical_b<FP>>()[i] > 1.0) {
731  log_error("Constraint check: Parameter DeathsPerCritical_b smaller {:d} or larger {:d}", 0, 1);
732  return true;
733  }
734  }
735 
736  return false;
737  }
738 
739 private:
741  : ParametersBase<FP>(std::move(base))
742  , m_num_groups(this->template get<ContactPatterns<FP>>().get_cont_freq_mat().get_num_groups())
743  {
744  }
745 
746  size_t m_num_groups;
747 
748 public:
753  template <class IOContext>
754  static IOResult<Parameters> deserialize(IOContext& io)
755  {
756  BOOST_OUTCOME_TRY(auto&& base, ParametersBase<FP>::deserialize(io));
757  return success(Parameters(std::move(base)));
758  }
759 };
760 
761 } // namespace lsecir2d
762 } // namespace mio
763 
764 #endif // LCT_SECIR_2_DISEASES_PARAMS_H
represents a collection of contact frequency matrices that whose sum is the total number of contacts.
Definition: contact_matrix.h:536
represents time dependent contact frequencies between groups.
Definition: contact_matrix.h:505
a set of parameters defined at compile time
Definition: parameter_set.h:205
const ParameterTagTraits< Tag >::Type & get() const
get value of a parameter
Definition: parameter_set.h:262
The UncertainContactMatrix class consists of a ContactMatrix with fixed baseline and uncertain Dampin...
Definition: uncertain_matrix.h:43
Parameters of an LCT-SECIR-2-DISEASES model.
Definition: lct_secir_2_diseases/parameters.h:538
Parameters(size_t num_groups)
Constructor.
Definition: lct_secir_2_diseases/parameters.h:544
static IOResult< Parameters > deserialize(IOContext &io)
deserialize an object of this class.
Definition: lct_secir_2_diseases/parameters.h:754
bool check_constraints() const
Checks whether all parameters satisfy their corresponding constraints and throws errors,...
Definition: lct_secir_2_diseases/parameters.h:559
Parameters(ParametersBase< FP > &&base)
Definition: lct_secir_2_diseases/parameters.h:740
size_t get_num_groups() const
Definition: lct_secir_2_diseases/parameters.h:550
size_t m_num_groups
Definition: lct_secir_2_diseases/parameters.h:746
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
The contact patterns within the society are modelled using an UncertainContactMatrix.
Definition: lct_secir_2_diseases/parameters.h:245
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:248
UncertainContactMatrix< FP > Type
Definition: lct_secir_2_diseases/parameters.h:246
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:255
The percentage of ICU patients per hospitalized patients for disease a for each group.
Definition: lct_secir_2_diseases/parameters.h:361
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:367
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:363
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:362
The percentage of ICU patients per hospitalized patients for disease b for each group.
Definition: lct_secir_2_diseases/parameters.h:441
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:447
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:443
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:442
The percentage of dead patients per ICU patients for disease a for each group.
Definition: lct_secir_2_diseases/parameters.h:393
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:395
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:399
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:394
The percentage of dead patients per ICU patients for disease b for each group.
Definition: lct_secir_2_diseases/parameters.h:473
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:475
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:479
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:474
The percentage of dead patients per hospitalized patients for disease a for each group.
Definition: lct_secir_2_diseases/parameters.h:377
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:379
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:378
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:383
The percentage of dead patients per hospitalized patients for disease b for each group.
Definition: lct_secir_2_diseases/parameters.h:457
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:463
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:458
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:459
The percentage of asymptomatic cases for disease a for each group.
Definition: lct_secir_2_diseases/parameters.h:329
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:335
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:331
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:330
The percentage of asymptomatic cases for disease b for each group.
Definition: lct_secir_2_diseases/parameters.h:409
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:410
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:415
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:411
The relative InfectedNoSymptoms infectability for disease a for each group.
Definition: lct_secir_2_diseases/parameters.h:265
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:267
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:266
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:271
The relative InfectedNoSymptoms infectability for disease b for each group.
Definition: lct_secir_2_diseases/parameters.h:297
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:303
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:298
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:299
The risk of infection from symptomatic cases for disease a for each group.
Definition: lct_secir_2_diseases/parameters.h:281
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:287
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:282
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:283
The risk of infection from symptomatic cases for disease b for each group.
Definition: lct_secir_2_diseases/parameters.h:313
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:314
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:315
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:319
The seasonality in the LCT-SECIR-2-DISEASES model.
Definition: lct_secir_2_diseases/parameters.h:510
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:516
static Type get_default(size_t)
Definition: lct_secir_2_diseases/parameters.h:512
FP Type
Definition: lct_secir_2_diseases/parameters.h:511
The percentage of hospitalized patients per infected patients for disease a for each group.
Definition: lct_secir_2_diseases/parameters.h:345
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:351
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:346
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:347
The percentage of hospitalized patients per infected patients for disease b for each group.
Definition: lct_secir_2_diseases/parameters.h:425
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:427
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:431
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:426
The start day in the LCT-SECIR-2-DISEASES model.
Definition: lct_secir_2_diseases/parameters.h:492
static Type get_default(size_t)
Definition: lct_secir_2_diseases/parameters.h:494
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:498
FP Type
Definition: lct_secir_2_diseases/parameters.h:493
Average time spent in the Exposed compartment for disease a in day unit for each group.
Definition: lct_secir_2_diseases/parameters.h:49
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:55
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:51
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:50
Average time spent in the Exposed compartment for disease b in day unit for each group.
Definition: lct_secir_2_diseases/parameters.h:147
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:149
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:148
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:153
Average time treated by ICU before dead or recovering for disease a in day unit for each group.
Definition: lct_secir_2_diseases/parameters.h:115
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:121
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:116
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:117
Average time treated by ICU before dead or recovering for disease b in day unit for each group.
Definition: lct_secir_2_diseases/parameters.h:213
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:214
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:219
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:215
Average time spent in the TimeInfectedNoSymptoms before developing symptoms or recovering for disease...
Definition: lct_secir_2_diseases/parameters.h:66
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:67
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:68
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:72
Average time spent in the TimeInfectedNoSymptoms before developing symptoms or recovering for disease...
Definition: lct_secir_2_diseases/parameters.h:164
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:170
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:165
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:166
Average time being in the Hospital before treated by ICU or recovering for disease a in day unit for ...
Definition: lct_secir_2_diseases/parameters.h:99
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:100
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:105
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:101
Average time being in the Hospital before treated by ICU or recovering for disease b in day unit for ...
Definition: lct_secir_2_diseases/parameters.h:197
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:198
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:199
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:203
Average time spent in the TimeInfectedSymptoms before going to hospital or recovering for disease a i...
Definition: lct_secir_2_diseases/parameters.h:83
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:89
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:84
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:85
Average time spent in the TimeInfectedSymptoms before going to hospital or recovering for disease b i...
Definition: lct_secir_2_diseases/parameters.h:181
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:183
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:187
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:182
Probability of getting infected from a contact for disease a for each group.
Definition: lct_secir_2_diseases/parameters.h:131
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:137
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:132
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:133
Probability of getting infected from a contact for disease b for each group.
Definition: lct_secir_2_diseases/parameters.h:229
static Type get_default(size_t size)
Definition: lct_secir_2_diseases/parameters.h:231
static std::string name()
Definition: lct_secir_2_diseases/parameters.h:235
Eigen::VectorX< UncertainValue< FP > > Type
Definition: lct_secir_2_diseases/parameters.h:230