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