21 #ifndef ODESEAIR_PARAMETERS_H
22 #define ODESEAIR_PARAMETERS_H
39 template <
typename FP>
48 return "SocialDistancing";
55 template <
typename FP>
71 template <
typename FP>
87 template <
typename FP>
96 return "RecoveryRate";
103 template <
typename FP>
119 template <
typename FP>
128 return "TimeExposed";
135 template <
typename FP>
144 return "RecoveryRateFromAsymptomatic";
151 template <
typename FP>
160 return "TimeRecoveredInv";
164 template <
typename FP>
172 template <
typename FP>
189 log_error(
"Constraint check: Parameter SocialDistancing smaller {}", 0);
193 if (this->
template get<Quarantined<FP>>() < 0.0) {
194 log_error(
"Constraint check: Parameter Quarantined smaller {}", 0);
198 const FP tol_times = 1e-1;
199 if (this->
template get<TimeExposed<FP>>() < tol_times) {
200 log_error(
"Constraint check: Parameter TimeExposed {} smaller {}. Please "
201 "note that unreasonably small compartment stays lead to massively increased run time. "
202 "Consider to cancel and reset parameters.",
203 this->
template get<TimeExposed<FP>>(), tol_times);
207 if (this->
template get<RecoveryRateFromAsymptomatic<FP>>() < 0.0) {
208 log_error(
"Constraint check: Parameter RecoveryRateFromAsymptomatic smaller {}", 0);
212 if (this->
template get<TestingRate<FP>>() < 0.0) {
213 log_error(
"Constraint check: Parameter TestingRate smaller {}", 0);
217 if (this->
template get<RecoveryRate<FP>>() < 0.0) {
218 log_error(
"Constraint check: Parameter RecoveryRate smaller {}", 0);
222 if (this->
template get<DeathRate<FP>>() < 0.0) {
223 log_error(
"Constraint check: Parameter DeathRate smaller {}", 0);
227 if (this->
template get<TimeRecoveredInv<FP>>() < 0.0) {
228 log_error(
"Constraint check: Parameter TimeRecoveredInv smaller {}", 0);
246 template <
class IOContext>
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
Parameters of an SEAIR model.
Definition: ode_seair/parameters.h:174
static IOResult< Parameters > deserialize(IOContext &io)
deserialize an object of this class.
Definition: ode_seair/parameters.h:247
bool check_constraints() const
Checks whether all Parameters satisfy their corresponding constraints and logs an error if constraint...
Definition: ode_seair/parameters.h:186
Parameters(ParametersBase< FP > &&base)
Definition: ode_seair/parameters.h:236
Parameters()
Definition: ode_seair/parameters.h:176
A collection of classes to simplify handling of matrix shapes in meta programming.
Definition: models/abm/analyze_result.h:30
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
Death Rate.
Definition: ode_seair/parameters.h:104
FP Type
Definition: ode_seair/parameters.h:105
static Type get_default()
Definition: ode_seair/parameters.h:106
static std::string name()
Definition: ode_seair/parameters.h:110
Quarantining.
Definition: ode_seair/parameters.h:56
static std::string name()
Definition: ode_seair/parameters.h:62
static Type get_default()
Definition: ode_seair/parameters.h:58
FP Type
Definition: ode_seair/parameters.h:57
Infectious period for unconfirmed infected people.
Definition: ode_seair/parameters.h:136
static std::string name()
Definition: ode_seair/parameters.h:142
static Type get_default()
Definition: ode_seair/parameters.h:138
FP Type
Definition: ode_seair/parameters.h:137
Recovery rate.
Definition: ode_seair/parameters.h:88
static Type get_default()
Definition: ode_seair/parameters.h:90
static std::string name()
Definition: ode_seair/parameters.h:94
FP Type
Definition: ode_seair/parameters.h:89
Social distancing.
Definition: ode_seair/parameters.h:40
static std::string name()
Definition: ode_seair/parameters.h:46
static Type get_default()
Definition: ode_seair/parameters.h:42
FP Type
Definition: ode_seair/parameters.h:41
Rate of testing.
Definition: ode_seair/parameters.h:72
static Type get_default()
Definition: ode_seair/parameters.h:74
FP Type
Definition: ode_seair/parameters.h:73
static std::string name()
Definition: ode_seair/parameters.h:78
Inverse of the latent period of the virus.
Definition: ode_seair/parameters.h:120
static Type get_default()
Definition: ode_seair/parameters.h:122
static std::string name()
Definition: ode_seair/parameters.h:126
FP Type
Definition: ode_seair/parameters.h:121
Rate recovered people become susceptible again.
Definition: ode_seair/parameters.h:152
FP Type
Definition: ode_seair/parameters.h:153
static Type get_default()
Definition: ode_seair/parameters.h:154
static std::string name()
Definition: ode_seair/parameters.h:158