The BioCro C++ Library
sla_linear.h
Go to the documentation of this file.
1#ifndef SLA_LINEAR_H
2#define SLA_LINEAR_H
3
4#include "../framework/module.h"
5#include "../framework/state_map.h"
6
7namespace standardBML
8{
29class sla_linear : public direct_module
30{
31 public:
32 sla_linear(state_map const& input_quantities, state_map* output_quantities)
33 : direct_module{},
34
35 // Get pointers to input quantities
36 iSp{get_input(input_quantities, "iSp")},
37 Sp_thermal_time_decay{get_input(input_quantities, "Sp_thermal_time_decay")},
38 TTc{get_input(input_quantities, "TTc")},
39
40 // Get pointers to output quantities
41 Sp_op{get_op(output_quantities, "Sp")}
42 {
43 }
44 static string_vector get_inputs();
45 static string_vector get_outputs();
46 static std::string get_name() { return "sla_linear"; }
47
48 private:
49 // References to input quantities
50 double const& iSp;
51 double const& Sp_thermal_time_decay;
52 double const& TTc;
53
54 // Pointers to output quantities
55 double* Sp_op;
56
57 // Main operation
58 void do_operation() const;
59};
60
62{
63 return {
64 "iSp", // Ha / Mg
65 "TTc", // degree C * day
66 "Sp_thermal_time_decay" // Ha / Mg / degree C / day
67 };
68}
69
71{
72 return {
73 "Sp" // Ha / Mg
74 };
75}
76
77void sla_linear::do_operation() const
78{
79 update(Sp_op, iSp - TTc * Sp_thermal_time_decay);
80}
81
82} // namespace standardBML
83#endif
Calculates the specific leaf area as a linear function of thermal time.
Definition: sla_linear.h:30
sla_linear(state_map const &input_quantities, state_map *output_quantities)
Definition: sla_linear.h:32
static string_vector get_outputs()
Definition: sla_linear.h:70
static string_vector get_inputs()
Definition: sla_linear.h:61
static std::string get_name()
Definition: sla_linear.h:46
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...
Definition: aba_decay.h:8