1#ifndef THERMAL_TIME_BETA_H
2#define THERMAL_TIME_BETA_H
5#include "../framework/module.h"
6#include "../framework/state_map.h"
110 state_map
const& input_quantities,
111 state_map* output_quantities)
112 : differential_module{},
115 fractional_doy{get_input(input_quantities,
"fractional_doy")},
116 sowing_fractional_doy{get_input(input_quantities,
"sowing_fractional_doy")},
117 temp{get_input(input_quantities,
"temp")},
118 tbase{get_input(input_quantities,
"tbase")},
119 tmax{get_input(input_quantities,
"tmax")},
120 talpha{get_input(input_quantities,
"talpha")},
121 tbeta{get_input(input_quantities,
"tbeta")},
122 ttc_scale{get_input(input_quantities,
"ttc_scale")},
125 TTc_op{get_op(output_quantities,
"TTc")}
130 static std::string
get_name() {
return "thermal_time_beta"; }
134 double const& fractional_doy;
135 double const& sowing_fractional_doy;
139 double const& talpha;
141 double const& ttc_scale;
147 void do_operation()
const;
154 "sowing_fractional_doy",
171void thermal_time_beta::do_operation()
const
175 fractional_doy < sowing_fractional_doy ? 0.0
176 : temp <= tbase ? 0.0
177 : temp <= tmax ? ttc_scale * pow(temp - tbase, talpha) * pow(tmax - temp, tbeta)
181 update(TTc_op, rate);
Calculates the rate of thermal time accumulation using a beta distribution function.
static string_vector get_outputs()
static string_vector get_inputs()
static std::string get_name()
thermal_time_beta(state_map const &input_quantities, state_map *output_quantities)
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...