The BioCro C++ Library
varying_Jmax25.h
Go to the documentation of this file.
1#ifndef VARYING_JMAX25_H
2#define VARYING_JMAX25_H
3
4#include "../framework/module.h"
5#include "../framework/state_map.h"
6
7namespace standardBML
8{
83class varying_Jmax25 : public direct_module
84{
85 public:
87 state_map const& input_quantities,
88 state_map* output_quantities)
89 : direct_module{},
90
91 // Get references to input quantities
92 DVI{get_input(input_quantities, "DVI")},
93 Jmax_at_25_mature{get_input(input_quantities, "Jmax_at_25_mature")},
94 DVI0_jmax{get_input(input_quantities, "DVI0_jmax")},
95 D_DVI{get_input(input_quantities, "Delta_DVI_jmax")},
96 sf_jmax{get_input(input_quantities, "sf_jmax")},
97
98 // Get pointers to output quantities
99 Jmax_at_25_op{get_op(output_quantities, "Jmax_at_25")}
100 {
101 }
102 static string_vector get_inputs();
103 static string_vector get_outputs();
104 static std::string get_name() { return "varying_Jmax25"; }
105
106 private:
107 // Pointers to input quantities
108 double const& DVI;
109 double const& Jmax_at_25_mature;
110 double const& DVI0_jmax;
111 double const& D_DVI;
112 double const& sf_jmax;
113
114 // Pointers to output quantities
115 double* Jmax_at_25_op;
116
117 // Main operation
118 void do_operation() const;
119};
120
122{
123 return {
124 "DVI", // dimensionless
125 "sf_jmax", // dimensionless
126 "DVI0_jmax", // dimensionless
127 "Delta_DVI_jmax", // dimensionless
128 "Jmax_at_25_mature" // micromol / m^2 / s
129 };
130}
131
133{
134 return {
135 "Jmax_at_25" // micromol / m^2 / s
136 };
137}
138
139void varying_Jmax25::do_operation() const
140{
141 double const k = -log(1.0 / 0.95 - 1.0); // dimensionless
142
143 double const C = Jmax_at_25_mature * sf_jmax; // micromol / m^2 / s
144 double const L = Jmax_at_25_mature * (1 - sf_jmax); // micromol / m^2 / s
145
146 double const Jmax_at_25 = L / (1.0 + exp(-k * (DVI - DVI0_jmax) / D_DVI)) + C; // micromol / m^2 / s
147
148 update(Jmax_at_25_op, Jmax_at_25);
149}
150
151} // namespace standardBML
152#endif
Allows Jmax_at_25 to vary based on development index.
static string_vector get_outputs()
varying_Jmax25(state_map const &input_quantities, state_map *output_quantities)
static string_vector get_inputs()
static std::string get_name()
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...
Definition: aba_decay.h:8