The BioCro C++ Library
example_model_partitioning.h
Go to the documentation of this file.
1#ifndef EXAMPLE_MODEL_PARTITIONING_H
2#define EXAMPLE_MODEL_PARTITIONING_H
3
4#include "../framework/module.h"
5#include "../framework/state_map.h"
6
7namespace standardBML
8{
33class example_model_partitioning : public differential_module
34{
35 public:
37 state_map const& input_quantities,
38 state_map* output_quantities)
39 : differential_module{},
40
41 // Get pointers to input quantities
42 mass_gain{get_input(input_quantities, "mass_gain")},
43 f_leaf{get_input(input_quantities, "f_leaf")},
44 f_root{get_input(input_quantities, "f_root")},
45
46 // Get pointers to output quantities
47 Leaf_op{get_op(output_quantities, "Leaf")},
48 Root_op{get_op(output_quantities, "Root")}
49 {
50 }
51 static string_vector get_inputs();
52 static string_vector get_outputs();
53 static std::string get_name() { return "example_model_partitioning"; }
54
55 private:
56 // References to input quantities
57 double const& mass_gain;
58 double const& f_leaf;
59 double const& f_root;
60
61 // Pointers to output quantities
62 double* Leaf_op;
63 double* Root_op;
64
65 // Main operation
66 void do_operation() const;
67};
68
70{
71 return {
72 "mass_gain", // kg / s
73 "f_leaf", // dimensionless from kg / kg
74 "f_root" // dimensionless from kg / kg
75 };
76}
77
79{
80 return {
81 "Leaf", // kg / s
82 "Root" // kg / s
83 };
84}
85
86void example_model_partitioning::do_operation() const
87{
88 double const dLeaf = mass_gain * f_leaf;
89 double const dRoot = mass_gain * f_root;
90
91 update(Leaf_op, dLeaf);
92 update(Root_op, dRoot);
93}
94
95} // namespace standardBML
96#endif
An example for the BioCro II manuscript.
example_model_partitioning(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 ...
Definition: aba_decay.h:8