1#ifndef MAINTENANCE_RESPIRATION_H
2#define MAINTENANCE_RESPIRATION_H
4#include "../framework/module.h"
5#include "../framework/state_map.h"
23 state_map
const& input_quantities,
24 state_map* output_quantities)
25 : differential_module{},
28 Grain_mr_rate{get_input(input_quantities,
"Grain_mr_rate")},
29 Leaf_mr_rate{get_input(input_quantities,
"Leaf_mr_rate")},
30 Rhizome_mr_rate{get_input(input_quantities,
"Rhizome_mr_rate")},
31 Root_mr_rate{get_input(input_quantities,
"Root_mr_rate")},
32 Shell_mr_rate{get_input(input_quantities,
"Shell_mr_rate")},
33 Stem_mr_rate{get_input(input_quantities,
"Stem_mr_rate")},
36 Grain_op{get_op(output_quantities,
"Grain")},
37 Leaf_op{get_op(output_quantities,
"Leaf")},
38 Rhizome_op{get_op(output_quantities,
"Rhizome")},
39 Root_op{get_op(output_quantities,
"Root")},
40 Shell_op{get_op(output_quantities,
"Shell")},
41 Stem_op{get_op(output_quantities,
"Stem")}
46 static std::string
get_name() {
return "maintenance_respiration"; }
50 const double& Grain_mr_rate;
51 const double& Leaf_mr_rate;
52 const double& Rhizome_mr_rate;
53 const double& Root_mr_rate;
54 const double& Shell_mr_rate;
55 const double& Stem_mr_rate;
66 void do_operation() const override final;
93void maintenance_respiration::do_operation()
const
95 update(Grain_op, -Grain_mr_rate);
96 update(Leaf_op, -Leaf_mr_rate);
97 update(Rhizome_op, -Rhizome_mr_rate);
98 update(Root_op, -Root_mr_rate);
99 update(Shell_op, -Shell_mr_rate);
100 update(Stem_op, -Stem_mr_rate);
Includes maintenance respiration losses in the rate of change of each organ biomass.
maintenance_respiration(state_map const &input_quantities, state_map *output_quantities)
static string_vector get_outputs()
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 ...